:root{--paper:#f4f6f2;--white:#fff;--ink:#172c26;--muted:#708079;--line:#e0e7e1;--forest:#173f35;--forest2:#24594b;--lime:#d5e898;--orange:#e58a55;--red:#a5463e;--amber:#a36b22;--soft:#edf1eb;--shadow:0 12px 35px #173f3512;--sans:'DM Sans',sans-serif;--display:'Manrope',sans-serif;--mono:'DM Mono',monospace}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #8da847;outline-offset:2px}.shell{min-height:100vh;display:grid;grid-template-columns:244px 1fr}.sidebar{height:100vh;position:sticky;top:0;background:#173f35;color:#edf3e9;padding:24px 15px 18px;display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;gap:11px;padding:2px 10px 24px}.brand-mark{width:34px;height:34px;background:var(--lime);color:var(--forest);border-radius:11px;display:grid;place-items:center;font:800 16px var(--display)}.brand-name{font:700 15px var(--display);letter-spacing:-.3px}.brand-sub{font:10px var(--mono);text-transform:uppercase;letter-spacing:1.3px;color:#abc1b7;margin-top:2px}.project-select-label{font:10px var(--mono);text-transform:uppercase;letter-spacing:1.2px;color:#9eb6aa;padding:0 10px 8px}.project-select{width:100%;background:#214b40;color:#fff;border:1px solid #4e7166;border-radius:8px;padding:10px 30px 10px 11px;text-align:left;font-size:12px}.nav-group{margin-top:26px}.nav-label{font:10px var(--mono);text-transform:uppercase;letter-spacing:1.2px;color:#9eb6aa;padding:0 10px 9px}.nav-link{border:0;width:100%;display:flex;align-items:center;gap:12px;color:#c2d1ca;background:transparent;border-radius:7px;text-align:left;padding:10px;margin:2px 0;font-size:13px}.nav-link:hover,.nav-link.active{background:#2d5b4d;color:#fff}.nav-icon{font-size:16px;width:18px;text-align:center}.nav-count{margin-left:auto;background:#42685d;color:#eaf1eb;padding:2px 7px;border-radius:9px;font:10px var(--mono)}.sidebar-bottom{margin-top:auto}.local-note{font-size:11px;color:#b7c9c0;line-height:1.5;border-top:1px solid #426359;padding:14px 9px 10px}.status{display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:11px;color:#d5e4db}.dot{width:7px;height:7px;border-radius:50%;background:#a6d687;display:inline-block;flex:none}.dot.offline{background:#efae72}.main{min-width:0}.topbar{height:69px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,4vw,56px);background:#f7f8f5}.crumbs{font:11px var(--mono);color:var(--muted)}.saved-label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px}.content{max-width:1450px;padding:34px clamp(22px,4vw,56px) 56px;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}.eyebrow{font:10px var(--mono);letter-spacing:1.4px;color:#6f8b79;text-transform:uppercase;margin-bottom:9px}.page-head h1{font:700 clamp(25px,3vw,34px) var(--display);letter-spacing:-1.3px;margin:0}.page-head p{color:var(--muted);margin:7px 0 0;font-size:13px}.head-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{border:1px solid var(--line);border-radius:7px;background:var(--white);color:var(--ink);padding:9px 13px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .15s,border .15s}.btn:hover{background:#f0f4ef;border-color:#bdc9c1}.btn.primary{background:var(--forest);color:#fff;border-color:var(--forest)}.btn.primary:hover{background:#24594b}.btn.ghost{background:transparent}.btn.danger{color:var(--red);border-color:#ebd8d5}.btn.small{padding:6px 9px;font-size:11px}.btn:disabled{opacity:.48;cursor:not-allowed}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:19px}.metric{background:var(--white);border:1px solid var(--line);border-radius:9px;padding:16px 17px;min-height:106px}.metric-label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);align-items:center}.metric-icon{font-size:15px;color:#668474}.metric-value{font:700 25px var(--display);letter-spacing:-.6px;margin:11px 0 2px}.metric-foot{font-size:10px;color:#829088}.split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.9fr);gap:15px}.panel{background:var(--white);border:1px solid var(--line);border-radius:9px;overflow:hidden}.panel-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-title{font:700 13px var(--display)}.panel-sub{font-size:11px;color:var(--muted);margin-top:4px}.panel-body{padding:17px 18px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:650px}.data-table th{text-align:left;padding:11px 13px;background:#f7f8f5;font:10px var(--mono);text-transform:uppercase;letter-spacing:.55px;color:#77857d;white-space:nowrap;border-bottom:1px solid var(--line)}.data-table td{padding:12px 13px;border-bottom:1px solid #edf0ec;vertical-align:middle;font-size:12px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafbf9}.asset-name{font-weight:700;color:var(--ink)}.subcell{font-size:10px;color:#87948d;margin-top:4px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:4px 8px;font-size:10px;font-weight:600;white-space:nowrap;background:#edf1eb;color:#60746a}.badge.green{background:#e8f1df;color:#47713d}.badge.orange{background:#fbefe5;color:#a56636}.badge.red{background:#f8e9e7;color:#9a4b42}.badge.blue{background:#e9eff0;color:#4a6972}.section-title{font:700 15px var(--display);letter-spacing:-.3px;margin:0}.section-sub{font-size:11px;color:var(--muted);margin-top:5px}.bar-chart{height:188px;display:flex;align-items:flex-end;gap:12px;padding:15px 4px 0;border-bottom:1px solid var(--line);position:relative}.bar-chart:before,.bar-chart:after{content:'';position:absolute;left:0;right:0;border-top:1px dashed #e8ece8}.bar-chart:before{top:33%}.bar-chart:after{top:66%}.bar-col{position:relative;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;z-index:1}.bar{width:min(30px,70%);min-height:2px;border-radius:4px 4px 0 0;background:#b8caa5;position:relative}.bar.transition{background:#3d7662}.bar.future{background:#9dbb82}.bar-label{font:9px var(--mono);color:#7c8982;padding-top:7px}.legend{display:flex;gap:16px;margin-top:13px;font-size:10px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.legend i{display:inline-block;width:8px;height:8px;border-radius:2px;background:#b8caa5}.legend i.b{background:#3d7662}.portfolio-list{display:flex;flex-direction:column}.portfolio-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf0ec}.portfolio-row:last-child{border:0}.portfolio-number{width:28px;height:28px;background:#edf1eb;border-radius:50%;display:grid;place-items:center;color:#50695c;font:11px var(--mono)}.portfolio-info{min-width:0;flex:1}.portfolio-info strong{font-size:12px;display:block}.portfolio-info span{font-size:10px;color:var(--muted)}.portfolio-value{text-align:right;font:12px var(--mono)}.portfolio-value small{display:block;font:10px var(--sans);color:var(--muted);margin-top:3px}.callout{background:#eef3e6;border-left:3px solid #809d5a;border-radius:0 7px 7px 0;padding:13px 15px;margin-top:15px;font-size:11px;line-height:1.55;color:#526348}.callout strong{color:#344b35}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:13px}.search{border:1px solid var(--line);background:white;border-radius:7px;padding:9px 11px;width:210px;font-size:12px}.select{border:1px solid var(--line);background:white;border-radius:7px;padding:9px 28px 9px 10px;font-size:11px;color:#4d5d55}.table-tools{margin-left:auto;color:var(--muted);font-size:11px}.row-action{border:0;background:transparent;color:#658274;padding:4px 6px;border-radius:4px;font-size:12px}.row-action:hover{background:#edf1eb}.empty{padding:58px 22px;text-align:center;background:#fff;border:1px dashed #cdd8cf;border-radius:9px}.empty-icon{width:48px;height:48px;margin:0 auto 14px;border-radius:14px;background:#e9f0e6;display:grid;place-items:center;color:var(--forest);font-size:21px}.empty h2{font:700 18px var(--display);margin:0 0 7px}.empty p{max-width:420px;margin:0 auto 18px;color:var(--muted);font-size:12px;line-height:1.6}.tab-row{display:flex;gap:18px;border-bottom:1px solid var(--line);margin-bottom:18px}.tab{padding:10px 1px;border:0;border-bottom:2px solid transparent;background:transparent;color:#77857d;font-size:12px}.tab.active{border-color:var(--forest);color:var(--forest);font-weight:700}.scenario-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.scenario-card{background:white;border:1px solid var(--line);border-radius:9px;padding:17px}.scenario-card h3{font:700 14px var(--display);margin:0}.scenario-card-head{display:flex;justify-content:space-between;gap:8px}.scenario-card p{font-size:11px;color:var(--muted);margin:6px 0 16px}.scenario-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.scenario-stats span{font-size:9px;color:var(--muted);display:block;margin-bottom:4px}.scenario-stats strong{font:600 13px var(--mono)}.scenario-footer{display:flex;justify-content:space-between;align-items:center;margin-top:13px;font-size:10px;color:var(--muted)}.roadmap{position:relative;padding-left:23px}.roadmap:before{content:'';position:absolute;left:7px;top:8px;bottom:5px;width:1px;background:#dce5dc}.roadmap-year{position:relative;margin-bottom:22px}.roadmap-year:before{content:'';position:absolute;left:-20px;top:4px;width:8px;height:8px;border-radius:50%;background:#55816b;border:3px solid #e7eee5}.roadmap-year h3{font:600 12px var(--mono);margin:0 0 8px}.roadmap-item{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #edf0ec;padding:9px 0;font-size:11px}.roadmap-item:first-of-type{border-top:0}.roadmap-cost{font:11px var(--mono);white-space:nowrap}.budget-track{height:5px;background:#edf0ec;border-radius:4px;margin-top:6px;overflow:hidden}.budget-fill{height:100%;background:#648d6e;border-radius:4px}.budget-fill.over{background:#cf7952}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:600;color:#4c5c54}.field input,.field select,.field textarea{border:1px solid #dce4dc;border-radius:6px;background:white;padding:9px 10px;font-size:12px;color:var(--ink);min-width:0}.field textarea{min-height:70px;resize:vertical}.field small{font-size:10px;color:#87938c;line-height:1.4}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.dialog{border:0;border-radius:12px;padding:0;max-width:650px;width:calc(100% - 28px);box-shadow:0 24px 80px #10261f36;color:var(--ink)}dialog::backdrop{background:#10261f75;backdrop-filter:blur(2px)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 22px 16px;border-bottom:1px solid var(--line)}.dialog-head h2{font:700 18px var(--display);margin:0}.dialog-head p{margin:5px 0 0;color:var(--muted);font-size:11px}.dialog-body{padding:20px 22px}.close{border:0;background:transparent;color:#687970;font-size:20px;line-height:1;padding:0 2px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,12px);opacity:0;background:#173f35;color:#fff;padding:11px 16px;border-radius:7px;font-size:12px;z-index:10;transition:.2s;pointer-events:none;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}.notice{border:1px solid #ebdfc7;background:#fbf7ed;border-radius:7px;padding:12px;font-size:11px;line-height:1.55;color:#766044}.tech-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.tech-card{background:white;border:1px solid var(--line);border-radius:9px;padding:16px}.tech-card h3{font:700 13px var(--display);margin:0}.tech-card p{font-size:11px;line-height:1.55;color:var(--muted);margin:8px 0}.tech-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px 0;border-top:1px solid var(--line);font-size:10px}.tech-meta span{color:var(--muted)}.chart-svg{width:100%;height:190px;display:block}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;align-items:start}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 0;border-bottom:1px solid #edf0ec}.setting-row:last-child{border:0}.setting-row strong{font-size:12px}.setting-row p{font-size:10px;color:var(--muted);margin:4px 0 0;line-height:1.45}.weight-input{width:60px;text-align:right;border:1px solid var(--line);padding:7px;border-radius:5px}.disclaimer{font-size:10px;color:#77857d;line-height:1.6}.mobile-top{display:none}
@media(max-width:1040px){.shell{grid-template-columns:210px 1fr}.cards{grid-template-columns:repeat(2,1fr)}.tech-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.shell{display:block}.sidebar{display:none}.mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;height:64px;padding:5px 8px;background:#202020;border-top:1px solid #4f4f4f;justify-content:space-around;align-items:center;z-index:3}.mobile-nav .nav-link{width:auto;display:flex;flex-direction:column;gap:2px;padding:5px 9px;font-size:9px;margin:0}.nav-icon{font-size:16px}.main{padding-bottom:64px}.topbar{height:54px;padding:0 18px}.saved-label{font-size:0}.content{padding:24px 17px 32px}.page-head{align-items:flex-start;flex-direction:column;margin-bottom:20px}.head-actions{width:100%}.split,.report-grid{grid-template-columns:1fr}.scenario-grid{grid-template-columns:1fr}.tech-grid{grid-template-columns:1fr}.cards{gap:9px}.metric{padding:12px;min-height:92px}.metric-value{font-size:21px}.metric-foot{font-size:9px}.bar-chart{gap:5px}.bar-label{font-size:8px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.toolbar{align-items:stretch}.search{flex:1;width:auto}.table-tools{width:100%;margin-left:0}.data-table{min-width:680px}}
@media(max-width:380px){.cards{grid-template-columns:1fr 1fr}.nav-link{padding-left:5px;padding-right:5px}.page-head h1{font-size:26px}.btn{padding:8px 10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Keep long, user-provided project names inside the responsive shell. */
.topbar{height:auto;min-height:69px}
.crumbs{min-width:0;flex:1;overflow-wrap:anywhere;line-height:1.35}
#crumb-project{overflow-wrap:anywhere}
#project-select{white-space:normal;overflow-wrap:anywhere}
.page-head>div{min-width:0;max-width:100%}
.eyebrow{overflow-wrap:anywhere}
@media(max-width:760px){.topbar{min-height:54px;height:auto}}
@media(max-width:900px){.page-head{align-items:flex-start;flex-direction:column}.head-actions{width:100%}.split,.report-grid{grid-template-columns:1fr}}
.row-action{min-height:24px}
@media print{body,.main,.content{background:#fff!important;color:#111!important}.sidebar,.topbar,.head-actions,.toolbar button,.btn,.mobile-nav,.row-action{display:none!important}.shell{display:block}.content{max-width:none;padding:0}.panel,.metric,.scenario-card,.tech-card{break-inside:avoid;border-color:#aaa;background:#fff!important;color:#111!important}.page-head h1,.panel-title,.metric-value,.asset-name,.section-title,.portfolio-info strong{color:#111!important}.data-table th{background:#eee;color:#222}.data-table td,.subcell,.disclaimer,.panel-sub,.metric-foot{color:#444!important}.setting-row{border-color:#aaa}.report-grid{grid-template-columns:1fr 1fr}.data-table{min-width:0}.table-wrap{overflow:visible}.callout,.notice{background:#f3f3f3!important;color:#222!important;border-color:#777}.badge{border:1px solid #888;color:#222!important;background:#fff!important}}
@media(min-width:761px){.mobile-nav{display:none}}.page-head h1{font-size:clamp(32.5px,5vw,64px)}
.status span:last-child{min-width:0;line-height:1.45}
/* Current Gridshift palette */
:root{--color-background:#61675f;--color-text:#e6e8e6;--color-muted:#e2e4e2;--color-accent:#5c6868;--color-on-accent:#677272;--color-border:#66675f;--paper:#61675f;--white:#5c6868;--ink:#e6e8e6;--muted:#e2e4e2;--line:#66675f;--forest:#5c6868;--forest2:#677272;--lime:#677272;--soft:#5c6868;--shadow:0 12px 35px #25292545}
body,.main,.topbar{background:#61675f!important;color:#e6e8e6}.sidebar{background:#3B4343!important;color:#e6e8e6}.project-select{background:#61675f!important;color:#e6e8e6;border-color:#66675f}.project-select-label,.brand-sub,.nav-label,.nav-count,.local-note,.status{color:#e2e4e2!important}.nav-link{color:#e2e4e2}.nav-link:hover,.nav-link.active{background:#677272!important;color:#e6e8e6}.nav-count{background:#61675f}.topbar,.panel-head,.panel,.metric,.empty,.scenario-card,.tech-card,.dialog{border-color:#66675f!important}.topbar{background:#61675f!important}.metric,.panel,.empty,.scenario-card,.tech-card,.dialog{background:#5c6868!important;color:#e6e8e6}.data-table th{background:#677272!important;color:#e2e4e2;border-color:#66675f}.data-table td{color:#e6e8e6;border-color:#66675f}.data-table tbody tr:hover{background:#677272}.page-head h1,.asset-name,.panel-title,.section-title,.portfolio-info strong,.scenario-card h3,.tech-card h3,.dialog-head h2,.setting-row strong,.metric-value{color:#e6e8e6}.eyebrow,.panel-sub,.metric-label,.metric-foot,.subcell,.section-sub,.portfolio-info span,.portfolio-value small,.disclaimer,.table-tools,.crumbs,.saved-label,.field small,.tech-meta span,.scenario-stats span,.scenario-footer{color:#e2e4e2!important}.btn{background:#61675f;color:#e6e8e6;border-color:#66675f}.btn:hover{background:#677272;border-color:#e6e8e6}.btn.primary{background:#5c6868;border-color:#66675f;color:#677272}.btn.primary:hover{background:#677272;color:#e6e8e6}.btn.danger{background:#61675f;color:#e6e8e6;border-color:#66675f}.field input,.field select,.field textarea,.search,.select,.weight-input{background:#61675f;color:#e6e8e6;border-color:#66675f}.field label{color:#e6e8e6}.field input::placeholder,.field textarea::placeholder{color:#e2e4e2}.badge,.badge.green,.badge.orange,.badge.red,.badge.blue{background:#677272!important;color:#e6e8e6!important;border:1px solid #66675f}.dot,.dot.offline{background:#e6e8e6!important}.callout,.notice{background:#677272!important;border-color:#5c6868;color:#e6e8e6}.callout strong{color:#e6e8e6}.empty-icon,.portfolio-number{background:#677272;color:#e6e8e6}.bar-chart,.roadmap:before,.budget-track,.roadmap-item,.setting-row,.scenario-stats,.tech-meta,.tab-row{border-color:#66675f}.bar-chart:before,.bar-chart:after{border-color:#66675f}.bar{background:#e2e4e2}.bar.transition,.bar.future,.budget-fill{background:#5c6868}.legend,.bar-label{color:#e2e4e2}.legend i{background:#e2e4e2}.legend i.b{background:#5c6868}.roadmap-year:before{background:#5c6868;border-color:#677272}.budget-track{background:#677272}.budget-fill.over{background:#e2e4e2}.tab{color:#e2e4e2}.tab.active{color:#e6e8e6;border-color:#5c6868}.status{color:#e6e8e6!important}.local-note{border-color:#66675f;color:#e2e4e2!important}.sidebar-bottom{border-color:#66675f}.saved-label{color:#e2e4e2}.dialog-head{border-color:#66675f}.close{color:#e6e8e6}.toast{background:#5c6868!important;color:#e6e8e6}.chart-svg path[stroke]{stroke:#5c6868}.chart-svg text{fill:#e2e4e2!important}.mobile-nav{background:#5c6868;border-color:#66675f}
[style*="#4f4f4f"]{border-color:#66675f!important}[style*="#bbb"]{color:#e2e4e2!important}
/* User-provided WalletConnect design reference, adapted for an operational planner. */
:root{--paper:#252525;--white:#303030;--ink:#fff;--muted:#bbb;--line:#4f4f4f;--forest:#0666ff;--forest2:#3389ff;--lime:#3389ff;--orange:#e58a55;--soft:#383838;--shadow:0 12px 35px #0006;--sans:Inter,Arial,sans-serif;--display:Exact,Arial,sans-serif}
body,.main,.topbar{background:var(--paper);color:#fff}.sidebar{background:#202020}.brand-mark{background:#0666ff;color:#fff}.brand-sub,.nav-label,.project-select-label{color:#bbb}.project-select{background:#303030;border-color:#4f4f4f}.nav-link{color:#bbb}.nav-link:hover,.nav-link.active{background:#383838;color:#fff}.metric,.panel,.empty,.scenario-card,.tech-card{background:#303030;border-color:#4f4f4f}.panel-head,.data-table td,.scenario-stats,.tech-meta,.setting-row,.tab-row{border-color:#4f4f4f}.data-table th{background:#383838;color:#bbb;border-color:#4f4f4f}.data-table tbody tr:hover{background:#383838}.metric-label,.metric-foot,.subcell,.panel-sub,.section-sub,.portfolio-info span,.portfolio-value small,.data-table td,.disclaimer{color:#bbb}.asset-name,.panel-title,.section-title,.portfolio-info strong,.page-head h1,.scenario-card h3,.tech-card h3,.dialog-head h2,.setting-row strong{color:#fff}.btn{background:#303030;border-color:#666;color:#fff;border-radius:999px;min-height:42px;padding:9px 18px}.btn:hover{background:#404040;border-color:#fff}.btn.primary{background:#0666ff;border-color:#3389ff;color:#fff}.btn.primary:hover{background:#1474ff}.btn.danger{color:#ffb0a7;border-color:#a25a53}.search,.select,.field input,.field select,.field textarea{background:#303030;border-color:#666;color:#fff}.field label{color:#ddd}.field small,.crumbs,.saved-label{color:#bbb}.badge{background:#404040;color:#ddd}.badge.green,.badge.orange,.badge.red,.badge.blue{background:#404040;color:#fff}.bar{background:#4f4f4f}.bar.transition{background:#0666ff}.bar.future{background:#3389ff}.bar-chart{border-color:#666}.bar-chart:before,.bar-chart:after{border-color:#555}.bar-label,.legend{color:#bbb}.legend i{background:#4f4f4f}.legend i.b{background:#0666ff}.callout,.notice{background:#383838;border-color:#0666ff;color:#ddd}.callout strong{color:#fff}.empty-icon,.portfolio-number{background:#383838;color:#fff}.nav-count{background:#4f4f4f;color:#fff}.sidebar-bottom,.local-note{border-color:#4f4f4f;color:#bbb}.status{color:#ddd}.dot{background:#7bd99a}.dot.offline{background:#efae72}.tab{color:#bbb}.tab.active{color:#fff;border-color:#0666ff}.roadmap:before{background:#4f4f4f}.roadmap-year:before{background:#0666ff;border-color:#484848}.roadmap-item{border-color:#4f4f4f}.budget-track{background:#4f4f4f}.budget-fill{background:#0666ff}.budget-fill.over{background:#e58a55}.weight-input{background:#303030;color:#fff;border-color:#666}.topbar{border-color:#4f4f4f}.dialog{background:#303030;color:#fff}.dialog-head{border-color:#4f4f4f}.field input::placeholder,.field textarea::placeholder{color:#aaa}.page-head h1{font-size:clamp(32.5px,5vw,54px);letter-spacing:-1px}.metric-value{color:#fff}.data-table tr:last-child td{border-color:transparent}.tech-meta span,.tech-meta{color:#bbb}.scenario-stats span,.scenario-footer{color:#bbb}.roadmap-year h3{color:#fff}

.page-head p{color:#e2e4e2!important}
.empty{background:#3b4343!important}
.welcome-disclaimer{text-align:center;margin:14px auto 0;max-width:720px}
.metric,.panel,.scenario-card,.tech-card,.empty{background:#3b4343!important}
:root{--color-border:#2d2d2a;--line:#2d2d2a}
*,*::before,*::after{border-color:#2d2d2a!important}
button:focus-visible{outline-color:#fff}
.sidebar .nav-link,.sidebar .nav-link.active,.mobile-nav .nav-link,.mobile-nav .nav-link.active{background:#5c6868!important;color:#fff!important}
.sidebar .nav-link:hover,.mobile-nav .nav-link:hover{background:#0d0f0e!important;color:#fff!important}
@media(max-width:760px){.mobile-nav{background:#3b4343!important}.mobile-nav .nav-link{border:1px solid #66675f!important;box-shadow:0 2px 5px #0005}}
#dialog{background:#3b4343!important;color:#e6e8e6!important;border:1px solid #2d2d2a!important;max-height:calc(100dvh - 24px);overflow:auto}
#dialog .dialog-head h2,#dialog .dialog-head p,#dialog .field label,#dialog .field small{color:#e6e8e6!important}
.form-section{display:block;border:1px solid #2d2d2a;border-radius:8px;padding:12px;background:#3b4343}
.form-section>summary{cursor:pointer;color:#e6e8e6;font-weight:700;font-size:12px;list-style-position:inside}
.form-section>.section-note{color:#e2e4e2;font-size:10px;line-height:1.45;margin:7px 0 0 20px}
.form-section[open]>.form-grid{margin-top:12px}

/* Distinguish workflow states while retaining the shared neutral interface palette. */
.badge{background:#677070!important;color:#fff!important;border:1px solid #2d2d2a;}
.badge.green{background:#2f5145!important;color:#d9f2df!important}
.badge.orange{background:#63492c!important;color:#ffe2ba!important}
.badge.red{background:#623a3a!important;color:#ffd9d9!important}
.badge.blue{background:#334d5e!important;color:#d9efff!important}
.badge.green::before{content:'✓';font-weight:700}
.badge.orange::before{content:'!';font-weight:700}
.badge.red::before{content:'×';font-weight:700}
.badge.blue::before{content:'i';font-weight:700}
.dot{background:#72c18b!important}
.dot.offline{background:#e0ac67!important;border-radius:2px}
.btn.danger::before{content:'⚠';color:#ffd9d9;margin-right:1px}
.btn.primary{box-shadow:inset 0 0 0 2px #e6e8e6}
.tab-row{display:flex;flex-wrap:wrap;gap:8px;border:0;margin-bottom:18px}
#view .tab{min-height:42px;padding:9px 15px;border:1px solid #2d2d2a!important;border-radius:999px;background:#677070!important;color:#fff!important;font-weight:600;white-space:normal;text-align:center}
#view .tab.active{box-shadow:inset 0 0 0 2px #e6e8e6;font-weight:700}
#view .tab:hover{background:#756d6d!important}
.scenario-repro{background:#3b4343!important;border:1px solid #2d2d2a!important;border-radius:9px;color:#e6e8e6!important;padding:17px;margin-top:15px}
.scenario-repro strong{color:#e6e8e6!important}
@media(max-width:900px){.scenario-footer{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.scenario-footer>span{max-width:100%;overflow-wrap:anywhere}.scenario-footer>div{display:flex;flex-wrap:wrap;gap:6px;max-width:100%}.scenario-footer .btn{white-space:nowrap}}
@media(max-width:600px){.scenario-stats{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}.scenario-stats>div{min-width:0}.scenario-stats>div:nth-child(3){grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.scenario-stats>div:nth-child(3)>span{margin-bottom:0}.scenario-stats strong{white-space:nowrap}.scenario-footer{align-items:stretch}.scenario-footer>div{width:100%;justify-content:space-between}}
.inventory-table th:last-child,.inventory-table td:last-child{min-width:96px;text-align:center}
.asset-actions{display:flex;flex-direction:column;align-items:center;gap:7px}
.asset-actions .row-action{min-width:70px;min-height:32px;padding:6px 10px;border-radius:999px}
.inventory-table{table-layout:fixed;min-width:880px}
.inventory-table th,.inventory-table td{text-align:center!important;vertical-align:middle;overflow-wrap:anywhere}
.inventory-table th{white-space:normal;overflow-wrap:normal;line-height:1.3}
.inventory-table th:nth-child(1){width:15%}.inventory-table th:nth-child(2){width:14%}.inventory-table th:nth-child(3){width:13%}.inventory-table th:nth-child(4){width:10%}.inventory-table th:nth-child(5){width:17%}.inventory-table th:nth-child(6){width:12%}.inventory-table th:nth-child(7){width:10%}.inventory-table th:nth-child(8){width:9%}
.inventory-table .subcell{margin-top:5px}
.scenario-card{container-type:inline-size}
@container (max-width: 380px){.scenario-stats{grid-template-columns:minmax(0,1fr);gap:0}.scenario-stats>div{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px}.scenario-stats>div:nth-child(3){grid-column:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.scenario-stats>div>span,.scenario-stats>div:nth-child(3)>span{margin:0;font-size:10px}.scenario-stats strong{white-space:nowrap;font-size:13px}.scenario-stats>div+div{margin-top:8px;padding-top:8px;border-top:1px solid #2d2d2a}.scenario-footer{align-items:stretch}.scenario-footer>span{text-align:center;width:100%;max-width:100%;overflow-wrap:anywhere}.scenario-footer>div{width:100%;justify-content:center;gap:7px}}

@media(max-width:760px){.scenario-footer>span{text-align:center;width:100%}.scenario-footer>div{justify-content:center;width:100%}}
.scenario-head-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:230px;max-width:100%;margin-left:auto}
.scenario-head-actions .btn{width:100%;min-height:42px;white-space:nowrap}
@media(max-width:760px){.scenario-head-actions{margin-left:0}}

/* A contextual next action keeps the workflow connected without duplicating sidebar navigation. */
.screen-transition{display:flex;justify-content:flex-end;margin-top:24px;padding-top:15px;border-top:1px solid #2d2d2a}
.screen-transition .btn{min-width:180px}
@media(max-width:600px){.screen-transition{margin-top:18px;padding-top:12px}.screen-transition .btn{width:100%}}
.btn.panel-shortcut{white-space:nowrap;flex:none;min-height:42px;padding:9px 13px;font-size:12px}
.workspace-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:20px;margin:0}
.workspace-details>div{min-width:0;padding:10px 0;border-bottom:1px solid #2d2d2a}
.workspace-details>div:nth-last-child(-n+3){border-bottom:0}
#view .workspace-details dt{font-size:10px;line-height:1.35;color:#c8cac8}
#view .workspace-details dd{margin:4px 0 0;font-size:13px;line-height:1.35;font-weight:700;color:#e6e8e6;overflow-wrap:anywhere}
@media(max-width:760px){.workspace-details{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.workspace-details>div{border-bottom:1px solid #2d2d2a}.workspace-details>div:nth-last-child(-n+2){border-bottom:0}}

/* Keep mobile navigation targets uniform regardless of label length. */
@media(max-width:760px){.mobile-nav{display:flex;gap:6px}.mobile-nav .nav-link{flex:1 1 0;width:0;min-width:0;height:48px;padding:5px 2px;justify-content:center;white-space:nowrap;font-size:clamp(9px,2.5vw,10px)}.mobile-nav .nav-icon{width:18px;height:17px;line-height:17px;flex:none}}
.bar-chart{padding-left:12px;padding-right:12px}
.bar.transition,.bar.future,.legend i.b{background:#83a5b3!important}
@media(max-width:600px){.bar-chart{width:calc(100% - 20px);margin-left:auto;margin-right:auto}}

/* Give the cumulative comparison a visible, readable place in the report. */
.trajectory-panel{margin:0 0 16px}
.trajectory-panel .panel-head{padding:18px 22px 14px;border-bottom:0!important}
.trajectory-panel .panel-title{font-size:16px}
.trajectory-panel .panel-sub{font-size:12px}
.trajectory-panel .panel-body{padding:0 22px 20px}
.trajectory-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 4px}
.trajectory-summary>div{min-width:0;padding:11px 13px;border:1px solid #858e8b;border-radius:7px;background:#61675f}
.trajectory-summary span{display:block;color:#e2e4e2;font-size:11px;line-height:1.35}
.trajectory-summary strong{display:block;margin-top:4px;color:#fff;font:700 19px var(--display);letter-spacing:-.3px;overflow-wrap:anywhere}
.trajectory-summary small{font:600 11px var(--sans);letter-spacing:0}
.trajectory-summary .trajectory-avoided{border-color:#83a5b3;background:#46585a}
.trajectory-chart{margin-top:10px}
.trajectory-unit{margin:0 0 6px calc(var(--trajectory-axis-width,34px) + 8px);color:#e6e8e6;font:600 11px var(--mono)}
.trajectory-plot{display:grid;grid-template-columns:var(--trajectory-axis-width,34px) minmax(0,1fr);gap:8px;align-items:stretch}
.trajectory-ylabels{white-space:nowrap}
.trajectory-ylabels{height:245px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:0 0 0;color:#e6e8e6;font:10px var(--mono)}
.trajectory-svg{width:100%;height:245px;overflow:visible}
.trajectory-svg .chart-grid{stroke:#8c9692!important;stroke-width:1;stroke-dasharray:3 5}
.chart-svg.trajectory-svg path.chart-series{fill:none!important;stroke-width:4!important;stroke-linecap:round;stroke-linejoin:round}
.chart-svg.trajectory-svg path.chart-series-baseline{stroke:#e4c778!important}
.chart-svg.trajectory-svg path.chart-series-scenario{stroke:#83c7df!important}
.trajectory-legend{gap:22px;margin-top:0;font-size:12px;color:#f0f1ef}
.trajectory-xlabels{display:flex;justify-content:space-between;margin:6px 0 12px calc(var(--trajectory-axis-width,34px) + 8px);color:#e6e8e6;font:11px var(--mono)}
.trajectory-legend i{width:11px;height:11px;border-radius:3px;background:#e4c778!important}
.trajectory-legend i.b{background:#83c7df!important}
@media(max-width:600px){.trajectory-panel .panel-head{padding:15px 15px 11px}.trajectory-panel .panel-body{padding:0 12px 16px}.cards.report-metrics,.trajectory-summary{grid-template-columns:1fr}.trajectory-summary{gap:6px}.trajectory-summary>div{padding:9px 8px}.trajectory-summary span{font-size:10px}.trajectory-summary strong{font-size:15px}.trajectory-summary small{font-size:9px}.trajectory-ylabels,.trajectory-svg{height:210px}.trajectory-legend{flex-wrap:wrap;gap:10px 18px;font-size:11px}.trajectory-xlabels{font-size:10px}}

/* Keep the chart and values table available through one shared view switch. */
.annual-avoided-view{display:block;padding:14px 15px 16px}
.annual-avoided-guide{display:flex;justify-content:space-between;gap:8px;margin-bottom:9px;color:#e2e4e2;font-size:10px;line-height:1.35}
.annual-avoided-row{display:grid;grid-template-columns:40px minmax(0,1fr) 66px;align-items:center;gap:8px;min-height:29px}
.annual-avoided-year,.annual-avoided-value{font:10px var(--mono);white-space:nowrap}
.annual-avoided-value{text-align:right}
.annual-avoided-track{height:8px;position:relative;border-radius:5px;background:#677272;overflow:hidden}
.annual-avoided-track:before{content:'';position:absolute;z-index:1;left:50%;top:0;bottom:0;width:1px;background:#e6e8e6}
.annual-avoided-fill{position:absolute;top:1px;bottom:1px;border-radius:4px}
.annual-avoided-fill.positive,.annual-avoided-legend i.positive{background:#83c7df}
.annual-avoided-fill.negative,.annual-avoided-legend i.negative{background:#e58a55}
.annual-avoided-value.positive{color:#aee4f5}
.annual-avoided-value.negative{color:#ffc09a}
.annual-avoided-legend{display:flex;gap:15px;margin-top:12px;color:#e2e4e2;font-size:10px}
.annual-avoided-legend span{display:flex;align-items:center;gap:6px}
.annual-avoided-legend i{display:inline-block;width:9px;height:9px;border-radius:2px}
.annual-view-switch{display:flex;gap:4px;width:max-content;max-width:calc(100% - 36px);margin:14px 18px 0;padding:4px;border:1px solid #858e8b;border-radius:8px;background:#61675f}
.annual-view-tab{min-width:0;min-height:34px;padding:6px 12px;border:0;border-radius:5px;background:transparent;color:#e2e4e2;font-size:11px;font-weight:600;text-align:center;white-space:normal;overflow-wrap:anywhere;line-height:1.2}
.annual-view-tab:hover{background:#677272}
.annual-view-tab.active{background:#83a5b3;color:#172c26}
.annual-view-tab:focus-visible{outline:2px solid #e6e8e6;outline-offset:1px}
.annual-view-panel[hidden]{display:none}
@media(max-width:760px){.annual-view-switch{width:calc(100% - 24px);max-width:none;margin:12px 12px 0}.annual-view-tab{flex:1 1 0;padding-inline:5px}.annual-avoided-row{grid-template-columns:38px minmax(0,1fr) 60px;gap:6px}.annual-avoided-view{padding:14px 12px 16px}}

.inventory-mobile-list,.ranking-mobile-list{display:none}
@media(max-width:760px){
  .inventory-table-wrap,.candidate-ranking-table{display:none}
  .inventory-mobile-list,.ranking-mobile-list{display:flex;flex-direction:column;gap:6px;padding:9px}
  .inventory-mobile-card,.ranking-mobile-card{min-width:0;padding:9px 10px;border:1px solid #66675f;border-radius:7px;background:#61675f}
  .inventory-mobile-top,.ranking-mobile-main{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
  .inventory-mobile-identity,.ranking-mobile-identity{display:flex;align-items:center;gap:8px;min-width:0}
  .inventory-mobile-identity{flex-direction:column;align-items:flex-start;gap:2px}
  .inventory-mobile-identity strong,.ranking-mobile-identity strong{font-size:11px;line-height:1.2}
  .inventory-mobile-identity>span,.ranking-mobile-identity small{color:#e2e4e2;font-size:9px;line-height:1.25;overflow-wrap:anywhere}
  .inventory-mobile-rating{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
  .inventory-mobile-rating>strong{font:600 10px var(--mono);white-space:nowrap}
  .inventory-mobile-rating .badge,.ranking-mobile-meta .badge{padding:2px 6px;font-size:9px}
  .inventory-mobile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:8px;padding-top:7px;border-top:1px solid #747c78}
  .inventory-mobile-stats>div,.ranking-mobile-meta>div{display:flex;flex-direction:column;gap:2px;min-width:0}
  .inventory-mobile-stats small,.ranking-mobile-meta small{color:#e2e4e2;font-size:9px;line-height:1.2}
  .inventory-mobile-stats strong,.ranking-mobile-meta strong{font-size:10px;line-height:1.2;overflow-wrap:anywhere}
  .inventory-mobile-actions{display:flex;justify-content:flex-end;gap:4px;margin-top:5px}
  .inventory-mobile-actions .row-action{min-width:0;min-height:28px;padding:4px 9px;font-size:10px}
  .ranking-mobile-position{width:20px;height:20px;flex:none;display:grid;place-items:center;border-radius:50%;background:#677272;color:#fff;font:10px var(--mono)}
  .ranking-mobile-identity>div{display:flex;flex-direction:column;gap:2px;min-width:0}
  .ranking-mobile-score{display:flex;align-items:baseline;gap:4px;flex:none}
  .ranking-mobile-score strong{font:700 14px var(--mono)}
  .ranking-mobile-score small{color:#e2e4e2;font-size:9px}
  .ranking-mobile-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:7px;padding-top:6px;border-top:1px solid #747c78}
}

/* Preserve clear action hierarchy instead of applying one style to every button. */
.btn{background:#61675f!important;color:#e6e8e6!important;border:1px solid #858e8b!important}
.btn:hover{background:#677272!important;color:#fff!important;border-color:#e6e8e6!important}
.btn.primary{background:#83a5b3!important;color:#172c26!important;border-color:#83a5b3!important;box-shadow:none!important}
.btn.primary:hover{background:#a5c8d5!important;color:#172c26!important;border-color:#a5c8d5!important}
.btn.danger{background:#623a3a!important;color:#ffd9d9!important;border-color:#946060!important}
.btn.danger:hover{background:#754646!important;color:#fff!important}
.row-action{background:transparent!important;color:#e6e8e6!important}
.row-action:hover{background:#677272!important;color:#fff!important}
.row-action.delete{color:#ffe0cf!important}
.row-action.delete:hover{background:#623a3a!important;color:#fff!important}
#dialog .close{background:transparent!important;color:#e6e8e6!important}
#update-app[hidden]{display:none!important}
.mobile-menu-actions{display:grid;gap:8px}
.mobile-menu-actions .btn{justify-content:flex-start;min-height:44px}
.mobile-nav .nav-link{min-height:48px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Selected Gridshift circuit mark. */
.brand-mark{display:block;flex:none;object-fit:contain;background:transparent;border-radius:0}

/* Center the standalone logo above the workspace selector. */
.sidebar .brand{justify-content:center;padding:0 10px 24px}
.sidebar .brand-mark{width:88px;height:88px}
.review-status-notice{border-left:4px solid #e58a55;border-color:#e58a55;background:#46585a;color:#fff;margin-bottom:15px}
.review-status-notice strong{color:#fff}
.data-table th{color:#fff}
.metric-icon{color:#e2e4e2}
.callout,.notice{color:#fff!important}
a,a:visited{color:#fff}
.metric{min-width:0}
.metric-value{min-width:0;overflow-wrap:anywhere}
@media(max-width:1040px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
