:root {
  --ink:#20201e; --muted:#77736d; --paper:#f3f0ea; --card:#fbfaf7; --line:#d8d2c9;
  --stone:#9a8f80; --taupe:#6f6458; --sand:#e7dfd3; --clay:#a7583d; --green:#4f6a57; --gold:#a47b35;
  --shadow:0 18px 50px rgba(39,34,28,.08); --radius:14px;
}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;line-height:1.45}button,select,input,textarea{font:inherit;color:inherit}button,select{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--taupe);outline-offset:3px}.app-shell{display:grid;grid-template-columns:252px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:29px 22px 22px;background:#242421;color:#f5f1e9;display:flex;flex-direction:column;border-right:1px solid #3c3a35;z-index:20}.brand{padding:2px 10px 34px}.brand-mark{font:600 1.45rem/1 "Manrope",sans-serif;letter-spacing:.12em}.brand-mark span{color:#b6946d}.brand-sub{margin-top:8px;color:#b8b3aa;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase}.nav-list{display:grid;gap:5px}.nav-button{border:0;background:transparent;color:#bcb8b0;border-radius:9px;padding:11px 12px;text-align:left;display:flex;align-items:center;gap:11px;font-size:.9rem}.nav-button:hover{background:#30302d;color:#fff}.nav-button.active{background:#e9e2d7;color:#272621}.nav-icon{width:19px;text-align:center;font-size:.85rem}.sidebar-tools{margin-top:auto;border-top:1px solid #41403b;padding-top:20px}.sidebar-tools label{display:block;color:#a8a49c;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px}.sidebar-tools select{width:100%;background:#30302d;color:#f8f5ee;border:1px solid #4a4943;border-radius:8px;padding:10px;font-size:.82rem}.sidebar-footer{margin:21px 5px 0;color:#8e8a82;font-size:.67rem;line-height:1.6}.sidebar-footer span{color:#b9a58d}.ghost-button{border:1px solid var(--line);background:transparent;border-radius:8px;padding:9px 13px}.ghost-button.full{width:100%;color:#c8c3ba;border-color:#4a4943;margin-top:9px;font-size:.8rem}.ghost-button:hover{background:rgba(255,255,255,.08)}main{min-width:0}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line);background:rgba(243,240,234,.9);backdrop-filter:blur(12px);position:sticky;top:0;z-index:12}.crumbs{font-size:.78rem;color:var(--muted);letter-spacing:.02em}.topbar-right{display:flex;align-items:center;gap:20px}.today{display:flex;align-items:center;gap:7px;padding-right:20px;border-right:1px solid var(--line)}.today span{font:600 1.4rem/1 "Manrope"}.today small{font-size:.57rem;line-height:1.2;color:var(--muted);letter-spacing:.08em;width:34px}.avatar{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#ded5c9;font-weight:600;font-size:.78rem}.icon-button{width:38px;height:38px;border:1px solid var(--line);background:var(--card);border-radius:8px}.menu-button{display:none}.page{padding:38px 40px 64px;max-width:1560px;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:30px}.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;color:var(--taupe);font-weight:600;margin-bottom:8px}.page h1{font:500 clamp(1.75rem,3vw,2.55rem)/1.12 "Manrope";letter-spacing:-.04em;margin:0}.page h2{font:600 1.05rem/1.25 "Manrope";margin:0}.page h3{font:600 .96rem/1.3 "Manrope";margin:0}.subhead{color:var(--muted);margin:9px 0 0;font-size:.95rem}.section{margin-top:34px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}.section-title{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.section-note{font-size:.76rem;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 0 rgba(255,255,255,.7);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.clickable{cursor:pointer}.clickable:hover{transform:translateY(-2px);border-color:#aea397;box-shadow:var(--shadow)}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px}.kpi{padding:19px 18px;min-height:126px;display:flex;flex-direction:column;justify-content:space-between}.kpi-label{color:var(--muted);font-size:.77rem;max-width:105px}.kpi-value{font:500 1.7rem/1 "Manrope";letter-spacing:-.04em}.kpi-meta{font-size:.65rem;color:var(--green);margin-top:8px}.overview-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.7fr);gap:16px}.attention-list{overflow:hidden}.attention-item{padding:17px 18px;display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:14px;border-bottom:1px solid var(--line);cursor:pointer}.attention-item:last-child{border:0}.attention-item:hover{background:#f4f0e9}.accent-bar{width:3px;height:36px;background:var(--stone);border-radius:2px}.accent-bar.high{background:var(--clay)}.item-title{font-weight:600;font-size:.88rem}.item-sub{color:var(--muted);font-size:.73rem;margin-top:3px}.item-meta{text-align:right;font-size:.7rem;color:var(--muted)}.health{padding:21px}.health-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.health-row:last-child{border:0}.health-name{display:flex;gap:10px;align-items:center;font-size:.82rem}.dot{width:8px;height:8px;border-radius:50%;background:var(--green)}.dot.attention{background:var(--gold)}.dot.delayed{background:var(--clay)}.health-count{font:500 1.4rem "Manrope"}.pipeline{display:grid;grid-template-columns:repeat(6,1fr);overflow:hidden}.stage{padding:18px 14px;min-height:102px;border-right:1px solid var(--line);position:relative}.stage:last-child{border:0}.stage-name{font-size:.72rem;color:var(--muted)}.stage-count{font:500 1.55rem "Manrope";margin-top:12px}.stage::after{content:"";height:3px;position:absolute;left:14px;right:14px;bottom:14px;background:var(--sand)}.stage.active::after{background:var(--taupe)}.activity-list{padding:8px 20px}.activity-item{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:.8rem}.activity-item:last-child{border:0}.activity-glyph{color:var(--taupe)}.activity-time{color:var(--muted);font-size:.7rem}.project-toolbar,.report-filters{display:flex;gap:10px;flex-wrap:wrap}.field-select{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:9px 32px 9px 12px;min-height:40px}.projects-grid{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:14px}.project-card{padding:20px;min-height:230px;display:flex;flex-direction:column}.project-index{font-size:.65rem;color:var(--muted);letter-spacing:.12em}.project-card h3{font-size:1.05rem;margin:25px 0 7px}.project-location{font-size:.76rem;color:var(--muted)}.project-bottom{margin-top:auto}.progress-line{height:4px;background:var(--sand);border-radius:5px;margin:16px 0 9px;overflow:hidden}.progress-line i{display:block;height:100%;background:var(--taupe);border-radius:5px}.project-meta{display:flex;justify-content:space-between;font-size:.71rem;color:var(--muted)}.status{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);padding:4px 8px;border-radius:99px;font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.status::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--stone)}.status.approved::before,.status.on-track::before,.status.closed::before{background:var(--green)}.status.attention::before,.status.pending::before,.status.rectification::before{background:var(--gold)}.status.delayed::before,.status.high::before{background:var(--clay)}.command-head{background:#282825;color:#f7f3eb;border-radius:16px;padding:28px 30px;margin-bottom:18px;position:relative;overflow:hidden}.command-head::after{content:"";position:absolute;right:-70px;top:-150px;width:300px;height:300px;border:1px solid #55514b;transform:rotate(24deg)}.command-title{font:500 clamp(1.5rem,2.5vw,2.2rem) "Manrope";max-width:700px;position:relative;z-index:1}.command-meta{display:flex;gap:27px;flex-wrap:wrap;margin-top:27px;position:relative;z-index:1}.command-meta div{font-size:.72rem;color:#9f9b93}.command-meta strong{display:block;color:#f5f1ea;font-size:.84rem;margin-top:4px}.tabs{display:flex;gap:4px;overflow-x:auto;padding:6px;background:#e8e2d9;border-radius:10px;margin-bottom:20px}.tab{border:0;background:transparent;padding:9px 14px;border-radius:7px;font-size:.77rem;white-space:nowrap}.tab.active{background:var(--card);box-shadow:0 2px 7px rgba(43,37,30,.1)}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.summary-card{padding:19px;min-height:155px}.summary-card.wide{grid-column:span 2}.summary-label{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px}.summary-big{font:500 1.35rem "Manrope"}.summary-copy{font-size:.82rem;color:#514e49;margin-top:8px}.lifecycle{display:flex;align-items:center;justify-content:space-between;gap:0;padding:24px 18px}.life-stage{flex:1;text-align:center;position:relative;font-size:.68rem;color:var(--muted);padding-top:23px}.life-stage::before{content:"";width:9px;height:9px;border-radius:50%;background:#cfc6b8;position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:2}.life-stage::after{content:"";height:1px;background:#cfc6b8;position:absolute;top:4px;left:-50%;right:50%}.life-stage:first-child::after{display:none}.life-stage.done::before,.life-stage.current::before{background:var(--taupe)}.life-stage.current{color:var(--ink);font-weight:600}.data-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.data-table th{text-align:left;font-size:.64rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:500;padding:13px 15px;border-bottom:1px solid var(--line);background:#eee9e1}.data-table td{padding:14px 15px;border-bottom:1px solid var(--line);font-size:.78rem}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover{background:#f3efe8}.data-table tbody tr:last-child td{border-bottom:0}.doc-title{font-weight:600}.doc-sub{color:var(--muted);font-size:.69rem;margin-top:3px}.button{border:1px solid #262622;background:#262622;color:#fff;padding:10px 15px;border-radius:8px;font-size:.78rem;font-weight:500}.button:hover{background:#3c3b36}.button.secondary{background:var(--card);color:var(--ink);border-color:var(--line)}.button.secondary:hover{background:#eee9e1}.button.danger{background:#8c4937;border-color:#8c4937}.button-row{display:flex;gap:8px;flex-wrap:wrap}.revision-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,.6fr);gap:16px}.detail-panel{padding:22px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 25px;margin:20px 0}.detail-item small{display:block;color:var(--muted);font-size:.67rem;margin-bottom:4px}.detail-item strong{font-size:.82rem}.timeline{padding-left:18px;border-left:1px solid var(--line)}.timeline-item{position:relative;padding:0 0 20px 17px}.timeline-item::before{content:"";position:absolute;left:-22px;top:4px;width:7px;height:7px;background:var(--stone);border-radius:50%}.timeline-item strong{font-size:.8rem}.timeline-item p{font-size:.75rem;color:var(--muted);margin:3px 0}.alert{border:1px solid #cf9a82;background:#fff5ef;color:#7c422e;padding:14px 16px;border-radius:10px;font-size:.78rem;margin-bottom:14px}.finance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.finance-card{padding:17px}.finance-card small{display:block;color:var(--muted);font-size:.68rem;min-height:32px}.finance-card strong{font:500 1.25rem "Manrope"}.chart-card{padding:21px}.bar-chart{height:210px;display:flex;align-items:end;gap:15px;padding:25px 10px 0;border-bottom:1px solid var(--line)}.bar-group{flex:1;display:flex;justify-content:center;gap:5px;height:100%;align-items:end;position:relative}.bar{width:min(35%,28px);background:var(--sand);border-radius:4px 4px 0 0;min-height:10px}.bar.actual{background:var(--taupe)}.bar-label{position:absolute;bottom:-27px;font-size:.62rem;color:var(--muted);white-space:nowrap}.chart-legend{display:flex;gap:16px;margin-top:38px;font-size:.68rem;color:var(--muted)}.legend-key::before{content:"";display:inline-block;width:8px;height:8px;background:var(--sand);margin-right:5px}.legend-key.actual::before{background:var(--taupe)}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.approval-card{padding:22px;border-left:4px solid var(--gold)}.variance{color:var(--clay)}.progress-hero{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:center;padding:26px}.radial{width:166px;height:166px;border-radius:50%;display:grid;place-items:center;margin:auto;background:conic-gradient(var(--taupe) 68%,var(--sand) 0);position:relative}.radial::after{content:"";position:absolute;inset:13px;background:var(--card);border-radius:50%}.radial strong{font:500 2rem "Manrope";z-index:1}.trade-bars{display:grid;gap:11px}.trade-row{display:grid;grid-template-columns:90px 1fr 40px;align-items:center;gap:12px;font-size:.74rem}.site-image{min-height:185px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(135deg,#4a4842,#81796f 54%,#d7cabb);position:relative;overflow:hidden}.site-image::before{content:"SITE CAPTURE · 07 OCT 2026";position:absolute;left:15px;bottom:13px;color:#f3eee7;font-size:.64rem;letter-spacing:.11em}.site-image::after{content:"";position:absolute;width:65%;height:140%;border:1px solid rgba(255,255,255,.34);left:35%;top:-28%;transform:rotate(18deg)}.update-card{padding:22px}.update-list{margin:12px 0 0;padding-left:18px;font-size:.78rem;color:#55514b}.update-list li{margin:6px 0}.qc-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.report-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.report-card{padding:20px;min-height:270px}.donut-wrap{display:flex;align-items:center;justify-content:center;gap:30px;height:195px}.donut{width:145px;height:145px;border-radius:50%;background:conic-gradient(var(--taupe) 0 48%,#b9aa98 48% 72%,#d6cdbf 72% 89%,#84604e 89%);display:grid;place-items:center}.donut::after{content:"";width:87px;height:87px;background:var(--card);border-radius:50%}.metric-list{font-size:.72rem}.metric-list div{margin:8px 0}.mini-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--taupe);margin-right:7px}.modal-backdrop{position:fixed;inset:0;background:rgba(22,22,20,.5);backdrop-filter:blur(3px);z-index:100;display:grid;place-items:center;padding:20px}.modal{background:var(--card);width:min(680px,100%);max-height:90vh;overflow:auto;border-radius:16px;border:1px solid var(--line);box-shadow:0 30px 80px rgba(0,0,0,.25)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px;border-bottom:1px solid var(--line)}.modal-body{padding:22px}.modal-close{border:0;background:transparent;font-size:1.2rem;padding:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-field label{display:block;font-size:.68rem;color:var(--muted);margin-bottom:6px}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.form-field textarea{min-height:90px;resize:vertical}.form-field.full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.toast{position:fixed;right:26px;bottom:24px;background:#262622;color:#fff;padding:13px 17px;border-radius:9px;box-shadow:var(--shadow);z-index:200;font-size:.78rem;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.empty-note{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.projects-grid{grid-template-columns:repeat(2,1fr)}.finance-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.app-shell{display:block}.sidebar{position:fixed;left:-270px;transition:left .25s ease;width:252px}.sidebar.open{left:0;box-shadow:20px 0 60px rgba(0,0,0,.25)}.menu-button{display:block}.topbar{padding:0 18px}.page{padding:28px 20px 55px}.overview-grid,.revision-layout,.split,.summary-grid,.report-grid,.progress-hero{grid-template-columns:1fr}.summary-card.wide{grid-column:auto}.kpi-grid{grid-template-columns:repeat(2,1fr)}.pipeline{grid-template-columns:repeat(3,1fr)}.stage:nth-child(3){border-right:0}.projects-grid{grid-template-columns:1fr 1fr}.finance-grid{grid-template-columns:repeat(2,1fr)}.command-meta{gap:17px}.lifecycle{overflow-x:auto;justify-content:flex-start}.life-stage{min-width:95px}.qc-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.page-head{display:block}.page-head .button-row,.project-toolbar,.report-filters{margin-top:17px}.kpi-grid,.projects-grid,.finance-grid{grid-template-columns:1fr 1fr}.kpi{min-height:110px}.pipeline{grid-template-columns:1fr 1fr}.stage:nth-child(3){border-right:1px solid var(--line)}.stage:nth-child(2n){border-right:0}.data-table{display:block;overflow-x:auto}.detail-grid,.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.topbar .crumbs{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today{display:none}.command-head{padding:23px 20px}.report-card{min-height:230px}.donut-wrap{gap:15px}.modal-backdrop{padding:10px}.modal-body{padding:18px}}
