:root{
  --navy:#121A2A; --navy2:#1C2740; --ink:#1B2230; --muted:#475066; --line:#E3DED4; --line2:#C9C2B5;
  --bg:#F6F3EE; --card:#FFFFFF; --accent:#C2410C; --accent-d:#9A3412; --amber:#F59E0B; --soft:#FDEBD3;
  --ok:#166534; --ok-bg:#DCFCE7; --err:#B91C1C; --err-bg:#FEE2E2;
  --r:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Noto Sans KR',system-ui,-apple-system,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}
a{color:var(--accent)} a:hover{color:var(--accent-d)}
img{max-width:100%}
h1,h2,h3{line-height:1.3}
.serif{font-family:'Noto Serif KR',serif}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.muted{color:var(--muted)} .small{font-size:14px} .tiny{font-size:13px}
.hidden{display:none!important}

/* 상단 */
.top{background:var(--navy);color:#F6F3EE;position:sticky;top:0;z-index:20}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:10px;color:#F6F3EE;text-decoration:none;font-weight:900;font-size:21px}
.logo:hover{color:#fff}
.logo i{font-style:normal;width:34px;height:34px;border-radius:10px;background:var(--amber);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:17px}
.top nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.top nav a{color:#CBD2DF;text-decoration:none;padding:8px 10px;border-radius:8px;font-size:15px}
.top nav a:hover{color:#fff;background:var(--navy2)}

/* 버튼 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;border:0;border-radius:10px;padding:13px 22px;min-height:48px;cursor:pointer;text-decoration:none;background:var(--accent);color:#fff;transition:background .15s}
.btn:hover{background:var(--accent-d);color:#fff}
.btn.amber{background:var(--amber);color:var(--navy)} .btn.amber:hover{background:#FBBF24;color:var(--navy)}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line2)} .btn.ghost:hover{background:#FAF8F4;color:var(--ink)}
.btn.dark{background:var(--navy);color:#F6F3EE} .btn.dark:hover{background:var(--navy2);color:#fff}
.btn.sm{padding:8px 14px;min-height:38px;font-size:14px;border-radius:8px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.block{width:100%}

/* 카드 */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;background:var(--soft);color:#7C2D12}

/* 폼 */
.field{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:15px}
.field .hint{font-weight:400;font-size:13px;color:var(--muted)}
input[type=text],input[type=tel],input[type=email],input[type=date],input[type=password],input[type=number],select,textarea{
  font:inherit;font-weight:400;font-size:16px;padding:12px 14px;border:1px solid var(--line2);border-radius:10px;background:#fff;color:var(--ink);min-height:48px;width:100%}
textarea{resize:vertical;min-height:96px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:var(--amber)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt span{display:inline-flex;align-items:center;min-height:44px;padding:9px 16px;border:1px solid var(--line2);border-radius:999px;background:#fff;cursor:pointer;font-weight:500;font-size:15px}
.opt input:checked + span{background:var(--navy);border-color:var(--navy);color:#F6F3EE}
.opt input:focus-visible + span{outline:2px solid var(--amber)}
.err{background:var(--err-bg);color:var(--err);border-radius:10px;padding:12px 14px;font-weight:500}
.ok{background:var(--ok-bg);color:var(--ok);border-radius:10px;padding:12px 14px;font-weight:500}

/* 하단 */
.foot{background:var(--navy);color:#AEB6C6;font-size:14px;padding:36px 0 44px;margin-top:64px}
.foot a{color:#E5E9F0}
.foot .links{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px;font-weight:700}

@media (max-width:640px){
  .wrap{padding:0 16px}
  .top nav a.hide-m{display:none}
  .card{padding:18px}
}

/* 운영 방식별 표시 (config.js의 OPERATOR_MODE) */
html[data-mode="direct"] [data-only="platform"]{display:none!important}
html[data-mode="platform"] [data-only="direct"]{display:none!important}
