@font-face{font-family:NanumSquareNeo;src:url('/font/NanumSquareNeo-Regular.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:NanumSquareNeo;src:url('/font/NanumSquareNeo-Bold.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:Pretendard;src:url('/font/Pretendard-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Pretendard;src:url('/font/Pretendard-Bold.woff2') format('woff2');font-weight:700;font-display:swap}

:root{
  --semas-primary-900:#2D2E5D;--semas-primary-700:#3D3F7E;--semas-primary-600:#4A4C99;
  --semas-primary:#5A5DBA;--semas-primary-300:#9597D3;--semas-primary-100:#CACBE9;
  --semas-primary-050:#E5E5F4;--semas-primary-025:#F2F2F9;
  --semas-accent-text:#915300;--semas-accent-700:#B26600;--semas-accent:#F18A00;
  --semas-accent-hover:#FF970B;--semas-accent-300:#F8C480;--semas-accent-100:#FCE5C7;
  --semas-accent-050:#FEF3E6;--semas-ink:#3A3A3A;--semas-ink-muted:#5D5D5D;
  --semas-ink-faint:#767676;--semas-line:#E8E8E8;--semas-line-strong:#D9D9D9;
  --semas-surface:#FFFFFF;--semas-surface-sunken:#FAFAFA;--semas-safe:#1E7B45;
  --semas-safe-bg:#F5F7F9;--semas-safe-edge:#CFE0D6;--semas-watch:#8A5A00;
  --semas-watch-bg:#F7F6FA;--semas-watch-edge:#DCD7E8;--semas-prep:#B3261E;
  --semas-prep-bg:#F4F4F8;--semas-prep-edge:#D8D6E4;--semas-surface-1:#F7FAFF;
  --semas-card-border:#DDD6FE;--semas-card-shadow:0 1px 2px rgba(45,46,93,.05);
  --semas-head:#2C1163;--semas-font-head:"NanumSquareNeo","Pretendard",sans-serif;
  --semas-font-body:"Pretendard","NanumSquareNeo",sans-serif;--semas-radius:5px;
  --semas-radius-card:10px;--sidebar-w:244px;
}
*{box-sizing:border-box}html{background:var(--semas-surface-sunken)}body{margin:0;color:var(--semas-ink);font:15px/1.6 var(--semas-font-body);letter-spacing:-.01em}button,input,select{font:inherit;letter-spacing:inherit}button{border:0}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:var(--semas-font-head);color:var(--semas-head);letter-spacing:-.07em;line-height:1.4}h1{font-size:24px}h2{font-size:24px;margin-bottom:5px}h3{font-size:18px;margin-bottom:4px}p{color:var(--semas-ink-muted)}[hidden]{display:none!important}
.auth-layout{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 18% 20%,var(--semas-primary-050),transparent 27%),linear-gradient(135deg,var(--semas-surface-1),var(--semas-surface))}.auth-card{width:min(520px,100%);padding:42px;background:var(--semas-surface);border:1px solid var(--semas-card-border);border-radius:var(--semas-radius-card);box-shadow:0 18px 60px rgba(45,46,93,.10)}.brand-mark{width:58px;height:34px;position:relative;margin-bottom:20px}.brand-mark span,.brand-mark i{position:absolute;display:block;border-radius:20px;transform:rotate(-12deg)}.brand-mark span{width:40px;height:13px;background:var(--semas-primary);top:2px;left:0}.brand-mark i{width:38px;height:12px;background:var(--semas-accent);bottom:2px;right:0}.brand-mark.small{width:38px;height:25px;margin:0}.brand-mark.small span{width:28px;height:9px}.brand-mark.small i{width:26px;height:8px}.eyebrow,.panel-kicker{margin:0 0 4px;color:var(--semas-primary-700);font-size:13px;font-weight:700}.auth-card h1{font-size:30px;margin-bottom:10px}.auth-copy{font-size:16px;margin-bottom:28px}.auth-card label{display:block;font-weight:700;margin-bottom:7px}.token-row{display:flex;gap:8px}.token-row input{flex:1}.field-help{font-size:13px;color:var(--semas-ink-faint);margin:7px 0 0}.scope-note{margin-top:26px;padding:14px 16px;border-left:4px solid var(--semas-primary);background:var(--semas-surface-1);display:flex;flex-direction:column}.scope-note span{color:var(--semas-ink-muted);font-size:13px}.form-error{color:var(--semas-prep);font-weight:700;margin:9px 0 0}
input,select{width:100%;height:44px;padding:0 12px;color:var(--semas-ink);background:var(--semas-surface);border:1px solid var(--semas-line-strong);border-radius:var(--semas-radius);outline:none}input:focus,select:focus{border-color:var(--semas-primary);box-shadow:0 0 0 3px var(--semas-primary-050)}.button{min-height:42px;padding:0 16px;border-radius:var(--semas-radius);font-weight:700;cursor:pointer}.button.primary{background:var(--semas-primary);color:var(--semas-surface)}.button.primary:hover{background:var(--semas-primary-600)}.button.quiet{background:var(--semas-surface);border:1px solid var(--semas-line-strong);color:var(--semas-ink-muted)}.button.large{min-width:190px;height:48px}.button:disabled{opacity:.6;cursor:wait}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);padding:24px 16px;display:flex;flex-direction:column;background:var(--semas-surface);border-right:1px solid var(--semas-line);z-index:10}.sidebar-brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px;border-bottom:1px solid var(--semas-line)}.sidebar-brand div:last-child{display:flex;flex-direction:column}.sidebar-brand strong{font-family:var(--semas-font-head);color:var(--semas-head);font-size:15px}.sidebar-brand span{font-size:13px;color:var(--semas-ink-faint)}nav{padding-top:22px;display:flex;flex-direction:column;gap:5px}.nav-item{width:100%;height:48px;padding:0 12px;display:flex;align-items:center;gap:11px;background:transparent;color:var(--semas-ink-muted);border-radius:8px;text-align:left;cursor:pointer}.nav-item:hover{background:var(--semas-surface-1)}.nav-item.active{background:var(--semas-primary-025);color:var(--semas-primary-700);font-weight:700}.nav-icon{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--semas-primary-100);border-radius:50%;font-size:11px;font-variant-numeric:tabular-nums}.nav-item.active .nav-icon{background:var(--semas-primary);border-color:var(--semas-primary);color:var(--semas-surface)}.sidebar-foot{margin-top:auto;padding:16px 8px 0;border-top:1px solid var(--semas-line);display:flex;align-items:center;gap:10px}.sidebar-foot div{display:flex;flex-direction:column;min-width:0}.sidebar-foot strong,.sidebar-foot span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot strong{font-size:13px;color:var(--semas-ink)}.sidebar-foot span{font-size:12px;color:var(--semas-ink-faint)}.status-dot{width:9px;height:9px;flex:0 0 auto;border-radius:50%;background:var(--semas-safe);box-shadow:0 0 0 4px var(--semas-safe-bg)}
.workspace{margin-left:var(--sidebar-w);min-width:0}.topbar{height:86px;padding:16px 32px;display:flex;align-items:center;justify-content:space-between;background:var(--semas-surface);border-bottom:1px solid var(--semas-line);position:sticky;top:0;z-index:8}.topbar h1{margin:0}.top-actions{display:flex;align-items:center;gap:10px}.connection-badge{padding:5px 10px;color:var(--semas-safe);border:1px solid var(--semas-safe-edge);border-radius:20px;font-size:13px;font-weight:700}.workspace main{max-width:1280px;margin:0 auto;padding:32px}.view{display:none}.view.active{display:block}.intro-row{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px}.intro-row p{margin:0}.evidence-badge{display:inline-flex;align-items:center;min-height:30px;padding:4px 10px;border-radius:20px;font-size:13px;font-weight:700;white-space:nowrap}.evidence-badge.ai{color:var(--semas-accent-text);background:var(--semas-accent-050);border:1px solid var(--semas-accent-100)}.evidence-badge.record{color:var(--semas-ink-muted);background:var(--semas-surface);border:1px solid var(--semas-line-strong)}
.notice-stack{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.notice{padding:12px 15px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-left:4px solid var(--semas-primary);border-radius:var(--semas-radius);color:var(--semas-ink-muted)}.notice.warning{border-left-color:var(--semas-watch);background:var(--semas-watch-bg)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.metric-card,.panel{background:var(--semas-surface);border:1px solid var(--semas-card-border);border-radius:var(--semas-radius-card);box-shadow:var(--semas-card-shadow)}.metric-card{min-height:142px;padding:20px;display:flex;flex-direction:column}.accent-edge{border-left:4px solid var(--semas-accent)}.metric-label{color:var(--semas-ink-muted);font-size:13px}.metric-value{margin:8px 0 4px;font:700 30px/1.2 var(--semas-font-head);color:var(--semas-head);font-variant-numeric:tabular-nums}.metric-caption{margin-top:auto;color:var(--semas-ink-faint);font-size:13px}.overview-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.panel-head h3{margin:0}.large-copy{font-size:16px;line-height:1.72;margin:20px 0}.priority-pill,.model-chip{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:5px 10px;border-radius:20px;font-size:13px;font-weight:700}.priority-pill.high{color:var(--semas-prep);background:var(--semas-prep-bg);border:1px solid var(--semas-prep-edge)}.priority-pill.normal{color:var(--semas-safe);background:var(--semas-safe-bg);border:1px solid var(--semas-safe-edge)}.model-chip{color:var(--semas-primary-700);background:var(--semas-primary-025);border:1px solid var(--semas-primary-100)}.fact-list{margin:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--semas-line)}.fact-list div{padding:14px 12px 0 0;display:flex;flex-direction:column}.fact-list dt{color:var(--semas-ink-faint);font-size:13px}.fact-list dd{margin:2px 0 0;font-weight:700;font-variant-numeric:tabular-nums}.fact-list.compact{grid-template-columns:1fr}.fact-list.compact div{flex-direction:row;justify-content:space-between;padding-top:9px}.model-visual{height:92px;margin:14px 0;display:flex;align-items:center;justify-content:center;gap:22px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-radius:8px}.model-ring{width:68px;height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:7px solid var(--semas-primary-100);border-top-color:var(--semas-primary);border-radius:50%}.model-ring span{font-size:19px;font-weight:700;color:var(--semas-head)}.model-ring small{font-size:11px;color:var(--semas-ink-faint)}.model-lines{display:flex;align-items:flex-end;gap:5px;height:48px}.model-lines i{width:8px;background:var(--semas-primary-100);border-radius:4px 4px 0 0}.model-lines i:nth-child(1){height:19px}.model-lines i:nth-child(2){height:32px}.model-lines i:nth-child(3){height:25px;background:var(--semas-accent-300)}.model-lines i:nth-child(4){height:43px;background:var(--semas-primary)}.model-lines i:nth-child(5){height:36px}.session-panel{margin-top:16px}.text-button{background:transparent;color:var(--semas-primary-700);font-weight:700;cursor:pointer}.empty-state{margin-top:16px;padding:24px;text-align:center;color:var(--semas-ink-faint);background:var(--semas-surface-1);border:1px dashed var(--semas-line-strong);border-radius:8px}.session-list{margin-top:14px}.session-item{display:grid;grid-template-columns:100px 1fr auto auto;align-items:center;gap:16px;padding:11px 4px;border-top:1px solid var(--semas-line)}.session-item time{color:var(--semas-ink-faint);font-size:13px}.session-item strong{font-variant-numeric:tabular-nums}
.score-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.7fr);gap:16px;align-items:start}.result-column{position:sticky;top:104px}.result-placeholder{min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.result-placeholder p{max-width:270px}.placeholder-orbit{width:96px;height:96px;margin-bottom:22px;position:relative;border:1px solid var(--semas-primary-100);border-radius:50%}.placeholder-orbit:before,.placeholder-orbit:after{content:"";position:absolute;inset:14px;border:1px solid var(--semas-primary-050);border-radius:50%}.placeholder-orbit:after{inset:30px;background:var(--semas-primary-025);border:0}.placeholder-orbit i{position:absolute;top:7px;left:43px;width:9px;height:9px;background:var(--semas-accent);border-radius:50%}.result-column #score-result{display:flex;flex-direction:column;gap:14px}.result-main{display:flex;align-items:center;justify-content:space-between;margin:18px 0 8px}.result-main>strong{font:700 42px/1 var(--semas-font-head);color:var(--semas-head);font-variant-numeric:tabular-nums}.asof{font-size:12px;color:var(--semas-ink-faint)}.pd-track{height:7px;background:var(--semas-primary-025);border-radius:7px;overflow:hidden}.pd-track span{display:block;width:0;height:100%;background:var(--semas-accent);border-radius:7px;transition:width .35s}.factor-list{display:flex;flex-direction:column;gap:14px;margin-top:18px}.factor-row{display:grid;grid-template-columns:1fr auto;gap:5px 12px}.factor-row strong{font-size:13px}.factor-row em{font-style:normal;font-size:13px}.factor-row em.up{color:var(--semas-prep)}.factor-row em.down{color:var(--semas-safe)}.factor-bar{grid-column:1/-1;height:6px;background:var(--semas-primary-025);border-radius:5px;overflow:hidden}.factor-bar i{display:block;height:100%;background:var(--semas-primary);border-radius:5px}.bias-note{grid-column:1/-1;padding:8px 10px;color:var(--semas-accent-text);background:var(--semas-accent-050);border-left:3px solid var(--semas-accent);font-size:13px}.limit-card{padding:18px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-left:4px solid var(--semas-watch);border-radius:var(--semas-radius-card)}.limit-card ul{margin:8px 0 0;padding-left:18px;color:var(--semas-ink-muted);font-size:13px}
.sample-picker{display:grid;grid-template-columns:1fr minmax(380px,.8fr);gap:28px;align-items:center;margin-bottom:12px}.sample-picker h3,.sample-picker p{margin-bottom:4px}.sample-controls>label{display:block;margin-bottom:5px;color:var(--semas-ink-muted);font-size:13px;font-weight:700}.sample-action{display:grid;grid-template-columns:auto 1fr auto;gap:8px}.sample-notices{margin:0 0 16px}.sample-notices .notice{font-size:13px}.company-overview{margin-bottom:16px}.summary-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:18px}.summary-columns section{padding:16px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-radius:8px}.summary-columns h4{margin-bottom:8px;font-size:15px}.summary-list{margin:0}.summary-list div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid var(--semas-line)}.summary-list div:first-child{border-top:0}.summary-list dt{color:var(--semas-ink-faint);font-size:13px}.summary-list dd{margin:0;text-align:right;font-size:13px;font-weight:700;overflow-wrap:anywhere}.factor-evidence{grid-column:1/-1;color:var(--semas-ink-muted);font-size:13px}.evidence-panel{padding-bottom:18px}.evidence-layers{display:grid;gap:10px;margin-top:16px}.evidence-layer{padding:13px 14px;border:1px solid var(--semas-line);border-left:4px solid var(--semas-line-strong);border-radius:8px;background:var(--semas-surface-1)}.evidence-layer.ai-layer{border-left-color:var(--semas-accent)}.evidence-layer.outcome-layer{border-left-color:var(--semas-primary)}.evidence-layer.event-observed{border-left-color:var(--semas-prep)}.evidence-layer>strong{display:block;margin-top:8px;color:var(--semas-head)}.evidence-layer p{margin:2px 0 0;font-size:13px}.evidence-badge.outcome{color:var(--semas-primary-700);background:var(--semas-primary-025);border:1px solid var(--semas-primary-100)}.delinquency-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:12px 0 0}.delinquency-counts div{padding:8px;text-align:center;background:var(--semas-surface);border:1px solid var(--semas-line);border-radius:6px}.delinquency-counts dt{color:var(--semas-ink-faint);font-size:11px}.delinquency-counts dd{margin:2px 0 0;color:var(--semas-head);font-size:13px;font-weight:700}.prior-loans-block{margin-top:16px;padding-top:14px;border-top:1px solid var(--semas-line)}.prior-loans-block h4{margin:0;font-size:15px}.prior-loans-block .table-wrap{margin-top:10px}.policy-validation{margin-bottom:16px}.policy-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.policy-metrics>div{padding:16px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-radius:8px}.policy-metrics span,.policy-metrics small{display:block;color:var(--semas-ink-muted);font-size:13px}.policy-metrics strong{display:block;margin:6px 0;color:var(--semas-head);font:700 27px/1.2 var(--semas-font-head)}.policy-validation-note{margin:12px 0 0;color:var(--semas-ink-muted);font-size:13px}
.validation-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:16px}.table-wrap{overflow-x:auto;margin-top:17px}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:13px 10px;border-bottom:1px solid var(--semas-line);text-align:right}th:first-child,td:first-child{text-align:left}th{color:var(--semas-ink-faint);background:var(--semas-primary-025);font-size:13px}td{font-size:13px}.decision-panel>p{margin:12px 0 20px}.decision-path{display:grid;grid-template-columns:1fr 24px 1fr;align-items:center;margin-bottom:24px}.decision-path>div{padding:13px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-radius:8px;display:flex;flex-direction:column}.decision-path>div.done{border-color:var(--semas-primary-100);background:var(--semas-primary-025)}.decision-path span,.decision-path small{font-size:12px;color:var(--semas-ink-faint)}.decision-path i{height:1px;background:var(--semas-line-strong)}.decision-panel h4{font-size:15px;margin-bottom:8px}.plain-list{margin:0;padding-left:18px;color:var(--semas-ink-muted);font-size:13px}
.input-help{display:block;margin-top:3px;color:var(--semas-ink-faint);font-weight:400}
@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,1fr)}.overview-grid,.validation-grid,.score-layout,.sample-picker{grid-template-columns:1fr}.summary-columns{grid-template-columns:1fr}.result-column{position:static}.fact-list{grid-template-columns:1fr}.fact-list div{flex-direction:row;justify-content:space-between}}
@media(max-width:700px){:root{--sidebar-w:0px}.sidebar{position:static;width:auto;height:auto;padding:14px}.sidebar-brand{border:0;padding-bottom:12px}.sidebar nav{padding:0;display:grid;grid-template-columns:repeat(3,1fr)}.nav-item{justify-content:center;padding:0 6px}.nav-icon{display:none}.sidebar-foot{display:none}.workspace{margin:0}.topbar{height:auto;padding:13px 16px}.topbar .eyebrow,.top-actions .connection-badge{display:none}.workspace main{padding:20px 14px}.intro-row{flex-direction:column;gap:10px}.metric-grid{grid-template-columns:1fr 1fr}.metric-card{min-height:125px;padding:16px}.button.large{width:100%}.session-item{grid-template-columns:1fr auto}.session-item time,.session-item span{display:none}.auth-card{padding:28px 22px}.token-row,.sample-action{grid-template-columns:1fr;display:grid}.top-actions .button{padding:0 10px}.delinquency-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.policy-metrics{grid-template-columns:1fr}}
@media(max-width:420px){.metric-grid{grid-template-columns:1fr}.sidebar nav{grid-template-columns:1fr}.nav-item{height:40px}.topbar h1{font-size:20px}.evidence-badge{white-space:normal}.result-main{align-items:flex-start;flex-direction:column;gap:12px}}
.sample-error{margin:0 0 10px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* 장식용 왼쪽 색상 띠를 쓰지 않는다. 상태와 근거는 배지·문구·전체 테두리로 구분한다. */
.scope-note,.bias-note{border-left:0}
.notice{border-left-width:1px;border-left-color:var(--semas-line)}
.notice.warning{border-left-color:var(--semas-line)}
.accent-edge{border-left-width:1px;border-left-color:var(--semas-card-border)}
.limit-card{border-left-width:1px;border-left-color:var(--semas-line)}
.evidence-layer,.evidence-layer.ai-layer,.evidence-layer.outcome-layer,.evidence-layer.event-observed{border-left-width:1px;border-left-color:var(--semas-line)}

/* 화면에서도 결과 보고서가 주 콘텐츠이고 직접 입력은 접힌 보조 기능이다. */
.print-only{display:none}
.score-layout{grid-template-columns:minmax(0,1fr)}
.result-column{position:static;grid-row:1}
.result-column #score-result{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.result-explain{margin:16px 0;color:var(--semas-ink);font-size:14px;line-height:1.75}
.result-explain p{margin:0}
.result-explain .drivers-title{margin-top:12px;color:var(--semas-head);font-weight:700}
.drivers-list{margin:6px 0 0;padding-left:18px}
.drivers-list li{margin:3px 0}
.pd-scale{display:flex;justify-content:space-between;margin-top:4px;color:var(--semas-ink-faint);font-size:11px;font-variant-numeric:tabular-nums}
.pd-track{position:relative;overflow:visible;margin-top:16px}
.pd-legend+.result-explain{margin-top:14px}
.pd-track i{position:absolute;top:-4px;width:2px;height:15px;margin-left:-1px;background:var(--semas-head);border-radius:1px}
.pd-legend{margin:7px 0 0;color:var(--semas-ink-faint);font-size:12px}
.report-summary{grid-column:1}
.factor-panel{grid-column:2;grid-row:1 / span 2}
.profile-panel,.evidence-panel,.limit-card{grid-column:1/-1}
.result-actions{display:flex;align-items:center;gap:8px}
.report-print-button{min-height:34px;padding:0 11px;font-size:13px}
.risk-alert{margin:14px 0;padding:13px 14px;background:var(--semas-prep-bg);border:1px solid var(--semas-prep);border-radius:7px}
.risk-alert strong{display:block;color:var(--semas-prep);font-size:15px}
.risk-alert p{margin:3px 0 7px;color:var(--semas-ink);font-size:13px}
.risk-alert .text-button{color:var(--semas-prep);text-decoration:underline;text-underline-offset:3px}
.risk-case .report-summary{border-color:var(--semas-prep)}
.risk-case .pd-track span{background:var(--semas-prep)}
.risk-case .factor-row.risk-factor strong{color:var(--semas-prep)}
.factor-panel:focus{outline:3px solid var(--semas-primary-100);outline-offset:2px}
.profile-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(320px,1.1fr);gap:22px;align-items:center;margin-top:12px}
.profile-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.profile-controls label{color:var(--semas-ink-faint);font-size:12px;font-weight:700}
.profile-controls select{width:auto;min-width:150px;height:34px;padding:0 28px 0 10px;font-size:13px;font-weight:700}
.radar-figure{margin:0}
.radar-figure svg{display:block;width:100%;max-height:280px;overflow:visible}
.radar-grid{fill:none;stroke:var(--semas-line);stroke-width:1}
.radar-axis{stroke:var(--semas-line-strong);stroke-width:1}
.radar-label{fill:var(--semas-ink-muted);font-size:13px;font-weight:700}
.radar-average{fill:none;stroke:var(--semas-ink-faint);stroke-width:2;stroke-dasharray:5 4}
.radar-company{fill:var(--semas-primary-050);fill-opacity:.35;stroke:var(--semas-primary);stroke-width:2.5}
.radar-company-point{fill:var(--semas-primary);stroke:var(--semas-surface);stroke-width:1.5}
.radar-figure figcaption{display:flex;justify-content:center;gap:18px;margin-top:-4px;color:var(--semas-ink-muted);font-size:13px}
.radar-figure figcaption span{display:flex;align-items:center;gap:6px}
.radar-figure figcaption i{display:inline-block;width:18px;height:3px}
.company-swatch{background:var(--semas-primary)}
.average-swatch{height:0!important;border-top:2px dashed var(--semas-ink-faint)}
.profile-values{margin:0}
.profile-values div{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:7px 0;border-top:1px solid var(--semas-line)}
.profile-values div:first-child{border-top:0}
.profile-values dt{color:var(--semas-ink-faint);font-size:13px}
.profile-values dd{margin:0;font-size:13px;font-weight:700}
.profile-note{margin:10px 0 0;color:var(--semas-ink-muted);font-size:12px;line-height:1.45}
.profile-unavailable{margin:14px 0 0;padding:12px 14px;color:var(--semas-watch);background:var(--semas-watch-bg);border:1px solid var(--semas-watch-edge);border-radius:var(--semas-radius);font-size:13px;font-weight:700}

@media(max-width:760px){.profile-layout{grid-template-columns:1fr}.profile-values div{grid-template-columns:80px 1fr}}

@page{size:A4 portrait;margin:8mm}
@media print{
  html,body{width:210mm;min-height:297mm;background:var(--semas-surface);font-size:9.5pt;line-height:1.4}
  body{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sidebar,.topbar,#auth-view,#view-overview,#view-validation,#view-score>.intro-row,.sample-picker,.sample-error,.sample-notices,.result-placeholder,.report-print-button,#show-risk-details,.profile-controls label,.profile-controls select{display:none!important}
  #app,.workspace,#view-score,.company-overview,#score-result{display:block!important}
  .workspace{margin:0;min-width:0}
  .workspace main{max-width:none;margin:0;padding:0}
  .view{display:none!important}
  #view-score{display:block!important}
  .print-only{display:flex!important}
  .report-print-header{align-items:flex-end;justify-content:space-between;margin-bottom:4mm;padding-bottom:3mm;border-bottom:1px solid var(--semas-primary-100)}
  .report-print-header p{margin:0 0 1mm;color:var(--semas-primary-700);font-size:8.5pt;font-weight:700}
  .report-print-header h1{margin:0;font-size:17pt}
  .report-print-header dl{display:grid;gap:1mm;margin:0;text-align:right}
  .report-print-header dl div{display:flex;justify-content:flex-end;gap:3mm}
  .report-print-header dt{color:var(--semas-ink-faint);font-size:7.5pt}
  .report-print-header dd{margin:0;font-size:8pt;font-weight:700}
  .panel,.limit-card{box-shadow:none;border-color:var(--semas-line-strong);border-radius:3px;break-inside:avoid;page-break-inside:avoid}
  .company-overview{margin:0 0 3mm;padding:4mm}
  .company-overview .panel-head{margin-bottom:2mm}
  .company-overview .panel-head h3{font-size:12pt}
  .summary-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:3mm;margin-top:3mm}
  .summary-columns section{padding:2.5mm;border-radius:3px}
  .summary-columns h4{margin-bottom:1mm;font-size:9pt}
  .summary-list div{gap:2mm;padding:1.1mm 0}
  .summary-list dt{font-size:7.3pt}
  .summary-list dd{font-size:7.7pt}
  .score-layout{display:block}
  .result-column #score-result{display:grid!important;grid-template-columns:1fr 1fr;gap:3mm;align-items:start}
  .report-summary{grid-column:1;padding:4mm}
  .result-main{margin:3mm 0 2mm}
  .result-main>strong{font-size:27pt}
  .large-copy{margin:2mm 0;font-size:9pt;line-height:1.45}
  .factor-panel{grid-column:2;grid-row:1 / span 2;padding:4mm}
  .factor-panel .panel-head h3{font-size:11pt}
  .factor-list{gap:2mm;margin-top:3mm}
  .factor-row{gap:.8mm 2mm}
  .factor-row strong{font-size:8pt}
  .factor-row em,.factor-evidence{font-size:7.3pt}
  .factor-bar{height:1.2mm}
  .bias-note{padding:1.5mm 2mm;font-size:6.8pt;line-height:1.35}
  .risk-alert{margin:2mm 0;padding:2mm;border-radius:2px}
  .risk-alert strong{font-size:8pt}
  .risk-alert p{margin:.5mm 0;font-size:6.8pt}
  .profile-panel{grid-column:1/-1;padding:3mm}
  .profile-panel .panel-head{margin-bottom:0}
  .profile-panel .panel-head h3{font-size:10pt}
  .profile-layout{grid-template-columns:38% 1fr;gap:3mm;margin-top:1mm}
  .radar-figure svg{height:31mm;max-height:31mm}
  .radar-label{font-size:8px}
  .radar-figure figcaption{gap:3mm;margin-top:-1mm;font-size:6.5pt}
  .profile-values div{grid-template-columns:20mm 1fr;gap:2mm;padding:.65mm 0}
  .profile-values dt,.profile-values dd{font-size:6.6pt}
  .profile-note{margin:1mm 0 0;font-size:6.2pt;line-height:1.25}
  .profile-unavailable{margin:2mm 0 0;padding:2mm;font-size:7pt}
  .evidence-panel{grid-column:1/-1;padding:3.5mm}
  .evidence-panel .panel-head h3{font-size:10pt}
  .evidence-layers{grid-template-columns:repeat(2,minmax(0,1fr));gap:2mm;margin-top:2mm}
  .evidence-layer{padding:2mm}
  .evidence-layer>strong{margin-top:1.5mm;font-size:7.8pt}
  .evidence-layer p{font-size:6.8pt;line-height:1.35}
  .evidence-badge{min-height:0;padding:1mm 2mm;font-size:6.8pt}
  .prior-loans-block{margin-top:2mm;padding-top:2mm}
  .prior-loans-block h4{font-size:8pt}
  .prior-loans-block .table-wrap{margin-top:1mm}
  .prior-loans-table th,.prior-loans-table td{padding:1mm 1.5mm;font-size:6.8pt}
  .delinquency-counts{gap:1mm;margin-top:1.5mm}
  .delinquency-counts div{padding:1mm}
  .delinquency-counts dt{font-size:5.8pt}
  .delinquency-counts dd{font-size:6.8pt}
  .limit-card{grid-column:1/-1;padding:2.5mm 3mm}
  .limit-card strong{font-size:8pt}
  .limit-card ul{columns:2;column-gap:6mm;margin:1mm 0 0;font-size:6.7pt;line-height:1.35}
  .limit-card li{break-inside:avoid;margin-bottom:.5mm}
  .panel-kicker{font-size:7pt}
  .asof{font-size:6.8pt}
}

.result-rank{margin:-8px 0 16px;color:var(--semas-ink-muted);font-size:13px;font-weight:700}

/* SEM-79 소상공인시장진흥공단 로고 */
.org-logo{display:block;height:30px;width:auto;margin-bottom:22px}
.org-logo.small{height:21px;margin:0}
.sidebar-brand{flex-direction:column;align-items:flex-start;gap:11px}

/* SEM-79 검토 대기열 — 위험/일반 두 대기열의 실측 사고율을 나란히 견준다. */
.queue-panel{margin-bottom:16px}
.track-list{display:flex;flex-direction:column;gap:12px;margin-top:18px}
.track-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 200px;align-items:center;gap:18px;padding:14px 16px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-radius:8px}
.track-head{display:flex;flex-direction:column;gap:3px}
.track-head strong{color:var(--semas-head);font-size:15px}
.track-head span{color:var(--semas-ink-faint);font-size:13px;font-variant-numeric:tabular-nums}
.track-bar{height:14px;background:var(--semas-surface);border:1px solid var(--semas-line);border-radius:7px;overflow:hidden}
.track-bar i{display:block;height:100%;border-radius:7px}
.track-row.high .track-bar i{background:var(--semas-prep)}
.track-row.normal .track-bar i{background:var(--semas-primary-300)}
.track-value{text-align:right}
.track-value strong{display:block;color:var(--semas-head);font:700 21px/1.2 var(--semas-font-head);font-variant-numeric:tabular-nums}
.track-value small{display:block;margin-top:3px;color:var(--semas-ink-faint);font-size:12px}
.queue-callout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.queue-callout>div{padding:14px 16px;background:var(--semas-surface);border:1px solid var(--semas-card-border);border-radius:8px}
.queue-callout span{display:block;color:var(--semas-ink-muted);font-size:13px}
.queue-callout strong{display:block;margin:5px 0 2px;color:var(--semas-head);font:700 24px/1.2 var(--semas-font-head);font-variant-numeric:tabular-nums}
.queue-callout small{color:var(--semas-ink-faint);font-size:12px}

/* SEM-79 구간별 성능 — 막대 옆 눈금이 "아무 정보 없이 찍었을 때"의 값이다. */
.window-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.window-card{padding:13px 14px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-radius:8px}
.window-card h4{margin:0 0 8px;color:var(--semas-head);font-size:13px;font-variant-numeric:tabular-nums}
.gauge-row{display:grid;grid-template-columns:60px 44px minmax(0,1fr);align-items:center;gap:8px;margin-top:7px}
.gauge-row>span{color:var(--semas-ink-faint);font-size:12px}
.gauge-row>strong{color:var(--semas-ink);font-size:13px;font-variant-numeric:tabular-nums}
.gauge{position:relative;height:8px;background:var(--semas-surface);border:1px solid var(--semas-line);border-radius:5px}
.gauge i{display:block;height:100%;background:var(--semas-primary);border-radius:5px}
.gauge b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--semas-accent)}
.window-legend{grid-column:1/-1;margin:4px 0 0;color:var(--semas-ink-faint);font-size:12px;line-height:1.55}
.window-note{margin:14px 0 0;color:var(--semas-ink-muted);font-size:13px;line-height:1.6}
.window-note .text-button{font-size:13px;text-decoration:underline;text-underline-offset:3px}
.overview-grid{align-items:start}

@media(max-width:1000px){
  .track-row{grid-template-columns:1fr;gap:9px}
  .track-value{text-align:left}
  .window-strip,.queue-callout{grid-template-columns:1fr}
}
@media(max-width:700px){
  .sidebar-brand{flex-direction:row;align-items:center}
  .org-logo{height:24px}
}

@media print{
  .report-print-header .print-logo{height:7mm;margin:0 0 2mm}
}

/* SEM-79 검토 대기열 워크리스트 — 담당자가 위에서부터 처리하는 목록이다. */
.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}
.section-title{margin:26px 0 12px;color:var(--semas-ink-muted);font-size:15px}
.worklist-panel{margin-bottom:8px}
.filter-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}
.filter-row label{display:flex;flex-direction:column;gap:4px;color:var(--semas-ink-faint);font-size:13px;font-weight:700}
.filter-row select{width:auto;min-width:180px;height:38px;padding:0 30px 0 10px;font-size:13px}
.filter-row .button{height:38px;min-height:38px}
.decision-tally{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap}
.tally-total{color:var(--semas-ink-muted);font-size:13px;font-weight:700}
.queue-table-wrap{margin-top:14px}
.queue-table th{position:sticky;top:0;z-index:1}
.queue-table td{vertical-align:middle}
.queue-table tbody tr:hover{background:var(--semas-surface-1)}
.queue-table tbody tr.current{background:var(--semas-primary-025)}
.queue-table tbody tr.decided td{color:var(--semas-ink-faint)}
.queue-rank{width:52px;color:var(--semas-ink-faint);font-size:13px;font-variant-numeric:tabular-nums}
.queue-table td strong{display:block;color:var(--semas-head);font-size:13px}
.queue-table td small{display:block;margin-top:2px;color:var(--semas-ink-faint);font-size:12px}
.queue-pd{color:var(--semas-prep);font-weight:700;font-variant-numeric:tabular-nums}
.queue-open{min-height:32px;padding:0 12px;font-size:13px}
.queue-empty{padding:30px 10px;text-align:center;color:var(--semas-ink-faint)}
.worklist-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.worklist-progress{color:var(--semas-ink-faint);font-size:13px;font-variant-numeric:tabular-nums}
.worklist-notices{margin:14px 0 0}
.worklist-notices .notice{font-size:13px;padding:10px 13px}

.decision-pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:20px;font-size:13px;font-weight:700;white-space:nowrap}
.decision-pill.none{color:var(--semas-ink-faint);background:var(--semas-surface-sunken);border:1px solid var(--semas-line)}
.decision-pill.risk{color:var(--semas-prep);background:var(--semas-prep-bg);border:1px solid var(--semas-prep-edge)}
.decision-pill.watch{color:var(--semas-watch);background:var(--semas-watch-bg);border:1px solid var(--semas-watch-edge)}
.decision-pill.safe{color:var(--semas-safe);background:var(--semas-safe-bg);border:1px solid var(--semas-safe-edge)}

/* SEM-79 담당자 판정 — 모델 결과가 아니라 사람이 남기는 기록이다. */
.decision-card{grid-column:1/-1}
.decision-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--semas-line)}
.decision-choice{padding:13px 10px;text-align:left;background:var(--semas-surface);border:1px solid var(--semas-line-strong);border-radius:8px;cursor:pointer}
.decision-choice strong{display:block;color:var(--semas-head);font-size:15px}
.decision-choice small{display:block;margin-top:3px;color:var(--semas-ink-faint);font-size:12px;line-height:1.4}
.decision-choice:hover:not(:disabled){border-color:var(--semas-primary);background:var(--semas-primary-025)}
.decision-choice:disabled{opacity:.5;cursor:not-allowed}
.decision-choice.chosen.risk{border-color:var(--semas-prep);background:var(--semas-prep-bg)}
.decision-choice.chosen.watch{border-color:var(--semas-watch);background:var(--semas-watch-bg)}
.decision-choice.chosen.safe{border-color:var(--semas-safe);background:var(--semas-safe-bg)}
.decision-note{margin:12px 0 0;color:var(--semas-ink-faint);font-size:12px;line-height:1.5}
.picker-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.picker-filters label{display:flex;flex-direction:column;gap:4px;color:var(--semas-ink-muted);font-size:13px;font-weight:700}
.picker-filters select{height:38px;padding:0 28px 0 10px;font-size:13px}
.factor-panel{grid-row:1 / span 2}

@media(max-width:1000px){
  .decision-choices{grid-template-columns:1fr}
  .filter-row select{min-width:0;flex:1}
  .decision-tally{margin-left:0;width:100%}
}

@media print{
  .worklist-panel,.section-title,.picker-filters{display:none!important}
}
.worklist-window-note{margin:5px 0 0;color:var(--semas-ink-muted);font-size:13px}
.worklist-window-note b{color:var(--semas-head)}
.evidence-layer.pending-outcome{border-color:var(--semas-watch-edge);background:var(--semas-watch-bg)}

/* SEM-79 검토 기간 — 어느 구간을 보고 있는지가 이 화면의 첫 정보다. */
.period-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:16px;padding:18px 22px;background:var(--semas-primary-025);border:1px solid var(--semas-primary-100);border-radius:var(--semas-radius-card)}
.period-main{display:flex;flex-direction:column;gap:2px}
.period-label{color:var(--semas-primary-700);font-size:13px;font-weight:700}
.period-main strong{color:var(--semas-head);font:700 24px/1.25 var(--semas-font-head);font-variant-numeric:tabular-nums}
.period-main small{color:var(--semas-ink-muted);font-size:13px}
.period-facts{display:flex;gap:28px;margin:0;flex-wrap:wrap}
.period-facts div{display:flex;flex-direction:column;gap:3px}
.period-facts dt{color:var(--semas-ink-faint);font-size:12px}
.period-facts dd{margin:0;color:var(--semas-head);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.review-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.review-kpis .metric-card{min-height:0;padding:16px}
.review-kpis .metric-value{font-size:26px}
.review-kpis .metric-label{font-size:12px}
.review-kpis .metric-caption{font-size:12px;line-height:1.45}

@media(max-width:700px){
  .period-banner{flex-direction:column;align-items:flex-start;gap:14px}
  .period-facts{gap:18px}
}
.notice-card strong{display:block;margin-bottom:7px;color:var(--semas-head);font-size:13px}
.notice-card ul{margin:0;padding-left:17px;display:flex;flex-direction:column;gap:5px}
.notice-card li{font-size:13px;line-height:1.6}
.worklist-notices .notice-card li,.sample-notices .notice-card li{font-size:13px}

/* SEM-79 검토 대기 / 검토 완료 탭 */
.worklist-tabs{display:flex;gap:4px;margin-top:18px;border-bottom:1px solid var(--semas-line)}
.worklist-tab{padding:9px 15px;background:transparent;color:var(--semas-ink-faint);border:0;border-bottom:2px solid transparent;border-radius:6px 6px 0 0;font-size:13px;font-weight:700;cursor:pointer}
.worklist-tab:hover{color:var(--semas-ink);background:var(--semas-surface-1)}
.worklist-tab.active{color:var(--semas-primary-700);border-bottom-color:var(--semas-primary)}
.worklist-tab span{margin-left:5px;padding:1px 7px;background:var(--semas-primary-025);border-radius:20px;font-size:12px;font-variant-numeric:tabular-nums}
.worklist-tab.active span{background:var(--semas-primary-050)}
.queue-table td small{display:block;margin-top:3px;color:var(--semas-ink-faint);font-size:12px}
.worklist-foot .button{min-height:34px;padding:0 14px;font-size:13px}
.worklist-foot .button:disabled{opacity:.4;cursor:not-allowed}

/* SEM-79 기업 식별 정보와 이전 대출 이력 — 담당자 검토용으로만 낸다. */
.company-identity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 0;padding:14px 16px;background:var(--semas-primary-025);border:1px solid var(--semas-primary-100);border-radius:8px}
.company-identity div{display:flex;flex-direction:column;gap:2px}
.company-identity dt{color:var(--semas-ink-faint);font-size:12px}
.company-identity dd{margin:0;color:var(--semas-head);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.prior-loans-table td{font-size:13px}
.prior-loans-table tr.prior-accident td{color:var(--semas-prep)}

/* SEM-79 판정 카드 — 예측·상환 경과·비교를 한 화면에 놓고 결정한다. */
.decision-evidence{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:18px;margin-top:16px;align-items:start}
.decision-evidence .evidence-layers{margin-top:0}
.profile-block{padding:16px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-radius:8px}
.profile-block .panel-head h3{font-size:15px}
.profile-block .profile-layout{margin-top:6px}
.decision-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px}
.decision-foot .decision-note{margin:0}
#next-case{white-space:nowrap}

@media(max-width:1100px){
  .decision-evidence{grid-template-columns:1fr}
  .company-identity{grid-template-columns:repeat(2,minmax(0,1fr))}
  .decision-foot{flex-direction:column;align-items:stretch}
}
/* 판정 카드 안에서는 폭이 좁다. 레이더와 수치를 위아래로 놓아 넘치지 않게 한다. */
.profile-block .profile-layout{grid-template-columns:minmax(0,1fr);gap:10px}
.profile-block .radar-figure svg{max-height:230px}
.profile-block .profile-values div{grid-template-columns:96px 1fr}

/* SEM-81 사고 유형 전망 — 확률이 아니라 기준 집단에서의 자리다. */
.cause-layer strong{color:var(--semas-head)}
.cause-layer.balanced strong{color:var(--semas-ink-muted)}
.cause-bars{display:flex;flex-direction:column;gap:7px;margin:10px 0 0}
.cause-bar{display:grid;grid-template-columns:74px minmax(0,1fr) 62px;align-items:center;gap:9px}
.cause-bar>span{color:var(--semas-ink-faint);font-size:12px}
.cause-bar>i{height:9px;background:var(--semas-surface);border:1px solid var(--semas-line);border-radius:6px;overflow:hidden}
.cause-bar>i>b{display:block;width:0;height:100%;background:var(--semas-primary);border-radius:6px}
.cause-bar>em{font-style:normal;font-size:12px;font-weight:700;color:var(--semas-head);text-align:right;font-variant-numeric:tabular-nums}
.cause-layer p{margin-top:9px;color:var(--semas-ink-faint);font-size:12px;line-height:1.5}

/* SEM-81 결과 화면의 두 열을 같은 높이로 맞춘다.
   판정 카드가 전폭으로 내려간 뒤 col1 아래가 빈 칸으로 남아, 왼쪽 카드만 짧아 보였다. */
.result-column #score-result{align-items:stretch}
.factor-panel{grid-row:1}
.decision-evidence{align-items:stretch}
.decision-evidence .evidence-layers{height:100%}
/* 남는 높이를 세 근거 블록이 나눠 갖는다 — 한 블록만 늘리면 그 블록이 강조돼 보인다. */
.decision-evidence .evidence-layer{flex:1 1 auto}
/* 늘어난 높이를 아래 빈칸으로 두지 않는다 — 위험 안내 카드를 카드 바닥에 붙인다(SEM-91). */
.report-summary{display:flex;flex-direction:column}
.report-summary .risk-alert{margin-top:auto}
/* 위험 건에서 어디를 볼지 가리킨다. 화살표는 방향 표시라 읽어 줄 필요가 없다. */
.risk-checklist{margin:7px 0 0;padding-left:19px;display:flex;flex-direction:column;gap:4px}
.risk-checklist li{color:var(--semas-ink);font-size:13px;font-weight:700}
.risk-arrow{margin-left:6px;color:var(--semas-prep);font-weight:700}
/* 선택창 좌우 화살표 — 고르는 순간 바로 열리므로 실행 버튼은 두지 않는다. */
.case-step{min-width:44px;padding:0;font-size:15px;line-height:1}
.case-step:disabled{opacity:.35;cursor:not-allowed}
#case-status{margin-top:6px;font-variant-numeric:tabular-nums}
@media(max-width:700px){.sample-action{grid-template-columns:auto 1fr auto!important}}
/* SEM-83 대기열 구분 — 위험은 예측, 추적은 관측이라 성격이 다르다. */
.queue-group{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}
.queue-group.risk{color:var(--semas-prep);background:var(--semas-prep-bg);border:1px solid var(--semas-prep-edge)}
.queue-group.watch{color:var(--semas-watch);background:var(--semas-watch-bg);border:1px solid var(--semas-watch-edge)}

/* SEM-84 추적 대기열 효과 — 두 화면이 같은 수치를 쓴다. */
.watch-effect{margin-bottom:16px}
.watch-effect-grid{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);align-items:center;gap:14px;margin-top:18px}
.watch-effect-grid>div{padding:16px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-radius:8px}
.watch-effect-grid>div.highlight{background:var(--semas-primary-025);border-color:var(--semas-primary-100)}
.watch-effect-grid span{display:block;color:var(--semas-ink-muted);font-size:13px}
.watch-effect-grid strong{display:block;margin:6px 0 2px;color:var(--semas-head);font:700 30px/1.15 var(--semas-font-head);font-variant-numeric:tabular-nums}
.watch-effect-grid small{color:var(--semas-ink-faint);font-size:12px}
.watch-effect-grid>i{font-style:normal;text-align:center;color:var(--semas-primary);font-size:20px;font-weight:700}
.watch-limitation{margin-top:6px;color:var(--semas-watch)}
@media(max-width:700px){.watch-effect-grid{grid-template-columns:1fr}.watch-effect-grid>i{transform:rotate(90deg)}}
/* SEM-85 추적 건 — 위험(붉은색)과 색을 나눈다. 온 이유가 다르다. */
.priority-pill.watch{color:var(--semas-watch);background:var(--semas-watch-bg);border:1px solid var(--semas-watch-edge)}
.watch-case .report-summary{border-color:var(--semas-watch-edge)}
.watch-case .pd-track span{background:var(--semas-watch)}
.risk-alert.watch-alert{background:var(--semas-watch-bg);border-color:var(--semas-watch-edge)}
.risk-alert.watch-alert strong{color:var(--semas-watch)}
.risk-alert.watch-alert .risk-arrow{color:var(--semas-watch)}
@media(max-width:1200px){.review-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.review-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.track-head small{display:block;margin-top:2px;color:var(--semas-ink-faint);font-size:11px}
.track-row.watch .track-bar i{background:var(--semas-watch)}

/* SEM-87 연체 기록 — 0회는 눌러 두고 기록이 있으면 구간 깊이에 따라 세운다. */
.delinquency-counts .late-none dd{color:var(--semas-ink-faint);font-weight:400}
.delinquency-counts .late-mild{background:var(--semas-watch-bg);border-color:var(--semas-watch-edge)}
.delinquency-counts .late-mild dt{color:var(--semas-watch)}
.delinquency-counts .late-mild dd{color:var(--semas-watch)}
.delinquency-counts .late-severe{background:var(--semas-prep-bg);border-color:var(--semas-prep)}
.delinquency-counts .late-severe dt{color:var(--semas-prep)}
.delinquency-counts .late-severe dd{color:var(--semas-prep);font-size:15px}
/* 뒤따르는 패널과 간격이 없어 붙어 보였다. 다른 패널과 같은 여백을 준다. */
.window-panel{margin-bottom:16px}
.topbar h1{font-size:19px}
.topbar-note{margin:2px 0 0;color:var(--semas-ink-faint);font-size:12px}
@media(max-width:700px){.topbar-note{display:none}}
/* SEM-86 선택 카드의 작은 건수 — 어느 군에 몇 건이 있는지만 짚는다. */
.picker-kpis{display:flex;gap:10px;margin:14px 0 10px}
.picker-kpis>div{flex:1;padding:11px 13px;background:var(--semas-surface-1);border:1px solid var(--semas-line);border-radius:8px}
.picker-kpis span{display:block;color:var(--semas-ink-muted);font-size:12px}
.picker-kpis strong{display:block;margin-top:3px;color:var(--semas-head);font:700 21px/1.15 var(--semas-font-head);font-variant-numeric:tabular-nums}
.picker-kpis>div:first-child strong{color:var(--semas-prep)}
.picker-kpis>div:last-child strong{color:var(--semas-watch)}
/* SEM-86 모델 정보의 두 카드는 나란한 무게다 — 1.35:0.65를 반씩으로 고친다. */
#view-validation .validation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
/* 카드 제목의 단서 — 값이 무엇을 뺀 숫자인지 제목이 말해야 부제가 짧아진다. */
.metric-label em{font-style:normal;color:var(--semas-ink-faint);font-weight:400}

/* SEM-88 사이드바: 담당자가 업무에 쓰는 01·02만 번호를 달고, 모델 정보는 선 아래 번호 없이 둔다. */
.nav-divider{width:auto;height:0;margin:10px 8px;border:0;border-top:1px solid var(--semas-line)}
/* SEM-92 모델 정보도 동그라미를 갖는다 — 번호 대신 정보(i) 아이콘. 메뉴로 읽히게 한다. */
.nav-icon-glyph svg{display:block}
@media(max-width:700px){.nav-divider{display:none}}

/* SEM-93 인쇄(PDF): 위험 안내는 문구 한 줄만. 판정 카드는 함께 낸다 — 버튼과 보관 안내만 뺀다. */
@media print{
  .risk-alert{margin:2mm 0 0;padding:0;background:transparent;border:0}
  .risk-alert p,.risk-alert .risk-checklist{display:none!important}
  .decision-card{display:block!important}
  .decision-choices,.decision-note,#next-case{display:none!important}
}

/* SEM-94 검토 대상 카드: 제목 → 기간 안내 → 필터와 건 선택 한 줄. 건수 카드는 없다(목록 화면이 말한다). */
.sample-picker{display:block}
.sample-picker .panel-kicker{display:block}
.sample-picker>.input-help{margin:4px 0 12px}
.picker-row{display:grid;grid-template-columns:minmax(130px,.55fr) minmax(140px,.8fr) minmax(150px,.9fr) minmax(300px,1.9fr);gap:10px;align-items:end}
.picker-row>label,.picker-field{display:flex;flex-direction:column;gap:4px;color:var(--semas-ink-muted);font-size:13px;font-weight:700}
.picker-row select{height:38px;padding:0 28px 0 10px;font-size:13px}
.picker-field .sample-action{display:grid;grid-template-columns:auto 1fr auto;gap:8px}
.picker-field .sample-action select{height:38px}
.picker-field .case-step{min-height:38px}
#case-status{margin-top:8px}
@media(max-width:1100px){.picker-row{grid-template-columns:repeat(3,minmax(0,1fr))}.picker-field{grid-column:1/-1}}
@media(max-width:700px){.picker-row{grid-template-columns:1fr}}

/* SEM-95 인쇄(PDF) 담당자 판정: 화면처럼 1열에 근거 세 장을 세로로, 2열에 레이더.
   A4 폭(≈794px)에서는 max-width:1000px 규칙이 인쇄에도 걸려 한 열이 되므로 여기서 되돌린다. */
@media print{
  .decision-evidence{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3mm;margin-top:2mm;align-items:start}
  .decision-evidence .evidence-layers{grid-template-columns:1fr;gap:2mm;height:auto}
  .profile-block{padding:2.5mm;border-radius:3px}
  .profile-block .panel-head h3{font-size:9pt}
  .profile-block .profile-layout{grid-template-columns:1fr;gap:2mm;margin-top:1mm}
  .profile-block .radar-figure svg{max-height:60mm}
}

/* SEM-97 레이더 옆 값은 표로. 마지막 열(평균 대비)이 읽기 기준. 방향 색만, 위험 색은 없다. */
.profile-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.profile-table th,.profile-table td{padding:7px 6px;border-bottom:1px solid var(--semas-line);font-size:13px;text-align:right;white-space:nowrap}
.profile-table th{color:var(--semas-ink-faint);background:transparent;font-weight:700}
.profile-table th:first-child,.profile-table td:first-child{text-align:left;color:var(--semas-ink-faint)}
.profile-table td:nth-child(2){font-weight:700;color:var(--semas-head)}
.profile-table td:nth-child(3){color:var(--semas-ink-muted)}
.profile-table .profile-relative{font-weight:700}
.profile-table .profile-relative.below,.profile-table .profile-relative.above{color:var(--semas-primary-700)}
.profile-table .profile-relative.near,.profile-table .profile-relative.none{color:var(--semas-ink-faint);font-weight:400}
@media print{
  .profile-table th,.profile-table td{padding:.7mm 1mm;font-size:6.6pt}
}

/* SEM-99 판정을 마친 건: 결과를 제목 자리에 크게. 검토 의견은 화면에서 입력, 인쇄에서는 글로. */
.decision-result{font:700 26px/1.2 var(--semas-font-head)}
.decision-result.risk{color:var(--semas-prep)}
.decision-result.watch{color:var(--semas-watch)}
.decision-result.safe{color:var(--semas-safe)}
.decision-opinion{display:flex;flex-direction:column;gap:6px;margin-top:14px;color:var(--semas-ink-muted);font-size:13px;font-weight:700}
.decision-opinion small{font-weight:400;color:var(--semas-ink-faint)}
.decision-opinion textarea{width:100%;min-height:58px;padding:9px 11px;border:1px solid var(--semas-line-strong);border-radius:8px;font:inherit;font-weight:400;color:var(--semas-ink);resize:vertical}
.decision-opinion-print{margin-top:2mm;padding-top:2mm;border-top:1px solid var(--semas-line)}
.decision-opinion-print p{margin:1mm 0 0;font-size:7.5pt;white-space:pre-wrap}
@media print{
  .decision-opinion{display:none!important}
  .decision-opinion-print{display:block!important}
  .decision-result{font-size:18pt}
}

/* SEM-100 검증 구간 타임라인과 학습·시험 기간 표. 예측 기간이 학습·검증 밖(OOT)임을 그림으로. */
.window-timeline{margin:18px 0 0}
.window-timeline svg{display:block;width:100%;height:auto;overflow:visible}
.window-timeline figcaption{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;color:var(--semas-ink-muted);font-size:11.5px}
.window-timeline figcaption i{display:inline-block;width:14px;height:9px;margin-right:6px;border-radius:2px;vertical-align:-1px}
.tl-train{fill:var(--semas-primary-100)}
.window-timeline figcaption i.tl-train{background:var(--semas-primary-100)}
.tl-wait{fill:var(--semas-line-strong)}
.window-timeline figcaption i.tl-wait{background:var(--semas-line-strong);height:5px}
.tl-test{fill:var(--semas-primary)}
.window-timeline figcaption i.tl-test{background:var(--semas-primary)}
.tl-predict{fill:var(--semas-prep)}
.window-timeline figcaption i.tl-predict{background:var(--semas-prep)}
.tl-grid{stroke:var(--semas-line);stroke-dasharray:3 3}
.tl-year{fill:var(--semas-ink-faint);font-size:9.5px;font-variant-numeric:tabular-nums}
.tl-row{fill:var(--semas-ink-muted);font-size:10.5px;font-weight:700}
.tl-row.current{fill:var(--semas-head)}
.tl-bar-text{fill:var(--semas-head);font-size:9.5px;font-variant-numeric:tabular-nums}
.window-table{width:100%;margin-top:6px;border-collapse:collapse;font-variant-numeric:tabular-nums}
.window-table th,.window-table td{padding:8px 8px;border-bottom:1px solid var(--semas-line);font-size:13px;text-align:right;white-space:nowrap}
.window-table thead th{color:var(--semas-ink-faint);background:var(--semas-primary-025);font-weight:700}
.window-table th:first-child,.window-table td:first-child{text-align:left}
.window-table tbody th{color:var(--semas-ink-muted);font-weight:700}
.window-table-current th,.window-table-current td{color:var(--semas-head);background:var(--semas-prep-bg)}
.window-timeline figcaption .tl-hint{flex-basis:100%;color:var(--semas-ink-faint)}
