/* Shared appearance tokens. Theme selection is applied before the first paint. */
:root{--bg:#f3f5fc;--surface:#fff;--surface-soft:#f7f8fd;--surface-hover:#f0effd;--ink:#27314a;--muted:#78849d;--line:#e3e7f1;--green:#6857df;--accent:#6857df;--accent-soft:#eeebff;--dark:#171d35;--orange:#b97b28;--red:#ba4b5c;--success:#188c73;--hero-start:#eeebff;--hero-end:#e8f0ff;--hero-ink:#313461;--shadow:0 5px 22px #293b6b06;color:var(--ink);color-scheme:light}
:root[data-theme=dark]{--bg:#0e1423;--surface:#172035;--surface-soft:#1c2740;--surface-hover:#232e49;--ink:#e7ecf8;--muted:#a1afc9;--line:#2b3750;--green:#a293ff;--accent:#a293ff;--accent-soft:#302b51;--dark:#101627;--orange:#e6b760;--red:#ef8c9b;--success:#72d6bd;--hero-start:#272647;--hero-end:#1d2c47;--hero-ink:#f1eeff;--shadow:0 8px 28px #00000014;color-scheme:dark}
body{background:var(--bg);color:var(--ink)}::selection{background:#a598ff60;color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button,input,select,textarea{color:var(--ink)}button,input,select,textarea,.panel,.stat,.topbar,.modal,td,.toolbar{transition:background-color .22s,border-color .22s,color .18s,box-shadow .2s}button{background:var(--surface);border-color:var(--line);border-radius:9px}button:hover{background:var(--surface-hover);border-color:#a69be9}button:active:not(:disabled){transform:translateY(1px)}button.primary{color:#fff;background:linear-gradient(120deg,#7563ed,#5b50d2);border-color:#7563ed;box-shadow:0 4px 12px #6553d425}button.primary:hover{background:linear-gradient(120deg,#8674fa,#6b5cde);box-shadow:0 6px 20px #6553d438}button.ghost{background:transparent}button.danger{color:var(--red)}input,select,textarea{background:var(--surface);border-color:var(--line)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:2px solid #8978eb25}input[type=checkbox]{accent-color:var(--accent)}label{color:var(--muted)}a{color:var(--accent)}.main-link{color:var(--ink)}.main-link:hover{color:var(--accent)}
.sidebar{background:linear-gradient(175deg,#1b213c,#141a30 70%,#12192c);border-right:1px solid #ffffff08}.sidebar nav a{color:#a8b3d0;border-radius:10px;transition:background .2s,color .2s,box-shadow .2s}.sidebar nav a:hover{background:#ffffff0a;color:#fff}.sidebar nav a.active{background:linear-gradient(100deg,#7563ed2f,#7563ed10);color:#c0b6ff;box-shadow:inset 3px 0 #a396fc}.sidebar nav a.active svg{opacity:1}.logo{background:linear-gradient(135deg,#9581ff,#6051ce);box-shadow:0 4px 18px #7762e822;border-radius:11px}.side-footer{border-color:#ffffff12;color:#8797b5}.muted-link{color:#a6a0cf}.nav-label{color:#7f8eaf}.live-dot{background:#9c8ef0}.topbar{background:var(--surface);border-color:var(--line)}.top-info,.crumb{color:var(--muted)}.crumb b{color:var(--ink)}.avatar{background:var(--accent-soft);color:var(--accent);border-color:var(--line)}.panel,.stat,.modal,.document-card,td,.object-tile{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}td,.document-card{box-shadow:none}.panel{border-radius:15px}.stat{border-radius:14px}.stat-value{color:var(--ink)}.stat.green .stat-value,.kpi-completed .stat-value{color:var(--success)}.subtitle,.subtle,.stat-note,.stat-top,.stat-value small,.profile small,.permission-note,.field-help,.code,.entity-name,.object-cell small,.estimate-table .code,.event-details+.subtitle{color:var(--muted)}.panel-head,.table-foot,.toolbar,.journal-entry,.document-card,.estimate-card,.calendar-row,.fin-line,.chart-row,.requirement-row{border-color:var(--line)}.eyebrow{color:var(--muted)}.toolbar,.dashboard-registry .toolbar,.view-switch{background:var(--surface-soft)}.search{background:var(--surface)}.view-switch button{background:transparent;color:var(--muted)}.view-switch button.active{background:var(--surface);color:var(--accent);box-shadow:0 2px 8px #0001}th,.dashboard-registry th{background:var(--surface-soft);color:var(--muted);border-color:var(--line)}td{border-color:var(--line)}tbody tr.clickable:hover td,.dashboard-registry tbody tr.clickable:hover td{background:var(--surface-hover)}.tabs{border-color:var(--line);gap:14px}.tabs button{color:var(--muted);padding:12px 10px;border-radius:8px 8px 0 0;transition:color .2s,background .2s,border-color .2s}.tabs button:hover{background:var(--accent-soft)}.tabs button.active{color:var(--accent);background:var(--accent-soft);border-bottom-color:var(--accent)}.bar,.portfolio-work-row .bar,.chart-row .bar{background:var(--line)}.bar span{background:linear-gradient(90deg,#7d6bed,#9a8aef)}.badge{background:var(--surface-soft);color:var(--muted)}.dashboard-registry .badge{background:var(--accent-soft);color:var(--accent)}.table-foot,.empty,.search-wrap svg,.clickable td:nth-child(1),.calendar-empty,.kpi-strip,.estimate-card small{color:var(--muted)}.object-tile:hover{border-color:var(--accent);box-shadow:0 10px 28px #6857df16;transform:translateY(-2px)}.object-tile{transition:border-color .2s,box-shadow .2s,transform .2s}.section-row td{background:var(--accent-soft);color:var(--accent)}.fact-edit{background:#e9f5ef;color:#13745c;border-color:#c4e4d4}.modal-shade{background:#080e2580;backdrop-filter:blur(5px)}.modal{border:1px solid var(--line);box-shadow:0 30px 100px #060a2444}.checklist{border-color:var(--line)}.document-card svg{width:17px;height:17px;vertical-align:middle}.fin-line strong,.kpi-strip b{color:var(--ink)}.map-list{border-color:var(--line)}.map-list button{border-color:var(--line);background:var(--surface)}.map-list small{color:var(--muted)}.calendar-track{background:repeating-linear-gradient(90deg,var(--surface-soft) 0,var(--surface-soft) calc(8.333% - 1px),var(--line) calc(8.333% - 1px),var(--line) 8.333%)}.calendar-track span{background:linear-gradient(90deg,#7d6bed,#a294ee)}#toast{background:#4d428e;color:#fff;box-shadow:0 6px 24px #16102b30}.login,.login-box{background:var(--surface)}.login-aside{background:linear-gradient(150deg,#252844,#171d35)}.login-aside .eyebrow{color:#a99ce7}.login-aside p{color:#abb3cf}.mini-bars i{background:linear-gradient(#9580ed,#514680)}
.dashboard-hero{background:linear-gradient(110deg,var(--hero-start),var(--hero-end));border-color:var(--line);box-shadow:var(--shadow)}.dashboard-hero h1{color:var(--hero-ink);font-size:39px;letter-spacing:-1.5px}.dashboard-hero h1 span{color:var(--accent)}.dashboard-hero .eyebrow{color:var(--accent)}.hero-dot{background:#8875ef;box-shadow:0 0 0 4px #8875ef18}.dashboard-hero p,.hero-tags,.hero-map-link,.hero-note{color:var(--muted)}.hero-map-link{color:var(--accent)}.hero-actions .primary{box-shadow:0 6px 20px #6b56d92b}.hero-grid-art{opacity:.25;background:linear-gradient(90deg,#9187c025 1px,transparent 1px),linear-gradient(#9187c025 1px,transparent 1px);background-size:34px 34px}.hero-grid-art:after{border-color:#9481cf44;box-shadow:24px 24px 0 -1px var(--hero-end),24px 24px 0 0 #9481cf44,48px 48px 0 -1px var(--hero-end),48px 48px 0 0 #9481cf33}.dashboard-kpi{box-shadow:var(--shadow);border-color:var(--line)}.dashboard-kpi:hover{box-shadow:0 10px 28px #6857df12}.dashboard-kpi .stat-top,.dashboard-kpi .stat-note{color:var(--muted)}.kpi-icon{background:var(--accent-soft);color:var(--accent)}.kpi-completed{background:var(--surface);border-color:var(--line)}.kpi-completed .kpi-icon{background:#e3f4ec;color:#248c72}.portfolio-completion{background:linear-gradient(130deg,#2c2a55,#242d50);border-color:#ffffff10;color:#f1f1ff}.completion-heading h2{color:#f2f0ff}.completion-heading .eyebrow{color:#b4a9f1}.completion-caption,.completion-totals>span,.dashboard-ring small{color:#b1b5d7}.completion-totals>b{color:#f2f0ff}.ring-arc{stroke:#b3a4ff}.dashboard-ring .counter-number{color:#ece7ff}.funding-signal>div,.funding-signal strong{color:#d0cee7}.funding-signal small{color:#a5abca}.portfolio-bottom{border-color:var(--line);color:var(--muted)}.portfolio-bottom b{color:var(--ink)}.work-row-label>span,.portfolio-status-strip>span,.portfolio-status-strip small{color:var(--muted)}.portfolio-status-strip{background:var(--surface);border-color:var(--line)}.portfolio-status-strip b{color:var(--ink)}.soft-chip{background:var(--surface-soft);border-color:var(--line);color:var(--muted)}.work-row-label b{color:var(--ink)}.portfolio-work-row .bar span{background-image:none}.problems-panel .panel-head{background:var(--surface)}.problem-filters,.problem-coverage{background:var(--surface-soft);border-color:var(--line)}.problem-row{background:var(--surface);border-color:var(--line)}.problem-row:hover{background:var(--surface-hover)}.problem-address,.problem-time>span{color:var(--accent)}.problem-main p,.problem-tags,.problem-rule,.problem-time small,.problem-coverage,.problem-live{color:var(--muted)}.problem-coverage>b{color:var(--ink)}.problem-more{background:var(--surface-soft);color:var(--accent)}.requirement-row b{color:var(--ink)}
.appearance-toggle{display:flex;align-items:center;gap:7px;padding:8px 10px;font-size:10px;font-weight:550;color:var(--accent);background:var(--accent-soft);border:1px solid transparent;border-radius:10px;white-space:nowrap}.appearance-toggle svg{width:16px;height:16px}.appearance-toggle:hover{border-color:var(--accent);background:var(--accent-soft)}.appearance-settings{margin-bottom:22px}.appearance-options{display:flex;gap:16px;margin:22px 0;flex-wrap:wrap}.appearance-choice{width:205px;padding:10px;text-align:left;border:2px solid var(--line);border-radius:12px;background:var(--surface)}.appearance-choice[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 3px #8978ec13}.appearance-choice>span:last-child{display:flex;align-items:center;gap:8px;padding:12px 3px 2px;font-size:12px;color:var(--ink)}.appearance-choice svg{width:15px;height:15px}.theme-mini{height:86px;display:block;border-radius:6px;overflow:hidden;position:relative;background:#f2f4fc;border:1px solid #dce1f0}.theme-mini i{position:absolute;left:0;top:0;bottom:0;width:22%;background:#1a2039}.theme-mini b{position:absolute;top:13px;left:29%;right:8%;height:22px;background:#e0ddf8;border-radius:4px}.theme-mini em{position:absolute;top:45px;left:29%;right:8%;height:27px;border-radius:4px;background:#fff;box-shadow:0 0 0 1px #e3e6f1}.dark-preview .theme-mini{background:#0e1423;border-color:#2b3750}.dark-preview .theme-mini i{background:#101627}.dark-preview .theme-mini b{background:#353152}.dark-preview .theme-mini em{background:#1c2740;box-shadow:0 0 0 1px #2b3750}.motion-control{max-width:430px;gap:9px}.motion-control select{max-width:370px}.theme-mini,.appearance-choice{transition:border-color .2s,box-shadow .2s,transform .2s}.appearance-choice:hover{transform:translateY(-2px)}
:root[data-theme=dark] .badge.green{background:#173d36;color:#84dbc0}:root[data-theme=dark] .badge.amber{background:#443921;color:#f0c879}:root[data-theme=dark] .badge.red{background:#432c39;color:#f29ba7}:root[data-theme=dark] .badge.blue{background:#233b5a;color:#a0c8ff}:root[data-theme=dark] .notice{background:#352f24;border-color:#5a4b2d;color:#e6c483}:root[data-theme=dark] .notice.info{background:#202c47;border-color:#354565;color:#b9c9f1}:root[data-theme=dark] .notice.danger{background:#3c2833;border-color:#653c4b;color:#f1a5b2}:root[data-theme=dark] .warnings{color:#dfbb7a}:root[data-theme=dark] .fact-edit{background:#1a3b36;border-color:#2f6256;color:#8be5c9}:root[data-theme=dark] .kpi-completed .kpi-icon{background:#1d3938;color:#83d5be}:root[data-theme=dark] .problem-severity{background:#3c3528;color:#e5c17e}:root[data-theme=dark] .critical .problem-severity{background:#432c39;color:#f59aa8}:root[data-theme=dark] .high .problem-severity{background:#42352a;color:#edb679}:root[data-theme=dark] .problem-time b{color:#dfc086}:root[data-theme=dark] .critical .problem-time b{color:#ef9aa7}:root[data-theme=dark] .high .problem-time b{color:#e6b478}:root[data-theme=dark] .problem-focus{background:#393526!important;outline-color:#a58c50}:root[data-theme=dark] .ring:after{background:var(--surface)}:root[data-theme=dark] .legend{color:var(--muted)}:root[data-theme=dark] .legend b{color:var(--ink)}:root[data-theme=dark] .chart-row .name{color:var(--muted)}:root[data-theme=dark] .search-help{color:var(--muted)}
@media(prefers-reduced-motion:no-preference){:root:not([data-motion=reduced]) #content>.page-title,:root:not([data-motion=reduced]) #content>.dashboard-screen,:root:not([data-motion=reduced]) #object-tab>.panel,:root:not([data-motion=reduced]) #object-tab>.grid-2,:root:not([data-motion=reduced]) #content>.appearance-settings{animation:page-reveal .32s cubic-bezier(.2,.7,.3,1) both}:root:not([data-motion=reduced]) .login-aside .mini-bars i{animation:column-reveal .8s cubic-bezier(.2,.7,.3,1) both;transform-origin:bottom}:root:not([data-motion=reduced]) .login-aside .mini-bars i:nth-child(2n){animation-delay:.1s}:root:not([data-motion=reduced]) .login-aside .mini-bars i:nth-child(3n){animation-delay:.2s}}
@keyframes page-reveal{from{opacity:.4;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes column-reveal{from{transform:scaleY(.25);opacity:.3}to{transform:scaleY(1);opacity:.7}}
@media(max-width:900px){.appearance-toggle span{display:none}.appearance-toggle{padding:8px}.profile{gap:8px}}
@media(max-width:720px){.dashboard-hero h1{font-size:31px}.appearance-options{gap:10px}.appearance-choice{width:min(205px,100%)}.topbar{gap:8px}.crumb{font-size:11px;min-width:0}.profile .avatar{display:none}.profile{gap:5px}.appearance-settings{padding:20px}}
:root[data-motion=reduced] *,:root[data-motion=reduced] *::before,:root[data-motion=reduced] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}:root[data-motion=reduced] .dashboard-kpi:hover,:root[data-motion=reduced] .object-tile:hover,:root[data-motion=reduced] .appearance-choice:hover{transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.object-tile:hover,.appearance-choice:hover{transform:none}}
.dashboard-screen{--accent:var(--green)}
/* Restrained graphite palette for both appearance modes. */
:root{--bg:#f3f4f4;--surface:#fff;--surface-soft:#f6f7f7;--surface-hover:#eef1ef;--ink:#29332f;--muted:#748078;--line:#e0e5e2;--green:#526b5c;--accent:#526b5c;--accent-soft:#e9eeeb;--dark:#202624;--orange:#a57b37;--red:#b25757;--success:#397c63;--hero-start:#eaeeeb;--hero-end:#f3f5f3;--hero-ink:#2c3831;--shadow:0 4px 18px #26352b05}
:root[data-theme=dark]{--bg:#141716;--surface:#1e2321;--surface-soft:#252b28;--surface-hover:#2c3430;--ink:#e4e9e6;--muted:#a2afa7;--line:#343d37;--green:#a6bdad;--accent:#a6bdad;--accent-soft:#2c3830;--dark:#171c19;--orange:#d0b078;--red:#e39a97;--success:#91c4ac;--hero-start:#28312b;--hero-end:#202723;--hero-ink:#e6ece7;--shadow:0 5px 22px #00000012}
.sidebar{background:linear-gradient(175deg,#282f2b,#1e2521 75%,#1b211d);border-right:1px solid #ffffff09}.sidebar nav a{color:#aab8af}.sidebar nav a:hover{background:#ffffff08;color:#f4f6f4}.sidebar nav a.active{background:#a8c1ad14;color:#c1d1c5;box-shadow:inset 3px 0 #9db6a4}.logo{background:linear-gradient(135deg,#6c8573,#4a6252);box-shadow:none;border-radius:8px}.nav-label{color:#7d9183}.side-footer{color:#8a9b90}.muted-link{color:#a6b8ac}.live-dot{background:#9ab29f}button.primary{background:#526b5c;border-color:#526b5c;box-shadow:0 3px 10px #344e3c12}button.primary:hover{background:#445c4d;box-shadow:0 4px 14px #344e3c20}button:hover{border-color:#94a99b}.hero-actions .primary{box-shadow:none}.dashboard-hero{background:linear-gradient(110deg,var(--hero-start),var(--hero-end))}.hero-dot{background:#819a88;box-shadow:0 0 0 4px #819a8815}.hero-grid-art{background:linear-gradient(90deg,#7c938125 1px,transparent 1px),linear-gradient(#7c938125 1px,transparent 1px);background-size:34px 34px;opacity:.18}.hero-grid-art:after{border-color:#8ca18f44;box-shadow:24px 24px 0 -1px var(--hero-end),24px 24px 0 0 #8ca18f44,48px 48px 0 -1px var(--hero-end),48px 48px 0 0 #8ca18f33}.portfolio-completion{background:linear-gradient(130deg,#303f35,#24342c);border-color:#ffffff0a}.completion-heading .eyebrow{color:#b2c5b8}.completion-heading h2,.completion-totals>b{color:#edf2ee}.completion-caption,.completion-totals>span,.dashboard-ring small{color:#adbfB3}.ring-arc{stroke:#abc8b4}.dashboard-ring .counter-number{color:#e6f0e9}.funding-signal>div,.funding-signal strong{color:#c7d7cc}.funding-signal small{color:#a3b7aa}.bar span,.calendar-track span{background:linear-gradient(90deg,#688775,#9eb3a5)}.portfolio-work-row .bar span{background-image:none}.avatar{background:var(--accent-soft);color:var(--accent)}.dashboard-kpi:hover{box-shadow:0 7px 24px #35473a0c}.tabs button.active{border-bottom-color:var(--accent)}.modal-shade{background:#101a1480}.modal{box-shadow:0 25px 85px #0c171333}.appearance-choice[aria-pressed=true]{box-shadow:0 0 0 3px #879d8d15}.object-tile:hover{box-shadow:0 8px 24px #35473a12}.theme-mini{background:#f0f2f0;border-color:#dce2dd}.theme-mini i{background:#232c26}.theme-mini b{background:#dce5de}.theme-mini em{box-shadow:0 0 0 1px #e0e5e1}.dark-preview .theme-mini{background:#141716;border-color:#343d37}.dark-preview .theme-mini i{background:#171c19}.dark-preview .theme-mini b{background:#303e34}.dark-preview .theme-mini em{background:#252b28;box-shadow:0 0 0 1px #343d37}.login-aside{background:linear-gradient(150deg,#303e34,#1e2822)}.login-aside .eyebrow{color:#b3c6b9}.login-aside p{color:#aebfb3}.mini-bars i{background:linear-gradient(#91ab98,#526d5b)}#toast{background:#3b5143;box-shadow:0 5px 22px #15271b25}input:focus,select:focus,textarea:focus{outline-color:#829b8a30}::selection{background:#92ae9c55}:root[data-theme=dark] .notice.info{background:#27372e;border-color:#405347;color:#bacfc2}:root[data-theme=dark] .badge.blue{background:#303d38;color:#b7cfbf}.status-indicator.blue{background:#789886}
/* Higher contrast, with amber used as a restrained focal accent. */
:root{--bg:#e9ecea;--surface:#fff;--surface-soft:#f0f3f1;--surface-hover:#e5ece7;--ink:#192820;--muted:#596b60;--line:#ced8d1;--green:#2e6448;--accent:#2e6448;--accent-soft:#e1ece5;--success:#1b7954;--hero-start:#dbe7dd;--hero-end:#edf2ee;--hero-ink:#1b3526;--shadow:0 5px 18px #15291c09}
:root[data-theme=dark]{--bg:#0b100d;--surface:#18211b;--surface-soft:#202d24;--surface-hover:#2a3c2f;--ink:#f0f5f1;--muted:#bac9bd;--line:#3a4d3f;--green:#b4d9bf;--accent:#b4d9bf;--accent-soft:#2b4332;--success:#8fdfad;--hero-start:#253e2c;--hero-end:#17261c;--hero-ink:#f5faf5;--shadow:0 6px 22px #0003}
.sidebar{background:linear-gradient(170deg,#1e2e23,#101b14);border-color:#3b4d4033}.sidebar nav a{color:#b3c4b7}.sidebar nav a.active{background:#80b98f23;color:#def0e2;box-shadow:inset 3px 0 #b8d3be}.logo{background:#406e4e;color:#fff}.sidebar .brand{font-weight:700}.dashboard-hero{border-color:var(--line)}.hero-dot{background:#b89650;box-shadow:0 0 0 4px #b8965019}.dashboard-hero h1{font-weight:700}.dashboard-kpi{border-color:var(--line)}.kpi-icon{background:var(--accent-soft);color:var(--accent)}button.primary,.hero-actions .primary{background:#326849;border-color:#326849;color:#fff;box-shadow:0 4px 14px #152e1c22}button.primary:hover{background:#257345;border-color:#398653}.portfolio-completion{background:linear-gradient(125deg,#244330,#122f20);border-color:#4b7056}.ring-arc{stroke:#c1b077}.completion-heading .eyebrow{color:#d7c58f}.dashboard-ring .counter-number{color:#f3edcf}.kpi-completed .kpi-icon{background:#d4ebdb;color:#216f44}:root[data-theme=dark] .kpi-completed .kpi-icon{background:#274631;color:#b5e2c1}.theme-mini b{background:#cedfd2}.dark-preview .theme-mini{background:#0b100d}.dark-preview .theme-mini b{background:#2b4332}.dark-preview .theme-mini em{background:#18211b;box-shadow:0 0 0 1px #3a4d3f}.appearance-welcome-preview{display:flex;gap:12px;align-items:center;margin-top:22px;flex-wrap:wrap}
.welcome-banner{position:fixed;z-index:95;top:100px;left:calc(50% + 90px);transform:translateX(-50%);width:min(620px,calc(100vw - 48px));display:flex;gap:22px;align-items:flex-start;padding:30px 46px 27px 28px;border:1px solid #718e6e;border-radius:18px;background:linear-gradient(120deg,#254331,#142d20);color:#fff;box-shadow:0 24px 75px #0005;pointer-events:none;animation:welcome-arrive .8s cubic-bezier(.16,.8,.25,1) both;overflow:hidden}.welcome-banner:after{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#d2b970}.welcome-mark{display:grid;place-items:center;width:50px;height:50px;flex:0 0 50px;border-radius:12px;background:#a6c79f20;border:1px solid #95b99344;color:#e0c77f;font-size:26px;font-weight:700;margin-top:5px}.welcome-copy{min-width:0}.welcome-label{display:block;color:#a5bda9;font-size:9px;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:16px}.welcome-heading{font-size:22px;letter-spacing:-.5px;color:#eef7ef}.welcome-name{font-size:34px;font-weight:650;line-height:1.25;color:#e9d496;letter-spacing:-.7px;overflow-wrap:anywhere;margin-top:5px;max-height:150px;overflow:auto;pointer-events:auto}.welcome-copy p{font-size:11px;color:#adc3b2;margin:15px 0 0}.welcome-close{position:absolute;right:10px;top:10px;width:29px;height:29px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#ffffff0c;color:#d5e1d8;font-size:21px;font-weight:400;pointer-events:auto}.welcome-close:hover{background:#ffffff20;border:0}.welcome-leaving{animation:welcome-depart .4s ease-in both}
@keyframes welcome-arrive{from{opacity:0;transform:translate(-50%,24px) scale(.97);filter:blur(8px)}to{opacity:1;transform:translate(-50%,0) scale(1);filter:blur(0)}}@keyframes welcome-depart{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-12px)}}
@media(max-width:900px){.welcome-banner{left:50%;top:85px}}@media(max-width:570px){.welcome-banner{width:calc(100vw - 28px);padding:23px 34px 23px 20px;gap:14px;top:80px}.welcome-mark{width:38px;height:38px;flex-basis:38px;font-size:21px}.welcome-heading{font-size:18px}.welcome-name{font-size:26px}.welcome-label{font-size:8px;letter-spacing:1px}}
:root[data-motion=reduced] .welcome-banner{animation:none;transform:translateX(-50%)}:root[data-motion=reduced] .welcome-leaving{opacity:0}@media(prefers-reduced-motion:reduce){.welcome-banner{animation:none;transform:translateX(-50%)}.welcome-leaving{opacity:0}}
.welcome-name{max-height:none;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;pointer-events:none}
/* Neutral anthracite and warm amber. No green cast in application surfaces. */
:root{--bg:#eeedeb;--surface:#fff;--surface-soft:#f5f3f0;--surface-hover:#f1ebe2;--ink:#282725;--muted:#706c66;--line:#dcd8d2;--green:#8c622b;--accent:#8c622b;--accent-soft:#f4eadb;--success:#93611e;--hero-start:#e8e2d8;--hero-end:#f4f1eb;--hero-ink:#302b23;--shadow:0 5px 20px #231c1308}
:root[data-theme=dark]{--bg:#101112;--surface:#1c1d1f;--surface-soft:#242527;--surface-hover:#303031;--ink:#f2f1ef;--muted:#b9b5af;--line:#3b3c3f;--green:#e8bf7a;--accent:#e8bf7a;--accent-soft:#3a3022;--success:#e6bb70;--hero-start:#302b24;--hero-end:#1d1e20;--hero-ink:#faf5eb;--shadow:0 5px 22px #0003}
.sidebar{background:linear-gradient(170deg,#262627,#17181a);border-color:#ffffff0a}.sidebar nav a{color:#bcb9b4}.sidebar nav a.active{background:#c5994c1b;color:#f0d3a1;box-shadow:inset 3px 0 #d5ad6b}.sidebar nav a:hover{background:#ffffff08;color:#faf7f2}.logo{background:#b58c4e;color:#fff}.nav-label{color:#928b82}.side-footer{color:#9e978d}.muted-link{color:#c2b29b}.live-dot{background:#c9a565}button.primary,.hero-actions .primary{background:#d4a052;border-color:#d4a052;color:#241b0e;box-shadow:0 4px 14px #4a2f101a}button.primary:hover{background:#e3b367;border-color:#e3b367;box-shadow:0 5px 17px #4a2f1025}button:hover{border-color:#b29a77}.dashboard-hero{background:linear-gradient(110deg,var(--hero-start),var(--hero-end))}.hero-dot{background:#b78c48;box-shadow:0 0 0 4px #b78c4819}.hero-grid-art{background:linear-gradient(90deg,#ab926725 1px,transparent 1px),linear-gradient(#ab926725 1px,transparent 1px);background-size:34px 34px}.hero-grid-art:after{border-color:#ad946b44;box-shadow:24px 24px 0 -1px var(--hero-end),24px 24px 0 0 #ad946b44,48px 48px 0 -1px var(--hero-end),48px 48px 0 0 #ad946b33}.portfolio-completion{background:linear-gradient(125deg,#33302b,#1d1e20);border-color:#5e5444}.completion-heading .eyebrow{color:#d3b887}.completion-heading h2,.completion-totals>b{color:#f5f0e7}.completion-caption,.completion-totals>span,.dashboard-ring small{color:#bfb6a7}.ring-arc{stroke:#deb26d}.dashboard-ring .counter-number{color:#f4d59e}.funding-signal>div,.funding-signal strong{color:#ddd2c0}.funding-signal small{color:#b6aa96}.bar span,.calendar-track span{background:linear-gradient(90deg,#b68b47,#d6b47e)}.portfolio-work-row .bar span{background-image:none}.kpi-completed .kpi-icon{background:#f4e7d0;color:#9b6b25}:root[data-theme=dark] .kpi-completed .kpi-icon{background:#3c3020;color:#efc57e}.fact-edit{background:#fcf1dd;border-color:#e8d2a9;color:#855c1f}:root[data-theme=dark] .fact-edit{background:#3c3020;border-color:#745b34;color:#efca8c}.theme-mini{background:#eeedeb;border-color:#dcd8d2}.theme-mini i{background:#262627}.theme-mini b{background:#e7dac6}.dark-preview .theme-mini{background:#101112;border-color:#3b3c3f}.dark-preview .theme-mini i{background:#17181a}.dark-preview .theme-mini b{background:#3a3022}.dark-preview .theme-mini em{background:#1c1d1f;box-shadow:0 0 0 1px #3b3c3f}.object-tile:hover{box-shadow:0 8px 24px #4a361816}.appearance-choice[aria-pressed=true]{box-shadow:0 0 0 3px #b48b4919}.modal-shade{background:#0b0b0d85}.modal{box-shadow:0 25px 85px #08080b44}.login-aside{background:linear-gradient(150deg,#34312b,#18191b)}.login-aside .eyebrow{color:#cfb380}.login-aside p{color:#bcb4a7}.mini-bars i{background:linear-gradient(#c9a56b,#695437)}#toast{background:#3e3528;color:#fff;box-shadow:0 5px 22px #18130c30}input:focus,select:focus,textarea:focus{outline-color:#be9c6530}::selection{background:#d1ab6650}.status-indicator.blue{background:#a59c8d}:root[data-theme=dark] .notice.info{background:#2c2b28;border-color:#514b40;color:#d3c7b4}:root[data-theme=dark] .badge.blue{background:#35332e;color:#d3c6ae}.welcome-banner{background:linear-gradient(120deg,#343029,#191a1c);border-color:#8b744d;box-shadow:0 24px 75px #0006}.welcome-mark{background:#d1b17115;border-color:#b79a6044;color:#e4bf76}.welcome-label{color:#bfb29a}.welcome-heading{color:#f7f3eb}.welcome-name{color:#efca83}.welcome-copy p{color:#c2b6a3}.welcome-close{color:#e0d6c5}
.estimate-resource-summary{display:grid;gap:7px;margin-top:14px;padding:12px 0;border-top:1px solid var(--line);font-size:11px;min-width:210px}.estimate-resource-summary>span{display:flex;justify-content:space-between;gap:15px;color:var(--muted)}.estimate-resource-summary b{color:var(--ink);font-variant-numeric:tabular-nums}.estimate-fact-header{display:flex;flex-wrap:wrap;gap:18px 28px;padding:15px 20px;background:var(--surface-soft);border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.estimate-fact-header b{color:var(--ink);margin-left:7px;font-variant-numeric:tabular-nums}.export-link{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;white-space:nowrap}.export-link svg{width:15px;height:15px}.resource-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.resource-stats .stat-value{font-size:22px;letter-spacing:-.5px}.resource-stats .stat-note{line-height:1.6}.resource-name{min-width:260px;max-width:420px;line-height:1.7}.resource-controls{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:11px;color:var(--muted);margin:16px 0 10px}.resource-tabs{margin-top:20px}.resource-search{margin-bottom:16px}.resource-search input{width:min(450px,100%)}.crew-table{min-width:1300px}.photo-shortcut{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:11px;margin-top:13px;position:relative;z-index:1}.photo-shortcut svg{width:15px;height:15px}.map-photo-preview{display:block;margin-top:16px;max-width:100%;width:260px;height:150px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}.photo-week-group{padding:22px;border-bottom:1px solid var(--line)}.photo-week-group h3{color:var(--ink);font-size:14px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.photo-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}.photo-card img{width:100%;height:200px;object-fit:cover;display:block;background:var(--surface-soft)}.photo-card>div{padding:15px;font-size:12px}.photo-card p{white-space:pre-wrap;overflow-wrap:anywhere}.photo-card .subtitle{font-size:10px;margin-bottom:7px}.photo-card a{font-size:11px}.photo-card:hover{border-color:var(--accent)}
@media(max-width:1200px){.resource-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.photo-grid,.resource-stats{grid-template-columns:1fr}.photo-week-group{padding:16px}.photo-card img{height:210px}.estimate-fact-header{gap:12px}.estimate-resource-summary{min-width:0}.resource-stats .stat-value{font-size:25px}}
