:root{color:#17211c;letter-spacing:0;background:#f5f6f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0}button,input,select,textarea{box-sizing:border-box;font:inherit}main{max-width:1240px;margin:0 auto;padding:28px}.topbar,.panel-heading,.actions,.user-pill,.tabs,.segmented,.toolbar,.inline-form,.add-project,.edit-row,.week-controls,.row-actions{align-items:center;display:flex}.topbar{justify-content:space-between;gap:24px;margin-bottom:18px}.eyebrow{color:#617066;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:800}h1,h2,h3{margin:0}h1{font-size:30px}h2{align-items:center;gap:8px;font-size:20px;display:flex}h3{font-size:16px}small{color:#617066;margin-top:3px;font-size:12px;display:block}.user-pill,.notice,.panel,.tabs{background:#fff;border:1px solid #d9ded9;border-radius:8px}.user-pill{gap:8px;padding:10px 12px;font-size:14px}.notice{margin-bottom:16px;padding:12px 14px}.notice.danger{color:#9d2c1f;background:#fff5f3;border-color:#efb4aa}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:18px;padding:6px}.tabs a{color:#17211c;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;min-height:34px;padding:0 14px;text-decoration:none;display:inline-flex}.tabs a.active{color:#fff;background:#204b38;border-color:#204b38}.segmented{background:#f7f8f7;border:1px solid #d9ded9;border-radius:8px;gap:4px;width:fit-content;margin-top:16px;padding:4px}.segmented button{border-color:#0000;min-height:32px}.segmented button.active{color:#fff;background:#204b38;border-color:#204b38}.tab-divider{background:#dfe4df;align-self:stretch;width:1px;margin:4px 6px}.panel{padding:18px}.app-error{max-width:560px;margin:48px auto}.login-panel{gap:14px;max-width:420px;margin-bottom:18px;display:grid}.panel-heading{justify-content:space-between;gap:18px;margin-bottom:18px}.week-controls{gap:8px}.total{text-align:right;min-width:72px;font-size:28px;font-weight:800}.total-warning{color:#b42318}.week-note{gap:6px;margin:14px 0;display:grid}.week-note span{color:#617066;text-transform:uppercase;font-size:12px;font-weight:800}.add-project{flex-wrap:wrap;gap:10px;margin:14px 0 0}.add-project select{min-width:min(100%,360px)}.timesheet-grid{border:1px solid #e3e8e3;border-radius:8px;grid-template-columns:minmax(240px,1fr) 96px minmax(280px,1.3fr);display:grid;overflow:hidden}.grid-head,.grid-cell{border-bottom:1px solid #e3e8e3;padding:12px}.grid-head{color:#465248;background:#eef2ef;font-size:13px;font-weight:800}.grid-row{display:contents}.grid-divider{color:#617066;text-transform:uppercase;background:#f7f8f7;border-bottom:1px solid #e3e8e3;grid-column:1/-1;padding:10px 12px;font-size:12px;font-weight:800}.project-label{font-weight:650}.field-cell{display:block}.mobile-field-label{display:none}input,select,textarea{color:#17211c;background:#fff;border:1px solid #cdd5ce;border-radius:6px;min-height:36px;padding:0 10px}textarea{resize:vertical;min-height:88px;padding:9px 10px}input:disabled{color:#6c766f;background:#f1f3f1}.hours-input,.note-input{width:100%}.hours-input{text-align:right;font-weight:800}.forecast-edit-cell{position:relative}.forecast-grid-dragging{cursor:cell;-webkit-user-select:none;user-select:none}.forecast-edit-cell.forecast-fill-active{background:#fff7d6;box-shadow:inset 0 0 0 2px #d3a11f}.forecast-edit-cell.forecast-fill-source{background:#e5f3ec;box-shadow:inset 0 0 0 2px #204b38}.forecast-edit-cell.forecast-fill-active .hours-input{background:#fffdf2;border-color:#d3a11f}.forecast-edit-cell.forecast-fill-source .hours-input{background:#f8fcfa;border-color:#204b38}.forecast-edit-cell .hours-input{padding-right:24px}.forecast-fill-handle{cursor:crosshair;background:#fff;border:1px solid #617066;border-radius:3px;width:12px;height:12px;min-height:0;padding:0;position:absolute;top:36px;right:17px}.forecast-fill-handle:after{content:"";border-bottom:1px solid #617066;border-right:1px solid #617066;width:4px;height:4px;position:absolute;bottom:2px;right:2px}.forecast-fill-handle:hover,.forecast-fill-handle:focus-visible{background:#e5f3ec;border-color:#204b38;outline:none}.actions{justify-content:flex-end;gap:10px;margin-top:18px}button{color:#17211c;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cdd5ce;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 14px;display:inline-flex}button:disabled{color:#8b948e;cursor:not-allowed}button.primary{color:#fff;background:#204b38;border-color:#204b38}button.danger{color:#9d2c1f;border-color:#efb4aa}.admin-grid{grid-template-columns:minmax(340px,.8fr) minmax(440px,1.2fr);gap:18px;display:grid}.create-stack{border:1px solid #e3e8e3;border-radius:8px;gap:0;margin-top:18px;display:grid;overflow:hidden}.create-block{background:#fbfcfb;padding:14px}.create-block+.create-block{border-top:1px solid #e3e8e3}.create-block .inline-form{margin:0}.toolbar,.inline-form{flex-wrap:wrap;gap:10px;margin:16px 0}.toolbar label{color:#617066;text-transform:uppercase;gap:4px;font-size:12px;font-weight:800;display:grid}.compact-field{color:#617066;text-transform:uppercase;gap:4px;min-width:140px;font-size:12px;font-weight:800;display:grid}.inline-form input,.inline-form select,.inline-form textarea,.edit-row input,.edit-row select,.toolbar input,.toolbar select{min-width:180px}.inline-form textarea{width:100%}.edit-row{justify-content:space-between;gap:10px}.edit-row input,.list-item input{flex:1}.table{border:1px solid #e3e8e3;border-radius:8px;margin-top:16px;display:grid;overflow:hidden}.table-row{border-bottom:1px solid #e3e8e3;grid-template-columns:minmax(240px,1.4fr) minmax(120px,.6fr) minmax(110px,.5fr) minmax(180px,.9fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.people-table .table-row{grid-template-columns:minmax(210px,1.25fr) minmax(130px,.7fr) minmax(100px,.5fr) minmax(100px,.5fr) minmax(110px,.6fr) minmax(90px,.4fr) minmax(130px,.6fr)}.allocation-table .table-row{grid-template-columns:minmax(240px,1.4fr) minmax(130px,.6fr) minmax(110px,.5fr) minmax(140px,.5fr)}.weeks-table .table-row{grid-template-columns:minmax(220px,1.4fr) minmax(110px,.5fr) minmax(80px,.4fr) minmax(120px,.5fr) minmax(220px,.9fr)}.project-usage-table .table-row{grid-template-columns:minmax(260px,1.3fr) minmax(90px,.4fr) minmax(320px,1.2fr)}.table-row:last-child{border-bottom:0}.table-head{color:#465248;background:#eef2ef;font-size:13px;font-weight:800}.row-actions{flex-wrap:wrap;gap:6px}.row-actions button{min-height:32px;padding:0 10px}.table>.empty-state{border:0;border-radius:0;margin:0}.list,.assignment-list{gap:10px;margin-top:16px;display:grid}.list-block{border:1px solid #e3e8e3;border-radius:8px;gap:8px;padding:12px;display:grid}.list-item{border:1px solid #e3e8e3;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:10px 12px;display:flex}.project-card{border:1px solid #e3e8e3;border-radius:8px;gap:10px;padding:10px;display:grid}.project-card-main{border:0;padding:0}.project-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.project-meta-grid label,.project-notes-field{color:#617066;text-transform:uppercase;gap:5px;font-size:12px;font-weight:800;display:grid}.project-notes-field textarea{color:#17211c;text-transform:none;font-size:14px;font-weight:400}.assignment-row{grid-template-columns:minmax(0,1fr) minmax(150px,190px);align-items:center;gap:10px;min-height:36px;display:grid}.forecast-project-meta{background:#fbfcfb;border:1px solid #e3e8e3;border-radius:8px;gap:4px;margin:8px 0 16px;padding:12px;display:grid}.forecast-project-meta p{color:#465248;margin:6px 0 0}.matrix-full-total{color:#11613a;background:#e5f3ec;border-radius:6px;width:fit-content;margin-top:4px;padding:4px 8px;font-size:13px;font-weight:800}.forecast-monthly-totals{border-top:1px solid #e3e8e3;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:8px;padding-top:8px;display:flex}.forecast-monthly-label{color:#617066;text-transform:uppercase;font-size:12px;font-weight:800}.forecast-monthly-total{color:#465248;font-size:13px}.forecast-monthly-total strong{color:#17211c}.forecast-grid{border:1px solid #e3e8e3;border-radius:8px;max-width:100%;display:grid;position:relative;overflow-x:auto}.forecast-row{display:contents}.forecast-grid>.grid-head:first-child,.forecast-row>.project-label{z-index:2;background:#fff;position:sticky;left:0;box-shadow:1px 0 #d8e0da,10px 0 14px -14px #17251b73}.forecast-grid>.grid-head:first-child{z-index:3;background:#eef2ef}.forecast-week-column{transition:background .15s}.forecast-week-even{background:#fff}.forecast-week-odd{background:#f4f7f5}.grid-head.forecast-week-even{background:#eef2ef}.grid-head.forecast-week-odd{background:#e4ebe6}.forecast-current-week{box-shadow:inset 2px 0 #204b38,inset -2px 0 #204b38}.grid-head.forecast-current-week{color:#163f2e;background:#dbece4}.grid-cell.forecast-current-week{background-image:linear-gradient(#204b380e,#204b380e)}.forecast-total-row .forecast-current-week{background-image:linear-gradient(#204b3814,#204b3814)}.current-week-label{color:#fff;text-transform:uppercase;background:#204b38;border-radius:4px;width:fit-content;margin-top:5px;padding:2px 5px;font-size:10px;font-weight:800;line-height:1}.forecast-total-row .grid-cell{background:#f7f8f7;font-weight:800}.forecast-total-row .forecast-week-even{background:#f7f8f7}.forecast-total-row .forecast-week-odd{background:#edf3ef}.forecast-total-row>.project-label{z-index:3;background:#f7f8f7}.forecast-total{text-align:right}.forecast-total small,.forecast-all-cell small{color:#617066;margin-top:3px;font-size:11px;font-weight:600;line-height:1.25;display:block}.forecast-availability{justify-content:flex-end;align-items:center;gap:5px;margin-top:5px;display:inline-flex;position:relative}.forecast-availability-summary{color:#617066;white-space:nowrap;font-size:11px;font-weight:700;line-height:1.2}.forecast-availability-summary.over{color:#9d2c1f}.forecast-availability-button{color:#8b968e;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:inline-flex}.forecast-availability-button:hover,.forecast-availability-button:focus-visible{color:#204b38;background:#eef2ef}.forecast-availability-button.over{color:#9d2c1f}.forecast-availability-popover{z-index:30;color:#17211c;text-align:left;background:#fff;border:1px solid #cdd5ce;border-radius:8px;gap:8px;width:280px;padding:10px;display:grid;position:fixed;box-shadow:0 14px 28px #17251b29}.forecast-availability-popover span{justify-content:space-between;gap:12px;font-size:12px;line-height:1.3;display:flex}.forecast-availability-popover strong{overflow-wrap:anywhere;min-width:0;font-weight:650}.forecast-availability-popover b{flex:none;font-weight:800}.pto-summary{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.pto-summary span{color:#465248;background:#f7f8f7;border:1px solid #d9ded9;border-radius:6px;padding:5px 8px;font-size:12px;font-weight:700}.pto-cell{min-height:78px}.pto-cell small{color:#617066;min-height:18px;font-size:11px;line-height:1.2}.pto-source-manual .hours-input{background:#f4fbf7;border-color:#204b38}.pto-conflict .hours-input{background:#fff8ed;border-color:#c77818}.report-dashboard,.report-grid,.stat-grid,.meter-list,.rank-list{gap:14px;display:grid}.holiday-locations{gap:18px;display:grid}.holiday-location{background:#fbfcfb;border:1px solid #e3e8e3;border-radius:8px}.holiday-location-heading,.holiday-add-row,.holiday-row{grid-template-columns:minmax(140px,.6fr) minmax(220px,1.3fr) minmax(150px,.7fr) minmax(180px,.8fr);align-items:center;gap:10px;display:grid}.holiday-location-heading{border-bottom:1px solid #e3e8e3;grid-template-columns:minmax(0,1fr) auto;padding:14px}.holiday-table{display:grid}.holiday-row{border-bottom:1px solid #e3e8e3;padding:10px 14px}.holiday-head{color:#465248;background:#eef2ef;font-size:13px;font-weight:800}.holiday-add-row{padding:14px}.holiday-row input,.holiday-row select,.holiday-add-row input,.holiday-add-row select{width:100%}.report-dashboard{margin-top:16px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card,.report-card,.report-section{background:#fbfcfb;border:1px solid #e3e8e3;border-radius:8px}.stat-card{gap:4px;min-height:108px;padding:14px;display:grid}.stat-card span{color:#617066;text-transform:uppercase;font-size:12px;font-weight:800}.stat-card strong{font-size:28px}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-card,.report-section{padding:14px}.report-section{margin-top:16px}.integration-status{background:#fbfcfb;border:1px solid #e3e8e3;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:16px;padding:14px;display:grid}.integration-status-metrics{color:#465248;flex-wrap:wrap;justify-content:flex-end;gap:8px;font-size:13px;font-weight:800;display:flex}.error-text{color:#9d2c1f}.meter{grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:6px 10px;display:grid}.meter.compact{grid-template-columns:minmax(0,1fr)}.meter-label{justify-content:space-between;gap:12px;display:flex}.meter-label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.meter-track,.department-bar{background:#e8ede8;border-radius:999px;height:9px;overflow:hidden}.meter-track span,.department-bar span,.mini-bar{border-radius:inherit;background:#2e6f92;display:block}.meter-track{grid-column:1/2}.meter small{text-align:right;grid-area:2/2/3/3}.mini-bars{align-items:end;gap:10px;min-height:170px;padding-top:8px;display:flex;overflow-x:auto}.mini-bar-column{justify-items:center;gap:5px;min-width:48px;display:grid}.mini-bar{background:#7b5b28;align-self:end;width:24px}.department-row{grid-template-columns:minmax(0,1fr) minmax(100px,.7fr) 64px;align-items:center;gap:10px;display:grid}.department-row>strong{text-align:right}.list-item span:last-child{color:#617066;text-align:right}.check-row{grid-template-columns:20px 1fr;align-items:center;gap:8px;min-height:30px;display:grid}.check-row input{min-height:auto}.badge{color:#465248;background:#eef2ef;border-radius:999px;justify-content:center;align-items:center;width:fit-content;min-height:24px;padding:0 8px;font-size:12px;font-weight:800;display:inline-flex}.badge-submitted,.badge-approved,.badge-success{color:#11613a;background:#e5f3ec}.badge-locked{color:#33415d;background:#eceff5}.badge-missing,.badge-excluded,.badge-failure{color:#9d2c1f;background:#f8e9e7}.badge-draft,.badge-inactive{color:#765600;background:#f6efd8}.empty-state,.muted{color:#617066}.empty-state{background:#fbfcfb;border:1px dashed #cdd5ce;border-radius:8px;margin:12px 0;padding:14px}.footer-actions{justify-content:flex-end;margin-top:18px;display:flex}.drawer-backdrop{z-index:20;background:#0f181252;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:#fff;border-left:1px solid #cdd5ce;width:min(540px,100%);height:100%;padding:22px;overflow-y:auto;box-shadow:-14px 0 28px #17251b29}.drawer-summary,.drawer-entry,.drawer-note{justify-content:space-between;align-items:center;gap:14px;display:flex}.drawer-summary{border-top:1px solid #e3e8e3;border-bottom:1px solid #e3e8e3;padding:12px 0}.drawer-section{margin-top:18px}.drawer-entry{border-bottom:1px solid #eef2ef;padding:10px 0}.drawer-note{background:#fbfcfb;border:1px solid #e3e8e3;border-radius:8px;margin-top:14px;padding:12px;display:block}.drawer-note p{margin:6px 0 0}.allocation-drawer{width:min(680px,100%)}.audit-drawer{width:min(760px,100%)}.audit-log-entry{align-items:center}.audit-entry{align-items:start;display:grid}.audit-entry pre{color:#26352a;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7faf7;border:1px solid #e3e8e3;border-radius:8px;max-width:100%;margin:8px 0 0;padding:10px;font-size:12px;line-height:1.4;overflow-x:auto}.allocation-summary span,.allocation-week-header span{gap:3px;display:grid}.allocation-summary small,.allocation-week-header small,.allocation-details small{color:#617066;font-size:12px;font-weight:600}.allocation-week{background:#fff;border:1px solid #e3e8e3;border-radius:8px;margin-top:12px;padding:12px}.allocation-current-week{background:#f6fbf8;border-color:#204b38}.allocation-week-header{justify-content:space-between;gap:14px;display:flex}.allocation-week-header>span:last-child{text-align:right}.allocation-meter{background:#e3e8e3;border-radius:999px;height:8px;margin-top:10px;overflow:hidden}.allocation-meter span{border-radius:inherit;background:#204b38;height:100%;display:block}.allocation-breakdown{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.allocation-breakdown span{color:#465248;background:#eef2ef;border-radius:6px;padding:3px 7px;font-size:12px;font-weight:700}.allocation-details{margin-top:8px}.allocation-details .drawer-entry:last-child{border-bottom:0}@media (width<=860px){main{padding:16px}.topbar,.panel-heading,.admin-grid{display:block}.topbar h1{font-size:24px}h2{flex-wrap:wrap;align-items:center;font-size:18px}.user-pill,.admin-grid>*+*{margin-top:14px}.tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:8px;overflow-x:auto}.tabs a{flex:none}.tab-divider{flex:0 0 1px}.panel{padding:14px}.panel-heading{margin-bottom:14px}.week-controls{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;width:100%;margin-top:14px;display:grid}.week-controls button{min-width:0;padding:0 10px}.total{text-align:left;grid-column:1/-1;min-width:0;padding-top:2px;font-size:24px}.timesheet-grid{border:0;border-radius:0;grid-template-columns:1fr;gap:10px;display:grid;overflow:visible}.grid-head{display:none}.forecast-grid>.grid-head:first-child,.forecast-row>.project-label{box-shadow:none;position:static}.forecast-week-even,.forecast-week-odd,.forecast-total-row .forecast-week-even,.forecast-total-row .forecast-week-odd{background:#fff}.grid-row{background:#fff;border:1px solid #e3e8e3;border-radius:8px;gap:10px;padding:12px;display:grid}.grid-cell{border-bottom:0;padding:0}.project-label{font-size:15px}.field-cell{grid-template-columns:76px minmax(0,1fr);align-items:center;gap:10px;display:grid}.field-cell .forecast-availability{grid-column:2/3;justify-content:flex-start;margin-top:-2px}.forecast-fill-handle{top:24px;right:5px}.mobile-field-label{color:#617066;text-transform:uppercase;font-size:12px;font-weight:800;display:block}.hours-input{justify-self:start;max-width:96px}.grid-divider{border:1px solid #e3e8e3;border-radius:8px}.add-project,.inline-form,.actions,.toolbar,.edit-row,.list-item{flex-direction:column;align-items:stretch}.add-project select,.add-project button,.inline-form input,.inline-form select,.inline-form textarea,.inline-form button,.toolbar input,.toolbar select,.toolbar button,.compact-field,.compact-field select,.actions button{width:100%}.table-row,.people-table .table-row,.allocation-table .table-row,.weeks-table .table-row,.project-usage-table .table-row,.holiday-row,.holiday-add-row{grid-template-columns:1fr}.row-actions{flex-direction:column;align-items:stretch}.row-actions button{width:100%}.project-meta-grid,.assignment-row,.stat-grid,.report-grid,.department-row,.holiday-location-heading{grid-template-columns:1fr}.department-row>strong{text-align:left}.drawer{padding:16px}}
