/* RESEARCH_US 공통 디자인 토큰 v0.3.7
 * 페이지군마다 흩어져 있던 색·그림자 값을 한곳에서 정의한다.
 * 기존 CSS는 자체 :root 변수를 유지하되, 값이 어긋나던 포인트 컬러를
 * 이 파일 기준(--ru-accent:#e95f37)으로 통일했다.
 * 새 화면·새 컴포넌트는 아래 --ru-* 토큰만 사용한다. */
:root{
  --ru-accent:#e95f37;        /* 브랜드 포인트(주황) — 이전 #f0643c 혼용 제거 */
  --ru-green:#173e31;         /* 브랜드 딥그린 */
  --ru-green-deep:#07110d;    /* 플레이 화면 배경 계열 */
  --ru-ink:#18221d;           /* 본문 텍스트 */
  --ru-muted:#66756c;         /* 보조 텍스트 */
  --ru-line:#dfe6e1;          /* 경계선 */
  --ru-paper:#f7f6f1;         /* 밝은 배경 */
  --ru-card:#ffffff;          /* 카드 배경 */
  --ru-shadow:0 12px 35px rgba(20,45,35,.12);
  --ru-radius:14px;
  --ru-radius-lg:22px;
}

/* ===== V0.5.2 UX POLISH · shared public UI ===== */
html,body{word-break:keep-all;overflow-wrap:break-word}
img{max-width:100%}
.place-visual-placeholder{--pv-a:#e7eee9;--pv-b:#f6f8f5;--pv-ink:#315746;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;overflow:hidden;background:linear-gradient(145deg,var(--pv-a),var(--pv-b));color:var(--pv-ink)}
.place-visual-placeholder:after{content:"";position:absolute;width:92px;height:92px;border:1px solid currentColor;border-radius:50%;opacity:.1;right:-24px;top:-28px}
.place-visual-placeholder[data-category="food"]{--pv-a:#f6c8ad;--pv-b:#fff1e8;--pv-ink:#8d452c}
.place-visual-placeholder[data-category="cafe"]{--pv-a:#e6d6c2;--pv-b:#f8f1e8;--pv-ink:#6e5138}
.place-visual-placeholder[data-category="dessert"]{--pv-a:#f1cfcc;--pv-b:#fff1f1;--pv-ink:#8f514d}
.place-visual-placeholder[data-category="sight"]{--pv-a:#cfdde9;--pv-b:#eef5f9;--pv-ink:#365d78}
.place-visual-placeholder[data-category="experience"]{--pv-a:#ecd8b7;--pv-b:#faf3e5;--pv-ink:#75572e}
.place-visual-placeholder[data-category="shopping"]{--pv-a:#d9d1e8;--pv-b:#f4f0f8;--pv-ink:#5b4d77}
.place-visual-placeholder[data-category="culture"]{--pv-a:#d8d7cd;--pv-b:#f4f3ed;--pv-ink:#555b4f}
.place-visual-placeholder[data-category="nature"]{--pv-a:#bcd9c5;--pv-b:#edf6ef;--pv-ink:#285c3d}
.place-visual-icon{position:relative;z-index:1;display:grid;place-items:center;width:46px;height:46px}
.place-visual-icon svg{width:100%;height:100%}
.place-visual-label{position:relative;z-index:1;font-size:11px;font-weight:900;letter-spacing:.08em}
.ui-state{max-width:680px;margin:0 auto;padding:42px 30px;border:1px solid var(--ru-line,#dfe6e1);border-radius:24px;background:var(--ru-card,#fff);text-align:center;color:var(--ru-ink,#18221d);box-shadow:0 10px 32px rgba(20,45,35,.06)}
.ui-state-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:18px;background:#edf3ef;color:var(--ru-green,#173e31)}
.ui-state--error .ui-state-icon{background:#fff0eb;color:var(--ru-accent,#e95f37)}
.ui-state-icon svg{width:30px;height:30px}
.ui-state h1{margin:0 0 9px;font-size:clamp(24px,4vw,34px);letter-spacing:-.04em}
.ui-state p{margin:0 auto;color:var(--ru-muted,#66756c);line-height:1.65;max-width:520px}
.ui-state-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:22px}
.ui-state-action,.ui-state-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 16px;border-radius:12px;text-decoration:none;font:inherit;font-weight:850;cursor:pointer}
.ui-state-action.primary,.ui-state-button.primary{border:1px solid var(--ru-accent,#e95f37);background:var(--ru-accent,#e95f37);color:#fff}
.ui-state-action.secondary,.ui-state-button.secondary{border:1px solid var(--ru-line,#dfe6e1);background:#fff;color:var(--ru-green,#173e31)}
.area-load-error{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#9b3d28!important}
.area-retry-button{border:1px solid #d9b7ac;background:#fff;color:#8a3724;border-radius:9px;padding:6px 9px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
@media(max-width:600px){.ui-state{padding:32px 20px}.ui-state-actions>*{width:100%}}
