:root{color-scheme:light;--ink:#191f28;--muted:#4e5968;--line:#e5e8eb;--canvas:#f2f4f6;--paper:#ffffff;--blue:#1b64da;--blue-press:#1550ae;--red:#e42939;--green:#00a87a;font-family:Inter,Pretendard,Noto Sans KR,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--canvas);line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:not(.button-secondary):not(.button-danger):hover:not(:disabled){background:var(--blue-press)}a:focus-visible,button:focus-visible{outline:3px solid rgba(27,100,218,.34);outline-offset:3px}.ops-shell{min-height:100vh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:0 32px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{font-weight:800;letter-spacing:-.03em}.brand span{margin-left:4px;color:var(--blue);font-size:12px;letter-spacing:.08em}.topbar-actions{display:flex;align-items:center;gap:16px}.small{font-size:13px}.page-shell{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:56px 0 96px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin-bottom:28px}h1,h2,p{margin-top:0}h1{margin-bottom:8px;font-size:clamp(30px,4vw,44px);line-height:1.18;letter-spacing:-.045em}h2{margin-bottom:20px;font-size:20px;letter-spacing:-.025em}.eyebrow{margin-bottom:10px;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.11em}.muted{color:var(--muted)}.metric{display:grid;min-width:112px;padding:18px 20px;border-radius:18px;background:var(--paper);box-shadow:0 8px 24px rgba(25,31,40,.06)}.metric strong{font-size:28px}.metric span{color:var(--muted);font-size:12px}.login-card,.panel,.table-card{overflow:hidden;border:1px solid rgba(0,0,0,.035);border-radius:22px;background:var(--paper);box-shadow:0 10px 32px rgba(25,31,40,.06)}.table-head,.table-row{display:grid;grid-template-columns:minmax(260px,2fr) minmax(110px,.8fr) minmax(110px,.8fr) minmax(80px,.5fr);align-items:center;grid-gap:16px;gap:16px;padding:16px 22px}.table-head{color:var(--muted);background:#fafbfc;font-size:12px;font-weight:700}.table-row{min-height:78px;border-top:1px solid var(--line);transition:background .15s ease}.table-row:hover{background:#f8faff}.race-cell,.source-cell{display:grid;grid-gap:4px;gap:4px}.race-cell small,.source-cell small{color:var(--muted)}.status{display:inline-flex;width:-moz-fit-content;width:fit-content;padding:6px 10px;border-radius:999px;background:#f2f4f6;color:#4e5968;font-size:12px;font-weight:700}.status-approved,.status-published{background:#e8faf4;color:#087f5b}.status-awaiting_response,.status-review_required{background:#fff6df;color:#9a6700}.status-declined,.status-revoked,.status-suppressed{background:#fff0f1;color:#c92a3a}.empty-state{padding:72px 24px;text-align:center}.empty-state p{margin:8px 0 0;color:var(--muted)}.button-link{display:inline-flex;margin-top:20px;padding:12px 18px;border-radius:12px;background:var(--paper);color:var(--blue);font-weight:700}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#0f1c22}.login-card{width:min(460px,100%);padding:36px}.form-stack{display:grid;grid-gap:18px;gap:18px}.form-stack.compact{gap:13px}fieldset,label{display:grid;grid-gap:7px;gap:7px;color:#4e5968;font-size:13px;font-weight:700}fieldset{margin:0;padding:14px;border:1px solid var(--line);border-radius:14px}legend{padding:0 6px}label.check{display:flex;align-items:center;gap:8px;font-weight:500}input,select,textarea{width:100%;border:1px solid #d1d6db;border-radius:12px;padding:12px 13px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(49,130,246,.13)}textarea{resize:vertical}button{border:0;border-radius:12px;padding:12px 16px;background:var(--blue);color:#fff;font-weight:800}.button-secondary{padding:8px 12px;background:#f2f4f6;color:#4e5968;font-size:13px}.button-danger{background:var(--red)}.error{margin:0;color:var(--red);font-size:13px}.detail-page{padding-top:34px}.back-link{display:inline-flex;margin-bottom:24px;color:var(--blue);font-weight:700}.status-stack{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;align-items:start}.panel{padding:24px}.timeline-panel{margin-top:18px}.check-list{display:grid;grid-gap:10px;gap:10px;margin:0 0 22px;padding:0;list-style:none}.check-list li{display:flex;gap:9px;color:var(--muted)}.check-list li:before{content:"×";display:grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#fff0f1;color:var(--red);font-weight:900}.check-list li[data-ok=true]{color:var(--ink)}.check-list li[data-ok=true]:before{content:"✓";background:#e8faf4;color:var(--green)}.danger-zone{border-color:rgba(228,41,57,.2)}.timeline{display:grid;grid-gap:0;gap:0}.timeline article{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(140px,.6fr) minmax(220px,1.5fr);grid-gap:16px;gap:16px;padding:16px 0;border-top:1px solid var(--line)}.timeline article:first-child{border-top:0}.timeline article p,.timeline article span{color:var(--muted)}.timeline article p{margin:0}.timeline code{grid-column:1/-1;overflow-wrap:anywhere;color:var(--muted);font-size:11px}.notice{padding:13px 16px;border-radius:14px;font-weight:700}.notice.success{background:#e8faf4;color:#087f5b}.notice.error{background:#fff0f1;color:#c92a3a}@media (max-width:760px){.topbar{padding:0 18px}.topbar-actions .muted{display:none}.page-shell{width:min(100% - 24px,680px);padding-top:32px}.page-heading{display:grid}.metric{width:112px}.table-head{display:none}.table-row{grid-template-columns:1fr auto;gap:10px}.table-row>:nth-child(3),.table-row>:nth-child(4){grid-column:2}.race-cell{grid-row:1/span 3}.detail-grid,.timeline article{grid-template-columns:1fr}.timeline article{gap:4px}.timeline code{grid-column:auto}.login-card{padding:26px 22px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}