@font-face{font-family:Pretendard;src:url(/fonts/PretendardVariable.woff2) format("woff2");font-weight:45 920;font-style:normal;font-display:swap}:root{--bg:#f6f7f9;--surface:#ffffff;--surface-2:#fafbfc;--panel:#ffffff;--card:#eef0f4;--border:#e1e4ea;--border-strong:#d5dae3;--text:#1c2430;--text-2:#3a4453;--muted:#5b6675;--muted-2:#8a8f9c;--accent:#1428a0;--accent-bright:#2138c4;--accent-soft:#eef3ff;--brand-deep:#142063;--brand-outline:#9fb0f0;--accent-2:#e4402b;--danger:#c5341f;--danger-soft:#fbe7e4;--ok:#1e7a44;--ok-soft:#e3f2ea;--warning:#9a6412;--warning-soft:#fbf1e2;--sidebar-bg:#142063;--sidebar-fg:#c9d3ef;--sidebar-fg-dim:#9fb0f0;--font-sans:"Pretendard",-apple-system,BlinkMacSystemFont,system-ui,"Malgun Gothic","Apple SD Gothic Neo",sans-serif;--font-mono:ui-monospace,Menlo,Consolas,monospace;--r-xs:5px;--r-sm:7px;--r:9px;--r-lg:12px;--r-pill:999px;--sh-sm:0 1px 4px rgba(0,0,0,0.08);--sh:0 3px 10px rgba(20,40,160,0.12);--sh-lg:0 14px 34px rgba(8,16,60,0.14);--sh-modal:0 24px 60px rgba(8,16,60,0.35)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent-bright);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:flex;min-height:100vh}.app-main{flex:1 1;min-width:0}.sidebar{position:-webkit-sticky;position:sticky;top:0;align-self:flex-start;height:100vh;width:236px;flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-fg);display:flex;flex-direction:column;overflow:hidden}.sidebar .brand-wrap{padding:20px 18px 14px}.sidebar .brand-kicker{font-weight:800;font-size:11px;letter-spacing:.2em;color:var(--sidebar-fg-dim)}.sidebar .brand-name{font-weight:800;font-size:18px;color:#fff;letter-spacing:-.01em;margin-top:3px}.sidebar nav{flex:1 1;padding:6px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 12px;border:0;border-radius:var(--r);background:transparent;color:var(--sidebar-fg);font-family:inherit;font-size:13.5px;font-weight:500;cursor:pointer;text-align:left;text-decoration:none;transition:background .12s,color .12s}.nav-item:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}.nav-item.active{background:rgba(255,255,255,.14);color:#fff}.nav-item svg{flex-shrink:0}.sidebar .foot{padding:12px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:8px}.sidebar .foot select{width:100%;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:var(--r-xs);padding:6px 8px;font-size:12.5px}.sidebar .foot select option{color:var(--text)}.sidebar .foot .who{font-size:12.5px;color:var(--sidebar-fg-dim);padding:0 2px}.sidebar .foot .logout{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.16)}.sidebar .foot .logout:hover{background:rgba(255,255,255,.18)}main.page{max-width:1180px;margin:0 auto;padding:28px 32px 56px}h1{font-size:21px;margin:0 0 18px;letter-spacing:-.01em}h1,h2{font-weight:700}h2{font-size:15px;margin:26px 0 10px;color:var(--text-2)}.panel{border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;margin-bottom:16px;box-shadow:var(--sh-sm)}.panel,table.grid{background:var(--panel)}table.grid{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}table.grid td,table.grid th{padding:9px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}table.grid th{background:var(--card);font-weight:600;color:var(--muted);font-size:12.5px}table.grid tbody tr:last-child td{border-bottom:0}table.grid tbody tr:hover{background:var(--surface-2)}tr.selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}button{background:var(--accent);color:#fff;border:0;border-radius:var(--r-sm);padding:7px 15px;cursor:pointer;font-size:13px;font-family:inherit;font-weight:600;transition:background .12s,opacity .12s,filter .12s}button:hover{background:var(--brand-deep)}button.secondary{background:var(--card);color:var(--text);border:1px solid var(--border)}button.secondary:hover{background:#e5e8ee}button.danger,button.danger:hover{background:var(--danger)}button.danger:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:default}input[type=email],input[type=password],input[type=text],select,textarea{border:1px solid var(--border-strong);border-radius:var(--r-xs);padding:7px 9px;font-size:13px;font-family:inherit;width:100%;background:var(--surface);color:var(--text)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-bright);box-shadow:0 0 0 3px var(--accent-soft)}label.field{display:block;margin-bottom:12px}label.field span{display:block;margin-bottom:4px;font-size:12.5px}.badge,label.field span{font-weight:600;color:var(--muted)}.badge{display:inline-block;border-radius:var(--r-pill);padding:2px 9px;font-size:11.5px;line-height:1.5;background:var(--card)}.badge.candidate,.badge.draft,.badge.in_progress,.badge.in_review,.badge.open,.badge.planned,.badge.proposed{background:var(--accent-soft);color:var(--accent)}.badge.accepted,.badge.all_pass,.badge.approve,.badge.approved,.badge.completed,.badge.confirmed,.badge.done,.badge.implemented,.badge.linked,.badge.passed,.badge.resolved,.badge.verified{background:var(--ok-soft);color:var(--ok)}.badge.blocked,.badge.broken,.badge.conflict,.badge.conflicted,.badge.failed,.badge.gap,.badge.rejected,.badge.request_changes{background:var(--danger-soft);color:var(--danger)}.badge.deferred,.badge.partial,.badge.pending,.badge.stale,.badge.suspect{background:var(--warning-soft);color:var(--warning)}.badge.cancelled,.badge.closed,.badge.dismissed,.badge.merged,.badge.retired,.badge.skipped,.badge.untested{background:var(--card);color:var(--muted)}.error{color:var(--danger);margin:8px 0}.notice{color:var(--ok);margin:8px 0}.kbd-help,.muted{color:var(--muted)}.kbd-help{font-size:12px;margin:8px 0 12px}.kbd-help kbd,kbd{background:var(--card);border:solid var(--border-strong);border-width:1px 1px 2px;border-radius:var(--r-xs);padding:1px 6px;font-family:var(--font-mono);font-size:11.5px;color:var(--text-2)}.modal-backdrop{position:fixed;inset:0;background:rgba(16,22,50,.42);display:flex;align-items:center;justify-content:center;z-index:40}.modal{background:var(--panel);border-radius:var(--r-lg);padding:22px;width:480px;max-width:92vw;max-height:84vh;overflow:auto;box-shadow:var(--sh-modal)}.modal h3{margin:0 0 14px;font-size:16px}.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.diff-before{background:var(--danger-soft);text-decoration:line-through}.diff-after{background:var(--ok-soft)}.checklist{border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;max-height:220px;overflow-y:auto;background:var(--surface-2)}.checklist label{display:block;padding:2px 0}table.grid tbody tr.gap-row{background:var(--danger-soft)}table.grid tbody tr.gap-row:hover{background:#f7d9d3}main.page.login-wrap{max-width:420px;margin:12vh auto}