:root{color:#18352e;font-synthesis:none;background:#f4f6f3;font-family:Inter,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;color:#234c40;background:#fff;border:1px solid #d3ddd7;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:600}button:hover{background:#eef4ee}button:disabled{opacity:.55;cursor:wait}.primary{color:#fff;background:#21694e;border-color:#21694e}.primary:hover{background:#155639}input,select,textarea{color:#18352e;background:#fff;border:1px solid #d1dcd5;border-radius:8px;outline:none;width:100%;padding:11px 12px}input:focus,select:focus{border-color:#34855f;box-shadow:0 0 0 3px #def0e3}label{gap:7px;margin:16px 0;font-size:13px;font-weight:600;display:grid}small{color:#7c8a83;margin-top:5px;font-size:12px;font-weight:400;display:block}.shell{grid-template-columns:246px 1fr;min-height:100vh;display:grid}aside{color:#d8e9df;background:#112d26;flex-direction:column;height:100vh;padding:32px 22px;display:flex;position:sticky;top:0}.logo{align-items:center;gap:13px;margin-bottom:48px;font-size:17px;font-weight:650;display:flex}.logo>span{color:#b9e5c5;border:1px solid #537565;border-radius:12px;padding:12px}.logo small{color:#769e8e;font-size:11px}nav{gap:7px;display:grid}nav button{text-align:left;color:#b9cfc3;background:0 0;border:0;align-items:center;gap:16px;padding:15px;font-weight:500;display:flex}nav button.selected{color:#fff;background:#244b3d;box-shadow:inset 3px 0 #a5d8ae}nav button:hover{background:#1a3d31}.account{border-top:1px solid #345247;gap:5px;padding:22px 12px 0;display:grid}.account>span{color:#86ad99;font-size:12px}.account button{color:#a6d4b7;text-align:left;background:0 0;border:0;margin-top:8px;padding:8px 0;font-size:12px}.content{width:100%;max-width:1600px;margin:0 auto;padding:40px 48px}header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.eyebrow{letter-spacing:2px;color:#8d9a8e;font-size:10px;font-weight:700}h1{letter-spacing:-1.1px;margin:9px 0 8px;font-size:34px;font-weight:600}header p{color:#7e8b81;margin:0;font-size:14px}.date{color:#7c8d80;border:1px solid #dae1d9;border-radius:24px;padding:10px 14px;font-size:12px}.metrics{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.metrics section{background:#fff;border:1px solid #e0e5dd;border-radius:12px;padding:21px 24px}.metrics small{margin:0 0 9px;font-size:12px}.metrics strong{color:#2a5342;font-size:31px;font-weight:550}.panel{background:#fff;border:1px solid #dce4da;border-radius:14px;overflow:hidden}.toolbar,.panel-head{border-bottom:1px solid #e3e9e1;align-items:center;gap:16px;padding:22px 24px;display:flex}.toolbar>input{max-width:350px;font-size:13px}.toolbar>.primary,.panel-head>button{margin-left:auto}.check{white-space:nowrap;align-items:center;gap:9px;margin:0;font-size:12px;font-weight:400;display:flex}.check>input{accent-color:#21694e;width:16px;height:16px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:#8a968d;letter-spacing:.4px;background:#f9fbf7;padding:15px 24px;font-size:11px;font-weight:500}td{border-top:1px solid #e8eee6;padding:20px 24px}td b{font-size:13px;font-weight:600}.status{border-radius:5px;padding:5px 9px;font-size:10px;font-weight:600;display:inline-block}.status.active{color:#287747;background:#e8f3e6}.status.inactive{color:#8a8174;background:#f1eee7}.row-actions{text-align:right;white-space:nowrap}.row-actions button{color:#658277;background:0 0;border:0;padding:6px;font-size:11px}.empty{text-align:center;color:#95a296;padding:65px 24px 70px;font-size:13px}.empty span{color:#92a38b;background:#eff4ec;border-radius:50%;place-items:center;width:44px;height:44px;font-size:26px;display:inline-grid}.empty p{margin:17px 0}.error,.notice{border-radius:9px;margin-bottom:18px;padding:13px 17px;font-size:13px}.error{color:#9e4530;background:#fbebe6}.notice{color:#27603d;background:#e4f4e6}footer{color:#94a092;margin-top:22px;font-size:11px}.overlay{z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#102d2780;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:16px;width:min(540px,100%);max-height:90vh;padding:28px 32px;overflow:auto;box-shadow:0 22px 90px #112d2630}.dialog h2{margin:0;font-size:20px}.dialog p{color:#73877a;font-size:13px;line-height:1.7}.dialog-head{justify-content:space-between;align-items:center;display:flex}.dialog-head button{border:0;padding:0 4px;font-size:23px}.dialog-actions{justify-content:flex-end;gap:12px;margin-top:26px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}fieldset{border:1px solid #dbe5dc;border-radius:8px;padding:16px}legend{color:#718577;font-size:12px}fieldset .check{margin:10px 0}.panel-head h2{margin:0;font-size:16px}.scan-box{background:#f6faf3;border-bottom:1px solid #dfe8dd;padding:24px}.scan-box h3{margin:0;font-size:15px}.scan-box p,.empty-inline{color:#7f907f;font-size:13px}.empty-inline{padding-top:8px}.scan-box select{max-width:440px}.loading{padding:60px}.login{background:#fff;grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-story{color:#d1e6d7;background:#112d26;flex-direction:column;justify-content:center;padding:80px;display:flex}.brand{letter-spacing:3px;color:#88b096;font-size:11px}.login-story h1{margin:35px 0 24px;font-size:48px;line-height:1.25}.login-story p{color:#93b59f;max-width:340px;font-size:16px;line-height:1.8}.release{color:#6e9b7f;margin-top:80px;font-size:11px}.login-form{width:100%;max-width:410px;margin:auto;padding:36px}.login-form h2{margin:15px 0;font-size:30px}.login-form p{color:#89958c;font-size:13px;line-height:1.8}.login-form button{width:100%;margin-top:12px;padding:14px}.login-form small{text-align:center;margin-top:25px;line-height:1.7}.dialog textarea{overflow-wrap:anywhere;height:110px;font-family:monospace}@media (width<=1100px){.content{padding:32px 24px}.shell{grid-template-columns:210px 1fr}aside{padding:28px 15px}td,th{padding:15px}.toolbar{flex-wrap:wrap}.date{display:none}}@media (width<=760px){.shell{display:block}aside{height:auto;padding:20px;position:static}.logo{margin-bottom:20px}nav{display:flex;overflow:auto}nav button{white-space:nowrap;padding:10px}.account{display:none}.content{padding:26px 16px}.metrics{grid-template-columns:repeat(2,1fr);gap:10px}.metrics section{padding:17px}.toolbar{padding:16px}.toolbar>input{max-width:none}.row-actions{white-space:normal}.login{grid-template-columns:1fr}.login-story{padding:32px}.login-story h1{margin:22px 0 10px;font-size:30px}.release{margin-top:20px}.login-story p{display:none}.login-form{padding:32px 24px}.dialog{padding:22px}.form-row{grid-template-columns:1fr;gap:0}}.pair-qr{background:#fff;border-radius:10px;width:240px;max-width:100%;height:auto;margin:16px auto;display:block}.hours-module{gap:18px;display:grid}.hours-module .notice,.hours-module .metrics{margin-bottom:0}.hours-filters{flex-wrap:wrap;align-items:end;gap:14px;padding:18px 24px;display:flex}.hours-filters label{flex:1;min-width:140px;margin:0}.hours-filters button{height:42px}.hours-metrics{grid-template-columns:repeat(3,1fr)}.hours-metrics strong{font-size:26px}.hours-empty{color:#7f907f;padding:24px;font-size:13px}.hours-pagination{justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;font-size:12px;display:flex}.hours-module .panel-head{flex-wrap:wrap}@media (width<=760px){.hours-metrics{grid-template-columns:1fr}.hours-pagination{flex-wrap:wrap}.hours-filters{padding:16px}}.occupation-charts .panel-head{align-items:center;gap:18px}.occupation-charts .panel-head p{color:#738174;margin:7px 0 0;font-size:12px;line-height:1.6}.occupation-legend{flex-wrap:wrap;gap:14px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.occupation-legend li{align-items:center;gap:7px;display:flex}.occupation-legend li span{border-radius:3px;width:10px;height:10px}.project-charts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:22px 24px;display:grid}.project-chart{background:#fbfcfa;border:1px solid #dde6dc;border-radius:12px;min-width:0;padding:20px}.project-chart header{justify-content:space-between;align-items:start;gap:18px;margin-bottom:24px;display:flex}.project-chart h3{overflow-wrap:anywhere;margin:0 0 5px;font-size:15px}.project-chart small{color:#768475;font-size:11px}.chart-total{text-align:right;flex-shrink:0}.chart-total small,.chart-total b{display:block}.chart-total b{font-variant-numeric:tabular-nums;margin-top:5px;font-size:19px}.occupation-bars{gap:18px;margin:0;padding:0;list-style:none;display:grid}.occupation-bar-label{justify-content:space-between;gap:12px;margin-bottom:7px;font-size:12px;display:flex}.occupation-bar-label b{font-variant-numeric:tabular-nums;flex-shrink:0}.occupation-bar-track{background:#e8eee5;border-radius:4px;height:16px;overflow:hidden}.occupation-bar-track span{border-radius:4px;height:100%;transition:width .25s;display:block}.chart-scale{font-variant-numeric:tabular-nums;color:#859080;justify-content:space-between;margin-top:12px;font-size:10px;display:flex}.chart-empty{color:#7b8778;margin:16px 0;font-size:12px;line-height:1.6}.chart-footnote{color:#738174;margin:0;padding:0 24px 20px;font-size:11px;line-height:1.6}@media (width<=960px){.project-charts-grid{grid-template-columns:1fr}}@media (width<=760px){.project-charts-grid,.project-chart{padding:16px}.project-chart header{flex-wrap:wrap}.chart-total{text-align:left}.chart-footnote{padding:0 16px 16px}}@media (prefers-reduced-motion:reduce){.occupation-bar-track span{transition:none}}.daily-overview{gap:20px;display:grid}.daily-refresh{justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex}.daily-refresh b{font-size:14px}.daily-refresh p{color:#748579;margin:6px 0;font-size:12px}.daily-refresh small{font-size:11px}.daily-refresh button{flex-shrink:0;min-width:105px}.daily-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:0}.daily-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;display:grid}.daily-project>header{background:#fafcf8;border-bottom:1px solid #e3e9e1;align-items:flex-start;gap:16px;margin:0;padding:22px 24px}.daily-project h2{overflow-wrap:anywhere;margin:0 0 7px;font-size:18px}.daily-project-code{color:#7b8b7e;letter-spacing:.6px;font-size:11px}.daily-project-count{text-align:center;color:#7b8779;background:#edf1ea;border-radius:10px;flex-shrink:0;min-width:78px;padding:10px 14px}.daily-project-count.occupied{color:#21694e;background:#e1f1e3}.daily-project-count strong{font-variant-numeric:tabular-nums;font-size:28px;line-height:1.1;display:block}.daily-project-count span{margin-top:5px;font-size:10px;display:block}.daily-occupations{gap:22px;padding:18px 24px;display:grid}.daily-occupation-head{border-bottom:1px solid #e8eee4;justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.daily-occupation h3{margin:0;font-size:14px}.daily-occupation-head>span{color:#527963;white-space:nowrap;background:#edf5e9;border-radius:20px;padding:5px 10px;font-size:11px}.daily-occupation ul{margin:0;padding:0;list-style:none}.daily-occupation li{border-bottom:1px solid #f0f3ed;justify-content:space-between;align-items:start;gap:16px;padding:14px 0;display:flex}.daily-occupation li:last-child{border-bottom:0;padding-bottom:0}.daily-occupation li b{overflow-wrap:anywhere;font-size:13px}.daily-occupation li small{margin-top:4px;font-size:10px}.daily-arrival{text-align:right;flex-shrink:0}.daily-arrival time{font-variant-numeric:tabular-nums;margin-top:5px;font-size:11px;display:block}.daily-old{color:#966522;background:#fff2d9;border-radius:4px;margin-top:7px;padding:4px 6px;font-size:10px;display:inline-block}.daily-empty{color:#849180;margin:0;padding:26px 24px;font-size:13px;line-height:1.6}.daily-warning{color:#805b28;background:#fff7e8;border:1px solid #e8d5ad;border-radius:12px;padding:18px 24px}.daily-warning h2{margin:0;font-size:14px}.daily-warning p{margin:8px 0;font-size:12px}.daily-warning ul{gap:8px;margin:12px 0 0;padding:0;font-size:12px;list-style:none;display:grid}.daily-warning li{justify-content:space-between;gap:12px;display:flex}.daily-warning li b{white-space:nowrap}@media (width<=1200px){.daily-project-grid{grid-template-columns:1fr}}@media (width<=760px){.daily-metrics{grid-template-columns:1fr}.daily-refresh{flex-wrap:wrap;padding:16px}.daily-project>header,.daily-occupations{padding:18px}.daily-occupation li{flex-wrap:wrap;gap:6px}.daily-arrival{text-align:left}.daily-warning{padding:16px}}.photos-module{gap:20px;display:grid}.photo-filters .hours-filters{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;display:grid}.photo-filters label{min-width:0}.photo-summary{color:#496252;margin:0;padding:0 24px 18px;font-size:13px}.photo-summary span{margin-top:6px;display:block}.photo-exception{color:#9b422c;font-size:12px}.photo-legacy{color:#496252;font-size:12px}.photo-viewer img{object-fit:contain;max-width:100%;max-height:70vh;margin:20px auto;display:block}.photo-viewer>p{color:#496252;padding:0 24px;font-size:13px}.photo-viewer .error{margin:16px}.photo-viewer .error button{margin-left:12px}.photo-policy{padding:24px}.photo-policy h2{margin:0;font-size:17px}.photo-policy p{color:#496252;font-size:13px;line-height:1.6}.photo-policy form{grid-template-columns:minmax(180px,1fr) minmax(200px,1fr);align-items:end;gap:8px 24px;display:grid}.photo-policy form>button{justify-self:start;margin-bottom:16px}.photos-module button:focus-visible{outline-offset:3px;outline:3px solid #34855f}.photos-module time{font-variant-numeric:tabular-nums}@media (width<=1000px){.photo-filters .hours-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.photo-filters .hours-filters,.photo-policy form{grid-template-columns:1fr}.photo-summary{padding:0 16px 16px}.photo-viewer .panel-head{flex-wrap:wrap;align-items:start;gap:12px}}.photo-content,.photo-content header>div,.photos-module,.photos-module>.panel{min-width:0;max-width:100%}.photo-content header p{overflow-wrap:anywhere}.photos-module{grid-template-columns:minmax(0,1fr)}.photo-viewer h2:focus{outline-offset:4px;outline:2px solid #34855f;scroll-margin-top:24px}html:has(.photo-content){scrollbar-gutter:stable}.evidence-content,.evidence-content header>div{min-width:0}.evidence-content header p{overflow-wrap:anywhere}.evidence-module{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.evidence-filters .hours-filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;display:grid}.evidence-filters label{min-width:0}.evidence-summary{grid-template-columns:1fr auto;gap:12px;padding:24px;display:grid}.evidence-summary h2,.evidence-export h2{margin:0;font-size:17px}.evidence-summary p,.evidence-export p{color:#496252;margin:8px 0;font-size:13px;line-height:1.65}.evidence-summary strong{white-space:nowrap;font-size:25px}.evidence-summary>small{color:#496252;grid-column:1/-1}.evidence-export{padding:24px}.evidence-export-controls{flex-wrap:wrap;align-items:end;gap:16px;margin:20px 0;display:flex}.evidence-export-controls label{min-width:180px;margin:0}.evidence-export-controls button{min-height:43px}.evidence-warning{color:#704c18;background:#fff8e9;border:1px solid #e2cfaa;border-radius:12px;padding:18px 24px;font-size:13px}.evidence-warning p{line-height:1.65}.evidence-warning summary{cursor:pointer;font-weight:600}.evidence-warning li,.evidence-blocked li{margin:8px 0;line-height:1.5}.evidence-table{max-width:100%}.evidence-table table{width:max-content;min-width:100%}.evidence-table th,.evidence-table td{font-variant-numeric:tabular-nums;min-width:150px}.evidence-table td,.evidence-table thead th:not(:first-child){text-align:right}.evidence-table tr>:first-child{z-index:1;text-align:left;background:#fff;border-right:1px solid #dce4da;min-width:200px;max-width:230px;position:sticky;left:0}.evidence-table tbody th{background:#fff;font-weight:400}.evidence-table thead th:first-child,.evidence-table tfoot th,.evidence-table tfoot td{background:#f0f5ef}.evidence-module button:focus-visible,.evidence-module .table-wrap:focus-visible{outline-offset:-3px;outline:3px solid #34855f}.evidence-export .error,.evidence-export .notice{margin-top:16px;margin-bottom:0}@media (width<=760px){.evidence-filters .hours-filters{grid-template-columns:1fr}.evidence-summary{grid-template-columns:1fr;padding:20px}.evidence-summary>small{grid-column:auto}.evidence-export{padding:20px}.evidence-export-controls{grid-template-columns:1fr;gap:12px;display:grid}.evidence-export-controls label{min-width:0}.evidence-table tr>:first-child{min-width:155px;max-width:180px}.evidence-table th,.evidence-table td{min-width:140px}.evidence-warning{padding:16px}}.evidence-table tbody th{color:#18352e;font-size:13px}.evidence-content header p,.evidence-module small,.evidence-table th{color:#496252}.app-sidebar{gap:24px;min-width:0;height:100dvh;padding:24px 18px;overflow:hidden}.app-sidebar .logo{flex-shrink:0;gap:12px;margin:0}.app-sidebar .logo small{color:#a5c6b7}.sidebar-body{flex-direction:column;flex:1;gap:20px;min-height:0;display:flex}.app-sidebar nav{scrollbar-width:thin;scrollbar-color:#5b8674 #112d26;flex:1;min-height:0;padding:3px 4px;display:block;overflow:hidden auto}.nav-group{gap:4px;display:grid}.nav-group+.nav-group{border-top:1px solid #537565;margin-top:24px;padding-top:20px}.nav-group h2{color:#e1f2e9;margin:0 12px 10px;font-size:14px;font-weight:750;line-height:1.5}.app-sidebar nav button{white-space:normal;overflow-wrap:anywhere;gap:0;width:100%;min-height:44px;padding:12px;line-height:1.45}.app-sidebar nav button.selected{color:#fff;box-shadow:none;background:#244b3d;font-weight:650}.app-sidebar .account{flex-shrink:0;gap:6px;min-width:0;margin:0;padding:18px 12px 0}.app-sidebar .account b{overflow-wrap:anywhere;font-size:14px}.app-sidebar .account>span{color:#a5c6b7}.app-sidebar .account button{color:#c2e5d0;min-height:44px;margin:2px 0 0;padding:10px 0}.app-sidebar button:focus-visible{outline-offset:1px;outline:2px solid #c2e5d0}.mobile-menu-toggle{display:none}.occupation-percentage{text-align:right;color:#496252;min-width:58px;margin-left:10px;display:inline-block}.hours-period-controls{flex-wrap:wrap;align-items:center;gap:10px;padding:18px 24px 0;display:flex}.hours-period-controls button{min-width:88px;min-height:44px}.hours-period-controls p{color:#496252;flex:1;min-width:200px;margin:0 0 0 6px;font-size:13px;line-height:1.6}.hours-period-controls button:focus-visible{outline-offset:3px;outline:2px solid #21694e}@media (width<=760px){.hours-period-controls{padding:16px 16px 0}.hours-period-controls p{flex-basis:100%;margin:4px 0 0}}.daily-worker-name{overflow-wrap:anywhere;font-size:13px;font-weight:400;display:block}.occupation-charts .panel-head p,.project-chart small,.chart-scale,.chart-footnote,.chart-empty{color:#496252}.occupation-bar-label{flex-wrap:wrap;align-items:baseline}.occupation-bar-label>span{overflow-wrap:anywhere;flex:1;min-width:0}.occupation-bar-label>b{margin-left:auto}.shell{grid-template-columns:246px minmax(0,1fr)}@media (width<=1100px){.shell{grid-template-columns:210px minmax(0,1fr)}.app-sidebar{padding:24px 12px}}@media (width<=760px){.app-sidebar{gap:16px;height:auto;padding:18px 16px;position:static;overflow:visible}.mobile-menu-toggle{color:#d8e9df;text-align:left;background:#1a3d31;border:1px solid #537565;align-items:center;gap:12px;width:100%;min-height:48px;padding:12px;display:flex}.mobile-menu-toggle:hover{background:#244b3d}.mobile-menu-toggle>span{color:#c2e5d0;font-size:12px}.mobile-menu-toggle>b{overflow-wrap:anywhere;flex:1;min-width:0;font-size:13px}.mobile-menu-toggle svg{flex-shrink:0}.app-sidebar .sidebar-body{display:none}.app-sidebar.menu-open .sidebar-body{gap:20px;display:flex}.app-sidebar nav{flex:none;overflow:visible}.app-sidebar .account{padding-top:18px;display:grid}.nav-group+.nav-group{margin-top:20px}}
