:root{--canvas:#f5f3ee;--panel:#fffefa;--ink:#182033;--muted:#687080;--line:#dddcd5;--navy:#111b32;--navy-soft:#1b2946;--accent:#2259d6;--accent-dark:#1847b7;--ok:#087b57;--warn:#996300;--bad:#bd3030;--shadow:0 10px 34px rgba(25,34,52,.055)}
*{box-sizing:border-box}
html{background:var(--canvas)}
body{margin:0;color:var(--ink);font:14px/1.5 Aptos,"Segoe UI",Arial,sans-serif}
a{color:var(--accent)}
button,input,select{font:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;padding:26px 18px 20px;background:var(--navy);color:#fff;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:11px;padding:0 7px 28px;color:#fff;text-decoration:none}
.brand-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid #5472ad;background:#203257;border-radius:10px;font-weight:800;font-size:13px;letter-spacing:.05em}
.brand strong,.brand small{display:block}.brand strong{font-size:15px}.brand small{color:#91a0bc;font-size:9px;letter-spacing:.18em;margin-top:2px}
.sidebar-nav{display:grid;gap:5px}.sidebar-nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;color:#aeb8cb;text-decoration:none;border-radius:8px;font-weight:650}.sidebar-nav a:hover,.sidebar-nav a.active{background:var(--navy-soft);color:#fff}.sidebar-nav a.active{box-shadow:inset 3px 0 var(--accent)}.sidebar-nav svg{width:18px;height:18px;fill:currentColor;flex:0 0 auto}
.sidebar-foot{margin-top:auto;padding:16px 8px 2px;border-top:1px solid #273550;display:flex;align-items:center;gap:10px}.sidebar-foot strong,.sidebar-foot small{display:block}.sidebar-foot strong{font-size:12px}.sidebar-foot small{color:#8491a9;font-size:11px}.status-dot,.state-dot{width:8px;height:8px;border-radius:50%;background:#6b7280;flex:0 0 auto}.status-dot,.state-dot.on{background:#28b782;box-shadow:0 0 0 4px rgba(40,183,130,.12)}
.workspace{min-width:0}.workspace-bar{height:58px;padding:0 34px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;background:rgba(255,254,250,.7)}
.container{max-width:1440px;margin:0 auto;padding:38px 40px 60px}
.page-head,.material-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.page-head.compact{margin-top:8px}.page-head h1,.material-head h1{font-size:30px;line-height:1.15;letter-spacing:-.025em;margin:0 0 7px}.page-head p,.material-head p{margin:0;color:var(--muted)}.eyebrow{font-size:10px!important;color:var(--accent)!important;font-weight:800;letter-spacing:.16em;margin-bottom:8px!important}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.button{appearance:none;border:1px solid #cfd1d5;background:#fffefa;color:#293349;border-radius:7px;min-height:38px;padding:8px 13px;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-weight:650;white-space:nowrap}.button:hover{border-color:#9ca3af;background:#fff}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:var(--accent-dark)}.button.small{min-height:32px;padding:6px 10px;font-size:12px}.icon-button{width:32px;min-height:32px;padding:0}
.button.danger{border-color:#e3b5b5;color:var(--bad);background:#fff7f7}.button.danger:hover{background:#ffecec}
.flash{padding:13px 16px;border-radius:8px;margin-bottom:20px;border:1px solid}.flash.success{background:#e6f7f0;border-color:#b9e5d3;color:#086c4e}.flash.error{background:#fff0f0;border-color:#f1c1c1;color:#a61e1e}.flash ul{margin:8px 0 0;padding-left:20px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:20px 21px;box-shadow:var(--shadow)}.metric span,.metric small{display:block;color:var(--muted)}.metric span{font-size:12px;font-weight:700}.metric strong{display:block;font-size:33px;line-height:1;margin:13px 0 9px;letter-spacing:-.04em}.metric small{font-size:11px}.metric .positive{color:var(--ok)}.metric .attention{color:var(--warn)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:20px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 22px;border-bottom:1px solid var(--line)}.section-head h2{margin:0 0 3px;font-size:16px}.section-head p{margin:0;color:var(--muted);font-size:12px}.section-head>a{text-decoration:none;font-size:12px;font-weight:700}
.compact-list{padding:3px 0}.compact-item{display:flex;gap:12px;align-items:center;padding:14px 21px;border-bottom:1px solid #ecebe6;color:var(--ink);text-decoration:none}.compact-item:last-child{border-bottom:0}.compact-item:hover{background:#faf9f5}.item-main{min-width:0;flex:1}.item-main strong,.item-main small{display:block}.item-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-main small{color:var(--muted);font-size:11px;margin-top:3px}
.source-mark{width:34px;height:34px;border-radius:8px;background:#e8edf9;color:#3158a5;display:grid;place-items:center;font-size:12px;font-weight:800;flex:0 0 auto}.small-mark{width:28px;height:28px;border-radius:7px;font-size:10px}.source-cell{display:flex;align-items:center;gap:10px}.source-cell strong,.source-cell small{display:block}.source-cell small{margin:2px 0 0}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:830px}th,td{text-align:left;padding:15px 17px;border-bottom:1px solid #e8e7e2;vertical-align:middle}th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;background:#faf9f5}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fdfcf8}td small{display:block;color:var(--muted);font-size:11px;margin-top:5px;max-width:390px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actions{white-space:nowrap;text-align:right}.actions form,.actions .button{display:inline-flex;margin-left:4px}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;letter-spacing:.04em;white-space:nowrap}.badge i{width:5px;height:5px;border-radius:50%;background:currentColor}.badge.neutral{background:#e9ecf1;color:#465064}.badge.ok{background:#daf3e8;color:var(--ok)}.badge.muted{background:#ececeb;color:#70747c}.badge.warn{background:#fff0c7;color:var(--warn)}.badge.bad{background:#ffe0e0;color:var(--bad)}
.empty-state{padding:36px 22px;color:var(--muted);text-align:center}.count-pill{background:#e8edf9;color:#3158a5;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:700}
.filters{display:grid;grid-template-columns:minmax(240px,1.35fr) minmax(160px,.75fr) minmax(150px,.65fr) minmax(165px,.7fr) auto;gap:12px;align-items:end;padding:17px;margin-bottom:16px}.filters label>span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px}.filters input,.filters select,.form-section input,.form-section select{width:100%;height:40px;border:1px solid #cfd1d5;border-radius:7px;background:#fff;padding:0 11px;color:var(--ink);outline:none}.filters input:focus,.filters select:focus,.form-section input:focus,.form-section select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,89,214,.1)}.filter-actions{display:flex;gap:7px}.material-title{font-weight:750;text-decoration:none;color:var(--ink)}.material-title:hover{color:var(--accent)}
.back{display:inline-block;margin-bottom:13px;color:var(--muted);text-decoration:none;font-size:12px;font-weight:650}.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.form-main{display:grid;gap:20px}.form-section{padding-bottom:5px}.form-section label{display:block;margin:20px 22px;font-weight:700}.form-section label small{display:block;color:var(--muted);font-weight:400;font-size:11px;margin:2px 0 7px}.form-section input,.form-section select{display:block;margin-top:7px}.form-side{padding:22px;position:sticky;top:78px}.form-side h2{font-size:16px;margin:0 0 18px}.switch-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}.switch-row strong,.switch-row small{display:block}.switch-row small{font-size:11px;color:var(--muted);margin-top:3px}.switch-row input{width:18px;height:18px;accent-color:var(--accent)}.mini-meta{margin:4px 0 20px}.mini-meta>div{padding:12px 0;border-bottom:1px solid var(--line)}.mini-meta dt{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.05em}.mini-meta dd{margin:4px 0 0;font-weight:650}.form-actions{display:grid;gap:8px;margin-top:20px}
.material-head{align-items:flex-start;padding-bottom:23px;border-bottom:1px solid var(--line)}.material-head h1{max-width:850px;font-size:34px}.status-line{display:flex;gap:7px;margin-top:13px}.head-actions{display:flex;gap:8px;flex-wrap:wrap}.head-actions form{display:flex}.button:disabled{opacity:.45;cursor:not-allowed}.material-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.material-main{min-width:0;display:grid;gap:20px}.article-content{min-width:0}.article-text{white-space:pre-wrap;overflow-wrap:anywhere;padding:28px 32px 40px;font:16px/1.85 Georgia,"Times New Roman",serif;color:#242a35}.material-meta{padding:22px;position:sticky;top:78px}.material-meta h2{font-size:16px;margin:0 0 13px}.material-meta dl{margin:0}.material-meta dl>div{padding:12px 0;border-bottom:1px solid var(--line)}.material-meta dt{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.material-meta dd{margin:4px 0 0;font-size:12px}.material-meta code{font-size:10px;overflow-wrap:anywhere}.break-word{overflow-wrap:anywhere}.error-box,.review-box{margin-top:16px;padding:13px;border:1px solid;border-radius:8px}.error-box{background:#fff0f0;border-color:#efc5c5;color:var(--bad)}.error-box p,.review-box p{margin:5px 0 0;font-size:12px}.review-box.pass{background:#e6f7f0;border-color:#b9e5d3;color:#086c4e}.review-box.fail{background:#fff3d8;border-color:#ecd89d;color:#805600}.review-box small{display:block;margin-top:8px;opacity:.75}.ai-analysis{overflow:hidden}.analysis-summary{padding:22px;border-bottom:1px solid var(--line);background:#f6f8fd}.analysis-summary h3,.analysis-grid h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.055em}.analysis-summary p{font-size:17px;line-height:1.6;margin:0}.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-grid section{padding:20px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.analysis-grid section:nth-child(2n){border-right:0}.analysis-grid ul{margin:0;padding-left:18px}.analysis-grid li{margin:7px 0}.empty-copy{color:var(--muted);font-size:12px;margin:0}
.final-article{overflow:hidden;border-color:#bedbcf}.final-article>.section-head{background:#f0faf6}.material-sidebar{display:grid;gap:20px;position:sticky;top:78px}.material-sidebar .material-meta{position:static}.decisions{padding:22px}.decisions h2{font-size:16px;margin:0 0 8px}.decision-row{padding:14px 0;border-bottom:1px solid var(--line)}.decision-row:last-child{border-bottom:0;padding-bottom:0}.decision-row>span{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.decision-row p{margin:8px 0 0;font-size:12px;line-height:1.5}.pipeline-history{overflow:hidden}.pipeline-step{border-top:1px solid var(--line)}.pipeline-step summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;cursor:pointer}.pipeline-step summary:hover{background:#fafaf7}.pipeline-step summary strong,.pipeline-step summary small{display:block}.pipeline-step summary small{color:var(--muted);font-size:11px;margin-top:4px}.step-summary{text-align:right}.step-detail{padding:0 20px 20px}.step-detail>p{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.step-detail pre{margin:12px 0 0;padding:16px;border-radius:8px;background:#101827;color:#d8e2f4;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.6 Consolas,"Courier New",monospace}.source-material{overflow:hidden}.source-material>summary{display:flex;justify-content:space-between;gap:16px;padding:18px 22px;cursor:pointer}.source-material>summary span{font-size:12px;color:var(--muted)}.source-material[open]>summary{border-bottom:1px solid var(--line)}
.code-panel{background:#101827;border:1px solid #25334e;border-radius:11px;box-shadow:var(--shadow);color:#c8d3e8;overflow:auto}.code-panel pre{margin:0;padding:24px;min-height:400px;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.65 Consolas,"Courier New",monospace}
.pagination{display:flex;gap:5px;margin-top:18px}.pagination a,.pagination span{padding:7px 10px;border:1px solid var(--line);border-radius:6px;text-decoration:none;background:var(--panel)}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.material-layout{grid-template-columns:1fr}.material-meta,.material-sidebar,.form-side{position:static}.filters{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static;padding:14px 18px;display:grid;grid-template-columns:auto 1fr;align-items:center}.brand{padding:0}.brand small,.sidebar-foot{display:none}.sidebar-nav{display:flex;justify-content:flex-end}.sidebar-nav a{padding:9px 11px}.workspace-bar{display:none}.container{padding:28px 20px 45px}.form-layout{grid-template-columns:1fr}}
@media(max-width:620px){.sidebar{grid-template-columns:1fr}.brand{margin-bottom:12px}.sidebar-nav{justify-content:flex-start;overflow:auto}.sidebar-nav a{flex:1;justify-content:center}.sidebar-nav svg{display:none}.container{padding:23px 13px 40px}.page-head,.material-head{align-items:flex-start;flex-direction:column}.page-head h1,.material-head h1{font-size:27px}.metric-grid{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:16px}.dashboard-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.search-field{grid-column:auto}.head-actions{width:100%;flex-wrap:wrap}.head-actions .button{flex:1}.article-text{padding:22px 19px;font-size:15px}.analysis-grid{grid-template-columns:1fr}.analysis-grid section{border-right:0}.actions{white-space:normal}.form-section label{margin:18px}.form-side{padding:18px}}
