:root{--ink:#17211b;--muted:#69726d;--line:#e4e8e5;--paper:#f4f6f4;--card:#fff;--green:#245d42;--green2:#dcebe2;--red:#a33a37;--amber:#a25c19;--ease:cubic-bezier(.23,1,.32,1)}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:transform 140ms var(--ease),background 160ms ease}button:active{transform:scale(.97)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8bb69e;outline-offset:2px}.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 0,#e7efe9,transparent 42%),var(--paper)}.login-card{width:min(400px,calc(100% - 32px));background:#fff;border:1px solid var(--line);border-radius:20px;padding:36px;box-shadow:0 24px 60px #203b2912}.login-card h1{margin:12px 0 4px;font-size:28px}.login-card label{display:grid;gap:6px;margin-top:18px;font-weight:650}.login-card button{width:100%;margin-top:24px}.mark{width:36px;height:36px;border-radius:10px;background:var(--green);color:white;display:grid;place-items:center;font:700 17px Georgia}.eyebrow{color:var(--green);font-size:11px;font-weight:800;letter-spacing:.12em;margin:0}.muted,.hint{color:var(--muted)}.hint{font-size:12px;text-align:center}.error{color:var(--red)}#app{min-height:100vh;grid-template-columns:248px 1fr}#app:not([hidden]){display:grid}aside{position:sticky;top:0;height:100vh;background:#16221b;color:#f2f6f3;padding:22px 14px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;padding:2px 8px 24px}.brand small,.side-foot small{display:block;color:#9baba1;font-size:11px}nav{display:grid;gap:3px}.nav-item{border:0;background:transparent;color:#aebbb3;text-align:left;border-radius:9px;padding:10px 12px;display:flex;gap:10px;align-items:center}.nav-item.active,.nav-item:hover{background:#ffffff12;color:white}.nav-item span{width:18px;text-align:center}.side-foot{margin-top:auto;border-top:1px solid #ffffff16;padding:18px 7px 0;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px}.side-foot #avatar{background:#caead7;color:var(--green);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:800}.icon{border:0;background:transparent;color:inherit;font-size:20px;padding:5px}main{padding:0 38px 60px;min-width:0}main>header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}h1,h2,h3,p{margin-top:0}main h1{font:600 27px Georgia,serif;margin:5px 0 0}.primary,.secondary{border:1px solid var(--green);border-radius:8px;padding:9px 14px;font-weight:700}.primary{background:var(--green);color:#fff}.secondary{background:#fff;color:var(--ink);border-color:var(--line)}input,select,textarea{width:100%;border:1px solid #ccd3ce;border-radius:8px;background:#fff;padding:10px 11px;color:var(--ink)}textarea{min-height:100px;resize:vertical}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:26px 0}.metric,.panel{background:var(--card);border:1px solid var(--line);border-radius:12px}.metric{padding:18px}.metric small{color:var(--muted);font-weight:650}.metric strong{display:block;font:600 28px Georgia;margin-top:8px}.metric.danger strong{color:var(--red)}.panel{margin-top:16px;overflow:hidden}.panel-head{padding:17px 19px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-head h2{font-size:15px;margin:0}.progress{height:7px;background:#e7ebe8;border-radius:9px;overflow:hidden;margin-top:14px}.progress i{display:block;height:100%;background:var(--green);border-radius:inherit}.countdown{background:#203a2b;color:white;border:0}.countdown small{color:#b9c9bf}.countdown strong{color:white}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em;padding:11px 16px;background:#fafbfa}td{padding:13px 16px;border-top:1px solid var(--line)}tr:first-child td{border-top:0}.task-title{font-weight:700}.task-title small{display:block;color:var(--muted);font-weight:400}.status{border-radius:99px;padding:4px 8px;font-size:11px;font-weight:750;background:#eef0ef}.status.done{color:var(--green);background:var(--green2)}.status.blocked,.overdue{color:var(--red);background:#f9e7e5}.status.in_progress{color:#73591a;background:#f5edcf}.row-actions button{font-size:12px;border:0;background:transparent;color:var(--green);padding:5px}.empty{padding:42px;text-align:center;color:var(--muted)}dialog{border:0;border-radius:14px;padding:0;width:min(580px,calc(100% - 30px));box-shadow:0 30px 80px #11201833}dialog::backdrop{background:#0e191280;backdrop-filter:blur(2px)}dialog form>header,dialog footer{padding:18px 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}dialog footer{border:0;border-top:1px solid var(--line);justify-content:flex-end;gap:8px}dialog h2{margin:0;font-size:17px}#form-fields{padding:20px 22px;display:grid;grid-template-columns:1fr 1fr;gap:16px}#form-fields label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.wide{grid-column:1/-1}.budget-bar{min-width:180px}.budget-bar small{color:var(--muted)}@media(max-width:900px){#app:not([hidden]){grid-template-columns:76px 1fr}.brand>div:last-child,.nav-item b,.side-foot>div:nth-child(2),.side-foot button{display:none}aside{align-items:center}.nav-item{justify-content:center}.grid{grid-template-columns:1fr 1fr}main{padding:0 18px}}@media(max-width:600px){main>header{height:94px}.grid{grid-template-columns:1fr}.primary{padding:8px 10px}#form-fields{grid-template-columns:1fr}.wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){button{transition:background 160ms ease}button:active{transform:none}}
[hidden]{display:none!important}
.clerk-card{width:min(480px,calc(100% - 32px))}.clerk-card>h1,.clerk-card>.eyebrow,.clerk-card>.muted,.clerk-card>.mark{text-align:left}#clerk-sign-in{margin-top:20px}#clerk-user{width:32px;height:32px}

/* AIT dark palette */
:root{color-scheme:dark;--ink:#fff;--muted:#aab8c8;--line:#ffffff1f;--paper:#00172f;--card:#002147;--green:#1257a1;--green2:#123a66;--red:#e21033;--amber:#e4a11b}
body{background:var(--paper)}
.login-shell{background:radial-gradient(circle at 50% 0,#1257a166,transparent 44%),#001124}
.login-card{background:#002147;border-color:#1257a1;box-shadow:0 24px 70px #0009}
.mark,.primary{background:var(--red);border-color:var(--red)}
.eyebrow{color:#6da9e8}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--red)}
aside{background:#231f20;color:#fff}
.nav-item.active,.nav-item:hover{background:#1257a155}
.secondary,input,select,textarea{background:#00172f;color:#fff;border-color:#1257a1}
.countdown{background:#1257a1}.countdown small{color:#dce9f7}
th{color:#c6d4e4;background:#00172f}
.status{background:#ffffff18}.status.done{color:#8bc0ff;background:var(--green2)}.status.blocked,.overdue{color:#ff7890;background:#e2103324}.status.in_progress{color:#ffd66b;background:#e4a11b24}
dialog{background:#002147;color:#fff;border:1px solid #1257a1;box-shadow:0 30px 80px #000a}
.ait-logo{display:block;filter:invert(1);object-fit:contain}.login-logo{width:150px;height:50px;margin-bottom:18px}.side-logo{width:82px;height:28px}.brand{align-items:center}
#clerk-sign-in,#clerk-sign-in>div{width:100%}#password-setup{margin-top:22px}#password-setup label{display:grid;gap:6px;margin-top:14px;font-weight:650}#password-setup .primary{width:100%;margin-top:20px}
@media(max-width:900px){.side-logo{width:46px;height:22px}.brand{padding-left:0;padding-right:0}}
