:root{--paper:#FBFCFE;--surface:#FFFFFF;--surface-2:#F1F4F8;--ink:#10151C;--ink-2:#3A4453;--ink-3:#6B7789;--line:#DFE5ED;--line-strong:#C9D2DE;--accent:#0E8FA8;--accent-2:#0A6E82;--accent-soft:#E1F3F6;--good:#1F9D57;--good-soft:#E4F5EB;--warn:#B7791F;--warn-soft:#FBF0DC;--danger:#C6413B;--danger-soft:#FBE7E5;--font-sans:"Noto Sans KR",system-ui,-apple-system,"Segoe UI",Roboto,"Malgun Gothic","Apple SD Gothic Neo",sans-serif;--font-mono:ui-monospace,"SF Mono","Cascadia Code","Segoe UI Mono",Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0C1017;--surface:#121824;--surface-2:#18212F;--ink:#E8EDF4;--ink-2:#AAB5C5;--ink-3:#6E7B8D;--line:#26303F;--line-strong:#33404F;--accent:#37C9E0;--accent-2:#7BE0EF;--accent-soft:#10333B;--good:#46CC82;--good-soft:#123526;--warn:#E2A93E;--warn-soft:#33290F;--danger:#F0685F;--danger-soft:#361A18}}:root[data-theme=dark]{--paper:#0C1017;--surface:#121824;--surface-2:#18212F;--ink:#E8EDF4;--ink-2:#AAB5C5;--ink-3:#6E7B8D;--line:#26303F;--line-strong:#33404F;--accent:#37C9E0;--accent-2:#7BE0EF;--accent-soft:#10333B;--good:#46CC82;--good-soft:#123526;--warn:#E2A93E;--warn-soft:#33290F;--danger:#F0685F;--danger-soft:#361A18}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.gate{min-height:100vh;display:grid;place-items:center;padding:24px}.gate-card{text-align:center;max-width:360px}.gate .lg{width:52px;height:52px;border-radius:14px;background:var(--accent);display:grid;place-items:center;color:#fff;font-size:26px;margin:0 auto 16px}.gate h1{font-size:22px;margin:0 0 4px;letter-spacing:-.01em}.gate p{color:var(--ink-3);font-size:14px;margin:0 0 20px}.gbtn{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;padding:11px 20px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer}.gbtn:hover{border-color:var(--accent)}.gbtn .go{width:17px;height:17px;border-radius:50%;background:conic-gradient(#ea4335 0,#ea4335 25%,#fbbc05 0,#fbbc05 50%,#34a853 0,#34a853 75%,#4285f4 0)}.err{color:var(--danger);font-size:13px;margin-top:14px}.muted{color:var(--ink-3)}.appbar{display:flex;align-items:center;gap:6px;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:15px;margin-right:14px}.brand .lg{width:22px;height:22px;border-radius:7px;background:var(--accent);display:grid;place-items:center;color:#fff;font-size:13px}.tab{font-size:13.5px;font-weight:600;color:var(--ink-2);padding:7px 14px;border-radius:8px;background:none;border:none;cursor:pointer;font-family:inherit}.tab:hover{background:var(--surface-2)}.tab.active{background:var(--accent-soft);color:var(--accent-2)}.spacer{margin-left:auto}.ibtn{font-size:12.5px;color:var(--ink-2);padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;font-family:var(--font-mono)}.ibtn:hover{border-color:var(--accent)}.main{max-width:960px;margin:0 auto;padding:28px 20px 80px}.page-h{font-size:19px;font-weight:750;margin:0 0 4px;letter-spacing:-.01em}.page-sub{color:var(--ink-3);font-size:13.5px;margin:0 0 20px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}.card h3{margin:0 0 12px;font-size:14px}.row{display:flex;align-items:center;gap:10px}.field{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:14px;background:var(--paper);color:var(--ink);font-family:inherit}textarea.field{min-height:90px;resize:vertical;font-family:var(--font-mono);font-size:12.5px}label.lbl{display:block;font-size:12px;color:var(--ink-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;margin:12px 0 6px}.btn{font-size:13px;font-weight:600;padding:7px 14px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;font-family:inherit}.btn:hover{border-color:var(--accent)}.btn.pri{background:var(--accent);border-color:transparent;color:#fff}.btn.good{background:var(--good);border-color:transparent;color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{font-size:12px;padding:5px 10px}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.danger:hover{background:var(--danger);color:#fff;border-color:transparent}.list{display:flex;flex-direction:column;gap:2px}.li{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;cursor:pointer;font-size:13.5px;border:1px solid transparent}.li:hover{background:var(--surface-2)}.li.sel{background:var(--accent-soft);color:var(--accent-2);border-color:transparent;font-weight:600}.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th{text-align:left;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:9px 12px;border-bottom:1px solid var(--line)}.tbl td{padding:11px 12px;border-bottom:1px solid var(--line)}.tbl tr:last-child td{border-bottom:none}.pill{font-family:var(--font-mono);font-size:11px;padding:3px 9px;border-radius:6px;font-weight:600}.pill.dep{background:var(--good-soft);color:var(--good)}.pill.up{background:var(--warn-soft);color:var(--warn)}.pill.arc{background:var(--surface-2);color:var(--ink-3)}.grid2{display:grid;grid-template-columns:240px 1fr;gap:16px}@media (max-width:680px){.grid2{grid-template-columns:1fr}}.empty{text-align:center;color:var(--ink-3);font-size:13.5px;padding:32px 16px;border:1px dashed var(--line-strong);border-radius:12px}.banner{border:1px solid var(--line);border-left:3px solid var(--warn);background:var(--warn-soft);border-radius:10px;padding:12px 14px;font-size:13px;color:var(--ink);margin-bottom:16px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:10px 18px;border-radius:10px;font-size:13px;z-index:50}.spin{display:inline-block;width:16px;height:16px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
