:root{--ink:#0b132b;--paper:#f6fff8;--aqua:#5bc0be;--sun:#ffd166;--muted:#697386;--line:#dbe6df;--white:#fff;--danger:#b85b42}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.app-shell{min-height:100vh;display:grid;grid-template-columns:176px minmax(0,1fr) 320px}
.rail{background:var(--ink);color:var(--paper);padding:26px 18px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-weight:800;letter-spacing:-.04em;line-height:.95}
.brand img{width:40px;height:40px}
.rail-nav{margin-top:58px;display:grid;gap:8px}
.nav-item{border:0;background:transparent;color:#98a3bb;border-radius:8px;min-height:46px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;text-align:left;padding:0 10px;transition:.2s}
.nav-item:hover,.nav-item.is-active{background:#17213e;color:#fff}
.nav-item.is-active{box-shadow:inset 3px 0 var(--aqua)}
.nav-item b{font-size:10px;background:var(--sun);color:var(--ink);padding:3px 6px;border-radius:10px}
.nav-icon{font-size:20px}.nav-label{font-size:13px;font-weight:650}
.rail-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px}.rail-foot small{color:#8994ab;font-weight:400}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--aqua);color:var(--ink);font-size:12px;font-weight:800}
.workspace{min-width:0;display:flex;flex-direction:column}
.topbar{height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--line);background:rgba(246,255,248,.94);position:sticky;top:0;z-index:5}
.eyebrow{margin:0 0 5px;font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--muted)}
h1,h2,h3,p{margin-top:0}h1{font-size:18px;margin:0;letter-spacing:-.02em}h2{font-size:34px;line-height:1.04;letter-spacing:-.045em;margin-bottom:0}h3{font-size:18px;margin:0}
.top-actions{display:flex;align-items:center;gap:12px}.sync{font-size:11px;color:var(--muted)}.sync i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--aqua);margin-right:6px}
.icon-btn{width:38px;height:38px;border:1px solid var(--line);background:transparent;border-radius:8px;font-size:20px;display:inline-grid;place-items:center}.icon-btn:hover{background:#eaf5ef}.icon-btn.small{width:28px;height:28px;font-size:14px}.mobile-only{display:none}
.canvas{padding:36px 40px 54px;min-width:0;animation:fade-in .25s ease}
@keyframes fade-in{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}
.case-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.case-meta{display:flex;align-items:center;gap:12px}.case-number{font-size:12px;font-weight:900;padding:6px 8px;background:var(--sun)}.case-status{font-size:10px;font-weight:800;letter-spacing:.13em;color:#227b79}
.primary,.secondary{border-radius:7px;padding:11px 16px;font-size:12px;font-weight:800;border:1px solid var(--ink)}
.primary{background:var(--ink);color:#fff}.primary:hover{background:#182649}.primary:disabled{opacity:.6}.secondary{background:transparent}.secondary:hover{background:#eaf4ee}.compact{padding:9px 12px}.full{width:100%;margin-top:auto}
.progress-map{display:grid;grid-template-columns:repeat(4,1fr);margin:42px 0 48px;position:relative}.progress-map:before{content:"";position:absolute;top:19px;left:10%;right:10%;height:2px;background:var(--line)}
.step{position:relative;z-index:1;border:0;background:transparent;display:grid;justify-items:center;gap:5px;color:#8d96a8}.step>span{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:var(--paper);border:2px solid var(--line);font-size:12px;font-weight:900;transition:.2s}.step b{font-size:12px}.step small{font-size:10px}.step.is-done,.step.is-current{color:var(--ink)}.step.is-done>span{background:var(--aqua);border-color:var(--aqua)}.step.is-current>span{background:var(--sun);border-color:var(--ink);box-shadow:0 0 0 5px var(--paper)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}
.table-head,.material-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(70px,.8fr) minmax(80px,.8fr) minmax(82px,.7fr) 18px;gap:12px;align-items:center}
.table-head{padding:0 14px 9px;color:var(--muted);font-size:10px;border-bottom:1px solid var(--line)}
.material-row{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:14px;text-align:left;transition:.18s}.material-row:hover{background:#edf8f2;transform:translateX(3px)}.material-name{display:flex;align-items:center;gap:10px;min-width:0}.material-name>span:last-child{display:grid;min-width:0}.material-name b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-name small,.owner,.time{font-size:10px;color:var(--muted)}.file-icon{display:grid;place-items:center;width:29px;height:29px;background:#dff3ec;border-radius:6px;color:#257f7d}.tag{justify-self:start;font-size:9px;font-weight:800;padding:5px 7px;border-radius:10px;background:#e5edf0}.tag.done{background:#d9f3e9;color:#16715d}.tag.late{background:#fff0cf;color:#805800}
.inspector{border-left:1px solid var(--line);background:#fff;padding:28px 24px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;z-index:10}.inspector-head,.section-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:800;letter-spacing:.13em;color:var(--muted)}
.risk-block{display:flex;align-items:center;gap:16px;padding:28px 0;border-bottom:1px solid var(--line)}.risk-dial{width:72px;height:72px;border-radius:50%;display:flex;align-items:baseline;justify-content:center;padding-top:19px;background:conic-gradient(var(--sun) 0 38%,#edf1ec 38%);position:relative}.risk-dial:after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}.risk-dial strong,.risk-dial span{position:relative;z-index:1}.risk-dial strong{font-size:24px}.risk-dial span{font-size:10px}.risk-block p{font-size:12px;font-weight:800;margin-bottom:4px}.risk-block small{font-size:10px;color:var(--muted)}
.facts{margin:8px 0 22px}.facts div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf1ee}.facts dt,.facts dd{font-size:10px;margin:0}.facts dt{color:var(--muted)}.facts dd{font-weight:750;text-align:right}
.inspector-section{margin-bottom:20px}.activity{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:17px}.activity li{display:grid;grid-template-columns:10px 1fr;gap:10px}.activity i{width:7px;height:7px;border-radius:50%;background:var(--aqua);margin-top:3px}.activity i.warn{background:var(--sun)}.activity div{display:grid;gap:3px}.activity b{font-size:10px}.activity small{font-size:9px;color:var(--muted)}
.scrim{display:none}
.detail-layout{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(300px,1.25fr);gap:42px}.record-index{border-right:1px solid var(--line);padding-right:30px}.record-link{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;padding:14px 12px;display:grid;gap:5px}.record-link span{font-size:12px;font-weight:750}.record-link small{font-size:10px;color:var(--muted)}.record-link.selected{background:#ddf4ec;border-left:3px solid var(--aqua)}.record-detail{padding-top:5px}.record-detail h2{margin:12px 0 15px}.record-status{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--muted)}.data-sheet{margin:36px 0 24px;border-top:1px solid var(--ink)}.data-sheet div{display:grid;grid-template-columns:130px 1fr;padding:14px 0;border-bottom:1px solid var(--line);font-size:11px}.data-sheet span{color:var(--muted)}.note-label{font-size:10px;color:var(--muted);display:grid;gap:7px}.note-label textarea{resize:vertical;min-height:74px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:10px}.record-detail>.secondary{margin-top:10px}.saved-note{font-size:10px;color:#16715d;margin-left:10px}
.calendar-head,.report-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:32px}.date-controls{display:flex;align-items:center;gap:10px;font-size:11px}.week-grid{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.day{min-height:64px;background:var(--paper);padding:13px;display:grid;gap:5px}.day b{font-size:11px}.day span{font-size:9px;color:var(--muted)}.day.today{background:#fff0ca}.calendar-event{background:white;padding:14px 16px;min-height:92px;display:grid;gap:5px;border-left:4px solid var(--aqua)}.calendar-event small{font-size:9px;color:var(--muted)}.calendar-event b{font-size:12px}.calendar-event span{font-size:10px;color:var(--muted)}.calendar-event.delivery{border-color:var(--sun)}.calendar-event.quality{border-color:var(--ink)}
.metric-band{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--ink);margin-bottom:38px}.metric-band>div{padding:22px 26px;border-right:1px solid var(--line);display:grid}.metric-band>div:first-child{padding-left:0}.metric-band>div:last-child{border:0}.metric-band strong{font-size:50px;letter-spacing:-.07em}.metric-band sup{font-size:16px}.metric-band span{font-size:11px;font-weight:800}.metric-band small{font-size:9px;color:#16806d;margin-top:8px}.report-chart{margin-top:28px}.legend{font-size:9px;color:var(--muted)}.legend i{display:inline-block;width:9px;height:9px;background:var(--aqua);margin:0 4px 0 10px}.legend i:last-of-type{background:var(--sun)}.bars{height:180px;display:grid;grid-template-columns:repeat(7,1fr);gap:12px;border-bottom:1px solid var(--ink);align-items:end}.bar-col{height:100%;position:relative;display:flex;align-items:flex-end;justify-content:center}.bar{width:28px;max-height:150px;background:var(--aqua);position:relative;transition:height .4s}.bar.over{background:var(--sun)}.bar span{position:absolute;top:-17px;width:100%;text-align:center;font-size:9px}.bar-col small{position:absolute;bottom:-20px;font-size:9px}.limit{position:absolute;bottom:96px;left:0;right:0;border-top:1px dashed var(--sun)}
dialog{border:0;border-radius:12px;padding:0;width:min(430px,calc(100% - 32px));box-shadow:0 24px 80px #0b132b55}dialog::backdrop{background:#0b132b99}dialog form{padding:24px;display:grid;gap:16px}.dialog-head{display:flex;justify-content:space-between}.dialog-head h2{font-size:24px}.dialog-head .icon-btn{border:0}dialog label{display:grid;gap:7px;font-size:10px;font-weight:700;color:var(--muted)}dialog input,dialog select{border:1px solid var(--line);border-radius:7px;padding:11px;background:white}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.empty{padding:36px;text-align:center;display:grid;gap:7px}.empty span{font-size:11px;color:var(--muted)}
@media (max-width:1100px){.app-shell{grid-template-columns:76px minmax(0,1fr) 280px}.rail{padding-inline:12px}.brand span,.rail .nav-label{display:none}.brand{justify-content:center}.nav-item{grid-template-columns:1fr;justify-items:center}.nav-item b{position:absolute;margin:0 0 25px 24px}.rail-foot{justify-content:center}.topbar,.canvas{padding-left:28px;padding-right:28px}}
@media (max-width:760px){.app-shell{display:block;padding-bottom:66px}.rail{position:fixed;top:auto;bottom:0;left:0;right:0;width:auto;height:66px;min-height:0;z-index:20;padding:7px 12px;display:block}.brand,.rail-foot{display:none}.rail-nav{margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.nav-item{min-height:52px;padding:3px;display:grid;grid-template-columns:1fr;gap:0;text-align:center}.nav-item .nav-label{display:block;font-size:9px}.nav-icon{font-size:16px}.nav-item b{margin:-25px 0 0 24px}.workspace{min-height:calc(100vh - 66px)}.topbar{height:74px;padding:0 18px}.top-actions{gap:7px}.sync{display:none}.mobile-only{display:inline-grid}.canvas{padding:24px 18px 40px}.inspector{position:fixed;right:0;top:0;width:min(330px,88vw);height:100vh;transform:translateX(105%);transition:transform .25s;box-shadow:-12px 0 30px #0b132b22}.inspector.is-open{transform:none}.inspector.is-open+.scrim{display:block;position:fixed;inset:0;background:#0b132b66;z-index:9}.case-intro{align-items:flex-start}.case-intro .primary{font-size:0;padding:10px;width:38px}.case-intro .primary:after{content:"+";font-size:19px}.case-intro h2{font-size:28px}.progress-map{margin:32px 0}.step small{display:none}.table-head{display:none}.material-row{grid-template-columns:minmax(0,1fr) auto 12px}.material-row .owner,.material-row .time{display:none}.detail-layout{grid-template-columns:1fr;gap:24px}.record-index{border-right:0;padding-right:0}.record-detail{border-top:1px solid var(--ink);padding-top:24px}.calendar-head,.report-title{align-items:flex-start;gap:18px}.week-grid{overflow:hidden;grid-template-columns:repeat(5,minmax(62px,1fr))}.calendar-event{padding:10px;min-height:94px}.calendar-event span{display:none}.metric-band{grid-template-columns:1fr}.metric-band>div,.metric-band>div:first-child{padding:14px 0;border-right:0;border-bottom:1px solid var(--line)}.metric-band strong{font-size:38px}.metric-band>div:last-child{border-bottom:0}.bars{gap:5px}.bar{width:20px}}
@media (max-width:420px){.topbar{padding-inline:14px}.canvas{padding:20px 14px 36px}h1{font-size:16px}.case-intro h2{font-size:25px}.progress-map:before{left:12%;right:12%}.step>span{width:34px;height:34px}.step b{font-size:10px}.material-row{padding-inline:5px}.file-icon{width:26px;height:26px}.tag{font-size:8px;padding:4px 6px}.calendar-head,.report-title{display:grid;gap:16px}.date-controls{justify-self:start}.data-sheet div{grid-template-columns:100px 1fr}.report-title h2,.calendar-head h2{font-size:28px}}
@media (min-width:1400px){.app-shell{grid-template-columns:190px minmax(760px,1fr) 330px}.canvas{padding:42px 52px 64px}.topbar{padding-inline:52px}.table-head,.material-row{grid-template-columns:minmax(300px,2.2fr) minmax(90px,.7fr) minmax(100px,.8fr) minmax(90px,.65fr) 18px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
