@import url('./layout.css');
:root {
  color-scheme: dark;
  --bg:#0a1220; --side:#0c1627; --panel:#0f1b2e; --raised:#14223a;
  --reader:#141a23; --line:#24334b; --line-soft:#1b2a40; --text:#e8eef8;
  --muted:#9aacc5; --faint:#8396b1; --blue:#78adff; --primary:#2865d5;
  --mint:#71dcb5; --amber:#edc078; --red:#f29297; --white:#fff;
  --sans:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei','Noto Sans CJK SC',sans-serif;
  --mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;
  --xs:12px; --sm:14px; --body:14px; --lg:16px; --h2:18px; --h1:28px;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px;
  --radius:8px; --speed:180ms; --sidebar:224px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:400 var(--body)/1.75 var(--sans)}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer} button:disabled{cursor:not-allowed;opacity:.52}
button,a{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
input,select,textarea{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:8px 12px;min-height:40px;max-width:100%}
select{padding-right:28px} textarea{resize:vertical;width:100%;min-height:96px;line-height:1.75}
input[type=file]{width:100%;padding:12px}input[type=file]::file-selector-button{background:var(--raised);color:var(--text);border:1px solid var(--line);padding:8px 12px;border-radius:4px;margin-right:12px}
label{display:grid;gap:8px;color:var(--muted);font-size:var(--xs)}
a{color:var(--blue);text-underline-offset:4px}
h1,h2,h3,p{margin:0}h1{font-size:var(--h1);line-height:1.4;font-weight:600;letter-spacing:0}h2{font-size:var(--h2);line-height:1.4;font-weight:600}h3{font-size:var(--lg);line-height:1.5;font-weight:550}
svg.od-icon{--od-icon-size:18px;vertical-align:middle;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.mono,.number{font-family:var(--mono);font-variant-numeric:tabular-nums}.number{white-space:nowrap}
.muted{color:var(--muted)}.small{font-size:var(--xs)}.blue{color:var(--blue)}.good{color:var(--mint)}.warn{color:var(--amber)}.danger{color:var(--red)}
.kicker{color:var(--faint);font:500 11px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:6px;background:var(--raised);color:var(--text);font-size:var(--sm);font-weight:550;letter-spacing:.02em;text-decoration:none;white-space:nowrap;transition:background var(--speed)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--white)}.btn.ghost{background:transparent}.btn.danger-btn{color:var(--red)}
.text-btn{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--blue);padding:4px 0;min-height:32px;text-decoration:none;font-weight:550;white-space:nowrap}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted)}
@media(hover:hover){.btn:hover:not(:disabled){background:#1c304e;color:var(--white)}.btn.primary:hover:not(:disabled){background:#3474eb}.text-btn:hover{color:#a8caff}.nav-item:hover{background:var(--raised);color:var(--text)}.icon-btn:hover{color:var(--text);background:var(--raised)}.issue-row:hover{background:#161f2c}}
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100dvh;background:var(--side);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:28px 16px 16px;z-index:50}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 32px}.brand-mark{display:grid;place-content:center;width:36px;height:40px;color:var(--blue)}.brand-mark svg{width:34px;height:38px}.brand-title{font-size:17px;font-weight:600;line-height:1.5}.brand-sub{font:10px/1.8 var(--mono);color:var(--faint);letter-spacing:.12em}
.nav-label{padding:0 14px 12px;font-size:11px;letter-spacing:.08em;color:var(--faint)}.nav{display:grid;gap:8px}.nav-item{display:flex;align-items:center;gap:12px;text-align:left;min-height:44px;padding:10px 12px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font-weight:550;transition:background var(--speed)}
.nav-item.active{color:#a5c7ff;background:#172b49;border-color:#25446a}.nav-count{margin-left:auto;background:#294067;min-width:20px;height:20px;text-align:center;border-radius:4px;font:12px/20px var(--mono);color:#c8d9f6}
.side-bottom{margin-top:auto;padding:24px 8px 0}.side-status{border:1px solid var(--line);border-radius:6px;padding:12px;background:#0b1423;margin-bottom:16px}.side-status p{font-size:var(--xs);margin-top:4px;color:var(--muted)}.side-person{display:flex;gap:10px;align-items:center;padding-top:16px;border-top:1px solid var(--line)}.avatar{display:grid;place-content:center;width:32px;height:32px;background:#203857;color:#b8d0f2;border-radius:6px;font-weight:550;flex:none}.side-person .small{line-height:1.5}.demo-dot{display:inline-block;width:6px;height:6px;background:var(--amber);border-radius:50%;margin-right:6px;vertical-align:middle}
.workspace{min-width:0}.topbar{position:sticky;top:0;z-index:35;min-height:72px;background:var(--bg);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px 32px;gap:16px}.breadcrumb{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:var(--xs)}.breadcrumb strong{font-weight:500;color:var(--text)}.top-controls{display:flex;align-items:center;gap:16px}.top-controls label{display:flex;align-items:center;gap:8px;white-space:nowrap}.top-controls select{min-height:36px;font-size:var(--xs);background:transparent}.prototype-tag{font-size:11px;color:var(--amber);letter-spacing:.02em;white-space:nowrap}.mobile-menu{display:none}.main{padding:28px 32px 32px;max-width:1800px;margin:0 auto;min-width:0}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.page-head h1{margin:4px 0 8px}.page-head .subtitle{color:var(--muted);font-size:var(--xs)}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;line-height:1.6;padding:3px 8px;border-radius:4px;background:#1b293e;color:var(--muted);white-space:nowrap}.status-pill.blue{background:#192f4e;color:#a5c7ff}.status-pill.warn{background:#322a20;color:var(--amber)}.status-pill.good{background:#16332e;color:var(--mint)}.status-pill.danger{background:#35252e;color:var(--red)}
.status-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.notice{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;background:#152237;border:1px solid #2c405c;border-radius:6px;color:#b8cbe6;font-size:var(--xs)}.notice>svg{margin-top:3px;flex:none}.notice.warning{background:#211f1d;border-color:#4a3d2b;color:#e5c48f}.notice .text-btn{font-size:var(--xs);min-height:24px;padding:0;margin-left:auto}.notice p{flex:1;min-width:0}.notice.space-bottom{margin-bottom:20px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.stat-card{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:20px;min-height:164px;gap:8px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:var(--xs)}.stat-top svg{color:#6d85a5}.stat-value{font-family:var(--mono);font-size:clamp(24px,2.3vw,34px);line-height:1.3;letter-spacing:-.03em;white-space:nowrap;font-weight:550}.stat-value small{font:400 12px var(--sans);letter-spacing:0;color:var(--muted);margin-left:8px}.stat-bottom{display:flex;align-items:center;gap:8px;justify-content:space-between;border-top:1px solid var(--line-soft);margin-top:auto;padding-top:12px;font-size:11px;color:var(--muted)}.stat-bottom span{display:block}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(280px,1fr);gap:20px;margin-bottom:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 20px 16px}.panel-head h2{font-size:var(--lg)}.panel-head .sub{color:var(--muted);font-size:var(--xs);margin-top:4px}.panel-body{padding:0 20px 20px}.segmented{display:inline-flex;gap:4px;padding:3px;background:#091424;border:1px solid var(--line);border-radius:6px;flex:none}.segmented button{border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:var(--xs);min-height:28px;padding:4px 10px;white-space:nowrap}.segmented button.active{background:#233b5b;color:var(--text)}
.chart-summary{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:12px}.chart-summary strong{font:500 20px var(--mono);color:var(--text)}.chart-summary .small{color:var(--muted)}.chart-unit{font-size:11px;color:var(--muted);margin-bottom:4px}.chart{display:block;width:100%;height:auto;aspect-ratio:680/224;overflow:visible}.chart text{font:11px var(--mono);fill:#9aacc5}.chart-legend{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:11px;color:var(--muted);padding-top:12px}.legend-key{display:inline-block;width:16px;height:2px;background:var(--blue);vertical-align:middle;margin-right:6px}.legend-key.dashed{height:0;background:none;border-top:2px dashed var(--mint)}.chart-note{margin-left:auto;color:var(--faint)}
.source-list{display:grid;gap:16px;margin:4px 0 16px}.source-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center}.source-row .name{font-size:var(--xs)}.source-row .meta{font-size:11px;color:var(--muted)}.source-row .bar{height:4px;background:#24344c;border-radius:4px;grid-column:1/-1;margin-top:4px}.source-row .bar i{display:block;height:100%;border-radius:4px;background:var(--blue)}.source-row .bar i.good{background:var(--mint)}.source-row .bar i.warn{background:var(--amber)}.source-foot{border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font-size:11px}
.section-number{font:500 11px var(--mono);color:var(--faint);margin-right:8px}.panel-footer{padding:12px 20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);gap:12px}.action-list{padding:0 20px}.action-row{display:grid;grid-template-columns:36px minmax(0,1fr) 100px 92px 24px;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line-soft);width:100%;text-align:left;background:transparent;color:var(--text);border-left:0;border-right:0;border-bottom:0}.action-row:first-child{border-top:0}.priority{display:grid;place-content:center;width:28px;height:28px;border:1px solid #573942;color:var(--red);background:#30212c;border-radius:6px;font:11px var(--mono)}.priority.mid{border-color:#53442c;color:var(--amber);background:#2e271f}.priority.low{border-color:#31456a;color:var(--blue);background:#19283d}.action-row h3{font-size:var(--sm);font-weight:500}.action-row p{font-size:11px;color:var(--muted);margin-top:3px}.action-owner{font-size:var(--xs);color:var(--muted)}
.footer-note{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:24px;padding-top:16px;border-top:1px solid var(--line-soft);font-size:11px;color:var(--faint)}
.filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--line)}.filters label{min-width:128px}.filters .grow{flex:1;min-width:180px}.filters input,.filters select{width:100%}.filters .btn{min-height:40px}.table-wrapper{width:100%;overflow:auto;max-height:520px;border-radius:0;isolation:isolate;scrollbar-color:#3b516e #0b1524;scrollbar-width:thin}.table-wrapper:focus-visible{outline-offset:-3px}table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--xs);text-align:left}th{font-weight:500;color:var(--muted);background:#142238}td,th{padding:13px 16px;border-bottom:1px solid var(--line-soft);vertical-align:middle}td{background:var(--panel)}.production-table{min-width:1380px}.production-table th{position:sticky;top:0;z-index:5;white-space:nowrap;height:48px}.production-table td{height:52px;white-space:nowrap}.production-table .well-col{position:sticky;left:0;z-index:3;min-width:152px;width:152px;border-right:1px solid var(--line)}.production-table .date-col{position:sticky;left:152px;z-index:3;min-width:124px;width:124px;border-right:1px solid var(--line)}.production-table th.well-col,.production-table th.date-col{z-index:8;background:#142238}.production-table .well-link{color:#a8c8f9;font:500 13px var(--mono);text-decoration:none;border:0;background:transparent;padding:4px 0;min-height:28px}.production-table .numeric{text-align:right;font-family:var(--mono)}.source-hint{max-width:250px;white-space:normal!important;line-height:1.6}.table-source-rules{padding:16px 20px;display:grid;gap:8px;border-top:1px solid var(--line);font-size:var(--xs);color:var(--muted)}.table-source-rules strong{font-weight:500;color:var(--text)}.empty{padding:40px 24px;text-align:center;color:var(--muted)}.empty h3{color:var(--text);margin-bottom:8px}.detail-dl{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.detail-dl dt{font-size:var(--xs);color:var(--muted);margin-bottom:4px}.detail-dl dd{margin:0;overflow-wrap:anywhere}
.issue-layout{display:grid;grid-template-columns:minmax(270px,.85fr) minmax(0,1.5fr);gap:20px;align-items:start}.issue-list{background:#101722;border:1px solid var(--line);border-radius:var(--radius);min-width:0}.issue-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:16px;border-bottom:1px solid var(--line)}.filter-tab{min-height:32px;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:4px;padding:4px 8px;font-size:var(--xs)}.filter-tab.active{color:var(--text);border-color:#35465f;background:#233148}.issue-row{display:flex;gap:12px;width:100%;background:transparent;color:var(--text);padding:18px 16px;border:0;border-bottom:1px solid var(--line-soft);text-align:left;align-items:flex-start}.issue-row.selected{background:#182536;box-shadow:inset 2px 0 var(--blue)}.issue-row .priority{width:24px;height:24px;font-size:10px;flex:none;margin-top:2px}.issue-row .row-body{display:grid;gap:8px;flex:1;min-width:0}.issue-row .title{font-size:var(--sm);line-height:1.6;font-weight:500;overflow-wrap:anywhere}.issue-row .meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:11px}.issue-row .item-id{font:10px var(--mono);color:var(--faint)}.issue-detail{background:#121a26;border:1px solid var(--line);border-radius:var(--radius);min-width:0}.detail-head{padding:20px 24px;border-bottom:1px solid var(--line)}.detail-head h2{margin:12px 0}.detail-content{padding:20px 24px}.detail-section{margin-bottom:24px}.detail-section h3{font-size:var(--xs);color:var(--muted);font-weight:500;margin-bottom:8px}.detail-section p{overflow-wrap:anywhere}.source-block{padding:16px;background:#0b1420;border:1px solid var(--line);border-radius:6px;font-size:var(--xs);color:#b6c6da}.source-block .file-label{color:var(--text);margin-bottom:8px}.attachment{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);font-size:var(--xs);margin-top:8px;width:100%;color:var(--text);text-align:left}.attachment .od-field{flex:1}.attachment small{color:var(--muted);font-size:11px}.history{display:grid;gap:16px}.history-item{display:flex;align-items:flex-start;gap:10px}.history-item .avatar{width:28px;height:28px;font-size:11px}.history-copy{min-width:0;flex:1}.history-copy header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--xs)}.history-copy p{font-size:var(--xs);color:#b7c7db;overflow-wrap:anywhere;margin-top:4px;white-space:pre-wrap}.history-copy time{color:var(--faint);font-size:11px}.decision{border-top:1px solid var(--line);background:#101a29;padding:20px 24px;border-radius:0 0 var(--radius) var(--radius)}.decision label{font-size:var(--xs);margin-bottom:12px}.decision .actions{display:flex;gap:8px;flex-wrap:wrap}.decision .help{margin-top:12px;color:var(--muted);font-size:11px}.inline-error{color:var(--red);font-size:var(--xs);margin:8px 0}.confirmed-block{padding:16px;background:#102820;border:1px solid #2b5848;border-radius:6px;margin:16px 0}.confirmed-block p{font-size:var(--xs);margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere}
.report-layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:20px;align-items:start}.report-index{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:16px}.report-index h2{font-size:var(--xs);color:var(--muted);margin-bottom:12px}.report-category{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;min-height:40px;padding:8px;border:0;border-radius:4px;background:transparent;color:var(--muted);margin-bottom:4px}.report-category.active{background:#213450;color:var(--text)}.report-choice{display:grid;gap:8px;text-align:left;width:100%;background:#121f31;border:1px solid var(--line);border-radius:6px;padding:12px;color:var(--text);margin-top:16px}.report-choice.active{border-color:#4a72a8}.report-choice .title{font-size:var(--xs);font-weight:500;line-height:1.7}.report-choice .date{font:11px var(--mono);color:var(--muted)}.report-toc{padding-top:20px;margin-top:20px;border-top:1px solid var(--line);display:grid;gap:4px}.report-toc button{background:transparent;color:var(--muted);border:0;padding:6px 0;text-align:left;font-size:var(--xs);min-height:32px}.report-paper{background:var(--reader);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.report-cover{padding:28px 32px;border-bottom:1px solid var(--line)}.report-cover h2{font-size:24px;line-height:1.5;margin:12px 0}.report-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.report-content{padding:4px 32px 24px}.report-section{padding:24px 0;border-bottom:1px solid var(--line);scroll-margin-top:100px}.report-section:last-child{border-bottom:0}.report-section h3{margin-bottom:12px;font-size:var(--lg)}.report-section p{margin:12px 0;max-width:70ch;line-height:1.85;color:#c5d0df}.report-section .table-wrapper{margin:16px 0;max-height:300px}.report-section table{min-width:520px}.report-section td{background:var(--reader)}.report-section th{background:#1a2432}.report-section .section-opinion{margin-top:16px;background:#0c1420;border:1px solid var(--line);padding:12px;border-radius:6px}.section-opinion summary{cursor:pointer;color:var(--blue);font-size:var(--xs);min-height:28px;display:flex;gap:8px;align-items:center}.opinion-form{display:grid;gap:12px;margin-top:12px}.opinion-form .form-row{display:flex;align-items:end;gap:12px}.opinion-form select{font-size:var(--xs)}.section-comments{display:grid;gap:12px;margin-top:12px}.section-comments:empty{display:none}.report-decision{padding:24px 32px;border-top:1px solid var(--line);background:#101a29;border-radius:0 0 var(--radius) var(--radius)}.report-decision .actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.upload-card{padding:24px;display:grid;gap:16px;align-content:start}.upload-number{font:12px var(--mono);color:var(--blue)}.upload-card h2{font-size:var(--lg)}.upload-card p{font-size:var(--xs);color:var(--muted);min-height:44px}.drop-area{display:grid;gap:12px;padding:20px 12px;border:1px dashed #3c5270;border-radius:6px;background:#0a1526}.file-list{display:grid;gap:8px}.file-preview{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:4px;font-size:var(--xs)}.file-preview .od-field{flex:1;overflow-wrap:anywhere}.file-preview small{font-size:11px;color:var(--muted)}.file-preview button{flex:none}.upload-preview-state{font-size:11px;color:var(--amber)}
.archive-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.archive-card{padding:24px}.archive-card h2{font-size:var(--lg);margin-bottom:12px}.archive-card .path{font-size:var(--xs);color:var(--muted);overflow-wrap:anywhere;line-height:1.8;margin:12px 0}.archive-card .folder-icon{color:var(--blue);margin-bottom:16px}.archive-policy{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:16px;align-items:start;padding:20px;border-top:1px solid var(--line-soft)}.archive-policy h3{font-size:var(--sm);margin-bottom:4px}.archive-policy p{font-size:var(--xs);color:var(--muted);max-width:70ch}.archive-policy .policy-num{font:12px var(--mono);color:var(--faint);padding-top:4px}
dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow:auto;background:var(--panel);color:var(--text);border:1px solid #405574;border-radius:12px;padding:0;box-shadow:0 24px 80px #0009}dialog::backdrop{background:#030911bd}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line);gap:16px}.dialog-head h2{font-size:var(--h2)}.dialog-body{padding:24px;overflow-wrap:anywhere}.dialog-body p{margin-bottom:12px;white-space:pre-wrap}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--line)}.toast{position:fixed;bottom:24px;left:calc(var(--sidebar) + 24px);right:24px;z-index:100;background:#193147;border:1px solid #446386;border-radius:8px;padding:14px 20px;color:var(--text);box-shadow:0 8px 32px #0005;display:flex;align-items:center;gap:12px;max-width:700px;font-size:var(--xs)}.toast p{flex:1;min-width:0;overflow-wrap:anywhere}.menu-scrim{display:none}.mobile-back{display:none}.print-note{display:none}
@media(min-width:1600px){.main{padding:32px 40px}.dashboard-grid{grid-template-columns:minmax(0,2.2fr) minmax(300px,1fr)}}
@media(max-width:1199px){:root{--sidebar:200px}.topbar{padding:12px 24px}.top-controls{gap:8px}.breadcrumb .product-crumb{display:none}.main{padding:24px}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr)}.stat-card{padding:16px}.stat-value{font-size:27px}.stat-bottom{font-size:10px;gap:4px;flex-wrap:wrap}.issue-layout{grid-template-columns:290px minmax(0,1fr)}.report-layout{grid-template-columns:190px minmax(0,1fr)}.report-cover,.report-content,.report-decision{padding-left:24px;padding-right:24px}.top-controls label{font-size:11px}}
@media(max-width:1023px){:root{--sidebar:184px}.sidebar{padding-left:12px;padding-right:12px}.brand{padding-left:4px;padding-right:4px;gap:8px}.brand-title{font-size:15px}.brand-sub{font-size:9px}.brand-mark{width:28px}.main{padding:20px}.topbar{padding:12px 20px}.breadcrumb{display:none}.top-controls{width:100%;justify-content:space-between}.stats{gap:12px}.stat-card{padding:14px}.stat-value{font-size:23px}.stat-top{font-size:11px}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.source-list{grid-template-columns:1fr 1fr;gap:20px}.issue-layout{grid-template-columns:minmax(240px,.85fr) minmax(0,1.3fr);gap:16px}.detail-head,.detail-content,.decision{padding:16px}.report-layout{grid-template-columns:1fr}.report-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.report-index h2,.report-toc{display:none}.report-category{margin:0}.report-choice{grid-column:1/-1;margin-top:4px}.upload-card{padding:20px}.page-actions .btn{padding-left:10px;padding-right:10px}.top-controls label span{display:none}}
@media(max-width:767px){:root{--h1:24px}.app-shell{display:block}.sidebar{display:none;position:fixed;left:0;top:0;width:256px;height:100dvh}.sidebar.is-open{display:flex}.menu-scrim.is-open{display:block;position:fixed;inset:0;z-index:45;background:#020711b3}.topbar{padding:12px 16px;gap:12px;min-height:112px;flex-wrap:wrap}.mobile-menu{display:inline-flex;order:0}.breadcrumb{display:flex;flex:1;order:1;font-size:var(--sm)}.breadcrumb .product-crumb,.breadcrumb .crumb-slash{display:none}.top-controls{order:2;gap:8px;flex-wrap:wrap}.top-controls .prototype-tag{font-size:10px;flex:1}.top-controls select{padding:6px 20px 6px 8px;min-height:32px;font-size:11px}.top-controls label{gap:0}.main{padding:20px 16px}.page-head{align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:16px}.page-head h1{margin-top:4px}.page-actions{width:100%}.page-head .subtitle{line-height:1.8;max-width:48ch}.page-actions .btn{min-height:44px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.stat-card{min-height:148px;padding:16px 12px}.stat-value{font-size:clamp(22px,6vw,30px)}.stat-value small{font-size:11px;margin-left:4px}.stat-bottom{display:grid;font-size:10px;gap:4px;padding-top:8px}.stat-top{font-size:11px}.stat-top svg{--od-icon-size:16px}.notice{padding:12px;gap:8px;flex-wrap:wrap}.notice p{flex-basis:calc(100% - 30px)}.notice .text-btn{margin-left:26px}.dashboard-grid{gap:16px;margin-bottom:16px}.panel-head{padding:16px;align-items:flex-start}.panel-head h2{font-size:var(--sm)}.panel-body{padding:0 12px 16px}.chart-summary{padding:0 4px;gap:12px}.chart-summary strong{font-size:18px}.chart{aspect-ratio:680/290}.chart-legend{gap:12px;padding-left:4px;padding-right:4px;font-size:10px}.chart-note{width:100%;margin:0}.source-list{grid-template-columns:1fr;gap:14px;padding:0 4px}.source-foot{padding-left:4px}.panel-footer{padding:12px 16px;flex-wrap:wrap}.action-list{padding:0 16px}.action-row{grid-template-columns:28px minmax(0,1fr) 20px;gap:10px;padding:16px 0}.action-row .action-owner,.action-row>.status-pill{display:none}.action-row .meta-mobile{display:inline}.action-row h3{font-size:var(--sm)}.action-row p{font-size:11px}.filters{padding:16px;gap:12px}.filters label{flex:1;min-width:130px}.filters .grow{min-width:100%;flex-basis:100%}.filters .btn{min-height:44px}.filters label input,.filters label select{min-height:44px}.production-table .well-col{min-width:132px;width:132px}.production-table .date-col{left:132px;min-width:112px;width:112px}.production-table td,.production-table th{padding:12px}.table-source-rules{padding:16px}.table-wrapper{max-height:480px}.issue-layout{display:block}.issue-layout.detail-open .issue-list{display:none}.issue-layout:not(.detail-open) .issue-detail{display:none}.issue-detail{margin-top:0}.mobile-back{display:inline-flex;min-height:44px;margin-bottom:12px}.issue-tabs{gap:8px}.filter-tab{min-height:44px;padding:8px 12px}.issue-row{padding:20px 16px}.issue-row .title{font-size:var(--lg)}.issue-row .meta{font-size:var(--xs)}.detail-head,.detail-content{padding:20px 16px}.detail-dl{gap:16px}.decision{position:sticky;bottom:0;z-index:10;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:0;background:#101a29}.decision .actions .btn{flex:1;min-height:44px}.decision .help{font-size:10px}.report-layout{gap:16px}.report-index{padding:12px;gap:4px}.report-category{font-size:var(--xs);justify-content:center;min-height:44px;padding:6px}.report-category .count{display:none}.report-cover{padding:20px 16px}.report-cover h2{font-size:20px;line-height:1.5}.report-content{padding:0 16px 16px}.report-section{padding:20px 0;scroll-margin-top:144px}.report-section p{font-size:var(--sm)}.report-meta{gap:8px 16px}.report-decision{padding:20px 16px}.report-decision .btn{min-height:44px;flex:1}.report-decision .actions{gap:8px}.opinion-form .form-row{align-items:stretch;flex-direction:column}.opinion-form .btn{min-height:44px}.upload-grid,.archive-grid{grid-template-columns:1fr;gap:16px}.upload-card{padding:20px 16px}.upload-card p{min-height:0}.archive-card{padding:20px}.archive-policy{grid-template-columns:24px minmax(0,1fr);gap:12px;padding:20px 16px}.archive-policy>.status-pill{grid-column:2;justify-self:start}.footer-note{font-size:10px;gap:8px}.toast{left:16px;right:16px;bottom:16px;padding:12px;max-width:none}.dialog-head,.dialog-body,.dialog-actions{padding:16px}.dialog-actions .btn{min-height:44px}.btn,.icon-btn,.text-btn{min-height:44px}.segmented button{min-height:36px}.report-decision label{font-size:var(--xs)}}
.chart{aspect-ratio:auto}
.production-table tbody th.well-col{top:auto;z-index:3;background:var(--panel)}
/* Confirmation stays in document flow so mobile evidence is never covered. */
@media(max-width:767px){.decision{position:static}.top-controls label{min-width:0}.top-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.top-controls .prototype-tag{grid-column:1/-1}.top-controls label select{width:100%}.topbar{min-height:152px}.report-section{scroll-margin-top:176px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{color-scheme:light;body{background:white;color:#111;font-size:11pt}.sidebar,.topbar,.page-head,.report-index,.footer-note,.report-decision,.section-opinion,.toast,dialog,.menu-scrim{display:none!important}.app-shell,.workspace,.main,.report-layout{display:block;padding:0;margin:0}.report-paper{border:0;background:white}.report-cover,.report-content,.report-section{background:white;color:#111;border-color:#bbb}.report-cover h2,.report-section p,.report-section h3,.report-meta,.kicker,.muted{color:#111}.report-section td,.report-section th{background:white;color:#111;border-color:#bbb}.report-section .table-wrapper{overflow:visible;max-height:none}.report-section table{min-width:0}.notice{background:white;color:#333;border-color:#aaa}.status-pill{color:#111!important;background:white!important;border:1px solid #aaa}.section-comments .history-copy p,.section-comments time{color:#333}.print-note{display:block;font-size:10pt;margin-bottom:12px}.report-section{break-inside:avoid}.report-cover{padding:16px 0}.report-content{padding:0}#main> :not(.report-layout):not(.print-note){display:none!important}}
