.periodbar{background:#fff;border:1px solid #dce5de;border-radius:14px;padding:18px;margin-bottom:22px}.filterrow{margin-top:18px;padding-top:16px;border-top:1px solid #e4ebe5}.filterrow label{min-width:180px}.date-control{max-width:180px}.segmented{display:flex;gap:4px}.calendar-scroll{overflow:auto;max-height:70vh}.calendar-table{min-width:1050px;table-layout:fixed}.calendar-table.day-table{min-width:500px}.calendar-table th:first-child{width:170px;position:sticky;left:0;background:#fff;z-index:2}.calendar-table th:last-child{width:105px}.calendar-table thead th{position:sticky;top:0;background:#f2f6f2;z-index:3}.calendar-table td{vertical-align:top;padding:8px;border:1px solid #e7eee7}.calendar-table th{border:1px solid #e7eee7}.calendar-table tfoot{background:#edf4eb;font-weight:700}.calendar-shift{display:grid;gap:7px;background:#eaf4ee;border-left:3px solid #318667;border-radius:7px;padding:10px;font-size:12px;margin-bottom:8px}.calendar-shift.draft{background:#fcf4e2;border-color:#bc942f}.calendar-shift button{min-height:34px;padding:7px;font-size:11px}.calendar-shift small{font-size:10px}.calendar-shift .badge{justify-self:start}.no-shift{display:block;color:#b5c2b9;min-height:30px}.cell-add{background:transparent;color:#527563;font-size:11px;min-height:32px;padding:6px}.cell-add:hover{background:#e7f1e7}.avatar{display:inline-grid;place-items:center;width:28px;height:28px;background:#e3edce;color:#315d40;border-radius:50%;margin-right:7px}.total-cell{font-weight:700}.planning-layout{grid-template-columns:minmax(0,1fr) 280px}.planning-layout>.card{min-width:0;padding:18px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));overflow:auto;gap:8px}.month-day{border:1px solid #dfe8df;padding:10px;border-radius:8px;min-height:120px}.month-day h3{font-size:12px}.month-item>strong{font-size:11px}.timesheet th small,.timesheet td small{display:block;margin-top:6px;font-weight:400;text-transform:none;letter-spacing:0}.reconciliation th{min-width:160px;color:#274b3a;font-size:13px;text-transform:none}.detail-row td{padding:0 12px 12px}.detail-row details{margin-top:0}.entry-detail{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #e5ece6;padding:12px;background:#f7faf7}.entry-detail p{font-size:12px;margin:7px 0}.report-note{font-size:12px;line-height:1.7;color:#64796d}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1150px){.planning-layout{grid-template-columns:minmax(0,1fr)}.planning-layout form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.planning-layout form{grid-template-columns:1fr}.periodbar .actions{width:100%}.filterrow label{min-width:120px;flex:1}.periodbar{padding:12px}.entry-detail{align-items:start;flex-direction:column}.month-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}}
:root{font-family:Inter,Segoe UI,system-ui,sans-serif;color:#162f2d;background:#f5f7f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;min-height:44px;border:0;background:#136753;color:white;border-radius:9px;padding:10px 17px;font-weight:600}button:hover{background:#0e4f40}button:disabled{opacity:.5;cursor:wait}.secondary{background:#e7efeb;color:#214d42}.danger{background:#813b35}input,select,textarea{padding:12px;border:1px solid #ccd8d1;border-radius:8px;background:white;width:100%;color:#193d35}label{display:grid;gap:7px;font-size:13px;font-weight:600}form{display:grid;gap:16px}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}aside{background:#123e34;color:#eaf1ed;padding:30px 22px;position:sticky;top:0;height:100vh}.brand{font-size:25px;font-weight:750;letter-spacing:-1px;display:flex;gap:10px;align-items:center}.mark{background:#d9edb0;color:#173d2f;padding:5px 10px;border-radius:10px}aside small{display:block;margin:20px 0;color:#a6c2b7}nav{display:grid;gap:7px;margin:40px 0}nav button{text-align:left;background:transparent;color:#c5d8cf}nav button.active{background:#2d584b;color:#fff}main{padding:32px 44px;max-width:1600px;width:100%}header{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #dce5de;padding-bottom:24px;margin-bottom:32px}h1{font-size:32px;letter-spacing:-1.2px;margin:5px 0 8px}h2{font-size:20px;margin:0 0 18px}h3{margin:0 0 10px}p{line-height:1.6}.muted,small{color:#687e74}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:750;color:#557064}.banner{background:#eef2dc;border:1px solid #d8e3bd;padding:12px 18px;border-radius:10px;font-size:13px;margin-bottom:24px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.stat,.card{background:white;border:1px solid #dce5de;border-radius:14px;padding:24px}.stat strong{display:block;font-size:30px;margin:10px 0}.grid{display:grid;grid-template-columns:2fr 1fr;gap:24px}.stack{display:grid;gap:18px}.row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.actions{display:flex;gap:9px;flex-wrap:wrap}.badge{font-size:11px;background:#eef1eb;border-radius:6px;padding:5px 8px;display:inline-block}.green{background:#deeee3;color:#216446}.amber{background:#fff0cf;color:#855c12}.shift{border-left:4px solid #479f7a;background:#f3f8f4;padding:18px;border-radius:7px;margin:12px 0}.shift.draft{border-color:#caad60;background:#faf8ef}.hours{font-variant-numeric:tabular-nums}.empty{padding:35px 14px;color:#687e74;text-align:center;border:1px dashed #dce5de;border-radius:8px}.login{max-width:460px;margin:6vh auto;padding:30px}.login .brand{margin-bottom:32px}.error{background:#fbe7e2;color:#893d2c;padding:15px;border-radius:10px;margin-bottom:16px}.notice{background:#dcefe4;padding:15px;border-radius:10px;margin-bottom:16px;overflow-wrap:anywhere}table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:15px 8px;border-bottom:1px solid #e6ece6;text-align:left}th{color:#708277;font-size:11px;text-transform:uppercase}.table{overflow:auto}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}a{color:#176d52}details{margin-top:15px}summary{cursor:pointer;color:#326f59;padding:10px 0}footer{margin-top:35px;font-size:12px;color:#718176}.site-select{width:220px}pre{font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}button:focus-visible,a:focus-visible{outline:3px solid #d6aa3c;outline-offset:3px}@media(max-width:950px){.shell{grid-template-columns:1fr}aside{position:static;height:auto;padding:18px}aside small{display:none}nav{display:flex;overflow:auto;margin:18px 0 0}main{padding:22px}.grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}header{flex-wrap:wrap}.two{grid-template-columns:1fr}}

.grid.planning-layout{grid-template-columns:minmax(0,1fr)}.weekday{text-align:center;padding:8px;color:var(--muted)}.month-blank{background:#f8fafc}.planning-layout>section{min-width:0}
@media(min-width:1700px){.grid.planning-layout{grid-template-columns:minmax(0,1fr) 280px}}
.shell{grid-template-columns:230px minmax(0,1fr)}.month-grid{grid-template-columns:repeat(7,minmax(130px,1fr))}.weekday{color:#64796d}@media(max-width:950px){.shell{grid-template-columns:minmax(0,1fr)}}
.month-grid{grid-template-columns:repeat(7,minmax(90px,1fr));max-height:70vh}.month-day{padding:7px}.month-day .calendar-shift{padding:6px;overflow-wrap:anywhere}.month-day .badge{max-width:100%;font-size:10px}
.planning-tools{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin:0 0 22px}.planning-tools>label{min-width:220px}.planning-tools>small{flex-basis:100%}.department-tag{display:inline-block;border-radius:5px;font-size:11px;padding:5px 7px;max-width:100%;overflow-wrap:anywhere}.dept-green{background:#dcefe3;color:#1c5b39}.dept-blue{background:#dceafa;color:#24568c}.dept-amber{background:#fff0cc;color:#795300}.dept-violet{background:#eee2fa;color:#663e89}.dept-coral{background:#fbe2da;color:#8c4433}.dept-none{background:#ecefec;color:#596b60}.calendar-shift[draggable=true]{cursor:grab}.calendar-shift.dragging{opacity:.4}.drop-target{outline:3px dashed #2c8061;outline-offset:-3px;background:#e6f3ea!important}dialog{border:1px solid #cbdcd1;border-radius:18px;padding:26px;max-width:700px;width:calc(100% - 28px);max-height:88vh;color:#163c31;box-shadow:0 20px 70px #123e3433}dialog::backdrop{background:#123e3466}dialog .row{margin-bottom:20px}dialog h2{margin-top:16px}dialog form{margin-top:20px}dialog p{font-size:14px}.department-list>div,.preview-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #e0e9e3}.preview-list{max-height:260px;overflow:auto;margin-bottom:18px}.preview-list>div{flex-wrap:wrap;font-size:13px}.copy-preview{margin-top:22px}.calendar-table th:first-child{text-transform:none}.calendar-shift .secondary{font-size:10px}@media(max-width:600px){.planning-tools>label{min-width:100%}dialog{padding:18px}}
.calendar-shift{min-width:0;overflow-wrap:anywhere}.calendar-shift>*{min-width:0;max-width:100%}.calendar-shift button{width:100%}

.bulk-actions{margin:16px 0;flex-wrap:wrap}.request-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid #dce6dd;padding:12px 0}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}nav{max-height:65vh;overflow:auto}@media(max-width:700px){.two{grid-template-columns:1fr}}

.two{grid-template-columns:minmax(0,1fr)}.grid>section,form,label,input,select{min-width:0}.grid:not(.planning-layout){grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr)}@media(max-width:950px){.grid:not(.planning-layout){grid-template-columns:minmax(0,1fr)}}
.report-workspace h2{margin:0 0 .25rem}.report-workspace .row{margin-bottom:1rem}.report-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.75rem;margin-bottom:1rem}.report-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:.65rem;margin-top:1rem}.report-totals>div{padding:.8rem;background:#edf5ef;border-radius:.6rem}.report-totals strong,.report-totals small{display:block}.report-workspace .table{margin-bottom:.75rem}.report-workspace th,.report-workspace td{white-space:nowrap}

.contract-report .table{overflow:auto;max-height:65vh}.contract-report table{min-width:1800px}.contract-report th,.contract-report td{vertical-align:top}.contract-report tbody th{text-align:left;min-width:150px}.contract-report-total{font-weight:700;background:#edf5ef}.contract-report details{margin:18px 0}.contract-report summary{cursor:pointer}

.contract-report tbody th{position:sticky;left:0;background:#fff;z-index:1;text-transform:none;letter-spacing:normal}.contract-report-total th{background:#edf5ef}.contract-report thead th{min-width:110px}.contract-report thead th:first-child{position:sticky;left:0;z-index:2;background:#edf5ef}
