:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#06113d;background:#fff;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}aside{position:fixed;inset:0 auto 0 0;width:212px;background:#f5f8fc;border-right:1px solid #e8eef6;padding:25px 11px;display:flex;flex-direction:column;z-index:3}.logo{font-size:24px;padding:0 18px 36px}.logo b{margin-left:10px}nav{display:grid;gap:4px}nav button,.settings{border:0;background:transparent;height:45px;padding:0 20px;display:flex;align-items:center;gap:18px;border-radius:7px;color:#08143a;font-size:15px}.settings{margin-top:auto}.active{color:#0966e8!important;background:#e7f0fe!important;font-weight:700}header{position:fixed;left:212px;right:0;top:0;height:68px;border-bottom:1px solid #e7edf5;background:white;display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:0 28px;z-index:2}header input{width:292px;height:40px;border:1px solid #d6deea;border-radius:6px;padding:0 14px;margin-right:12px}header small{display:block;color:#53698f;margin-top:3px}.avatar{width:40px;height:40px;background:#16519b;color:white;border-radius:50%;display:grid;place-items:center}.plain{border:0;background:none}main{margin-left:212px;padding:94px 28px 40px;max-width:1536px}.page-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:22px}.page-head h1{font-size:29px;margin:0 0 4px}.page-head p,.muted{color:#60749a;margin:0}.actions{display:flex;gap:10px}button{border:1px solid #c7d2e2;background:white;border-radius:6px;padding:10px 18px;color:#25395d;font-weight:650}.primary{background:#1e73e8!important;color:white!important;border-color:#1e73e8!important}.toolbar{display:flex;gap:10px;margin-bottom:12px}.toolbar input,.toolbar select{height:42px;border:1px solid #c7d2e2;border-radius:6px;padding:0 12px}.toolbar input{min-width:320px}.card{border:1px solid #dce4ef;border-radius:7px;background:#fff;padding:18px 21px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#f2f6fb;color:#4c638e;text-align:left;font-weight:550}th,td{padding:11px 14px;border-bottom:1px solid #dce4ef}.small{padding:6px 12px}.badge,.pill{display:inline-block;background:#d8f2e6;color:#08724d;padding:5px 10px;border-radius:16px;font-size:12px}.pill{font-size:13px;vertical-align:middle}.facts{display:flex;gap:70px;padding:0 5px 16px;font-size:16px}.detail-grid{display:grid;grid-template-columns:338px minmax(480px,1fr) 329px;gap:10px}.detail-grid>div{display:grid;gap:12px}.card h2{font-size:17px;margin:0 0 17px}.proposal label,.review label{display:block;color:#536b98;margin:18px 0 5px}.proposal p{line-height:1.5}.proposal strong{font-size:23px}.chart{height:170px;border-bottom:1px solid #bcc9dc;display:flex;align-items:flex-end;justify-content:space-around;background:repeating-linear-gradient(to bottom,#fff 0,#fff 39px,#e4eaf2 40px);margin:10px 0 38px}.bar-item{height:100%;width:16%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.bar-item b{font-size:12px;margin-bottom:5px}.bar-item i{width:58px;max-width:85%;border-radius:2px 2px 0 0}.bar-item small{position:absolute;top:100%;text-align:center;color:#344d78;font-size:10px;width:92px;margin-top:5px}.review{display:flex;flex-direction:column}.review input,.review textarea{border:1px solid #bfcbdc;border-radius:5px;padding:11px}.review textarea{height:80px;resize:vertical}.decisions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.decisions button:nth-child(1){background:#d5f0e7;color:#08734f;border:0}.decisions button:nth-child(2){background:#ffe8b8;color:#a55c00;border:0}.decisions button:nth-child(3){background:#ffd5d9;color:#bd0b16;border:0}.decisions .selected{outline:3px solid #1476ed}.reviewers{margin-top:16px;border-top:1px solid #e2e8f0}.reviewers h3{font-size:14px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.rso h2{margin-top:12px}.rso dl,.profile dl{display:grid;grid-template-columns:90px 1fr;gap:8px}.rso dt,.profile dt{color:#60749a}.rso dd,.profile dd{margin:0}.profile{display:grid;grid-template-columns:1fr 1.5fr;gap:12px}.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:12px 0}.metrics b{font-size:28px;background:#f5f8fc;padding:20px;border-radius:8px}.metrics small{display:block;font-size:12px;color:#60749a;margin-top:5px}.metrics.big{grid-template-columns:repeat(4,1fr);margin-bottom:14px}.calendar{display:grid;gap:10px}.calendar article{display:grid;grid-template-columns:110px 1fr auto;align-items:center}.calendar time{font-size:18px;font-weight:700;color:#0966e8}.calendar h2{margin:7px 0}.calendar p{margin:0;color:#60749a}dialog{border:0;border-radius:10px;padding:0;box-shadow:0 20px 60px #00103344;width:min(620px,90vw)}dialog::backdrop{background:#06113d66}dialog form{padding:20px}.modal-head{display:flex;justify-content:space-between}.modal-head button{border:0;font-size:22px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}#modalBody{display:grid;grid-template-columns:1fr 1fr;gap:12px}#modalBody label{display:grid;gap:5px;color:#536b98}#modalBody input,#modalBody select{padding:10px;border:1px solid #c7d2e2;border-radius:5px}#toast{position:fixed;right:24px;bottom:24px;background:#06113d;color:white;padding:12px 18px;border-radius:8px;opacity:0;transform:translateY(10px);transition:.2s;z-index:10}.show{opacity:1!important;transform:none!important}@media(max-width:1000px){.detail-grid{grid-template-columns:1fr 1fr}.review{grid-column:2}.detail-grid>div{grid-column:1/3}.profile{grid-template-columns:1fr}}@media(max-width:700px){aside{width:58px;padding:20px 6px}.logo{padding:0 8px 25px}.logo b,aside span{display:none}nav button,.settings{padding:0;justify-content:center}header{left:58px;padding:0 10px}header input{display:none}main{margin-left:58px;padding:82px 10px}.page-head{display:block}.actions{margin-top:10px;flex-wrap:wrap}.detail-grid,.profile{display:block}.detail-grid>*{margin-bottom:10px}.facts{gap:14px;flex-wrap:wrap}.metrics.big{grid-template-columns:1fr 1fr}.toolbar input{min-width:0;width:100%}.cards{grid-template-columns:1fr}.calendar article{grid-template-columns:1fr}.chart{overflow:hidden}.bar-item small{font-size:8px;width:55px}.page-head h1{font-size:25px}#modalBody{grid-template-columns:1fr}}
.budget-svg{width:100%;height:205px;display:block;overflow:visible}.budget-svg text{font-size:10px;fill:#4c638e}.budget-svg .value{font-size:11px;font-weight:700;fill:#06113d}.budget-svg .label{font-size:8px}.budget-svg .grid line{stroke:#dfe6ef;stroke-width:1}.chart{height:auto;display:block;background:none;border:0;margin:6px 0 0;overflow:hidden}.permission-note{padding:10px;background:#fff6d8;color:#795400;border-radius:6px}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}.admin-stats article{padding:18px;border:1px solid #dce4ef;border-radius:8px;background:#fff}.admin-stats b{display:block;font-size:26px}.admin-stats span,.section-head span{color:#60749a;font-size:12px}.admin-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:12px}.audit-card{grid-column:1/3}.section-head{display:flex;justify-content:space-between;align-items:center}.role-chip{display:inline-block;background:#e7f0fe;color:#095ebc;padding:4px 9px;border-radius:14px;text-transform:capitalize;font-size:12px}.role-chip.admin{background:#ede4ff;color:#6434a4}.role-chip.chair{background:#e1f4ed;color:#08724d}.role-chip.viewer{background:#eef1f5;color:#556276}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot.on{background:#22a06b}.status-dot.off{background:#d14343}.permission-matrix{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:0}.permission-matrix>*{padding:10px 7px;border-bottom:1px solid #e5eaf1;text-align:center}.permission-matrix>*:nth-child(5n+1){text-align:left}.admin-grid td small{display:block;color:#60749a;margin-top:3px}.access-card{max-width:760px}.access-card li{margin:10px 0}@media(max-width:900px){.admin-stats{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:1fr}.audit-card{grid-column:auto}.budget-svg{height:auto}}@media(max-width:500px){.budget-svg .label{font-size:7px}.budget-svg text{font-size:8px}}
.budget-table td:nth-child(1){min-width:210px}.budget-table td:nth-child(2){min-width:260px}.budget-table td:nth-child(3){min-width:210px}.budget-table td small{display:block;color:#60749a;margin-top:3px}.budget-table{max-height:68vh;overflow:auto}.budget-table thead{position:sticky;top:0;z-index:1}.tracking-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tracking-grid article:last-child{grid-column:1/3}@media(max-width:900px){.tracking-grid{grid-template-columns:1fr}.tracking-grid article:last-child{grid-column:auto}}
.inbox-total{display:inline-flex;padding:8px 12px;border-radius:18px;background:#e7f0fe;color:#0966e8;font-weight:700}.inbox-tabs{display:flex;gap:7px;margin-bottom:14px;border-bottom:1px solid #dce4ef}.inbox-tabs button{border:0;border-radius:6px 6px 0 0}.inbox-tabs button.active{background:#e7f0fe;color:#0966e8}.inbox-tabs b{background:#d8e6fb;border-radius:12px;padding:2px 7px}.inbox-card td:nth-child(2){min-width:260px}.inbox-card td small{display:block;color:#60749a;margin-top:4px}.priority{padding:4px 8px;border-radius:12px;text-transform:capitalize;font-size:11px}.priority.normal{background:#eef1f5}.priority.high{background:#fff0c7;color:#955d00}.priority.urgent{background:#ffd9dd;color:#b10c1b}.state-chip{white-space:nowrap}.submitted-banner{padding:10px;border-radius:6px;background:#d8f2e6;color:#08724d}.review-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:16px}.last-saved{font-size:11px;color:#60749a;text-align:center}.full{width:100%;background:#f4f7fb;border:0;margin-top:20px}.proposal-lines{grid-column:1/-1;max-height:58vh;overflow:auto}.proposal-lines table{min-width:900px}.past{margin-top:12px}@media(max-width:700px){.inbox-tabs{overflow:auto}.inbox-tabs button{white-space:nowrap}.review-actions{grid-template-columns:1fr}.inbox-card{overflow:auto}.inbox-card table{min-width:1050px}}
.rso-directory{display:grid;gap:12px}.rso-sheet{display:grid;grid-template-columns:1.2fr 2fr;align-items:center}.rso-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.rso-kpis b{font-size:18px}.rso-kpis small{display:block;color:#60749a;font-size:11px}.line-workspace{margin-top:12px}.line-workspace .section-head p{margin:4px 0;color:#60749a}.line-review{border:1px solid #dce4ef;border-left:5px solid #aab6c8;border-radius:8px;padding:14px;margin:10px 0}.line-review.approve{border-left-color:#22a06b}.line-review.modify{border-left-color:#e29a21}.line-review.deny{border-left-color:#d14343}.line-head{display:flex;justify-content:space-between;gap:16px}.line-head h3{font-size:14px;margin:5px 0}.line-category{color:#536b98;font-size:12px}.line-state{text-transform:capitalize;font-weight:700}.line-money{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#f6f8fb;padding:10px;border-radius:6px}.line-money span{color:#60749a}.line-money b{display:block;color:#06113d}.line-controls{display:grid;grid-template-columns:auto auto auto 110px 1fr auto;gap:7px;margin-top:10px}.line-controls input{border:1px solid #c7d2e2;border-radius:5px;padding:9px}.summary-total{display:grid;gap:8px}.summary-total span,.summary-counts span{display:flex;justify-content:space-between}.summary-counts{border-top:1px solid #e0e6ef;border-bottom:1px solid #e0e6ef;margin:14px 0;padding:10px 0;display:grid;gap:7px}.calculated-result{background:#eef4fc;padding:12px;border-radius:6px;margin-bottom:12px}.summary-panel button{width:100%;margin-top:8px}@media(max-width:900px){.rso-sheet{grid-template-columns:1fr}.rso-kpis{grid-template-columns:1fr 1fr}.line-money{grid-template-columns:1fr 1fr}.line-controls{grid-template-columns:1fr 1fr}.line-controls .line-note{grid-column:1/3}}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:-60px;z-index:100;background:#06113d;color:#fff;padding:12px 16px;border-radius:6px}.skip-link:focus{top:12px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.icon{width:1.15em;height:1.15em;display:inline-block;vertical-align:-.2em;object-fit:contain;filter:none}.logo-icon{width:24px;height:24px}.heading-icon{width:20px;height:20px;margin-right:5px}nav button .icon,.settings .icon{flex:0 0 20px;width:20px;height:20px}.budget-svg{overflow:visible;min-height:260px}.budget-svg .label{font-size:8px;fill:#536987}.chart{padding-bottom:12px;overflow:visible}.chart svg{display:block;width:100%;height:auto}button .icon{margin-right:5px}

.show-all-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;font-weight:700}.show-all-toggle input{width:18px;height:18px}

.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}fieldset{border:1px solid #cbd5e1;border-radius:8px;padding:12px}fieldset label{display:inline-flex;align-items:center;gap:7px;margin-right:18px}select,textarea,input{max-width:100%}@media(max-width:600px){.form-grid{grid-template-columns:1fr}}
/* UX hardening */
button:disabled{cursor:not-allowed;opacity:.55}.empty-state{text-align:center;padding:38px 18px;color:#53698f}.empty-state h2{color:#06113d}.mobile-inbox-list{display:none}.login{min-height:100vh;background:linear-gradient(135deg,#f3f7fd,#fff);display:grid;place-items:center;padding:24px}.login main{margin:0;padding:0;width:100%;max-width:430px}.login-card{background:#fff;border:1px solid #dce4ef;border-radius:14px;padding:34px;box-shadow:0 24px 60px #23446d1f}.login .brand{display:flex;justify-content:space-between;align-items:center;color:#0d2c61}.login .brand b{font-size:20px}.login .brand span{color:#60749a}.login h1{font-size:32px;margin:28px 0 8px}.login-intro,.login-help{color:#60749a;line-height:1.5}.login form{display:grid;gap:8px;margin-top:24px}.login input{width:100%;height:46px;border:1px solid #bfcbdc;border-radius:7px;padding:0 12px}.password-row{display:grid;grid-template-columns:1fr auto}.password-row input{border-radius:7px 0 0 7px}.password-row button{border-left:0;border-radius:0 7px 7px 0}.login-submit{margin-top:12px;height:46px}.login #loginError{min-height:20px;color:#b10c1b;margin:4px 0}.login-help{border-top:1px solid #e4eaf2;padding-top:18px;margin-bottom:0}.login-link-result{grid-column:1/-1}.login-link-result label{display:grid;gap:7px}.login-link-result input{width:100%;padding:10px;border:1px solid #bfcbdc;border-radius:6px}.login-access{grid-column:1/-1}.login-access p{color:#60749a}
@media(max-width:700px){.mobile-inbox-list{display:grid;gap:12px}.inbox-card>table{display:none}.mobile-request{border:1px solid #dce4ef;border-radius:9px;padding:16px;background:#fff}.mobile-request>div{display:flex;justify-content:space-between}.mobile-request h2{font-size:17px;margin:14px 0 4px}.mobile-request p{color:#53698f;margin:0 0 14px}.mobile-request dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}.mobile-request dl div:last-child{grid-column:1/-1}.mobile-request dt{font-size:11px;color:#60749a}.mobile-request dd{margin:2px 0;font-weight:700}.mobile-request button{width:100%}.inbox-card{overflow:visible}.login{padding:14px}.login-card{padding:24px}.detail-grid .chart svg{min-width:0}.summary-panel{position:sticky;bottom:8px;z-index:2;box-shadow:0 8px 30px #06113d22}.line-review h3{max-height:4.5em;overflow:hidden}.line-controls{grid-template-columns:1fr 1fr}.line-controls .line-note{grid-column:1/-1}.line-controls .save-line{grid-column:1/-1}.proposal-lines{max-height:none}}
.login-access{grid-column:1/-1;border:1px solid #dce4ef;border-radius:8px;padding:16px}.login-access label{display:grid;gap:7px}.login-access input{width:100%;padding:10px;border:1px solid #bfcbdc;border-radius:6px}.login-actions{display:flex;gap:10px;margin-top:10px}.danger-outline{color:#a30f20;border-color:#dca9af}
.assignment-editor{display:inline-flex;align-items:center;gap:7px}.assignment-editor select{min-width:190px;padding:7px 30px 7px 9px;border:1px solid #bfcbdc;border-radius:7px;background:#fff;color:#0b1739;font:inherit}.assignment-editor select:focus{outline:3px solid #2677e833;outline-offset:1px}
.assignment-editor{display:inline-flex;align-items:center;gap:7px}.assignment-editor select{min-width:190px;padding:7px 30px 7px 9px;border:1px solid #bfcbdc;border-radius:7px;background:#fff;color:#0b1739;font:inherit}.assignment-editor select:focus{outline:3px solid #2677e833;outline-offset:1px}
/* Stable, compact sidebar: labels stay on one line and the rail scrolls instead of stretching. */
aside{width:236px;min-width:236px;box-sizing:border-box;padding:24px 12px;overflow-y:auto;overflow-x:hidden}
aside .logo{padding:0 16px 22px;white-space:nowrap}
aside nav{display:flex;flex-direction:column;gap:6px}
aside nav button,aside .settings{width:100%;min-height:48px;display:flex;align-items:center;justify-content:flex-start;gap:14px;padding:10px 16px;text-align:left;white-space:nowrap}
aside nav button span,aside .settings span{display:block;line-height:1.15;white-space:nowrap}
aside .settings{margin-top:auto}
@media(max-width:1000px){aside{width:72px;min-width:72px;padding:14px 8px}aside .logo b,aside nav span,aside .settings span{display:none!important}aside .logo{padding:6px 12px 18px}aside nav button,aside .settings{justify-content:center;padding:12px;gap:0}header{left:72px}main{margin-left:72px}}
/* Layout alignment: keep the application shell on one shared 236px rail and 28px content gutter. */
:root{--sidebar-width:236px;--content-gutter:28px;--header-height:68px}
header{left:var(--sidebar-width);padding-inline:var(--content-gutter)}
main{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));max-width:none;padding:calc(var(--header-height) + 26px) var(--content-gutter) 40px}
aside{width:var(--sidebar-width);min-width:var(--sidebar-width)}
@media(max-width:1000px){:root{--sidebar-width:72px;--content-gutter:20px}aside{width:var(--sidebar-width);min-width:var(--sidebar-width)}header{left:var(--sidebar-width);padding-inline:var(--content-gutter)}main{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));padding-top:calc(var(--header-height) + 20px);padding-inline:var(--content-gutter)}}
@media(max-width:700px){:root{--sidebar-width:58px;--content-gutter:12px}aside{width:var(--sidebar-width);min-width:var(--sidebar-width);padding-inline:6px}header{left:var(--sidebar-width);height:68px;padding-inline:12px}main{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));padding:82px var(--content-gutter) 28px}}
/* Motion system: restrained, fast, and accessible. */
:root{--motion-fast:140ms;--motion-base:220ms;--motion-slow:320ms;--motion-ease:cubic-bezier(.22,.8,.28,1)}
html{scroll-behavior:smooth}
main>*{animation:pageEnter var(--motion-slow) var(--motion-ease) both}
.page-head{animation-delay:0ms}.toolbar,.tabs{animation-delay:35ms}.card,.inbox-card,.detail-grid,.line-workspace{animation-delay:70ms}
@keyframes pageEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes rowEnter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes dialogIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdropIn{from{background-color:transparent}to{background-color:#06113d66}}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,10px) scale(.98)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
button,nav button,.settings,.card,.line-review,.mobile-request,.state-chip,.pill,input,select,textarea{transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-base) var(--motion-ease),border-color var(--motion-fast) ease,background-color var(--motion-fast) ease,color var(--motion-fast) ease,opacity var(--motion-fast) ease}
button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 5px 14px #153d7220}button:not(:disabled):active{transform:translateY(0) scale(.985);box-shadow:none}
nav button:hover,.settings:hover{transform:translateX(2px);box-shadow:none}.active{animation:activeNav var(--motion-base) var(--motion-ease)}
@keyframes activeNav{from{transform:translateX(-3px);opacity:.7}to{transform:none;opacity:1}}
.card:hover,.mobile-request:hover{border-color:#c5d4e8;box-shadow:0 8px 22px #163b7010}.line-review:hover{box-shadow:0 6px 18px #163b700d}
tbody tr{animation:rowEnter var(--motion-base) var(--motion-ease) both}tbody tr:nth-child(2){animation-delay:20ms}tbody tr:nth-child(3){animation-delay:40ms}tbody tr:nth-child(4){animation-delay:60ms}tbody tr:nth-child(5){animation-delay:80ms}
input:focus,select:focus,textarea:focus{border-color:#1e73e8;box-shadow:0 0 0 3px #1e73e81c;outline:0}
dialog[open]{animation:dialogIn var(--motion-base) var(--motion-ease) both}dialog::backdrop{animation:backdropIn var(--motion-base) ease both}
.toast{animation:toastIn var(--motion-base) var(--motion-ease) both}
.line-review[data-decision="approve"]{animation:decisionApprove var(--motion-base) var(--motion-ease)}
.line-review[data-decision="modify"]{animation:decisionModify var(--motion-base) var(--motion-ease)}
.line-review[data-decision="deny"]{animation:decisionDeny var(--motion-base) var(--motion-ease)}
@keyframes decisionApprove{50%{background:#effbf6;transform:scale(1.003)}}@keyframes decisionModify{50%{background:#fff8e9;transform:scale(1.003)}}@keyframes decisionDeny{50%{background:#fff1f2;transform:scale(1.003)}}
button:disabled{transform:none!important;box-shadow:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Seán theme integration */
:root{
 --primary-color-h:348;--primary-color-s:83%;--primary-color-l:47%;
 --animation-gap:.175s;--animation-length:.45s;--animation-start:0s;--play-intro:1;
 --lighten-by:15%;
 --primary-color:hsl(var(--primary-color-h),var(--primary-color-s),var(--primary-color-l));
 --lighter-primary-color:hsl(var(--primary-color-h),var(--primary-color-s),calc(var(--primary-color-l) + var(--lighten-by)));
 --lightest-primary-color:hsl(var(--primary-color-h),var(--primary-color-s),calc(var(--primary-color-l) + 30%));
 --darker-primary-color:hsl(var(--primary-color-h),var(--primary-color-s),calc(var(--primary-color-l) - 5%));
 --darkest-primary-color:hsl(var(--primary-color-h),var(--primary-color-s),calc(var(--primary-color-l) - 10%));
 --secondary-color-h:calc(var(--primary-color-h) + 30);--secondary-color-s:var(--primary-color-s);--secondary-color-l:var(--primary-color-l);
 --secondary-color:hsl(var(--secondary-color-h),var(--secondary-color-s),var(--secondary-color-l));
 --lighter-secondary-color:hsl(var(--secondary-color-h),var(--secondary-color-s),calc(var(--secondary-color-l) + 15%));
 --lightest-secondary-color:hsl(var(--secondary-color-h),var(--secondary-color-s),calc(var(--secondary-color-l) + 30%));
 --tertiary-color-h:calc(var(--secondary-color-h) + 30);--tertiary-color-s:var(--secondary-color-s);--tertiary-color-l:var(--secondary-color-l);
 --tertiary-color:hsl(var(--tertiary-color-h),var(--tertiary-color-s),var(--tertiary-color-l));
 --ink:#28121a;--muted-ink:#765b65;--surface:#fff;--soft-surface:#fff8fa;--line:#edd9de;
 font-family:'Montserrat',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
}
html{scroll-padding-top:70px;overflow-x:hidden;max-width:100%}
body{font-family:'Montserrat',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background-color:#fffafb;background-image:radial-gradient(#f4e1e5 1px,transparent 1px),radial-gradient(#f4e1e5 1px,transparent 1px);background-size:16px 16px;background-position:0 0,8px 8px}
h1,h2,h3,.logo,.brand{font-family:'Montserrat',ui-sans-serif,system-ui,sans-serif;letter-spacing:.01em}h1,h2{font-weight:800}p,.proposal-lines,.login-intro,.login-help{font-family:'Libre Baskerville',Georgia,serif}
aside{background:rgba(255,248,250,.96);border-right-color:var(--line);box-shadow:8px 0 28px #8d19340a}
header{background:rgba(255,255,255,.94);border-bottom-color:var(--line);backdrop-filter:blur(12px)}
.logo,.page-head h1,.card h2,.card h3,.line-review h3{color:var(--ink)}
.active{color:var(--primary-color)!important;background:var(--lightest-primary-color)!important}
nav button:hover,.settings:hover{color:var(--primary-color);background:#fff0f3}
.primary,button.primary,.login-submit{background:var(--primary-color)!important;border-color:var(--primary-color)!important;color:#fff!important}
.primary:hover,button.primary:hover,.login-submit:hover{background:var(--darker-primary-color)!important;border-color:var(--darker-primary-color)!important}
.primary:active,button.primary:active,.login-submit:active{background:var(--darkest-primary-color)!important}
button{border-color:#d9bdc4;color:var(--ink);border-radius:0;background:#fff}button:hover{border-color:var(--primary-color);color:var(--primary-color)}
.card,.inbox-card,.mobile-request,.line-review,dialog,.login-card{border-color:var(--line);background:rgba(255,255,255,.97);box-shadow:0 10px 28px #6b17300b}
.card h3::after,.line-workspace>h2::after{content:"";display:block;width:3em;height:2px;margin-top:10px;background:linear-gradient(90deg,var(--secondary-color),var(--tertiary-color))}
thead,.role-badge,.state-chip,.priority,.tabs .active{background:#fff0f3;color:var(--darker-primary-color)}
.avatar{background:var(--primary-color)}
a{color:var(--secondary-color)}
input:focus,select:focus,textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px hsl(var(--primary-color-h) var(--primary-color-s) var(--primary-color-l)/.15)}
.line-review[data-decision="approve"]{border-left-color:var(--tertiary-color)}.line-review[data-decision="modify"]{border-left-color:var(--secondary-color)}.line-review[data-decision="deny"]{border-left-color:var(--primary-color)}
.login{background-color:#fffafb;background-image:radial-gradient(#f4e1e5 1px,transparent 1px),radial-gradient(#f4e1e5 1px,transparent 1px);background-size:16px 16px;background-position:0 0,8px 8px}.login-card{border-top:5px solid var(--primary-color)}
img.icon{transition:filter .15s linear,transform .15s ease}nav button:nth-child(3n+1) img.icon{filter:brightness(0) saturate(100%) invert(18%) sepia(95%) saturate(5454%) hue-rotate(340deg) brightness(91%) contrast(91%)}nav button:nth-child(3n+2) img.icon{filter:brightness(0) saturate(100%) invert(35%) sepia(65%) saturate(2417%) hue-rotate(350deg) brightness(94%) contrast(92%)}nav button:nth-child(3n+3) img.icon{filter:brightness(0) saturate(100%) invert(75%) sepia(91%) saturate(1010%) hue-rotate(345deg) brightness(101%) contrast(95%)}
/* User-provided staged transition, adapted to SPA page regions. */
@keyframes seanSlideInDown{from{transform:translateY(-36px);opacity:0}to{transform:none;opacity:1}}
@keyframes seanSlideInLeft{from{transform:translateX(-42px);opacity:0}to{transform:none;opacity:1}}
@keyframes seanSlideInRight{from{transform:translateX(42px);opacity:0}to{transform:none;opacity:1}}
@keyframes seanHide{from,to{opacity:0}}
@media not (prefers-reduced-motion:reduce){
 main>.page-head{animation:var(--animation-length) seanSlideInDown calc(var(--animation-start) + var(--animation-gap)*1) ease-out both}
 main>.tabs,main>.toolbar{animation:var(--animation-length) seanSlideInLeft calc(var(--animation-start) + var(--animation-gap)*2) ease-out both}
 main>.metrics,main>.detail-grid,main>.grid{animation:var(--animation-length) seanSlideInRight calc(var(--animation-start) + var(--animation-gap)*2) ease-out both}
 main>.card,main>.inbox-card,main>.line-workspace{animation:var(--animation-length) seanSlideInDown calc(var(--animation-start) + var(--animation-gap)*3) ease-out both}
 main>*:nth-child(n+5){animation:var(--animation-length) seanSlideInLeft calc(var(--animation-start) + var(--animation-gap)*4) ease-out both}
 dialog[open]{animation:var(--animation-length) animate-pop ease-out both}
}
@keyframes animate-pop{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-color-scheme:dark){body{color:#f7edf0;background-color:#1a1114;background-image:radial-gradient(hsl(347 46% 22%) 1px,transparent 1px),radial-gradient(hsl(347 46% 22%) 1px,transparent 1px)}aside,header,.card,.inbox-card,.mobile-request,.line-review,dialog,.login-card{background:#21171b;color:#f7edf0;border-color:#4a2c35}.logo,.page-head h1,.card h2,.card h3,.line-review h3{color:#fff}input,select,textarea,button{background:#1a1114;color:#f7edf0;border-color:#68404c}thead{background:#321f25}.active{background:#4a1c29!important}}
/* Refined Seán theme: brand-forward without overpowering the finance workflow. */
:root{
 --brand-crimson:var(--primary-color);--brand-crimson-dark:var(--darker-primary-color);
 --brand-orange:var(--secondary-color);--brand-gold:var(--tertiary-color);
 --brand-tint:#fff4f6;--brand-tint-strong:#fde5ea;
 --text:#24191d;--text-strong:#130f11;--text-muted:#6f6066;
 --canvas:#fbfafb;--panel:#fff;--panel-soft:#f8f6f7;--border:#e6dde0;
 --shadow-sm:0 1px 2px rgba(55,18,29,.04);--shadow-md:0 12px 30px rgba(55,18,29,.09);
 --radius-sm:7px;--radius-md:11px;--radius-lg:16px;
}
body{color:var(--text);background-color:var(--canvas);background-image:none;font-family:'Montserrat',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif}
body::before{content:"";position:fixed;inset:68px 0 auto var(--sidebar-width);height:140px;pointer-events:none;z-index:-1;background:linear-gradient(180deg,rgba(255,244,246,.78),rgba(251,250,251,0)),radial-gradient(#edcbd3 .75px,transparent .75px);background-size:auto,16px 16px;mask-image:linear-gradient(#000,transparent)}
p,.proposal-lines,.login-intro,.login-help{font-family:inherit;line-height:1.55}
.proposal-lines blockquote,.editorial-copy{font-family:'Libre Baskerville',Georgia,serif}
h1,h2,h3{color:var(--text-strong);letter-spacing:-.012em;text-transform:none}
aside{background:#fff;border-right:1px solid var(--border);box-shadow:none}
.logo{color:var(--text-strong);letter-spacing:.02em}.logo-icon{filter:brightness(0) saturate(100%) invert(14%) sepia(17%) saturate(881%) hue-rotate(293deg) brightness(91%) contrast(94%)!important}
header{background:rgba(255,255,255,.9);border-bottom:1px solid var(--border);backdrop-filter:blur(18px) saturate(150%);box-shadow:0 1px 0 rgba(55,18,29,.02)}
header input,.toolbar input,.toolbar select,input,select,textarea{border-color:#d8cdd1;border-radius:var(--radius-sm);background:#fff;color:var(--text)}
header input:focus,.toolbar input:focus,.toolbar select:focus,input:focus,select:focus,textarea:focus{border-color:var(--brand-crimson);box-shadow:0 0 0 3px rgba(219,20,60,.11)}
nav button,.settings{border-radius:var(--radius-md);color:#403439;font-weight:600}
nav button:hover,.settings:hover{background:var(--brand-tint);color:var(--brand-crimson);transform:none}
nav button.active,.settings.active{background:linear-gradient(135deg,var(--brand-tint-strong),#fff0f3)!important;color:var(--brand-crimson)!important;box-shadow:inset 3px 0 0 var(--brand-crimson)}
nav button.active img.icon,.settings.active img.icon{filter:brightness(0) saturate(100%) invert(18%) sepia(96%) saturate(4510%) hue-rotate(341deg) brightness(91%) contrast(90%)!important}
main{position:relative}.page-head{padding-top:2px}.page-head p,.muted,header small{color:var(--text-muted)}
.card,.inbox-card,.mobile-request,.line-review,dialog,.login-card{border:1px solid var(--border);border-radius:var(--radius-md);background:rgba(255,255,255,.98);box-shadow:var(--shadow-sm)}
.card:hover,.mobile-request:hover{border-color:#d8c5cb;box-shadow:0 8px 24px rgba(55,18,29,.06)}
.metrics .card{position:relative;overflow:hidden}.metrics .card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--brand-crimson),var(--brand-orange))}
.card h3::after,.line-workspace>h2::after{height:3px;border-radius:99px;background:linear-gradient(90deg,var(--brand-crimson),var(--brand-orange),var(--brand-gold))}
button{border:1px solid #d5c8cc;border-radius:var(--radius-sm);background:#fff;color:#3f3338;font-weight:700;box-shadow:none}
button:hover{border-color:#bfa9b0;color:var(--brand-crimson);background:#fffafb;box-shadow:0 4px 12px rgba(55,18,29,.07)}
button.primary,.primary,.login-submit{background:linear-gradient(135deg,var(--brand-crimson),#c91239)!important;border-color:var(--brand-crimson)!important;border-radius:var(--radius-sm);box-shadow:0 5px 14px rgba(219,20,60,.19)}
button.primary:hover,.primary:hover,.login-submit:hover{background:linear-gradient(135deg,var(--brand-crimson-dark),#b20e31)!important;box-shadow:0 7px 18px rgba(219,20,60,.24)}
.tabs{border-bottom-color:var(--border)}.tabs button{border:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:transparent}.tabs button.active{background:var(--brand-tint)!important;color:var(--brand-crimson)!important;box-shadow:inset 0 -2px 0 var(--brand-crimson)}
thead{background:#f7f3f4;color:#68545c}tbody tr:hover{background:#fffafb}.role-badge,.state-chip,.priority{background:#f5eef0;color:#68444f;border:1px solid #eadde1}.role-badge.admin{background:#f2e7fb;color:#6f3894}
.avatar{background:linear-gradient(145deg,var(--brand-crimson),#b80f33);box-shadow:0 4px 12px rgba(219,20,60,.18)}
.line-review{border-left-width:4px}.line-review[data-decision="approve"]{border-left-color:#2ca579}.line-review[data-decision="modify"]{border-left-color:var(--brand-orange)}.line-review[data-decision="deny"]{border-left-color:var(--brand-crimson)}
.summary-panel{background:linear-gradient(180deg,#fff,var(--brand-tint));border-top:3px solid var(--brand-crimson)}
dialog{border:0;border-top:4px solid var(--brand-crimson);box-shadow:0 28px 70px rgba(37,15,22,.23)}dialog::backdrop{background:rgba(37,28,32,.48);backdrop-filter:blur(2px)}
.login{background-color:#f9f6f7;background-image:radial-gradient(#ead6dc .8px,transparent .8px);background-size:18px 18px}.login::before{display:none}.login-card{border-top:5px solid var(--brand-crimson);box-shadow:0 24px 70px rgba(55,18,29,.13)}.login .brand b{color:var(--brand-crimson)}
#toast{background:#2d2226;color:#fff;border-left:4px solid var(--brand-crimson);box-shadow:var(--shadow-md)}
/* Preserve the supplied staged transition, with shorter travel for a polished app feel. */
@keyframes seanSlideInDown{from{transform:translateY(-16px);opacity:0}to{transform:none;opacity:1}}
@keyframes seanSlideInLeft{from{transform:translateX(-18px);opacity:0}to{transform:none;opacity:1}}
@keyframes seanSlideInRight{from{transform:translateX(18px);opacity:0}to{transform:none;opacity:1}}
@media not (prefers-reduced-motion:reduce){main>.page-head{animation-timing-function:cubic-bezier(.22,.8,.28,1)}main>.tabs,main>.toolbar,main>.metrics,main>.detail-grid,main>.grid,main>.card,main>.inbox-card,main>.line-workspace{animation-timing-function:cubic-bezier(.22,.8,.28,1)}dialog[open]{animation:var(--animation-length) refinedPop cubic-bezier(.22,.8,.28,1) both}}
@keyframes refinedPop{from{opacity:0;transform:translateY(12px) scale(.975)}to{opacity:1;transform:none}}
@media(max-width:700px){body::before{left:var(--sidebar-width);height:100px}.page-head{gap:10px}.card,.inbox-card,.line-workspace{border-radius:9px}}
@media(prefers-color-scheme:dark){body{color:#f3e9ec;background:#171214;background-image:none}body::before{background:linear-gradient(180deg,rgba(87,24,42,.22),transparent),radial-gradient(#4a2731 .75px,transparent .75px)}aside,header,.card,.inbox-card,.mobile-request,.line-review,dialog,.login-card{background:#21191c;color:#f3e9ec;border-color:#49343b}h1,h2,h3,.logo,.page-head h1,.card h2,.card h3,.line-review h3{color:#fff}input,select,textarea,button{background:#191315;color:#f3e9ec;border-color:#5a4049}nav button,.settings{color:#e8dade}nav button:hover,.settings:hover{background:#321f25}.summary-panel{background:linear-gradient(180deg,#21191c,#2b1b20)}thead{background:#2d2226;color:#dfcdd3}tbody tr:hover{background:#281d21}}
/* Theme cleanup: eliminate legacy blue and rebuild the narrow layout. */
:root{--legacy-blue-replacement:var(--brand-crimson)}
.page-head p,.muted,header small,.metric small,.card small,.proposal-lines dt,.mobile-request dt{color:var(--text-muted)!important}
.active,.tabs button.active,.count,.need-pill,a:not(.button){color:var(--brand-crimson)!important}
.count,.need-pill,.tabs button.active{background:var(--brand-tint-strong)!important}
.role-badge:not(.admin),.state-chip,.priority{background:#f7eef1!important;color:#70404e!important;border-color:#ead9de!important}
/* Legacy SVG charts used fixed blue fills. Recolor only those bars, preserving green/orange semantics. */
.chart svg rect[fill="#4a90e2"],.chart svg rect[fill="#1e73e8"],.chart svg rect[fill="#0966e8"],.chart svg rect[fill="#16519b"]{fill:var(--brand-crimson)!important}
.chart svg text{fill:var(--text)!important}
.chart svg line{stroke:#eadfe2!important}
/* Remove blue appearance from every remaining interactive surface. */
header input::placeholder,.toolbar input::placeholder{color:#8c7a81}
.plain:hover{color:var(--brand-crimson);background:var(--brand-tint)}
.permission-note,.login-help,.login-intro{color:var(--text-muted)!important}
@media(max-width:700px){
 :root{--sidebar-width:58px;--content-gutter:12px}
 header{height:68px;left:var(--sidebar-width);padding:0 12px;gap:9px;justify-content:flex-start;overflow:hidden}
 header input{display:none}header .avatar{flex:0 0 40px}header>div:not(.avatar){min-width:0}header strong{display:block;max-width:205px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}header .plain{margin-left:auto;flex:0 0 auto;padding:8px}
 main{padding-top:84px;overflow:hidden}
 .page-head{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;margin-bottom:14px}.page-head h1{font-size:25px;line-height:1.08}.page-head .actions{grid-row:2;display:flex;flex-wrap:wrap;margin-top:10px}.page-head>.need-pill{justify-self:start;margin-top:8px}
 .tabs{display:flex;overflow-x:auto;max-width:100%;scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity;border-bottom:1px solid var(--border);padding-bottom:0}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:0 0 auto;min-width:max-content;scroll-snap-align:start;padding:10px 14px}
 .toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.toolbar input,.toolbar select{min-width:0!important;width:100%}
 .inbox-card{padding:0;background:transparent;border:0;box-shadow:none}.mobile-inbox-list{display:grid!important}.inbox-card>table,.inbox-card>.table-wrap{display:none!important}
 .mobile-request{padding:14px;border-radius:10px}.mobile-request h2{font-size:16px;line-height:1.25}.mobile-request dl{grid-template-columns:1fr 1fr}
 .detail-grid{display:block}.detail-grid>*{margin-bottom:12px}.chart{min-height:240px}.chart svg{width:100%!important;height:auto!important;max-height:260px}
 .line-workspace{padding:14px}.line-review{padding:13px}.line-review h3{font-size:14px;line-height:1.35;max-height:none}.line-metrics{grid-template-columns:1fr 1fr}.line-controls{grid-template-columns:1fr 1fr;gap:7px}.line-controls>*{min-width:0;width:100%}.line-controls .line-note,.line-controls .save-line{grid-column:1/-1}
 .facts{grid-template-columns:1fr 1fr}.summary-panel{position:static}
 table{min-width:680px}.card.table-wrap{overflow-x:auto}
}
@media(max-width:700px){.inbox-card table{display:none!important}.inbox-card .mobile-inbox-list{display:grid!important}}
/* Match the site's flatter, less-rounded control language. */
button,.primary,button.primary,.login-submit,.plain,.tabs button,.toolbar button,.line-controls button,.mobile-request button,.login-actions button{border-radius:2px!important}
input,select,textarea{border-radius:3px}
nav button,.settings{border-radius:4px}
/* Final palette lock: no legacy blue UI surfaces. */
:root{
 --navy-replacement:#2b1e23;
 --muted-replacement:#725f66;
 --pale-replacement:#f7f1f3;
 --line-replacement:#e5dadd;
}
body,h1,h2,h3,h4,strong,th,td,dt,dd{color:var(--navy-replacement)}
.page-head p,.muted,header small,.metric small,.card small,.proposal-lines dt,.mobile-request dt,label{color:var(--muted-replacement)!important}
aside{background:#fffafb!important;border-color:var(--line-replacement)!important}
header{border-color:var(--line-replacement)!important}
header input,.toolbar input,.toolbar select,input,select,textarea{border-color:#d8c9ce!important;color:var(--navy-replacement)!important}
.avatar{background:var(--primary-color)!important;color:#fff!important}
nav button,.settings,.plain,button{color:var(--navy-replacement)!important}
nav button.active,.settings.active,.tabs button.active{color:var(--primary-color)!important;background:#fde7ec!important;box-shadow:inset 3px 0 0 var(--primary-color)!important}
.tabs button.active{box-shadow:inset 0 -2px 0 var(--primary-color)!important}
.primary,button.primary,.login-submit{background:var(--primary-color)!important;border-color:var(--primary-color)!important;color:#fff!important}
.primary:hover,button.primary:hover,.login-submit:hover{background:var(--darker-primary-color)!important;border-color:var(--darker-primary-color)!important;color:#fff!important}
.need-pill,.count,.state-chip,.priority,.role-badge,.role-badge.admin{background:#f8e8ed!important;border-color:#ead5dc!important;color:#8a2942!important}
thead{background:#f6f0f2!important;color:#5e4a51!important}thead th{color:#5e4a51!important}
a,.request-link,.mobile-request a{color:#a93852!important}
.summary-panel,.calculated-recommendation{background:#fff4f6!important;color:var(--navy-replacement)!important}
.card,.inbox-card,.mobile-request,.line-review,dialog,.login-card{border-color:var(--line-replacement)!important}
.assignment-editor select{color:var(--navy-replacement)!important}.assignment-editor select:focus{outline-color:rgba(219,20,60,.22)!important}
input:focus,select:focus,textarea:focus{border-color:var(--primary-color)!important;box-shadow:0 0 0 3px rgba(219,20,60,.13)!important}
dialog::backdrop{background:rgba(43,30,35,.52)!important}
.chart svg rect[fill="#4a90e2"],.chart svg rect[fill="#1e73e8"],.chart svg rect[fill="#0966e8"],.chart svg rect[fill="#16519b"],.chart svg rect[fill="#2677e8"]{fill:var(--primary-color)!important}
.chart svg text{fill:#5e4a51!important}.chart svg line{stroke:#eadde1!important}
.login .brand b,.login h1{color:var(--navy-replacement)!important}
.login{background:#fffafb!important;background-image:radial-gradient(#efd9df .8px,transparent .8px)!important}
/* Flat controls from the source site. */
button,.primary,button.primary,.login-submit,.plain,.tabs button,.toolbar button,.line-controls button,.mobile-request button,.login-actions button{border-radius:2px!important}
nav button,.settings{border-radius:3px!important}
input,select,textarea{border-radius:3px!important}
.role-chip,.role-chip.reviewer,.role-chip.admin,.role-chip.chair,.role-chip.viewer{background:#f8e8ed!important;color:#8a2942!important;border-color:#ead5dc!important}
.metrics span,.card-head span,.audit-head span,.card>span,.latest-note{color:var(--muted-replacement)!important}
body span{color:var(--muted-replacement)!important}
.role-chip,.role-chip.reviewer,.role-chip.admin,.role-chip.chair,.role-chip.viewer,.count,.need-pill,.state-chip,.priority{color:#8a2942!important}
.avatar,button.primary,.primary,.login-submit{color:#fff!important}
.empty-state,.empty-state p{color:var(--muted-replacement)!important}
.login .brand,.login .brand *{color:var(--navy-replacement)!important}
/* Website-style flat presentation and page-change-only motion. */
*{box-shadow:none!important;text-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transition:none!important}
body,body::before,.login,.login::before,aside,header,.card,.summary-panel,.calculated-recommendation,.primary,button.primary,.login-submit{background-image:none!important}
body::before{display:none!important}
body,.login{background-color:#fffafa!important}
aside,header,.card,.inbox-card,.mobile-request,.line-review,dialog,.login-card,.summary-panel{box-shadow:none!important}
button.primary,.primary,.login-submit{background:var(--primary-color)!important}
button.primary:hover,.primary:hover,.login-submit:hover{background:var(--darker-primary-color)!important}
.card h3::after,.line-workspace>h2::after{background:var(--secondary-color)!important}
dialog::backdrop{background:rgba(43,30,35,.48)!important;backdrop-filter:none!important}
/* Nothing animates by default, including rows, dialogs, decisions, hovers, or controls. */
main>*,tbody tr,dialog[open],.toast,.active,.line-review[data-decision]{animation:none!important}
/* The supplied transition runs only when page() detects a different page identity. */
@media not (prefers-reduced-motion:reduce){
 #app.page-change>.page-head{animation:var(--animation-length) seanSlideInDown calc(var(--animation-gap)*1) ease-out both!important}
 #app.page-change>.tabs,#app.page-change>.toolbar{animation:var(--animation-length) seanSlideInLeft calc(var(--animation-gap)*2) ease-out both!important}
 #app.page-change>.metrics,#app.page-change>.detail-grid,#app.page-change>.grid{animation:var(--animation-length) seanSlideInRight calc(var(--animation-gap)*2) ease-out both!important}
 #app.page-change>.card,#app.page-change>.inbox-card,#app.page-change>.line-workspace{animation:var(--animation-length) seanSlideInDown calc(var(--animation-gap)*3) ease-out both!important}
 #app.page-change>*:nth-child(n+5){animation:var(--animation-length) seanSlideInLeft calc(var(--animation-gap)*4) ease-out both!important}
}
@media(prefers-reduced-motion:reduce){#app.page-change>*{animation:none!important}}
/* Screenshot follow-up: neutral table rules and borderless active navigation. */
nav button.active,.settings.active{box-shadow:none!important;border-left:0!important}
table,thead,tbody,tr,th,td{border-color:#eadfe2!important}
thead,tr,th,td{box-shadow:none!important}
thead{background:#f7f2f4!important}
thead th{background:#f7f2f4!important;color:#5e4a51!important;border-bottom:1px solid #ddcfd4!important}
tbody tr{background:#fff!important;border-bottom:1px solid #eadfe2!important}
tbody tr:hover{background:#fff8fa!important}
tbody td{border-bottom:1px solid #eadfe2!important}
.role-permissions th,.role-permissions td,.audit-table th,.audit-table td{border-color:#eadfe2!important}
/* Contrast and border consistency pass. */
:root{--text-main:#261b1f;--text-secondary:#65555b;--surface-border:#d9ced2;--status-pending:#747b84;--status-approve:#16865f;--status-modify:#a66f00;--status-deny:#ba243f}
body{color:var(--text-main)!important}.page-head p,.muted,header small,label,.metric small,.card small,.proposal-lines dt,.mobile-request dt{color:var(--text-secondary)!important}
/* Remove decorative one-sided borders everywhere outside budget-line status cards. */
nav button,.settings,.tabs button,.card,.inbox-card,.mobile-request,dialog,.login-card,.summary-panel,.calculated-recommendation,.role-badge,.state-chip,.priority,.need-pill,.count{border-left-width:0!important;border-right-width:0!important;border-top-width:0!important}
.card,.inbox-card,.mobile-request,dialog,.login-card,.summary-panel{border:1px solid var(--surface-border)!important}
nav button,.settings,.tabs button,.role-badge,.state-chip,.priority,.need-pill,.count{border:0!important}
.tabs{border-bottom:1px solid var(--surface-border)!important}.tabs button.active{box-shadow:none!important;border:0!important;background:#f7dce3!important;color:#981d3a!important}.tabs button.active .count{background:#fff!important;color:#7d1730!important}
/* Dialog contrast: opaque surface, stronger backdrop, no top-only accent. */
dialog{background:#fff!important;color:#21171b!important;border-radius:4px!important}dialog::backdrop{background:rgba(38,27,31,.68)!important}dialog h1,dialog h2,dialog h3,dialog label,dialog p,dialog legend{color:#21171b!important}dialog input,dialog select,dialog textarea{color:#21171b!important;background:#fff!important;border:1px solid #bdaeb3!important}
/* Complete status system for budget line review. This is the sole one-sided border exception. */
.line-review{border:1px solid var(--surface-border)!important;border-left-width:5px!important;border-left-style:solid!important;border-left-color:var(--status-pending)!important;border-radius:4px!important;background:#fff!important}
.line-review.pending,.line-review[data-decision=""]{border-left-color:var(--status-pending)!important}
.line-review.approve,.line-review[data-decision="approve"]{border-left-color:var(--status-approve)!important}
.line-review.modify,.line-review[data-decision="modify"]{border-left-color:var(--status-modify)!important}
.line-review.deny,.line-review[data-decision="deny"]{border-left-color:var(--status-deny)!important}
.line-review .line-state{font-weight:800;color:#34383d!important}.line-review.approve .line-state,.line-review[data-decision="approve"] .line-state{color:#116c4d!important}.line-review.modify .line-state,.line-review[data-decision="modify"] .line-state{color:#765100!important}.line-review.deny .line-state,.line-review[data-decision="deny"] .line-state{color:#9b1832!important}
/* Ensure badges remain legible at small sizes. */
.role-chip,.role-badge,.state-chip,.priority,.need-pill,.count{font-weight:650}.role-chip,.role-badge{color:#7f263d!important;background:#f7e1e7!important}.need-pill,.count{color:#7d1730!important;background:#f4dbe1!important}
/* Inbox uses its own tab class; keep the selected state contrast-compliant and borderless. */
.inbox-tabs button{border:0!important;box-shadow:none!important}.inbox-tabs button.active{border:0!important;box-shadow:none!important;background:#f7dce3!important;color:#7d1730!important}.inbox-tabs button.active b{background:#fff!important;color:#7d1730!important}
nav button.active,.settings.active{border:0!important;box-shadow:none!important}
#toast{border:0!important;box-shadow:none!important}
/* Budget-line modal: prevent nested grids and status controls from overflowing. */
#modal{width:min(760px,calc(100vw - 32px))!important;max-width:760px!important;max-height:calc(100vh - 32px);overflow:auto}
#modal form{padding:24px!important;overflow:hidden}
#modalBody{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px 18px!important;align-items:start;min-width:0}
#modalBody>*{min-width:0;max-width:100%}
#modalBody>label{min-width:0}
#modalBody>label>input,#modalBody>label>select,#modalBody>label>textarea{display:block;width:100%!important;min-width:0!important;max-width:100%!important}
#modalBody>.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;grid-column:1/2;min-width:0}
#modalBody>.form-grid label{display:grid;gap:5px;min-width:0}
#modalBody>.form-grid input{width:100%!important;min-width:0!important;max-width:100%!important}
#modalBody>fieldset{grid-column:2/3;display:grid;grid-template-columns:1fr;gap:10px;align-self:stretch;min-width:0;margin:0;border:1px solid var(--surface-border)!important;border-radius:3px!important;padding:12px!important}
#modalBody>fieldset legend{padding:0 6px}
#modalBody>fieldset label{display:flex!important;align-items:center;gap:9px;margin:0!important;white-space:nowrap}
#modalBody>fieldset input[type=checkbox]{width:18px!important;height:18px!important;flex:0 0 auto}
#modalBody textarea{min-height:72px;resize:vertical}
.modal-head{align-items:center;gap:16px}.modal-head h2{margin:0}.modal-head button{padding:6px 10px!important}
.modal-actions{padding-top:4px}
@media(max-width:700px){
 #modal{width:calc(100vw - 20px)!important;max-height:calc(100vh - 20px)}
 #modal form{padding:18px!important}
 #modalBody{grid-template-columns:minmax(0,1fr)!important;gap:13px!important}
 #modalBody>.form-grid,#modalBody>fieldset{grid-column:1!important}
 #modalBody>.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:440px){#modalBody>.form-grid{grid-template-columns:minmax(0,1fr)}}
