﻿:root{--ink:#f4f8f5;--muted:#a7b2ac;--line:#26312b;--paper:#000;--panel:#090c0a;--panel-raised:#101510;--panel-soft:#151c17;--evergreen:#f4f8f5;--teal:#4dd7ca;--green:#50e890;--gold:#f6bd4b;--lavender:#a99aff;--content:1440px}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#000;font-family:"Sora",Arial,sans-serif;font-size:15px;line-height:1.55}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}h1,h2,h3,.brand,.metric-value{font-family:"Space Grotesk","Sora",sans-serif;letter-spacing:0}h1,h2,h3,p{overflow-wrap:anywhere}
.app-shell{min-height:100vh;display:grid;grid-template-columns:228px minmax(0,1fr);background:#000}.sidebar{position:sticky;top:0;height:100vh;padding:28px 20px;color:#dce6e0;background:#050605;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.brand{display:flex;align-items:center;gap:10px;color:#fff;font-size:19px;text-decoration:none}.brand span{width:34px;height:34px;display:grid;place-items:center;color:#000;background:var(--teal);border-radius:7px;font-weight:700}.brand-note{margin:0 0 24px 44px;color:#839088;font-size:12px}.sidebar nav{display:grid;gap:5px}.nav-link{min-height:42px;display:flex;align-items:center;padding:0 12px;color:#a5b2aa;border-left:2px solid transparent;font-weight:600;text-decoration:none}.nav-link:hover,.nav-link.active{color:#fff;border-left-color:var(--teal);background:#111914}.sidebar-status{margin-top:auto;display:flex;align-items:center;gap:8px;color:#aebbb3;font-size:12px}.live-dot,.connection i{width:8px;height:8px;display:inline-block;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(80,232,144,.12)}
main{min-width:0;max-width:var(--content);width:100%;margin:0 auto}.topbar{min-height:92px;padding:18px 38px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:#000}.title-group{display:flex;align-items:baseline;gap:14px}.title-group .eyebrow{margin:0}.topbar h1{margin:0;color:#fff;font-size:24px}.eyebrow{margin:0 0 7px;color:var(--teal);font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.header-actions{display:flex;align-items:center;gap:14px}.connection{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:700}.button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border:1px solid transparent;border-radius:6px;font-size:13px;font-weight:800;text-decoration:none;transition:transform 160ms ease,background-color 160ms ease}.button:hover{transform:translateY(-1px)}.primary{color:#00110d;background:var(--teal)}.secondary{color:#edf6f0;background:#101510;border-color:#435249}.button:focus-visible,.icon-button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.overview{min-height:242px;position:relative;display:grid;grid-template-columns:minmax(0,.83fr) minmax(340px,1.17fr);align-items:center;gap:36px;padding:40px 38px;overflow:hidden;color:#e8f3ec;background:#000;border-bottom:1px solid var(--line)}.overview h2{max-width:620px;margin:0;color:#fff;font-size:42px;line-height:1.05}.overview p:not(.eyebrow){max-width:640px;margin:15px 0 0;color:#b8c7bf;font-size:16px}.overview .eyebrow{color:var(--green)}.signal-flow{height:160px;position:relative;overflow:hidden}.signal-flow span{width:74%;height:1px;position:absolute;right:-10%;background:#67e9b3;transform-origin:right center;animation:flow 4.8s ease-in-out infinite}.signal-flow span:nth-child(1){top:14%;transform:rotate(-18deg)}.signal-flow span:nth-child(2){top:26%;transform:rotate(11deg);animation-delay:.6s}.signal-flow span:nth-child(3){top:42%;transform:rotate(-9deg);animation-delay:1.2s}.signal-flow span:nth-child(4){top:58%;transform:rotate(19deg);animation-delay:1.8s}.signal-flow span:nth-child(5){top:72%;transform:rotate(-13deg);animation-delay:2.4s}.signal-flow span:nth-child(6){top:84%;transform:rotate(7deg);animation-delay:3s}
.metrics{display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--line);background:#070908}.metric{min-height:104px;padding:20px 18px;border:0;border-right:1px solid var(--line);color:var(--ink);background:transparent;text-align:left;transition:background-color 180ms ease}.metric:last-child{border-right:0}.metric:hover{background:#121914}.metric-value{display:block;color:var(--metric-color,var(--teal));font-size:32px;font-weight:700;line-height:1;transform-origin:center;transform-style:preserve-3d;will-change:transform,filter,opacity}.metric-value.is-counting{animation:counter-roll 560ms cubic-bezier(.2,.8,.25,1) both}.metric-label{display:block;margin-top:8px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.workspace,.timeline-section{padding:48px 38px;background:#000}.workspace-header{display:flex;justify-content:space-between;align-items:end;gap:20px}.workspace h2,.timeline-section h2{margin:0;color:#fff;font-size:30px;line-height:1.1}.search input{width:268px;min-height:42px;padding:0 13px;border:1px solid #3b4941;border-radius:6px;background:#080b09;color:#fff}.search input::placeholder{color:#98a69e}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:28px 0}.filter{min-height:35px;padding:6px 11px;border:1px solid #3a4740;border-radius:6px;color:#bcc8c1;background:#0b0f0d;font-size:12px;font-weight:800}.filter.active,.filter:hover{color:#000;background:var(--teal);border-color:var(--teal)}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:26px;align-items:start}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-card{min-height:248px;display:flex;flex-direction:column;position:relative;padding:20px;border:1px solid #29342e;border-top:3px solid var(--project-color);border-radius:7px;background:var(--panel);box-shadow:0 8px 22px rgba(0,0,0,.25);cursor:pointer;transition:transform 180ms ease,box-shadow 180ms ease,border-color 180ms ease}.project-card:hover,.project-card.selected{transform:translateY(-3px);box-shadow:0 16px 32px rgba(0,0,0,.45)}.project-card.selected{outline:2px solid var(--project-color);outline-offset:1px}.project-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:start}.project-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;color:#fff;background:var(--project-color);border-radius:7px;font-family:"Space Grotesk",sans-serif;font-size:13px;font-weight:800}.project-title{min-width:0}.project-head h3{margin:0;color:#fff;font-size:18px;line-height:1.1;overflow-wrap:anywhere;word-break:normal}.project-head p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45;overflow-wrap:anywhere}.phase{max-width:118px;margin:0;padding:5px 7px;overflow:hidden;border-radius:5px;color:var(--project-color);background:color-mix(in srgb,var(--project-color) 16%,#080a09);font-size:10px;font-weight:800;text-align:center;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.project-meta{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0 13px}.chip{padding:4px 6px;border-radius:4px;color:#c9d4cd;background:#1a231e;font-size:10px;font-weight:800}.progress-row{display:flex;justify-content:space-between;align-items:center;color:#d8e2db;font-size:11px;font-weight:800}.progress-track{height:6px;margin-top:7px;overflow:hidden;border-radius:6px;background:#27322c}.progress-track span{height:100%;display:block;border-radius:6px;background:var(--project-color)}.card-footer{display:flex;gap:8px;align-items:center;margin-top:auto;padding-top:18px}.card-link{color:var(--teal);font-size:12px;font-weight:800;text-decoration:none}.card-link.muted{color:#9aa79f}
.detail-panel{min-height:480px;position:sticky;top:18px;padding:22px;border:1px solid #334038;border-radius:7px;background:#0b100d}.detail-empty{color:var(--muted);font-size:13px}.detail-title{display:flex;align-items:center;gap:10px}.detail-title h3{margin:0;color:#fff;font-size:22px}.detail-section{margin-top:22px}.detail-section h4{margin:0 0 9px;color:#98aaa0;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.milestone{display:flex;gap:9px;align-items:flex-start;padding:7px 0;border-bottom:1px solid #27322c;color:#e1e9e3;font-size:12px}.milestone i{width:9px;height:9px;flex:0 0 9px;margin-top:5px;border:1px solid #819187;border-radius:50%}.milestone.done i{border-color:var(--project-color);background:var(--project-color)}.milestone.current{font-weight:800}.edit-row{display:grid;grid-template-columns:1fr 86px;gap:8px}.edit-row select,.edit-row input{min-height:40px;padding:0 9px;border:1px solid #405047;border-radius:5px;background:#070a08;color:#fff}.detail-actions{display:grid;gap:8px;margin-top:20px}.detail-actions .document-link{color:var(--teal);font-size:12px;font-weight:800}.detail-note{margin:0;color:#a7b4ac;font-size:12px;line-height:1.5}.empty{grid-column:1/-1;padding:36px;border:1px dashed #53625a;color:var(--muted);text-align:center}
.workspace-tools{display:flex;align-items:end;gap:10px;flex-wrap:wrap;justify-content:flex-end}.portfolio-summary{margin:7px 0 0;color:var(--muted);font-size:12px}.portfolio-move{min-height:32px;padding:6px 9px;font-size:10px;white-space:nowrap}.card-footer .portfolio-move{margin-left:auto}.tiny{min-height:30px}.radar-form{padding:26px}.dialog-lead{margin:18px 0;color:var(--muted);font-size:13px}.radar-list{display:grid;gap:10px;max-height:min(62vh,620px);overflow:auto;padding:2px}.radar-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:14px;border:1px solid #334038;border-left:3px solid var(--project-color);border-radius:6px;background:#101510;cursor:pointer}.radar-item:hover{border-color:var(--project-color);background:#151d17}.radar-item-main{display:flex;align-items:center;gap:10px;min-width:0}.radar-item-main h3{margin:0;color:#fff;font-size:15px;overflow-wrap:anywhere}.radar-item-main p{margin:3px 0 0;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.radar-item-meta{display:grid;justify-items:end;gap:6px;min-width:88px}.radar-item-meta strong{color:#e8f2ea;font-size:12px}.radar-item .phase{max-width:105px}.radar-form footer{margin-top:20px}
.timeline-section{border-top:1px solid var(--line);background:#050705}.timeline{display:grid;gap:10px;margin-top:28px}.timeline-row{display:grid;grid-template-columns:150px 1fr 112px;gap:14px;align-items:center;padding:4px 0}.timeline-name{color:#e5ede7;font-size:13px;font-weight:800}.timeline-track{height:14px;position:relative;overflow:hidden;border-radius:5px;background:#27322c}.timeline-bar{height:100%;border-radius:5px;background:var(--project-color)}.timeline-date{color:#9eaba3;font-size:11px;text-align:right}
.not-measured{background:repeating-linear-gradient(135deg,#27322c 0,#27322c 7px,#202a24 7px,#202a24 14px)}.source-note{margin-top:10px;color:#78d8bd}.o2nexus-footer{padding:26px 38px 34px;border-top:1px solid var(--line);color:#829088;background:#000;font-size:12px;font-weight:700;letter-spacing:.02em}
.timeline-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.timeline-status{display:grid;gap:4px;justify-items:end;color:#9eaba3;font-size:11px;text-align:right}.timeline-status strong{color:#fff;font-size:13px}.timeline-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:22px;color:#9eaba3;font-size:11px}.timeline-legend span{display:inline-flex;align-items:center;gap:7px}.legend-swatch{display:inline-block;width:18px;height:4px;border-radius:4px;background:#35a7ff}.legend-swatch.expected{width:2px;height:14px;border-radius:0;background:#fff}.legend-swatch.today{width:2px;height:14px;border-radius:0;background:#ffcc66}.timeline{gap:14px}.timeline-row{grid-template-columns:minmax(190px,220px) minmax(300px,1fr) minmax(170px,210px);gap:20px;min-height:54px;padding:8px 0}.timeline-project{display:grid;gap:6px;min-width:0}.timeline-name{overflow-wrap:anywhere}.timeline-phase{width:max-content;max-width:100%;padding:3px 6px;overflow:hidden;border:1px solid color-mix(in srgb,var(--project-color) 60%,#26332d);border-radius:4px;color:var(--project-color);font-size:9px;font-weight:800;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap}.timeline-main{min-width:0}.timeline-track{height:18px;overflow:visible;position:relative;border-radius:5px;background:#27322c}.timeline-track.no-calendar{background:repeating-linear-gradient(135deg,#27322c 0,#27322c 7px,#202a24 7px,#202a24 14px)}.timeline-track .timeline-bar{position:relative;z-index:1;height:100%;display:block;min-width:0;border-radius:5px;background:var(--project-color);transition:width 500ms ease}.timeline-track.not-measured .timeline-bar{display:none}.timeline-expected{position:absolute;z-index:3;top:-4px;width:2px;height:26px;background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.12)}.timeline-today{position:absolute;z-index:4;top:-7px;bottom:-7px;width:2px;background:#ffcc66;box-shadow:0 0 10px rgba(255,204,102,.6)}.timeline-today::after{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;border-radius:50%;background:#ffcc66}.timeline-today-label{position:absolute;z-index:5;top:-25px;transform:translateX(-50%);color:#ffcc66;font-size:9px;font-weight:800;white-space:nowrap}.timeline-range{display:flex;justify-content:space-between;gap:10px;margin-top:7px;color:#718078;font-size:10px}.timeline-state{display:grid;gap:3px;justify-items:end;min-width:0;text-align:right}.timeline-state strong{color:#fff;font-size:14px}.timeline-pace{font-size:10px;font-weight:800}.timeline-pace.late{color:#ff7b72}.timeline-pace.ahead{color:#65e4a4}.timeline-pace.on-track{color:#ffcc66}.timeline-pace.neutral{color:#9eaba3}.timeline-state .timeline-date{overflow-wrap:anywhere}.not-measured-bar{width:0!important}@media(max-width:850px){.timeline-header{align-items:flex-start;flex-direction:column}.timeline-status{justify-items:start;text-align:left}.timeline-row{grid-template-columns:minmax(140px,180px) minmax(220px,1fr) minmax(130px,160px);gap:12px}}@media(max-width:580px){.timeline-legend{gap:10px}.timeline-row{grid-template-columns:1fr;gap:8px;padding:14px 0}.timeline-project{display:flex;align-items:center;justify-content:space-between;gap:10px}.timeline-state{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left}.timeline-state .timeline-date{margin-left:auto;text-align:right}.timeline-today-label{top:-23px}}
dialog{width:min(680px,calc(100% - 28px));padding:0;border:1px solid #405047;border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.72);color:#fff;background:#0a0d0b}dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(5px)}dialog form{padding:26px;background:#0a0d0b}dialog header,dialog footer{display:flex;align-items:center;justify-content:space-between;gap:16px}dialog h2{margin:0;color:#fff;font-size:28px}.icon-button{width:40px;height:40px;border:1px solid #3c4942;border-radius:6px;color:#fff;background:#161d18;font-size:24px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:22px 0}.form-grid label{display:grid;gap:6px;color:#c2cec6;font-size:12px;font-weight:800}.form-grid input,.form-grid select{min-height:42px;padding:0 10px;border:1px solid #405047;border-radius:5px;background:#070a08;color:#fff}.form-grid .full{grid-column:1/-1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@keyframes flow{0%,100%{opacity:.15;transform-origin:right center}50%{opacity:.92;transform-origin:left center}}@keyframes counter-roll{0%{opacity:.2;filter:blur(2px);transform:perspective(180px) rotateX(-78deg) translateY(10px)}62%{opacity:1;filter:blur(0);transform:perspective(180px) rotateX(10deg) translateY(-2px)}100%{opacity:1;filter:blur(0);transform:perspective(180px) rotateX(0) translateY(0)}}
@media(max-width:680px){.workspace-tools{width:100%;align-items:stretch;justify-content:stretch;flex-direction:column}.workspace-tools .button,.workspace-tools .search input{width:100%}.radar-item{grid-template-columns:1fr;gap:10px}.radar-item-meta{display:flex;justify-content:space-between;align-items:center}.radar-item .portfolio-move{width:100%}.card-footer{align-items:flex-start;flex-wrap:wrap}.card-footer .portfolio-move{margin-left:0;width:100%}}
.header-actions{flex-wrap:wrap}.admin-access{white-space:nowrap}@media(max-width:1120px){.metrics{grid-template-columns:repeat(3,1fr)}.metric:nth-child(3){border-right:0}.workspace-grid{grid-template-columns:1fr}.detail-panel{position:relative;top:auto;min-height:auto}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.overview h2{font-size:36px}}@media(max-width:850px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative;padding:14px 20px;display:grid;grid-template-columns:auto 1fr auto;align-items:center}.brand-note{display:none}.sidebar nav{display:flex;justify-content:center;gap:4px}.nav-link{min-height:34px;padding:0 8px;border-left:0;border-bottom:2px solid transparent;font-size:12px}.nav-link:hover,.nav-link.active{border-left:0;border-bottom-color:var(--teal);background:transparent}.sidebar-status{margin:0}.topbar,.workspace,.timeline-section{padding-left:24px;padding-right:24px}.overview{grid-template-columns:1fr;padding:34px 24px}.signal-flow{height:72px}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.sidebar{grid-template-columns:1fr;gap:10px}.sidebar nav{justify-content:flex-start;overflow:auto}.sidebar-status{display:none}.topbar{min-height:78px;padding:14px 16px;align-items:flex-start;flex-direction:column}.header-actions{width:100%;justify-content:flex-end;gap:8px}.title-group .eyebrow,.connection{display:none}.topbar h1{font-size:21px}.topbar .button{min-height:38px;padding:8px 10px;font-size:11px}.overview,.workspace,.timeline-section{padding-left:16px;padding-right:16px}.overview h2{font-size:30px}.metrics{grid-template-columns:repeat(2,1fr)}.metric:nth-child(odd){border-right:1px solid var(--line)}.metric:nth-child(even){border-right:0}.workspace-header{align-items:stretch;flex-direction:column}.search input{width:100%}.projects-grid{grid-template-columns:1fr}.project-head{grid-template-columns:42px minmax(0,1fr)}.phase{grid-column:2;grid-row:2;justify-self:start;max-width:100%;margin-top:8px}.project-card{min-height:230px}.timeline-row{grid-template-columns:1fr;gap:5px;padding:12px 0;border-bottom:1px solid #29342e}.timeline-date{text-align:left}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

