:root{--bg:#f6f7f9;--card:#fff;--ink:#111827;--muted:#6b7280;--line:#e5e7eb;--acc:#ea580c;--ok:#16a34a;--warn:#d97706;--bad:#dc2626}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif;font-size:15px}a{color:inherit}button{font:inherit;border:0;border-radius:8px;padding:8px 14px;background:var(--ink);color:#fff;cursor:pointer}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--line);padding:6px 10px}button.small{padding:4px 10px;font-size:13px}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;width:100%;background:#fff}label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}.shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr auto}.sandbox-bar{background:#fef3c7;color:#92400e;text-align:center;padding:6px;font-size:13px;font-weight:600}.top{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--ink);color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:5}.brand{font-weight:800;font-size:17px}.brand small{font-weight:400;opacity:.7;font-size:12px;margin-left:4px}.badge{font-size:12px;padding:2px 8px;border-radius:999px;color:#fff;font-weight:700}.spacer{flex:1 1}.who{font-size:12px;opacity:.8;display:none}.main{min-width:0;padding:16px 16px 90px;max-width:1200px;width:100%;margin:0 auto}.main h1{font-size:20px;margin:4px 0 14px}.side{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(7,1fr);background:#fff;border-top:1px solid var(--line);z-index:5}.side a{text-decoration:none;text-align:center;padding:8px 2px 10px;font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:2px}.side a .num{font-size:16px}.side a.on{color:var(--acc);font-weight:700}.grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0}.card h2{font-size:15px;margin:0 0 10px;display:flex;align-items:center;gap:8px}.soon{font-size:11px;font-weight:500;background:#eef2ff;color:#4338ca;padding:2px 6px;border-radius:6px}.muted{color:var(--muted);margin:4px 0}.muted,table{font-size:13px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;white-space:nowrap}.scroll{overflow-x:auto}.pill{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;background:#f3f4f6}.pill.ok{background:#dcfce7;color:#166534}.pill.warn{background:#fef3c7;color:#92400e}.pill.bad{background:#fee2e2;color:#991b1b}.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px}.tabs button{background:#fff;color:var(--ink);border:1px solid var(--line);white-space:nowrap}.tabs button.on{background:var(--ink);color:#fff}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.err{color:var(--bad)}.err,.okmsg{font-size:13px}.okmsg{color:var(--ok)}.meter{height:8px;background:#f3f4f6;border-radius:4px;overflow:hidden}.meter>i{display:block;height:100%}.switch{position:relative;width:42px;height:24px;border-radius:12px;background:#d1d5db;padding:0}.switch.on{background:var(--ok)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s}.switch.on:after{left:21px}.form2{display:grid;grid-template-columns:1fr;grid-gap:0 12px;gap:0 12px}.login{max-width:380px;margin:12vh 16px;padding:24px;border-radius:14px;border:1px solid var(--line)}.doc,.login{background:#fff}.doc{max-width:820px;margin:0 auto;padding:24px 16px 60px;line-height:1.7}.doc table{margin:10px 0}@media (min-width:900px){.shell{grid-template-columns:200px minmax(0,1fr);grid-template-rows:auto auto 1fr}.sandbox-bar,.top{grid-column:1/-1}.side{position:-webkit-sticky;position:sticky;top:52px;height:calc(100vh - 52px);grid-template-columns:1fr;grid-auto-rows:min-content;border-top:0;border-right:1px solid var(--line);padding-top:10px}.side a{flex-direction:row;text-align:left;font-size:14px;padding:10px 18px;gap:10px}.main{padding:24px}.grid{grid-template-columns:repeat(2,1fr)}.card.wide{grid-column:1/-1}.who{display:inline}.form2{grid-template-columns:1fr 1fr}}@media (min-width:420px){.login{margin:12vh auto}}