:root{
  --bg:#f5f5f7; --panel:#fff; --panel-2:#fbfbfd; --text:#1d1d1f; --text-2:#6e6e73; --line:#d2d2d7; --line-soft:rgba(0,0,0,.07);
  --accent:#0071e3; --accent-hover:#0077ed; --link:#0066cc; --good:#248a3d; --good-bg:rgba(36,138,61,.1); --bad:#c9001a; --bad-bg:rgba(255,59,48,.08); --warn:#b25000; --warn-bg:rgba(255,149,0,.12);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){ --bg:#000; --panel:#1d1d1f; --panel-2:#232325; --text:#f5f5f7; --text-2:#a1a1a6; --line:#424245; --line-soft:rgba(255,255,255,.09); --link:#2997ff; --good:#30d158; --good-bg:rgba(48,209,88,.14); --bad:#ff6961; --bad-bg:rgba(255,69,58,.14); --warn:#ffb340; --warn-bg:rgba(255,159,10,.16); color-scheme:dark; } }
:root[data-theme="dark"]{ --bg:#000; --panel:#1d1d1f; --panel-2:#232325; --text:#f5f5f7; --text-2:#a1a1a6; --line:#424245; --line-soft:rgba(255,255,255,.09); --link:#2997ff; --good:#30d158; --good-bg:rgba(48,209,88,.14); --bad:#ff6961; --bad-bg:rgba(255,69,58,.14); --warn:#ffb340; --warn-bg:rgba(255,159,10,.16); color-scheme:dark; }
:root{ box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); }
*,*::before,*::after{ box-sizing:inherit; }
body{ margin:0; background:var(--bg); color:var(--text); font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif; font-size:16px; line-height:1.55; letter-spacing:-0.012em; word-break:keep-all; overflow-wrap:break-word; -webkit-font-smoothing:antialiased; }
a{ color:var(--link); text-decoration:none; } a:hover{ text-decoration:underline; }
button,input,select,textarea{ font:inherit; color:inherit; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; border-radius:6px; }
.hide{ display:none !important; }
.ico{ fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.top{ position:sticky; top:env(safe-area-inset-top,0px); z-index:10; background:rgba(245,245,247,.82); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); border-bottom:1px solid var(--line-soft); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .top{ background:rgba(0,0,0,.72); } }
:root[data-theme="dark"] .top{ background:rgba(0,0,0,.72); }
.top-in{ max-width:1080px; margin:0 auto; height:52px; padding:0 20px; display:flex; align-items:center; gap:16px; }
.top-in .brand{ font-weight:700; font-size:18px; letter-spacing:-0.02em; color:var(--text); }
.top-in .brand{ display:inline-flex; align-items:center; }
.top-in .brand:hover{ text-decoration:none; }
.top-in .brand .wm{ display:block; height:22px; width:auto; }
.top-in .sec{ margin-left:auto; font-size:13px; color:var(--text-2); display:flex; align-items:center; gap:6px; }
.top-in .sec svg{ width:15px; height:15px; }
.wrap{ max-width:1080px; margin:0 auto; padding:32px 20px 64px; }
.narrow{ max-width:680px; margin:0 auto; padding:40px 20px 72px; }
h1.t{ margin:0 0 8px; font-size:clamp(30px,4.4vw,44px); line-height:1.12; font-weight:700; letter-spacing:-0.03em; }
.sub{ margin:0 0 32px; font-size:17px; color:var(--text-2); }
.card{ background:var(--panel); border-radius:22px; padding:26px; }
.card + .card{ margin-top:14px; }
@media (max-width:420px){ .card{ padding:22px 18px; } }
.card h2{ margin:0 0 16px; font-size:19px; font-weight:700; letter-spacing:-0.02em; }
.field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.field label{ font-size:14px; font-weight:600; }
.field input,.field textarea,.field select{ height:48px; border-radius:12px; border:1px solid var(--line); background:var(--panel-2); padding:0 14px; font-size:16px; }
.field textarea{ height:auto; min-height:88px; padding:12px 14px; resize:vertical; }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(0,113,227,.2); }
.field small{ font-size:13px; color:var(--text-2); }
.grid2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
@media (max-width:620px){ .grid2{ grid-template-columns:1fr; } }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 24px; border-radius:980px; border:0; cursor:pointer; background:var(--accent); color:#fff; font-size:17px; font-weight:600; text-decoration:none; }
.btn:hover{ background:var(--accent-hover); text-decoration:none; }
.btn[disabled]{ opacity:.45; cursor:not-allowed; }
.btn.full{ width:100%; }
.btn.line{ background:transparent; color:var(--link); box-shadow:inset 0 0 0 1px var(--line); }
.btn.line:hover{ background:var(--panel-2); }
.btn.sm{ min-height:36px; padding:0 14px; font-size:14px; font-weight:500; }
.btn.danger{ background:transparent; color:var(--bad); box-shadow:inset 0 0 0 1px var(--line); }
.note{ font-size:13.5px; color:var(--text-2); line-height:1.6; }
.err{ margin-top:12px; padding:12px 14px; border-radius:12px; background:var(--bad-bg); color:var(--bad); font-size:14.5px; }
.okbox{ padding:12px 14px; border-radius:12px; background:var(--good-bg); color:var(--good); font-size:14.5px; }
.warnbox{ padding:12px 14px; border-radius:12px; background:var(--warn-bg); color:var(--warn); font-size:14.5px; }
.row{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.spin{ width:36px; height:36px; border-radius:50%; border:3px solid var(--line); border-top-color:var(--accent); animation:rot .9s linear infinite; }
@keyframes rot{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .spin{ animation:none; } }
.foot{ padding:28px 20px 40px; font-size:12.5px; color:var(--text-2); line-height:1.8; }
.foot-in{ max-width:1080px; margin:0 auto; border-top:1px solid var(--line); padding-top:18px; }
.foot a{ color:var(--text-2); text-decoration:underline; }
.foot .links{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:8px; }
.legal h2{ font-size:19px; margin:32px 0 10px; letter-spacing:-0.02em; }
.legal p,.legal li{ font-size:15.5px; line-height:1.8; color:var(--text); }
.legal ol,.legal ul{ padding-left:22px; }
.legal .draft{ margin-bottom:24px; }
.toast{ position:fixed; left:50%; bottom:calc(env(safe-area-inset-bottom,0px) + 24px); transform:translateX(-50%); background:var(--text); color:var(--bg); padding:10px 18px; border-radius:980px; font-size:14px; z-index:60; }

.md-h{ display:block; font-size:1.05em; margin:12px 0 2px; color:var(--text); }
