:root{--ink:#172c31;--muted:#748184;--line:#e5eaea;--teal:#136d63;--teal-dark:#0d534b;--mint:#e4f2ec;--surface:#f6f8f8;--nav-width:240px;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);font-size:14px;line-height:1.5;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--surface)}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.2;letter-spacing:-1.15px;font-weight:650}h2{font-size:17px;letter-spacing:-.35px;font-weight:650}h3{font-size:17px}small{font-size:12px}.muted{color:var(--muted)}.strong{font-weight:650}.number{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,monospace;font-size:11px}.eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:1.7px;color:#758783;margin-bottom:12px}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip:focus{position:fixed;z-index:100;background:white;padding:16px}.sidebar{width:var(--nav-width);position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:30px 18px 18px;z-index:20;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:29px;font-weight:730;letter-spacing:-1.4px;margin:0 14px 34px}.brand:hover{text-decoration:none}.brandmark{display:flex;align-items:center;justify-content:center;background:var(--teal);color:white;width:39px;height:39px;border-radius:12px;font-size:29px;font-weight:700;position:relative}.brandmark span{font-size:20px;position:absolute;right:1px;top:-5px}.brand-sub{display:block;letter-spacing:2px;font-size:8px;font-weight:600;margin-top:-3px;color:#86918e}.workspace{display:flex;align-items:center;gap:10px;padding:11px 8px;border:1px solid var(--line);border-radius:9px;font-size:11px;font-weight:600;margin-bottom:26px}.workspace small{display:block;font-size:10px;color:var(--muted);font-weight:400}.workspace-icon{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:#eef2f0;color:var(--teal)}.workspace>.muted{margin-left:auto}.nav-label{font-size:9px;font-weight:700;letter-spacing:1.3px;color:#99a3a3;padding:10px 13px 8px}.sidebar nav{overflow:auto}.sidebar nav a{color:#677578;font-size:12px;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:7px;margin:2px 0}.sidebar nav a:hover{background:#f6f8f7;text-decoration:none;color:var(--ink)}.sidebar nav a[aria-current]{background:var(--mint);color:var(--teal);font-weight:650}.nav-icon{width:19px;font-size:19px;line-height:1;text-align:center;font-weight:400}.sidebar-bottom{margin-top:auto;padding:22px 8px 3px;color:#8a9595;font-size:10px;display:flex;align-items:center;gap:7px}.status-dot{width:6px;height:6px;border-radius:50%;background:#81ac96}.app{margin-left:var(--nav-width)}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:15px}.breadcrumb{font-size:11px;color:#899395}.breadcrumb span{margin:0 13px;color:#c2c9c8}.breadcrumb strong{font-weight:500;color:#465659}.top-right{display:flex;align-items:center;gap:12px}.environment{color:#83918c;border:1px solid #e0e8e2;border-radius:20px;padding:4px 9px;font-size:9px;letter-spacing:.3px}.avatar{display:grid;place-items:center;background:#e9efdc;color:#526647;border:1px solid #dce5cf;width:34px;height:34px;border-radius:50%;font-size:13px;font-weight:600;flex-shrink:0}.user-name{font-size:11px;font-weight:600}.user-name small{display:block;color:var(--muted);font-size:9px;font-weight:400}.text-button{border:0;background:none;padding:0;color:var(--teal);font-size:12px}.text-button:hover{text-decoration:underline}.danger{color:#aa4c45}.mobile-menu{display:none}main#main{max-width:1550px;margin:auto;padding:34px 36px 42px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading p{color:var(--muted);font-size:12px;margin-top:9px}.page-heading .eyebrow{margin-bottom:10px}.greeting-dot{color:var(--teal)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:white;border:1px solid #dce3e1;padding:10px 17px;border-radius:7px;line-height:1.3;font-size:12px;font-weight:550;color:var(--ink);white-space:nowrap;min-height:38px}.button:hover{background:#f0f5f2;text-decoration:none;border-color:#bdcec6}.button.primary{background:var(--teal);border-color:var(--teal);color:white;box-shadow:0 2px 3px #124d4310}.button.primary:hover{background:var(--teal-dark)}.button.small{padding:6px 11px;min-height:30px;font-size:11px}.button.square{padding:6px;width:32px;min-height:32px;font-size:20px}.button:disabled{opacity:.45;cursor:not-allowed}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.welcome-banner{padding:29px 34px;background:#e8f2e9;border:1px solid #dfece0;border-radius:12px;display:flex;justify-content:space-between;min-height:225px;overflow:hidden;position:relative;margin-bottom:23px}.welcome-banner .eyebrow{font-size:9px;color:#6f8c7b;margin-bottom:13px}.welcome-banner h2{font-size:34px;line-height:1.08;letter-spacing:-1.3px;color:#245547;font-weight:600}.welcome-banner p{font-size:11px;color:#6f8276;margin:12px 0 17px}.welcome-banner a{font-size:11px;font-weight:650}.welcome-banner a span{margin-left:20px}.banner-art{position:relative;width:320px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.art-ring{border:1px solid #bfd9c480;border-radius:50%;position:absolute;width:285px;height:285px;transform:rotate(-20deg)}.ring-two{width:230px;height:230px}.art-card{position:relative;background:#ffffffbc;border:1px solid #fff;padding:19px 23px;border-radius:12px;transform:rotate(-6deg);box-shadow:0 12px 25px #4473560b;width:181px}.art-card>span{font-size:8px;font-weight:600;letter-spacing:1px;color:#82958b}.art-card strong{display:block;font-size:31px;line-height:1.4;color:#315d4d;font-weight:600}.art-card strong small{font-size:14px;font-weight:400}.mini-bars{display:flex;gap:8px;align-items:end;height:37px;margin:8px 0 9px}.mini-bars i{display:block;flex:1;border-radius:3px 3px 0 0;background:#a8d2b5;height:65%}.mini-bars i:nth-child(2){height:90%}.mini-bars i:nth-child(3){height:75%}.mini-bars i:nth-child(4){height:100%;background:#47775d}.mini-bars i:nth-child(5){height:55%}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:23px}.metrics.three{grid-template-columns:repeat(3,1fr)}.metric{display:block;padding:20px;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink)}a.metric:hover{text-decoration:none;border-color:#b8d1c5}.metric>div{display:flex;justify-content:space-between;align-items:center;color:#758481;font-size:11px;margin-bottom:12px}.metric-icon{width:28px;height:28px;background:#f2f6f3;border-radius:7px;display:grid;place-items:center;color:#739182;font-size:18px}.metric>strong{display:block;font-size:28px;letter-spacing:-.7px;font-weight:600;line-height:1.2}.metric strong small{font-size:13px;letter-spacing:0;color:#94a19b;font-weight:400}.metric p{font-size:10px;color:#97a19e;margin-top:11px}.panel{background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:23px;overflow:hidden}.panel-heading{padding:23px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-heading p{font-size:11px;color:var(--muted);margin-top:4px}.panel-heading>a{font-size:11px;font-weight:600}.panel-heading small{color:var(--muted)}.pill{border:1px solid var(--line);border-radius:6px;padding:5px 10px;font-size:10px;color:#7a8681;white-space:nowrap}.dashboard-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}.chart{height:160px;display:flex;align-items:end;justify-content:space-between;padding:0 25px 15px;gap:20px}.chart-column{display:flex;flex-direction:column;align-items:center;width:100%;gap:8px;height:100%;justify-content:flex-end}.chart-column>span{font-size:9px;color:#809088}.bar-track{height:90px;width:100%;max-width:34px;background:#f1f5f2;border-radius:5px 5px 0 0;display:flex;align-items:flex-end;overflow:hidden}.chart-bar{background:#7eb099;width:100%;min-height:2px;border-radius:5px 5px 0 0}.chart-column:nth-child(3) .chart-bar{background:var(--teal)}.chart-column small{color:#8e9992;font-size:10px}.panel-footer{border-top:1px solid var(--line);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;color:#84918c;font-size:10px;gap:10px}.panel-footer a{font-weight:600}.action-row{display:flex;align-items:center;padding:17px 24px;gap:13px;border-top:1px solid #f0f3f1;color:var(--ink)}.action-row:hover{background:#fbfcfb;text-decoration:none}.action-row>span:last-child{margin-left:auto;color:#a9b5ae}.action-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:#ecf4ec;color:#658d72;font-size:19px;flex-shrink:0}.action-icon.lavender{background:#f0edf6;color:#8c7ca5}.action-icon.peach{background:#faf0e4;color:#bd9968}.action-row strong{font-size:11px;font-weight:600;display:block}.action-row small{font-size:10px;color:#929d96;display:block;margin-top:4px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{background:#f8faf9;font-size:10px;font-weight:600;color:#819088;padding:13px 24px;white-space:nowrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:16px 24px;border-bottom:1px solid #eef2ef;color:#5d7067}tr:last-child td{border-bottom:0}td strong{color:#344e42;font-size:12px;font-weight:600}td small,th small{display:block;color:#92a197;font-size:10px;margin-top:3px}tr:hover td{background:#fbfcfb}tfoot td,tfoot th{background:#edf5ef;color:#345b45;font-weight:650;border-top:1px solid #dceadd}.archive-note{display:flex;align-items:center;gap:15px;background:#eef2f1;border:1px solid #e0e7e4;border-radius:8px;padding:16px 20px;font-size:11px}.archive-note>span{font-size:23px;color:#719383}.archive-note strong{font-weight:550}.archive-note p{color:#8a9991;font-size:10px;margin-top:3px}.archive-note a{margin-left:auto;font-weight:600}.app-footer{display:flex;justify-content:space-between;padding:0 36px 25px;max-width:1550px;margin:auto;font-size:9px;color:#9ba6a0}.notice{padding:13px 18px;border:1px solid #d5e5d9;background:#edf6ef;color:#396649;border-radius:8px;margin-bottom:20px;font-size:12px}.notice.error{color:#9a4545;background:#fff1ef;border-color:#f0d4d0}.badge{display:inline-flex;align-items:center;border-radius:5px;padding:4px 8px;font-size:10px;white-space:nowrap;background:#f0f2f2;color:#7c8883}.badge.approved{background:#e7f3e9;color:#558064}.badge.submitted{background:#fff4d9;color:#a88737}.badge.rejected{background:#fcebe8;color:#a3685a}.heading-with-status{display:flex;align-items:center;gap:16px}.week-switch{display:flex;align-items:center;gap:18px}.total-label{color:#87978d;font-size:11px}.total-label strong{font-size:23px;display:block;color:#305745;font-weight:600;text-align:right}.timesheet-table th,.timesheet-table td{padding:17px 18px}.timesheet-table td:not(:first-child){min-width:75px}.timesheet-table th:first-child{min-width:220px}.form-panel{max-width:880px;padding:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{margin-bottom:18px;min-width:0}.form-grid .field{margin:0}.field.full{grid-column:1/-1}.field label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.required{color:#819c8b}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid #dce4df;border-radius:7px;background:white;color:var(--ink);padding:10px 12px;max-width:100%;outline:none;min-height:41px}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:#6ba18a;box-shadow:0 0 0 3px #cee5d766}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{width:100%}input[type=checkbox]{accent-color:var(--teal);width:17px;height:17px}input[type=file]{font-size:11px}.help{font-size:11px;line-height:1.6;color:#89988f;margin-top:6px}.help ul{padding-left:17px}.errorlist{padding:0;list-style:none;font-size:12px;color:#b85047;margin:7px 0}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px;padding-top:22px;border-top:1px solid var(--line)}.back-link{display:block;font-size:12px;margin-bottom:20px}.review-form{border-top:1px solid var(--line);padding:18px 24px;display:flex;gap:10px}.review-form input{flex:1;min-width:100px}.filter-bar{display:flex;align-items:end;gap:12px;margin:0 0 22px}.filter-bar>input{min-width:260px}.filter-bar label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.report-filters{flex-wrap:wrap}.filter-bar select{max-width:270px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.project-card{padding:23px;margin:0;display:flex;flex-direction:column}.project-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.project-icon{width:43px;height:43px;background:#edf5ee;color:#71937c;display:grid;place-items:center;font-size:25px;border-radius:10px}.project-card .eyebrow{font-size:9px;margin-bottom:5px}.project-card h2{font-size:20px}.project-card>p{font-size:11px;color:var(--muted);margin-top:5px}.project-description{min-height:42px;margin:14px 0 20px!important}.project-stats{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:auto}.project-stats strong{display:block;font-weight:600;font-size:20px}.project-stats small{font-size:9px;color:var(--muted)}.project-footer{display:flex;justify-content:space-between;margin-top:23px;font-size:11px;font-weight:600}.person-cell{display:flex;align-items:center;gap:12px}.person-cell small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.planning-row{display:grid;grid-template-columns:240px 1fr 190px;gap:25px;align-items:center;padding:24px;border-top:1px solid var(--line)}.planning-row strong{font-size:12px;font-weight:550}.allocation{display:flex;align-items:center;gap:10px;font-size:11px;padding:9px 10px;border-radius:5px;border-left:3px solid #91b49b;background:#f0f6f0;margin:5px 0}.allocation strong{margin-left:auto;font-size:10px;white-space:nowrap}.capacity>div:first-child{display:flex;flex-wrap:wrap;gap:5px;justify-content:space-between}.capacity small{font-size:9px;color:#84958a}.progress-track{height:5px;background:#e9efea;border-radius:5px;overflow:hidden;margin-top:10px}.progress-track span{display:block;height:100%;background:#79a28a}.over .progress-track span{background:#c18168}.over small{color:#b9755e}.empty{text-align:center;padding:45px 25px;color:#96a398;min-height:180px}.empty h2,.empty h3{color:#456151;margin:10px}.empty p{font-size:12px;margin:8px 0 18px}.empty-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#edf5eb;color:#7ca57c;margin:15px auto}.preserve{white-space:pre-wrap;overflow-wrap:anywhere;max-width:800px}a:focus-visible,button:focus-visible{outline:3px solid #70bba2;outline-offset:3px}.login-page{display:flex;min-height:100vh;background:#fff}.login-art{width:48%;background:#e8f2e9;display:flex;flex-direction:column;justify-content:space-between;padding:45px 55px;position:relative;overflow:hidden}.login-art .brand{margin:0}.login-art h1{font-size:64px;letter-spacing:-3px;font-weight:600;line-height:1.02;color:#235641}.login-art p{font-size:14px;color:#789382;margin-top:25px;line-height:1.8}.login-art>small{color:#8da595;font-size:10px}.login-art .eyebrow{font-size:9px}.orbit{position:absolute;width:380px;height:380px;border:1px solid #bdd7c5;border-radius:50%;bottom:-120px;right:-130px;display:grid;place-items:center}.orbit-inner{width:275px;height:275px;border:1px solid #bdd7c5;border-radius:50%;display:grid;place-items:center;transform:rotate(-20deg);font-size:14px;color:#8eac98;letter-spacing:3px}.login-panel{flex:1;display:grid;place-items:center;padding:50px}.login-box{max-width:360px;width:100%}.login-box h1{font-size:29px;margin-bottom:10px}.login-box>.muted{font-size:13px;margin-bottom:32px}.login-box .field{margin-bottom:22px}.wide{width:100%;justify-content:space-between!important}.login-help{font-size:11px;text-align:center;color:#9ba69f;margin-top:30px;line-height:1.8}
@media(min-width:1500px){main#main{padding-top:45px}.welcome-banner{min-height:250px}.sidebar{--nav-width:260px}.app{margin-left:260px}.topbar{padding-left:45px}}
@media(max-width:1150px){:root{--nav-width:215px}.sidebar{padding-left:12px;padding-right:12px}.topbar{padding:0 24px}.top-right .user-name{display:none}main#main{padding:28px 24px}.metrics{gap:10px}.metric{padding:16px}.metric>strong{font-size:24px}.dashboard-grid{grid-template-columns:1fr 1fr;gap:16px}.project-grid{grid-template-columns:repeat(2,1fr)}.planning-row{grid-template-columns:190px 1fr}.capacity{grid-column:2}.banner-art{width:230px}.welcome-banner{padding:28px}.report-filters input{width:150px}}
@media(max-width:820px){:root{--nav-width:0px}.sidebar{transform:translateX(-100%);width:240px;transition:transform .15s ease;box-shadow:15px 0 40px #12352115}.nav-open .sidebar{transform:translateX(0)}.app{margin-left:0}.mobile-menu{display:block;border:0;background:none;color:var(--ink);font-size:21px;z-index:30}.nav-open .mobile-menu{position:fixed;left:244px;background:white;border:1px solid var(--line);border-radius:6px}.topbar{height:65px}.breadcrumb{margin-right:auto}.top-right .environment{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.login-art{width:42%;padding:35px 25px}.login-art h1{font-size:48px}.login-panel{padding:30px}.archive-note{flex-wrap:wrap}.archive-note a{margin-left:35px}.report-filters select{max-width:200px}}
@media(max-width:580px){main#main{padding:25px 16px}.topbar{padding:0 16px;gap:10px}.breadcrumb{font-size:10px}.breadcrumb span{margin:0 7px}.top-right{gap:8px}.top-right .text-button{font-size:10px}h1{font-size:27px}.page-heading{align-items:flex-start;flex-wrap:wrap}.page-heading>.actions{width:100%}.eyebrow{font-size:8px}.welcome-banner{min-height:220px;padding:25px 22px}.welcome-banner h2{font-size:31px}.welcome-banner p{max-width:170px}.banner-art{width:90px;align-items:end}.art-card{width:112px;padding:12px;transform:rotate(-7deg) translate(10px,-8px)}.art-card strong{font-size:24px}.art-card>span{font-size:6px}.art-ring{width:220px;height:220px}.ring-two{width:160px;height:160px}.mini-bars{gap:4px;height:27px}.dashboard-grid{grid-template-columns:1fr;gap:0}.metric>div{font-size:10px;gap:5px}.metric>strong{font-size:25px}.metric strong small{font-size:11px}.metrics.three{grid-template-columns:1fr}.panel-heading{padding:19px 17px}.panel-heading h2{font-size:15px}.panel-footer{padding:14px 17px}.action-row{padding:17px}.form-grid{grid-template-columns:1fr}.form-panel{padding:22px 18px}.review-form{flex-wrap:wrap;padding:18px}.review-form input{width:100%;flex:auto}.filter-bar{flex-wrap:wrap}.filter-bar>input{min-width:0;flex:1}.filter-bar select{max-width:100%}.project-grid{grid-template-columns:1fr}.planning-row{grid-template-columns:1fr;padding:19px;gap:12px}.capacity{grid-column:auto}.allocations{padding-left:46px}.week-switch{gap:8px}.week-switch h2{font-size:13px}.total-label{font-size:9px}.total-label strong{font-size:19px}.heading-with-status{gap:10px}.app-footer{padding:0 16px 25px}.login-art{display:none}.login-panel{padding:30px}.login-box h1{font-size:30px}th,td{padding-left:17px;padding-right:17px}.archive-note a{margin-left:0}.preserve{min-width:200px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media print{.sidebar,.topbar,.app-footer,.button,.actions,.filter-bar{display:none!important}.app{margin:0}main#main{padding:0}.panel{break-inside:avoid}.table-wrap{overflow:visible}}
/* Astek corporate palette, from astekcorp.com; original logo used with no distortion. */
:root{--ink:#173846;--muted:#637681;--line:#dfe6e9;--teal:#143d4b;--teal-dark:#0c2934;--mint:#fff1d9;--surface:#f4f6f8;--orange:#ff9d00}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;letter-spacing:0}.astek-logo{width:155px;height:auto;display:block;object-fit:contain}.brand-sub{font-size:9px;letter-spacing:2.6px;color:#637681;margin-left:2px}.sidebar{border-top:4px solid var(--orange);padding-top:26px}.sidebar nav a[aria-current]{box-shadow:inset 3px 0 var(--orange);color:#143d4b}.workspace-icon,.avatar,.project-icon,.metric-icon,.action-icon{background:#edf2f5;color:#143d4b}.button.primary{background:var(--orange);border-color:var(--orange);color:#142d38;box-shadow:0 3px 8px #d8840014;font-weight:700}.button.primary:hover{background:#ed9200;border-color:#ed9200}.button:hover{background:#fff6e8;border-color:#eccd9b}.welcome-banner{background:linear-gradient(110deg,#143d4b,#1e5365);border:0;box-shadow:0 8px 24px #143d4b10}.welcome-banner h2{color:white}.welcome-banner .eyebrow{color:#ffc76e}.welcome-banner p{color:#c2d4dc}.welcome-banner a{color:#ffbd50}.art-ring{border-color:#ffffff20}.art-card{background:#ffffffed;box-shadow:0 15px 40px #00121d35}.art-card strong{color:#143d4b}.mini-bars i{background:#ffca78}.mini-bars i:nth-child(4){background:#ff9d00}.chart-bar,.chart-column:nth-child(3) .chart-bar{background:#ff9d00}.bar-track{background:#eef2f5}.metric{box-shadow:0 3px 10px #143d4b03}.metric:hover{border-color:#e9b765!important}.status-dot{background:#ff9d00}.eyebrow{color:#647a87}.metric>div,td,td strong,.total-label strong,.empty h2,.empty h3{color:#304f5e}.metric p,td small,th small{color:#667d89}.panel{box-shadow:0 3px 10px #143d4b03}th{background:#f4f7f9;color:#607683}tfoot td,tfoot th{background:#edf2f5;color:#143d4b;border-color:#dce6eb}.archive-note{background:#edf2f5;border-color:#dce6eb}.archive-note p{color:#667c87}.allocation{border-color:#ff9d00;background:#fff6e7}.progress-track span{background:#ff9d00}.login-art{background:linear-gradient(145deg,#143d4b,#092a38);border-top:5px solid #ff9d00}.login-art h1{color:#fff}.login-art p{color:#bed0d8}.login-art .brand-sub,.login-art>small{color:#b9ccd4}.login-art .eyebrow{color:#ffc469}.orbit,.orbit-inner{border-color:#ffffff24}.orbit-inner{color:#e9a744}.login-box .eyebrow{color:#8a5700}.login-help{color:#657580}.mobile-logo{display:none}.badge.historical{color:#475f6d;background:#e9eff3}.record-count{font-variant-numeric:tabular-nums}.pagination{display:flex;gap:18px;align-items:center;justify-content:center;padding:20px}.historical-banner{margin:0 0 22px;padding:14px 18px;background:#fff5e3;border-left:3px solid #ff9d00;border-radius:5px;font-size:12px;color:#5c4a2c}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:#d18516;box-shadow:0 0 0 3px #ff9d0020}a:focus-visible,button:focus-visible{outline-color:#e38b00}
@media(max-width:580px){.mobile-logo{display:block;margin-bottom:38px;width:145px}.login-panel{border-top:5px solid #ff9d00}.welcome-banner{min-height:210px}.banner-art{display:none}.welcome-banner p{max-width:none}.welcome-banner h2{font-size:30px}.login-box h1{font-size:28px}}
select[multiple]{min-height:220px;width:100%;padding:5px!important}select[multiple] option{padding:7px 9px;border-radius:3px;white-space:normal}.membership-search{margin-bottom:8px;width:100%}.filter-bar{flex-wrap:wrap}
input.hour-cell:not([type=checkbox]){width:82px;min-width:65px;padding:8px 5px;border:1px solid transparent;background:transparent;text-align:right;font-variant-numeric:tabular-nums;min-height:36px;border-radius:5px;color:var(--ink)}input.hour-cell:hover:not(:disabled){border-color:#e5c48d;background:#fffaf0}input.hour-cell:focus,input.hour-cell.changed{border-color:#e59d32!important;background:#fff5df!important}input.hour-cell:disabled{color:#7b8990;opacity:1;cursor:not-allowed}.hour-cell::-webkit-inner-spin-button{appearance:none}.week-save{padding:22px 24px;border-top:1px solid var(--line);background:#fafcfd;display:grid;gap:18px}.week-save p,.week-save #week-changes{font-size:12px;color:var(--muted)}.week-save .field{margin:0}.week-save select{max-width:500px;min-width:180px}.week-save textarea{max-width:800px}.timesheet-table:has(.hour-cell) td{padding:12px 10px}.timesheet-table:has(.hour-cell) td:first-child{padding-left:20px}

.remove-week-row{display:block;font-size:.8rem;margin-top:.5rem}tr[data-removed] {background:#fff2ef}.access-summary{margin-top:2rem}.access-projects{max-height:360px;overflow:auto;margin-top:1rem}.access-projects>div{padding:.65rem 0;border-bottom:1px solid #e0e6e8;display:flex;justify-content:space-between;gap:1rem}.access-projects>[hidden]{display:none}
.export-options{padding:1.5rem;margin-bottom:1.5rem}.export-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem}.export-columns input{width:auto}.export-columns label{display:flex;gap:.5rem;align-items:center}.guide{max-width:1000px;padding:2rem;line-height:1.65}.guide h2,.guide h3{margin-top:2rem}.guide pre{overflow:auto;background:#edf2f5;padding:1rem;white-space:pre-wrap}.guide table{display:block;overflow:auto}.guide th,.guide td{padding:.6rem}.guide a{text-decoration:underline}@media print{.sidebar,.topbar,.app-footer,.guide-print{display:none!important}.app{margin:0!important}.guide{box-shadow:none;border:0;max-width:none;padding:0}a{color:inherit}pre,table{break-inside:avoid}}

.profile-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.5fr);gap:24px;align-items:start}.profile-layout .form-panel{max-width:none;margin:0}.profile-access{padding:28px;min-width:0}.profile-access h3{margin-top:24px}.profile-pagination{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.topbar a.user-name{color:inherit;text-decoration:none}.topbar a.user-name:hover{text-decoration:underline}@media(max-width:1000px){.profile-layout{grid-template-columns:1fr}}
.leave-calendar{margin:24px 0}.leave-calendar .panel-heading{flex-wrap:wrap;gap:16px}.leave-calendar .panel-heading p{font-size:13px;color:var(--muted)}.calendar-scroll{overflow:auto}.calendar-grid{table-layout:fixed;min-width:750px;width:100%}.calendar-grid td{vertical-align:top;height:115px;padding:9px;border:1px solid var(--line);white-space:normal}.calendar-grid th{text-align:center}.calendar-grid time{display:block;font-size:13px;font-weight:700;margin-bottom:8px}.calendar-grid .outside-month{background:#f4f6f8;color:#819299}.calendar-grid .calendar-today{box-shadow:inset 0 3px #ff9d00}.leave-event{background:#e4f1ed;color:#214d42;border-left:3px solid #568775;border-radius:4px;padding:6px;margin:5px 0;font-size:12px;overflow-wrap:anywhere}.leave-event small{display:block;font-size:10px}.leave-event.pending{background:#fff3d8;border-color:#d99a24;color:#665019}

.sidebar-contact{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:auto;padding-top:18px}.sidebar-contact a{display:block;padding:10px 14px;border-radius:8px;color:var(--ink);font-weight:600}.sidebar-contact a:hover,.sidebar-contact a[aria-current="page"]{background:#fff3da;color:#143d4b}
.sidebar-contact{font-size:12px;flex-shrink:0;padding-bottom:0}.sidebar-contact a:focus-visible{outline:2px solid #e38b00;outline-offset:2px}

.project-search-field{position:relative}.project-suggestions{position:absolute;top:100%;left:0;right:0;z-index:30;max-height:280px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #143d4b26;padding:6px}.project-suggestions[hidden]{display:none}.project-suggestions button{display:block;width:100%;text-align:left;border:0;border-radius:6px;background:transparent;color:var(--ink);padding:12px 14px;font:inherit;cursor:pointer}.project-suggestions button:hover,.project-suggestions button[aria-selected="true"]{background:#fff3da}.project-suggestions p{padding:10px 14px;margin:0;font-size:13px}

.report-person-picker{flex:1 1 300px;min-width:260px;max-width:440px}.report-filters .report-person-picker select{max-width:none;width:100%}.report-person-picker small{display:block;max-width:400px}.report-person-picker .actions{margin-top:8px}

.report-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start;margin-bottom:28px}.report-filter-grid label{display:block;margin-bottom:7px}.report-filter-grid input,.report-filter-grid select{width:100%;max-width:none}.report-filter-grid .report-picker select[multiple]{height:160px;min-height:160px;max-height:160px}.report-picker small{display:block;font-size:12px;margin-top:6px}.report-picker .actions{margin-top:8px}.report-filter-actions{grid-column:1/-1;display:flex;align-items:center;gap:14px}.report-filter-actions small{color:var(--muted)}@media(max-width:820px){.report-filter-grid{grid-template-columns:1fr}.report-filter-actions{align-items:flex-start;flex-direction:column}}
.row-action{width:42px;min-width:42px;padding:8px!important;text-align:center}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:5px;border:0;background:transparent;border-radius:6px;color:#8b5555;cursor:pointer}.icon-button:hover{background:#ffebe6}.icon-button:focus-visible{outline:2px solid #e38b00}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.continuous-grid{table-layout:fixed;min-width:1200px}.continuous-grid th,.continuous-grid td{padding:7px 3px}.continuous-grid th:first-child,.continuous-grid td:first-child{position:sticky;left:0;z-index:1;background:#fff;width:180px;padding-left:12px}.continuous-grid .hour-cell{width:100%;min-width:38px;padding:5px 2px}.continuous-grid .timesheet-section th{position:static;background:#edf3e5;color:#264534;text-align:left;padding:6px 12px}.continuous-grid th.number,.continuous-grid td.number{width:58px}.continuous-grid tbody tr:nth-child(even){background:#fafcfa}

.timesheet-downloads{display:flex;flex-wrap:wrap;gap:8px 14px;margin:10px 0;font-size:13px}
