:root{color-scheme:dark;--bg: #0d1117;--bg-raised: #151b23;--bg-sunken: #0a0e14;--bg-hover: #1c2430;--border: #262e3b;--border-strong: #37414f;--text: #e6edf3;--text-muted: #9aa7b6;--text-faint: #6b7887;--accent: #4c8dff;--accent-dim: #1f3a63;--high: #3fb950;--medium: #d29922;--low: #f0883e;--unknown: #8b949e;--danger: #f85149;--fresh-fresh: #3fb950;--fresh-recent: #57a773;--fresh-aging: #d29922;--fresh-stale: #f0883e;--fresh-unknown: #6b7887;--radius: 8px;--radius-sm: 5px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", "Pretendard", sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--sidebar-width: 232px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.25}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}button{font:inherit;color:inherit}input,select,textarea{font:inherit;color:var(--text);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input::placeholder{color:var(--text-faint)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;height:100%}.sidebar{background:var(--bg-sunken);border-right:1px solid var(--border);overflow-y:auto;padding:14px 10px 32px}.sidebar__brand{display:block;padding:6px 10px 16px;color:var(--text);font-weight:600;letter-spacing:.02em}.sidebar__brand:hover{text-decoration:none}.sidebar__brand small{display:block;color:var(--text-faint);font-weight:400;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.sidebar__group{margin-bottom:14px}.sidebar__group-label{padding:4px 10px;color:var(--text-faint);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.sidebar__link{display:block;padding:5px 10px;border-radius:var(--radius-sm);color:var(--text-muted)}.sidebar__link:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.sidebar__link--active{background:var(--accent-dim);color:var(--text)}.main{display:flex;flex-direction:column;overflow:hidden}.topbar{display:flex;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--bg-raised)}.topbar__spacer{flex:1}.content{flex:1;overflow-y:auto;padding:20px}.page-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.page-header__text{flex:1;min-width:0}.page-header__subtitle{margin-top:2px;color:var(--text-muted);font-size:13px}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.card__header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.card__title{flex:1;min-width:0;font-size:13px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted)}.grid{display:grid;gap:12px}.grid--stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.grid--halves{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stat__label{color:var(--text-muted);font-size:12px}.stat__value{margin-top:2px;font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.stat__value--absent{color:var(--text-faint);font-size:16px;font-weight:400}.stat__foot{margin-top:4px;color:var(--text-muted);font-size:12px}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border:1px solid var(--border-strong);border-radius:999px;font-size:11px;font-weight:500;white-space:nowrap;line-height:1.6}.badge--HIGH,.badge--FRESH,.badge--CONFIRMED{color:var(--high);border-color:color-mix(in srgb,var(--high) 40%,transparent);background:color-mix(in srgb,var(--high) 12%,transparent)}.badge--RECENT{color:var(--fresh-recent);border-color:color-mix(in srgb,var(--fresh-recent) 40%,transparent);background:color-mix(in srgb,var(--fresh-recent) 12%,transparent)}.badge--MEDIUM,.badge--AGING,.badge--POSSIBLE{color:var(--medium);border-color:color-mix(in srgb,var(--medium) 40%,transparent);background:color-mix(in srgb,var(--medium) 12%,transparent)}.badge--LOW,.badge--STALE{color:var(--low);border-color:color-mix(in srgb,var(--low) 40%,transparent);background:color-mix(in srgb,var(--low) 12%,transparent)}.badge--UNKNOWN{color:var(--unknown);border-color:color-mix(in srgb,var(--unknown) 40%,transparent);background:color-mix(in srgb,var(--unknown) 10%,transparent)}.badge--neutral{color:var(--text-muted)}.badge--danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent);background:color-mix(in srgb,var(--danger) 12%,transparent)}.badge--accent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.inference-mark{color:var(--text-faint);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.freshness-strip{display:flex;flex-wrap:wrap;gap:6px 14px}.freshness-item{display:inline-flex;align-items:baseline;gap:5px;font-size:12px}.freshness-item__label{color:var(--text-faint)}.freshness-item__age{font-variant-numeric:tabular-nums;font-weight:500}.freshness-item__dot{width:7px;height:7px;border-radius:999px;align-self:center}.freshness-dot--FRESH{background:var(--fresh-fresh)}.freshness-dot--RECENT{background:var(--fresh-recent)}.freshness-dot--AGING{background:var(--fresh-aging)}.freshness-dot--STALE{background:var(--fresh-stale)}.freshness-dot--UNKNOWN{background:var(--fresh-unknown)}.qualified--POSSIBLE,.qualified--UNKNOWN{border-bottom:1px dashed var(--medium);cursor:help}.qualified--STALE{border-bottom:1px dashed var(--low);cursor:help}.qualified__flag{margin-left:3px;font-size:10px;vertical-align:super;color:var(--medium)}.qualified--STALE .qualified__flag{color:var(--low)}.absent{color:var(--text-faint);font-style:italic}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table.data{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.data th{position:sticky;top:0;z-index:1;padding:8px 10px;background:var(--bg-raised);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;text-align:left;white-space:nowrap}table.data th.num{text-align:right}table.data th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.data th.sortable:hover{color:var(--text)}table.data td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--bg-hover)}.num{text-align:right;font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-raised);cursor:pointer;font-size:13px;font-weight:500}.btn:hover:not(:disabled){background:var(--bg-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:#06101f}.btn--primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn--subtle{border-color:transparent;background:transparent;color:var(--text-muted)}.btn--subtle:hover:not(:disabled){color:var(--text);background:var(--bg-hover)}.btn--sm{padding:3px 8px;font-size:12px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tab{padding:7px 12px;border:none;border-bottom:2px solid transparent;background:none;color:var(--text-muted);cursor:pointer;white-space:nowrap;font-size:13px}.tab:hover{color:var(--text)}.tab--active{color:var(--text);border-bottom-color:var(--accent);font-weight:500}.state-block{display:flex;flex-direction:column;align-items:center;gap:6px;padding:32px 20px;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);text-align:center}.state-block__title{color:var(--text);font-weight:600}.state-block__body{max-width:52ch;font-size:13px}.state-block--error{border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.state-block--error .state-block__title{color:var(--danger)}.state-block__detail{max-width:70ch;margin-top:4px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--bg-sunken);color:var(--text-faint);font-family:var(--font-mono);font-size:11px;text-align:left;overflow-wrap:anywhere}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-raised),var(--bg-hover),var(--bg-raised));background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.notice{display:flex;gap:8px;padding:8px 10px;border:1px solid var(--border-strong);border-left-width:3px;border-radius:var(--radius-sm);font-size:13px}.notice--INFO{border-left-color:var(--accent)}.notice--WARN{border-left-color:var(--medium)}.notice--CRITICAL{border-left-color:var(--danger)}.notice__icon{flex-shrink:0;font-weight:700}.notice-list{display:flex;flex-direction:column;gap:6px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:13px}.kv dt{color:var(--text-muted)}.kv dd{margin:0;font-variant-numeric:tabular-nums}.breakdown{margin-top:8px;border-top:1px solid var(--border);padding-top:8px}.breakdown__row{display:grid;grid-template-columns:1fr 60px;gap:8px;align-items:center;padding:2px 0;font-size:12px}.breakdown__bar{height:5px;border-radius:999px;background:var(--bg-sunken);overflow:hidden}.breakdown__bar-fill{height:100%;background:var(--accent)}.breakdown__bar-fill--negative{background:var(--low)}details>summary{cursor:pointer;color:var(--text-muted);font-size:12px;list-style:none}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"▸ ";display:inline-block;transition:transform .12s}details[open]>summary:before{content:"▾ "}details>summary:hover{color:var(--text)}table.entry{width:100%;max-width:1000px;border-collapse:collapse}table.entry th{padding:4px 6px;color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-align:left;white-space:nowrap}table.entry td{padding:2px 3px}table.entry input,table.entry select{width:100%;padding:4px 6px;font-size:13px}table.entry input.num-input{text-align:right;font-variant-numeric:tabular-nums}table.entry input[aria-invalid=true]{border-color:var(--danger)}.entry-legend{margin-top:8px;color:var(--text-faint);font-size:12px}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.mono{font-family:var(--font-mono);font-size:12px}.small{font-size:12px}.nowrap{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dev-banner{padding:4px 20px;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--medium) 22%,transparent),color-mix(in srgb,var(--medium) 22%,transparent) 10px,transparent 10px,transparent 20px);border-bottom:1px solid var(--medium);color:var(--medium);font-size:12px;font-weight:600;text-align:center}.login{display:grid;place-items:center;height:100%;padding:20px}.login__card{width:100%;max-width:340px}.login__field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.login__field label{color:var(--text-muted);font-size:12px}.login__field input{width:100%}.lang-toggle{display:inline-flex;gap:2px}:lang(ko) body,:lang(ko) p,:lang(ko) li,:lang(ko) dd,:lang(ko) .state-block__body,:lang(ko) .notice,:lang(ko) .page-header__subtitle,:lang(ko) table.data td{word-break:keep-all}:lang(ko) .state-block__body{max-width:84ch}:lang(ko) .sidebar__group-label,:lang(ko) .card__title,:lang(ko) table.data th,:lang(ko) .badge{letter-spacing:0}:lang(ko) .sidebar__group-label,:lang(ko) table.data th{font-size:12px}:lang(ko) .card__title{font-size:14px}:lang(ko) .stat__value--absent{font-size:14px;line-height:1.45}
