:root{--color-bg:#f4f1ea;--color-surface:#fffdf8;--color-surface-2:#efebe1;--color-border:#e5e0d3;--color-text:#2f3a2f;--color-text-muted:#667064;--color-primary:#3f7a55;--color-primary-soft:#dfeae0;--color-accent:#d9a441;--color-accent-soft:#f7ecd6;--color-info:#7d92b8;--color-danger:#b8584b;--radius-card:16px;--radius-pill:999px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font-synthesis-weight:none;font-family:Hiragino Maru Gothic ProN,Yu Gothic,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}h1{font-size:24px}h2{font-size:17px}.muted{color:var(--color-text-muted);font-size:13px}.app-shell{min-height:100vh;padding-left:220px}.sidebar{background:var(--color-surface-2);border-right:1px solid var(--color-border);flex-direction:column;gap:28px;width:220px;padding:24px 16px 16px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;display:flex}.brand img{width:146px;height:auto}.brand-full{justify-content:center}.brand-full img{width:160px}.main-nav{gap:4px;display:grid}.main-nav a{border-radius:var(--radius-pill);color:#596459;align-items:center;gap:10px;padding:9px 12px;font-size:13px;display:flex}.main-nav a.active{color:#fff;background:var(--color-primary)}.main-nav svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:17px;height:17px}.user-card{border-top:1px solid var(--color-border);grid-template-columns:34px 1fr;align-items:center;gap:8px;margin-top:auto;padding-top:16px;display:grid}.user-card .avatar{background:var(--color-primary-soft);width:34px;height:34px;color:var(--color-primary);border-radius:50%;place-items:center;font-weight:700;display:grid}.user-card strong,.user-card small{font-size:12px;display:block}.user-card small{color:var(--color-text-muted);margin-top:2px}.user-card form{grid-column:1/-1}.app-content{padding:36px clamp(24px,4vw,64px)}.page{max-width:1280px;margin:auto}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.page-header p{color:var(--color-text-muted);font-size:13px}.dashboard-header-actions{align-items:center;gap:10px;display:flex}.pending-approvals-button{align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:inline-flex}.notification-menu{position:relative}.notification-menu summary{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:50%;place-items:center;width:38px;height:38px;list-style:none;display:grid;position:relative}.notification-menu summary::-webkit-details-marker{display:none}.notification-menu summary:hover,.notification-menu[open] summary{border-color:var(--color-primary);background:var(--color-primary-soft)}.notification-menu svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:20px}.notification-count{border:2px solid var(--color-surface);border-radius:var(--radius-pill);color:#fff;background:var(--color-danger);place-items:center;min-width:19px;height:19px;padding:0 5px;font-size:10px;font-weight:800;display:grid;position:absolute;top:-5px;right:-5px}.notification-panel{z-index:20;border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;width:min(380px,100vw - 32px);padding:18px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 32px #2f3a2f24}.notification-panel h2{margin:0 0 12px;font-size:16px}.notification-panel ul{margin:0;padding:0;list-style:none}.notification-panel li{white-space:pre-line;padding:10px 0;font-size:13px}.notification-panel li+li{border-top:1px solid var(--color-border)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:20px 24px}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-header h2{margin:0}.badge{border-radius:var(--radius-pill);background:var(--color-primary-soft);align-items:center;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.badge-success{color:var(--color-primary)}.badge-warning{color:#8a641e;background:var(--color-accent-soft)}.badge-info{color:#4d6388;background:#e4e9f2}.badge-muted{color:#697069;background:#ecece8}.badge-danger{color:var(--color-danger);background:#f5e2df}.status-chip{border-radius:var(--radius-pill);white-space:nowrap;color:color-mix(in srgb, var(--chip-color) 70%, black);background:color-mix(in srgb, var(--chip-color) 18%, white);align-items:center;gap:6px;padding:3px 9px 3px 7px;font-size:11px;font-weight:700;display:inline-flex}.status-chip i{background:var(--chip-color);border-radius:50%;width:8px;height:8px}.button{cursor:pointer;border:1px solid #0000;border-radius:10px;padding:9px 16px;font-weight:700}.button:disabled{opacity:.55;cursor:wait}.button-primary{color:#fff;background:var(--color-primary)}.button-outline{color:var(--color-primary);border-color:var(--color-primary);background:0 0}.button-ghost{color:var(--color-text);background:0 0}.button-danger{color:#fff;background:var(--color-danger)}.button-small{padding:5px 9px;font-size:11px}.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dialog.confirmation-modal::backdrop{background:#0f172a73}.dialog.confirmation-modal{width:min(520px,100vw - 40px)}.confirmation-modal[open]{gap:16px;display:grid}.confirmation-modal h2,.confirmation-modal p{margin:0}.stat-card{gap:8px;display:grid}.stat-label{color:var(--color-text-muted);font-size:12px}.stat-value{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:clamp(18px,2.2vw,27px)}.stat-value small{margin-left:4px;font-size:13px}.period-nav{align-items:center;gap:18px;display:flex}.period-nav a{border:1px solid var(--color-border);border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.schedule-range-switch{background:var(--color-surface-2);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.schedule-period-control{justify-items:center;gap:6px;display:grid}.schedule-range-switch a{width:auto;min-width:42px;height:26px;color:var(--color-text-muted);border:0;border-radius:7px;place-items:center;padding:0 8px;font-size:11px;text-decoration:none;display:grid}.schedule-range-switch a.active{background:var(--color-surface);color:var(--color-accent);box-shadow:var(--shadow-soft);font-weight:700}.period-picker{display:inline-flex;position:relative}.period-picker-button{border-radius:var(--radius-pill);color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:6px 12px;transition:background .15s,border-color .15s;display:inline-flex}.period-picker-button:hover,.period-picker-button:focus-visible,.period-picker-button[aria-expanded=true]{border-color:var(--color-border);background:var(--color-surface-2)}.period-popover{z-index:20;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);width:300px;padding:14px;animation:.15s ease-out period-popover-in;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 18px 48px #2f3a2f2e}@keyframes period-popover-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.period-popover-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.period-popover-head strong{font-size:14px}.period-popover-head button,.period-popover-foot button{color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0}.period-popover-head button{border-radius:50%;place-items:center;width:30px;height:30px;font-size:18px;display:grid}.period-popover-head button:hover{background:var(--color-surface-2);color:var(--color-text)}.period-calendar{gap:2px;display:grid}.period-calendar-row{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.period-calendar-row [role=columnheader]{color:var(--color-text-muted);text-align:center;padding:4px 0;font-size:11px;font-weight:700}.period-day,.period-month{color:var(--color-text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;font-size:13px;transition:background .12s;display:grid}.period-day{height:34px}.period-day:hover:not(:disabled),.period-month:hover:not(:disabled){background:var(--color-primary-soft)}.period-day.sun,.period-calendar-row [role=columnheader].sun{color:#b8584b}.period-day.sat,.period-calendar-row [role=columnheader].sat{color:#4a6fa5}.period-day.today,.period-month.today{box-shadow:inset 0 0 0 1.5px var(--color-primary);font-weight:700}.period-day.selected,.period-month.selected{background:var(--color-primary);color:#fff;box-shadow:none;font-weight:700}.period-months{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.period-month{height:40px}.period-popover-foot{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;display:flex}.period-popover.align-start{animation-name:period-popover-in-start;left:0;transform:none}.dialog .date-field>.period-popover{width:min(300px,100%);margin-top:2px;animation-name:period-popover-in-start;position:static;transform:none}@keyframes period-popover-in-start{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.period-clear{border-radius:var(--radius-pill);padding:6px 12px;font-size:12px;font-weight:700}.period-clear:hover{background:var(--color-surface-2);color:var(--color-text)}.calendar-icon{fill:none;width:16px;height:16px;stroke:var(--color-primary);stroke-width:1.6px;stroke-linecap:round;flex:none}.date-field,.date-field-control{position:relative}.date-field-button{border:1px solid var(--color-border);width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-weight:600;transition:border-color .15s,box-shadow .15s;display:flex}.date-field-button:hover:not(:disabled),.date-field-button[aria-expanded=true]{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.date-field-button:disabled{background:var(--color-surface-2);color:var(--color-text-muted);cursor:not-allowed}.date-field-button.placeholder{color:var(--color-text-muted);font-weight:500}.field .date-field-input{opacity:0;pointer-events:none;border:0;width:100%;height:1px;padding:0;position:absolute;inset:auto 0 0}.period-today{border-radius:var(--radius-pill);padding:6px 12px;font-size:12px;font-weight:700;color:var(--color-primary)!important}.period-today:hover:not(:disabled){background:var(--color-primary-soft)}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th,.data-table td{border-bottom:1px solid var(--color-border);text-align:left;padding:12px 10px}.data-table th{color:var(--color-text-muted);font-size:11px}.field{gap:6px;font-size:12px;font-weight:700;display:grid}.field input,.field select,.field textarea{border:1px solid var(--color-border);width:100%;color:var(--color-text);background:#fff;border-radius:9px;padding:10px 12px}.field textarea{resize:vertical;min-height:100px}.duration-field{border:0;min-width:0;margin:0;padding:0}.duration-field>legend{padding:0}.duration-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:6px;display:grid}.overwrite-target-list{background:var(--color-surface-2);border-radius:9px;gap:4px;margin:0;padding:10px 12px 10px 28px;font-size:13px;display:grid}.time-select-field{border:0;min-width:0;margin:0;padding:0}.time-select-field>legend{padding:0}.time-select{border:1px solid var(--color-border);background:#fff;border-radius:9px;align-items:center;gap:2px;height:40px;margin-top:6px;padding:0 10px;transition:border-color .15s,box-shadow .15s;display:flex}.time-select:hover,.time-select:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.time-select[data-invalid=true]{border-color:var(--color-danger)}.time-select-icon{fill:none;width:18px;height:18px;stroke:var(--color-text-muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;margin-right:6px}.field .time-select select{font-variant-numeric:tabular-nums;text-align:center;text-align-last:center;appearance:none;cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;width:auto;min-width:0;height:30px;padding:0 6px;font-size:16px;font-weight:700;transition:background .15s}.field .time-select select:hover,.field .time-select select:focus-visible{background:var(--color-primary-soft);outline:none}@supports (appearance:base-select){.field .time-select select{appearance:base-select}.field .time-select select::picker(select){appearance:base-select}.field .time-select select::picker-icon{display:none}.field .time-select select{justify-content:center;align-items:center;line-height:1;display:flex}.field .time-select select::picker(select){grid-template-columns:repeat(var(--tile-columns,6), var(--tile-width,44px));border:1px solid var(--color-border);background:var(--color-surface);border-radius:14px;gap:4px;margin-top:6px;padding:8px;box-shadow:0 14px 36px #2f3a2f2e}.field .time-select select:open::picker(select){display:grid}.field.duration-field .time-select option.duration-unit{pointer-events:none;text-align:right;width:100%;height:auto;color:var(--color-text-muted);grid-column:1/-1;justify-items:end;padding:2px 4px 6px;font-size:12px;font-weight:500}.field .time-select select option{font-variant-numeric:tabular-nums;height:40px;color:var(--color-text);cursor:pointer;border-radius:9px;place-items:center;font-size:16px;font-weight:700;display:grid}.field .time-select select option::checkmark{display:none}.field .time-select select option:hover,.field .time-select select option:focus-visible{background:var(--color-primary-soft);outline:none}.field .time-select select option:checked{background:var(--color-primary);color:#fff}.field .time-select select option[value=""]{height:32px;color:var(--color-text-muted);grid-column:1/-1;font-size:13px;font-weight:600}.field .time-select select option[value=""]:checked{background:var(--color-surface-2);color:var(--color-text-muted)}.field .time-select select option[value=""]:disabled{display:none}}.time-select-separator{color:var(--color-text-muted);font-size:17px;font-weight:700}.field-output{border:1px solid var(--color-border);background:var(--color-bg);width:100%;min-height:39px;color:var(--color-text);border-radius:9px;padding:10px 12px;display:block}.field-error,.form-error{color:var(--color-danger);font-size:12px}.checkbox{align-items:center;gap:8px;display:flex}.empty-state{color:var(--color-text-muted);text-align:center;padding:40px 20px}.dialog{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);width:min(560px,100vw - 32px);padding:22px}.dialog::backdrop{background:#26302880}.dialog header{justify-content:space-between;align-items:center;display:flex}.dialog header h2{margin:0}.confirm-dialog{width:min(440px,100vw - 32px)}.confirm-dialog>p{margin:16px 0}.confirm-dialog-actions{justify-content:flex-end}.dialog-secondary-form{margin-top:16px}.project-quick-edit-dialog header p{color:var(--color-text-muted);margin:4px 0 0}.dialog-actions{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.progress-bar{border-radius:var(--radius-pill);background:var(--color-border);height:12px;display:flex;overflow:hidden}.progress-bar span{min-width:0}.spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent);opacity:0;border-top-color:currentColor;border-radius:50%;flex:none;animation:0s linear .15s forwards spinner-appear,.7s linear .15s infinite spinner-rotate;display:inline-block}@keyframes spinner-appear{to{opacity:1}}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-surface-2), var(--color-border), var(--color-surface-2));background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{to{background-position-x:-200%}}.filter-results{position:relative}.filter-results-overlay{z-index:1;border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 60%, transparent);color:var(--color-primary);place-items:start center;display:grid;position:absolute;inset:0}.filter-results-overlay>.spinner{margin-top:min(120px,40%);position:sticky;top:calc(50vh - 18px)}.page-loading{min-height:calc(100vh - 72px);color:var(--color-primary);place-items:center;display:grid}.toolbar{justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 0;display:flex}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.all-work-filters{gap:14px;display:grid}.chip-group{border:0;gap:8px;margin:0;padding:0;display:grid}.chip-group legend{padding:0;font-size:12px;font-weight:700}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;padding:6px 14px;font-size:12px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex;position:relative}.chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.chip input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.chip:has(input:checked){border-color:var(--color-primary);background:var(--color-primary);color:#fff}.chip:has(input:focus-visible){box-shadow:0 0 0 3px var(--color-primary-soft)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px;display:grid}.duration-stats{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.form-grid,.stack{gap:16px;display:grid}.application-form-card{gap:22px;display:grid}.applications-header-actions{flex-wrap:wrap;flex:none;gap:12px;display:flex}.applications-tabs-row{justify-content:space-between;align-items:center;gap:20px;min-width:0;display:flex}.applications-tabs-row .tabs{min-width:0}.application-form-header h2{margin:0 0 4px}.application-form-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.application-form-header>div{min-width:0}.application-form-header p{color:var(--color-text-muted);margin:0;font-size:13px}.application-form-header .application-form-guidance{color:var(--color-text);margin-top:8px;line-height:1.6}.application-form .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr))}.application-form .form-grid>.field{align-content:start}.application-form fieldset:not(.chip-group):not(.duration-field):not(.time-select-field):not(.plain-fieldset){border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:0;padding:18px}.plain-fieldset{border:0;min-width:0;margin:0;padding:0}.application-form-actions{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;padding-top:18px;display:flex}.application-form-actions .success-message{margin-right:auto}.application-draft{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);gap:18px;min-width:0;padding:20px;display:grid}.application-draft+.application-draft{margin-top:4px}.application-draft-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.application-draft-header h3{margin:0;font-size:15px}.application-draft-header-switch{margin-left:auto;font-size:13px}.inline-form{align-items:end;gap:12px;display:flex}.attachment-list{margin:0;padding-left:18px;font-size:13px}.attachment-upload{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.attachment-upload .field{flex:240px}.attachment-upload .field small{font-weight:400}.inline-form .field{max-width:140px}.weekend{color:var(--color-danger)}.text-link{color:var(--color-primary);font-size:12px;font-weight:700}.allocation-legend{flex-wrap:wrap;gap:14px;margin-top:14px;font-size:12px;display:flex}.allocation-legend i{border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.record-list{gap:12px;display:grid}.work-record-card .card-header{flex-wrap:wrap;gap:8px 16px}.record-color-legend{color:var(--color-text-muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px 12px;margin-left:auto;font-size:11px;font-weight:500;display:flex}.record-color-legend span{align-items:center;gap:5px;display:inline-flex}.record-color-legend i{border-radius:50%;flex:none;width:8px;height:8px}.employee-record-list{padding-top:12px}.details-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:14px}.details-card summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.plain-list{gap:8px;margin:0;padding:12px 0 0;list-style:none;display:grid}.plain-list li{border-top:1px solid var(--color-border);grid-template-columns:minmax(160px,1fr) minmax(100px,auto) minmax(180px,2fr) auto;gap:10px;padding-top:8px;display:grid}.muted-row{background:var(--color-bg);color:var(--color-text-muted)}.daily-report-readonly{gap:6px;padding-top:14px;display:grid}.daily-report-readonly h3,.daily-report-readonly p{margin:0}.daily-report-readonly p{white-space:pre-wrap;margin-bottom:8px}.record-item{background:#faf9f5;border-left:5px solid;border-radius:9px;grid-template-columns:1fr auto auto;align-items:center;gap:18px;padding:12px 14px;display:grid}.record-item-readonly{grid-template-columns:1fr auto}.record-item h3{margin:0 0 7px;font-size:14px}.record-item p{white-space:pre-line;margin:4px 0;font-size:12px}.date-pill{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:7px 12px;font-size:12px}.dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:stretch;gap:18px;display:grid}.dashboard-side{flex-direction:column;min-height:0;display:flex}.dashboard-side .card{flex-direction:column;flex:1;min-height:0;display:flex}.clock-time{letter-spacing:.04em;font-size:42px;font-weight:800}.clock-meta{color:var(--color-text-muted);gap:18px;margin:14px 0 18px;font-size:12px;display:flex}.clock-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.labor-cost-total{justify-items:end;gap:2px;display:grid}.labor-cost-total strong{color:var(--color-text);font-size:20px;font-weight:800}.labor-cost-total small{color:var(--color-text-muted);font-size:11px}.labor-cost-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.segmented{border-radius:var(--radius-pill);background:var(--color-surface-2);padding:3px;display:inline-flex}.segmented button{border-radius:var(--radius-pill);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;padding:6px 14px;font-size:12px;font-weight:700}.segmented button[aria-selected=true]{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px #0000001f}.labor-cost-body{grid-template-columns:minmax(0,1fr);gap:18px;display:grid}.labor-cost-chart-scroll{overflow-x:auto}.labor-cost-chart-scroll:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.labor-cost-chart-note{margin:8px 0 0}.labor-cost-chart{width:100%;height:auto;display:block}.labor-cost-chart .tick line{stroke:var(--color-border);stroke-dasharray:3 4}.labor-cost-chart text{fill:var(--color-text-muted);font-size:11px}.labor-cost-chart text.value{fill:var(--color-text);font-weight:700}.labor-cost-chart text.label{font-weight:600}.weekly-chart{--weekly-chart-color:#6a9578;width:100%;height:auto}.weekly-chart line{stroke:var(--color-border)}.weekly-chart rect{fill:var(--weekly-chart-color)}.weekly-chart rect.overtime{fill:var(--color-accent)}.weekly-chart text{fill:var(--color-text-muted);font-size:11px}.weekly-chart text.worked-hours{fill:var(--weekly-chart-color);font-weight:600}.member-list,.assignment-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.member-list li,.assignment-list li{border-bottom:1px solid var(--color-border);align-items:center;gap:9px;padding-bottom:9px;font-size:12px;display:flex}.member-list .badge,.assignment-list .badge{margin-left:auto}.member-list-scroll{flex:1;min-height:0;overflow-y:auto}.member-name{gap:2px;display:grid}.member-name small{color:var(--color-text-muted)}.avatar{background:var(--color-primary-soft);border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.assignment-list div{gap:3px;display:grid}.assignment-list small{color:var(--color-text-muted)}.filter-bar{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));align-items:end;gap:12px;display:grid}.filter-bar .checkbox,.filter-bar .switch{min-height:40px}.filter-bar-switches{flex-wrap:wrap;grid-column:1/-1;gap:8px 20px;display:flex}.settings-projects-table .cell-nowrap{white-space:nowrap}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex;position:relative}.switch input[type=checkbox]{opacity:0;width:1px;height:1px;margin:0;position:absolute}.switch-track{background:var(--color-border);border-radius:999px;flex:none;width:36px;height:20px;transition:background .15s;position:relative}.switch-track:after{content:"";background:var(--color-surface);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--color-primary)}.switch input:checked+.switch-track:after{transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--color-primary);outline-offset:2px}.attendance-edit input,.attendance-edit select{min-width:0;font:inherit;border:1px solid var(--color-border);background:var(--color-surface);border-radius:9px;padding:4px 6px}.attendance-edit .time-select-field{min-width:120px}.attendance-edit .time-select{height:34px;margin-top:0;padding:0 6px}.attendance-edit .time-select-icon{width:15px;height:15px;margin-right:2px}.field.attendance-time .time-select select{height:28px;padding:0 4px;font-size:14px}.field.attendance-time .time-select-separator{font-size:14px}.attendance-unit-switch{white-space:nowrap;font-size:12px}.attendance-unit-switch .switch{font-size:12px}.attendance-edit input[type=number]{width:72px}.attendance-edit input[type=text]{width:160px}.attendance-edit td{white-space:nowrap}.table-sub{color:var(--color-text-muted);margin-top:4px;display:block}.margin{gap:4px;min-width:90px;font-size:11px;display:grid}.margin i{border-radius:var(--radius-pill);background:var(--color-primary);height:5px;display:block}.margin.negative{color:var(--color-danger)}.status-steps{gap:7px;margin:0;padding:0;list-style:none;display:flex}.status-steps li{color:var(--color-text-muted);justify-items:center;gap:3px;font-size:9px;display:grid}.status-steps i{background:var(--color-border);border-radius:50%;width:8px;height:8px}.status-steps li.reached{color:var(--color-primary)}.status-steps li.reached i{background:var(--color-primary)}.status-steps li small{color:var(--color-text-muted);font-size:9px}.status-steps.timeline{flex-wrap:wrap;gap:14px}.status-steps.timeline li{min-width:72px;font-size:11px}.status-steps.timeline i{width:12px;height:12px}.form-columns{grid-template-columns:1fr 1fr;gap:14px;display:grid}.project-form{max-width:760px}.detail-grid{grid-template-columns:140px 1fr;gap:10px;margin:0;display:grid}.detail-grid dt{color:var(--color-text-muted)}.detail-grid dd{margin:0}.page-stack{gap:16px;display:grid}.page-heading{justify-content:space-between;align-items:flex-start;display:flex}.page-heading h1{margin:0}.eyebrow{color:var(--color-primary);letter-spacing:.16em;font-size:10px;font-weight:800}.tabs{gap:6px;display:flex;overflow-x:auto}.tabs a{border-radius:var(--radius-pill);color:var(--color-text-muted);padding:8px 14px;font-size:12px;font-weight:700}.tabs a.active{color:#fff;background:var(--color-primary)}.subpage-header{gap:10px;margin-bottom:8px;display:grid}.subpage-breadcrumb{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.subpage-breadcrumb a{color:var(--color-primary);font-weight:700;text-decoration:none}.subpage-breadcrumb a:hover{text-decoration:underline}.subpage-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.subpage-heading h1{margin:0}.subpage-heading .eyebrow{margin:0 0 4px}.subpage-heading p.muted{max-width:64ch;margin:6px 0 0}.subpage-actions{flex-wrap:wrap}.app-content:has(.manage-page){padding-inline:24px}.manage-page{max-width:none}.manage-page .field,.manage-page .chip,.manage-page .status-chip{font-size:14px}.manage-page>.card,.manage-page>.filter-results>.card{padding:16px}.manage-page,.manage-page>.filter-results>.page-stack{grid-template-columns:minmax(0,1fr)}.manage-page>.page-header{flex-wrap:wrap;gap:16px}.manage-request-tabs{border:1px solid var(--color-border);border-radius:var(--radius-card);background:color-mix(in srgb, var(--color-surface) 86%, var(--color-primary-soft));flex-wrap:wrap;max-width:100%;padding:7px;box-shadow:0 5px 18px #2f3a2f0d}.manage-period-fields{flex-wrap:wrap;align-items:end;gap:12px 16px;display:flex}.manage-period-fields>.date-field{flex:0 200px}.manage-period-presets{flex-wrap:wrap;flex:1 0 100%;gap:6px;display:flex}.manage-period-presets .button{min-width:64px;padding:10px 12px;font-size:13px}.manage-results-header{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.manage-results-header>p{margin:0;font-weight:700}.manage-page>.filter-results{min-height:100vh}.manage-request-tabs a{background:#fff;border:1px solid #0000;flex:none;font-size:14px}.manage-request-tabs a:hover{border-color:var(--color-primary-soft);color:var(--color-primary)}.manage-request-tabs a.active{border-color:var(--color-primary);box-shadow:0 3px 10px #3f7a5538}.manage-requests-table{min-width:0}.manage-requests-table>.table-scroll>.data-table{font-size:14px}.manage-requests-table>.table-scroll>.data-table>:is(thead,tbody)>tr>:is(th,td){font-size:inherit;white-space:nowrap;padding:8px}.manage-requests-table>.table-scroll>.data-table>tbody>tr>td>.button{padding:6px 8px;font-size:14px;line-height:1.4}.manage-requests-table .dialog{white-space:normal}.manage-staggered-details{grid-template-columns:minmax(0,1fr)}.manage-staggered-details>.table-scroll>.data-table{table-layout:fixed}.manage-staggered-details>.table-scroll>.data-table>:is(thead,tbody)>tr>:is(th,td){overflow-wrap:anywhere}.employee-attendance-page{gap:18px}.employee-attendance-tabs{border:1px solid var(--color-border);border-radius:var(--radius-card);background:color-mix(in srgb, var(--color-surface) 86%, var(--color-primary-soft));padding:7px;box-shadow:0 5px 18px #2f3a2f0d}.employee-attendance-tabs a{background:#fff;border:1px solid #0000;flex:none;padding:9px 16px}.employee-attendance-tabs a:hover{border-color:var(--color-primary-soft);color:var(--color-primary)}.employee-attendance-tabs a.active{border-color:var(--color-primary);box-shadow:0 3px 10px #3f7a5538}.employee-timecard-shell{border:1px solid var(--color-border);border-radius:var(--radius-card);background:#fff;overflow:hidden;box-shadow:0 10px 30px #2f3a2f14}.timecard-summary{background:var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1px;margin:0;display:grid}.timecard-summary>div{background:color-mix(in srgb, var(--color-primary-soft) 35%, white);min-width:0;padding:8px 10px}.timecard-summary dt{color:var(--color-text-muted);letter-spacing:.04em;margin-bottom:2px;font-size:9px;font-weight:700}.timecard-summary dd{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;font-weight:700;overflow:hidden}.timecard-day-columns{background:var(--color-surface-2);gap:16px;padding:12px;display:grid;overflow-x:auto}.timecard-day-columns>.table-scroll{border:1px solid var(--color-border);background:#fff;border-radius:10px;overflow:hidden}.timecard-day-columns.standard{grid-template-columns:minmax(960px,1fr)}.timecard-day-columns.standard .employee-timecard{min-width:960px;font-size:12px}.timecard-day-columns.standard .employee-timecard th,.timecard-day-columns.standard .employee-timecard td{height:34px;padding:5px 8px}.timecard-day-columns.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-layout-tabs{align-self:flex-start}.app-shell:has(.employee-attendance-page.compact-view){height:100dvh;min-height:0;padding-bottom:0;padding-left:0;overflow:hidden}:is(.app-shell:has(.employee-attendance-page.compact-view)>.sidebar,.settings-shell:has(.employee-attendance-page.compact-view)>.settings-nav){display:none}.app-shell:has(.employee-attendance-page.compact-view)>.app-content{height:100%;padding:14px 16px;overflow:hidden}.settings-shell:has(.employee-attendance-page.compact-view){width:100%;max-width:none;height:100%;margin:0;display:block}.settings-shell:has(.employee-attendance-page.compact-view)>.settings-content{width:100%;max-width:none;height:100%}.employee-attendance-page.compact-view{grid-template-rows:auto auto auto minmax(0,1fr);grid-template-columns:max-content minmax(0,1fr);gap:8px 12px;width:100%;max-width:none;height:100%;min-height:0;display:grid}.employee-attendance-page.compact-view>.button,.employee-attendance-page.compact-view>.attendance-layout-tabs{place-self:center start}.employee-attendance-page.compact-view>.employee-attendance-tabs,.employee-attendance-page.compact-view>.toolbar,.employee-attendance-page.compact-view>.employee-timecard-shell{grid-column:1/-1;min-width:0}.employee-attendance-page.compact-view .page-header{margin-bottom:4px}.employee-attendance-page.compact-view .page-header h1{font-size:28px}.employee-attendance-page.compact-view .page-header p{font-size:14px}.employee-attendance-page.compact-view .tabs a{padding:8px 14px;font-size:12px}.employee-attendance-page.compact-view .toolbar{min-height:40px;margin-bottom:0;padding:2px 0}.compact-attendance-summary{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;display:flex}.compact-attendance-summary span{background:var(--color-primary-soft);color:var(--color-text-muted);white-space:nowrap;border-radius:8px;padding:5px 7px;font-size:10px}.compact-attendance-summary strong{color:var(--color-text);font-variant-numeric:tabular-nums;margin-left:3px;font-size:13px}.employee-attendance-page.compact-view .timecard-day-columns.compact .employee-timecard{table-layout:fixed;min-width:0;height:100%}.employee-attendance-page.compact-view .employee-timecard{font-size:clamp(11px,.85vw,14px)}.employee-attendance-page.compact-view .employee-timecard th,.employee-attendance-page.compact-view .employee-timecard td{height:auto;padding:clamp(1px,.4dvh,5px) clamp(3px,.4vw,8px)}.employee-attendance-page.compact-view .employee-timecard th{white-space:nowrap;line-height:1.15}.employee-attendance-page.compact-view .employee-timecard th:first-child{width:11%}.employee-attendance-page.compact-view .employee-timecard th:nth-child(2){width:5%}.employee-attendance-page.compact-view .employee-timecard th:nth-child(3){width:30%}.employee-attendance-page.compact-view .employee-timecard th:nth-child(4),.employee-attendance-page.compact-view .employee-timecard th:nth-child(5),.employee-attendance-page.compact-view .employee-timecard th:nth-child(6){width:9%}.employee-attendance-page.compact-view .employee-timecard th:nth-child(7){width:15%}.employee-attendance-page.compact-view .employee-timecard th:nth-child(8){width:12%}.employee-attendance-page.compact-view .timecard-summary dt{font-size:12px}.employee-attendance-page.compact-view .timecard-summary dd{font-size:17px}.employee-attendance-page.compact-view .timecard-summary>div{padding:10px 12px}.employee-attendance-page.compact-view .employee-timecard-shell,.employee-attendance-page.compact-view .timecard-day-columns.compact,.employee-attendance-page.compact-view .timecard-day-columns.compact>.table-scroll{height:100%;min-height:0}.employee-attendance-page.compact-view .timecard-day-columns.compact{gap:12px;padding:10px;overflow:hidden}.employee-timecard{border-collapse:collapse;background:#fff;width:100%;min-width:570px;font-size:10px}.employee-timecard th,.employee-timecard td{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);white-space:nowrap;height:25px;padding:3px 5px}.employee-timecard th{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.employee-timecard th:nth-child(3){width:30%}.timecard-reason{justify-content:space-between;align-items:center;gap:6px;display:flex}.timecard-reason .attendance-category{white-space:normal;overflow-wrap:anywhere;min-width:0}.employee-timecard .timecard-columns th{z-index:1;background:var(--color-primary);color:#fff;text-align:center;position:sticky;top:0}.employee-timecard tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--color-surface-2) 36%, white)}.employee-timecard tbody tr:hover td{background:color-mix(in srgb, var(--color-primary-soft) 45%, white)}.employee-timecard td:nth-child(n+4):nth-child(-n+8){text-align:right;font-variant-numeric:tabular-nums}.employee-timecard .timecard-holiday-name{white-space:normal;overflow-wrap:anywhere;font-size:.75em;line-height:1.1;display:block}.employee-timecard .timecard-holiday td{background:#fcf6f5}.employee-timecard .timecard-holiday td:first-child,.employee-timecard .timecard-holiday td:nth-child(2),.employee-timecard .timecard-holiday td:nth-child(3){color:var(--color-danger)}@media (max-width:1100px){.timecard-summary{grid-template-columns:repeat(4,minmax(120px,1fr))}}.summary-matrix tbody th small{margin-top:3px;display:block}.summary-matrix td,.summary-matrix thead th:not(:first-child){text-align:right}.summary-matrix thead th:not(:first-child):not(:last-child){text-align:left;writing-mode:vertical-rl;height:110px}.summary-matrix tfoot{font-weight:800}.web-report-sheet{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);gap:16px;padding:20px 24px;display:grid}.web-report-parties{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.web-report-client,.web-report-company{min-width:0;margin:0}.web-report-client strong{font-size:18px}.web-report-client span{color:var(--color-text-muted);margin-left:6px;font-size:12px}.web-report-company{color:var(--color-text-muted);font-size:13px}.web-report-terms{border-top:1px solid var(--color-border);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px 28px;margin:0;padding-top:14px;display:grid}.web-report-terms>div{grid-template-columns:64px minmax(0,1fr);align-items:baseline;gap:12px;display:grid}.web-report-terms dt{color:var(--color-text-muted);font-size:12px}.web-report-terms dd{margin:0;font-size:14px;font-weight:700}.web-report-table-scroll{overflow-x:auto}.web-report-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:660px;font-size:13px}.web-report-table th,.web-report-table td{border:1px solid var(--color-border);text-align:left;vertical-align:top;padding:9px 12px}.web-report-table thead th{background:var(--color-surface-2);color:var(--color-text-muted);white-space:nowrap;font-size:12px}.web-report-table tbody th{background:var(--color-bg);white-space:nowrap;font-weight:700}.web-report-table tfoot th,.web-report-table tfoot td{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.web-report-table tfoot th{text-align:right}.web-report-col-date{font-variant-numeric:tabular-nums;width:112px}.web-report-col-type{width:116px}.web-report-col-minutes{text-align:right;font-variant-numeric:tabular-nums;width:76px}.web-report-col-worker{width:116px}.web-report-content{white-space:pre-wrap;word-break:break-word;line-height:1.6}.web-report-weekday{color:var(--color-text-muted);margin-left:2px;font-size:12px;font-weight:400}.web-report-weekday-0{color:var(--color-danger)}.web-report-weekday-6{color:var(--color-info)}.gantt-scroll{--gantt-row-height:78px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);cursor:grab;overflow-x:auto;container-type:inline-size}.gantt-scroll.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.gantt-board{--gantt-label-column:min(var(--gantt-label-width,320px), max(200px, calc(100cqi - 240px)));min-width:1050px}.gantt-row{grid-template-columns:var(--gantt-label-column) repeat(var(--gantt-day-count), minmax(var(--gantt-column-min,80px), 1fr));display:grid;position:relative}.gantt-task{grid-template-rows:minmax(40px,auto) 30px}.gantt-dates{z-index:4;background:var(--color-surface);position:sticky;top:0}.gantt-row>:first-child{z-index:3;background:var(--color-surface);position:sticky;left:0}.gantt-dates>.gantt-label-heading,.gantt-dates>span{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);text-align:center;padding:10px}.gantt-column-resizer{z-index:1;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;width:13px;position:absolute;top:0;bottom:-1px;right:-7px}.gantt-column-resizer:after{content:"";border-radius:var(--radius-pill);background:var(--color-text-muted);opacity:.35;width:3px;height:20px;transition:height .12s,opacity .12s,background-color .12s;position:absolute;top:50%;left:5px;transform:translateY(-50%)}.gantt-column-resizer:hover:after,.gantt-column-resizer:focus-visible:after,.gantt-column-resizer.is-resizing:after{background:var(--color-primary);opacity:1;height:100%}.gantt-column-resizer:focus-visible{outline:none}@media (pointer:coarse){.gantt-column-resizer{width:23px;right:-12px}.gantt-column-resizer:after{left:10px}}.gantt-dates span small{margin-top:2px;display:block}.gantt-board.is-daily{--gantt-saturday:color-mix(in srgb, var(--color-info) 12%, var(--color-surface));--gantt-holiday:color-mix(in srgb, var(--color-danger) 10%, var(--color-surface));--gantt-today:color-mix(in srgb, var(--color-accent) 24%, var(--color-surface));--gantt-month-line:color-mix(in srgb, var(--color-text-muted) 55%, transparent)}.gantt-dates>.gantt-month{text-align:left;padding:6px 0;font-size:13px;font-weight:700}.gantt-month>span{left:calc(var(--gantt-label-column) + 8px);padding:0 8px;position:sticky}.gantt-dates>.gantt-day{font-variant-numeric:tabular-nums;justify-items:center;gap:1px;padding:4px 0;font-size:12px;line-height:1.2;display:grid}.gantt-dates>.gantt-day small{color:var(--color-text-muted);margin:0;font-size:10px}.gantt-dates>.gantt-day.saturday,.gantt-dates>.gantt-day.saturday small{color:var(--color-info)}.gantt-dates>.gantt-day.sunday,.gantt-dates>.gantt-day.sunday small,.gantt-dates>.gantt-day.holiday,.gantt-dates>.gantt-day.holiday small{color:var(--color-danger)}.gantt-dates>.gantt-day.saturday,.gantt-days i.saturday{background:var(--gantt-saturday)}.gantt-dates>.gantt-day.sunday,.gantt-dates>.gantt-day.holiday,.gantt-days i.sunday,.gantt-days i.holiday{background:var(--gantt-holiday)}.gantt-dates>.gantt-day.today{background:var(--color-accent);color:var(--color-text);font-weight:700}.gantt-dates>.gantt-day.today small{color:var(--color-text)}.gantt-days i.today{background:var(--gantt-today);box-shadow:inset 2px 0 0 var(--color-accent), inset -2px 0 0 var(--color-accent)}.gantt-dates>.month-start,.gantt-days i.month-start{border-left:2px solid var(--gantt-month-line)}.gantt-group header{background:var(--color-surface-2);border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:12px;display:flex}.gantt-group header div:nth-child(2){display:grid}.gantt-group header>.avatar{z-index:2;flex:none;position:sticky;left:12px}.gantt-group header>.avatar+div{z-index:2;background:var(--color-surface-2);padding-right:8px;position:sticky;left:52px}.gantt-group header small{color:var(--color-text-muted)}.gantt-group header>span{margin-left:auto;font-size:12px}.gantt-group .gantt-company-header{background:var(--color-accent-soft);padding:10px 12px}.gantt-company-summary{width:calc(var(--gantt-label-column) - 24px);background:var(--color-accent-soft);align-items:center;gap:12px;display:flex;position:sticky;left:12px}.gantt-company-summary h2{margin:0;font-size:14px;line-height:1.5}.gantt-company-summary span{color:var(--color-text-muted);white-space:nowrap;margin-left:auto;font-size:12px}.gantt-task>div:first-child{z-index:2;min-height:var(--gantt-row-height);background:var(--color-surface);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);align-items:center;padding:4px 12px;display:flex}.gantt-task>.gantt-project-summary{z-index:4;box-shadow:1px 0 0 var(--color-border);grid-row:1/3}.gantt-task>div.gantt-project-summary{z-index:4;align-content:center;display:grid}.gantt-project-summary small{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gantt-task>div:first-child strong{min-width:0;line-height:1.35}.gantt-project-summary strong>a,.gantt-project-trigger{vertical-align:top;max-width:100%;display:inline-block}.gantt-project-name{overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.gantt-project-meta{align-items:center;gap:6px;min-width:0;margin-top:2px;display:flex}.gantt-project-meta>*{flex:none}.gantt-project-meta>small:first-child{flex:0 auto;min-width:0}.gantt-project-trigger{color:inherit;font:inherit;font-weight:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.gantt-project-trigger:hover{text-decoration:underline}.gantt-compact .contract-period-unset{color:var(--color-danger)}.gantt-days{grid-area:1/2/3/-1;grid-template-columns:subgrid;display:grid}.gantt-days i{min-height:var(--gantt-row-height);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.gantt-bar{z-index:1;border-left:5px solid var(--bar-color);background:color-mix(in srgb, var(--bar-color) 22%, white);min-width:0;height:24px;color:inherit;cursor:pointer;border-radius:7px;grid-row:1;align-self:start;align-items:center;gap:8px;margin:0 4px;padding:2px 7px;font-size:12px;line-height:1;text-decoration:none;display:flex;overflow:hidden}button.gantt-bar{text-align:left;border-top:0;border-bottom:0;border-right:0;font-family:inherit}.gantt-bar-link{min-width:0;color:inherit;flex:1;align-self:stretch;align-items:center;text-decoration:none;display:flex}.gantt-bar>span,.gantt-bar-link>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gantt-bar:hover,.gantt-bar-link:hover{text-decoration:underline}.gantt-bar .button{margin-left:auto;padding:2px 5px;font-size:9px}.gantt-milestones{z-index:2;place-self:end center;gap:4px;padding:4px;display:grid}.gantt-marker{border:1px solid color-mix(in srgb, var(--marker-color) 35%, white);background:color-mix(in srgb, var(--marker-color) 10%, white);min-width:72px;color:var(--marker-color);text-shadow:0 0 2px #fff;cursor:default;border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:3px 5px;font-size:10px;line-height:1;display:flex}.gantt-marker small,.gantt-marker time{color:var(--color-text);white-space:nowrap;font-size:10px}.gantt-marker.contract{border-color:var(--color-border);background:var(--color-surface)}.gantt-marker.is-today{border:2px solid var(--color-accent);font-weight:700}.gantt-legend{border:1px solid var(--color-border);border-radius:var(--radius-card) var(--radius-card) 0 0;background:var(--color-surface-2);border-bottom:0;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 12px;font-size:11px;display:flex}.gantt-legend+.gantt-scroll{border-radius:0 0 var(--radius-card) var(--radius-card)}.gantt-legend span{align-items:center;gap:5px;display:inline-flex}.gantt-legend i{background:var(--legend-color,#3f7a55);border-radius:999px;width:18px;height:7px}.gantt-legend i.contract{border:1px solid var(--color-border);background:var(--color-surface);height:12px}.gantt-legend i.day{border:1px solid var(--color-border);border-radius:3px;width:12px;height:12px}.gantt-legend i.day.today{border-color:var(--color-accent);background:var(--color-accent)}.gantt-legend i.day.saturday{background:color-mix(in srgb, var(--color-info) 12%, var(--color-surface))}.gantt-legend i.day.holiday{background:color-mix(in srgb, var(--color-danger) 10%, var(--color-surface))}.gantt-legend em{color:var(--color-danger);font-style:normal}.gantt-project-summary .status-chip{justify-self:start}.daily-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start;gap:18px;display:grid}.summary-list,.recent-summaries{gap:10px;margin:0;padding:0;list-style:none;display:grid}.summary-list li{border-bottom:1px solid var(--color-border);padding-bottom:10px;font-size:13px}.recent-summaries li+li{border-top:1px solid var(--color-border)}.recent-summaries a{grid-template-columns:1fr auto;gap:5px 12px;padding:11px 0;font-size:12px;display:grid}.recent-summaries a>span{color:var(--color-text-muted);grid-column:1}.recent-summaries .badge{justify-self:end}.settings-shell{grid-template-columns:210px minmax(0,1fr);align-items:start;gap:24px;display:grid}.settings-nav{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);gap:3px;max-height:calc(100vh - 48px);padding:12px;display:grid;position:sticky;top:24px;overflow-y:auto}.settings-nav a{color:var(--color-text-muted);border-radius:9px;flex:none;padding:9px 12px;font-size:12px;font-weight:700}.settings-nav a.active{color:#fff;background:var(--color-primary)}.settings-content{min-width:0}.approval-route-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;display:grid}.row-actions{align-items:center;gap:6px;display:flex}.permission-menu-list{border:1px solid var(--color-border);border-radius:8px;max-height:min(60vh,680px);overflow-y:auto}.permission-menu-row{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(180px,1fr) 80px 80px;align-items:center;min-height:42px;padding:0 14px;display:grid}.permission-menu-row label{align-items:center;gap:4px;font-weight:600;display:flex}.permission-menu-row.disabled{color:var(--color-text-muted);background:var(--color-surface-2)}.permission-menu-group{padding:12px 14px 4px;display:block}.color-value{align-items:center;gap:6px;display:inline-flex}.color-value i{border:1px solid var(--color-border);border-radius:4px;width:14px;height:14px}.info-content{white-space:pre-line}.toast{z-index:1000;color:#183c24;background:#eef9f1;border:1px solid #a8ccb3;border-radius:12px;max-width:min(420px,100vw - 32px);padding:14px 18px;font-weight:700;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #183c2430}.login-page{background:linear-gradient(145deg, var(--color-bg), #e7eddf);align-content:center;place-items:center;gap:28px;min-height:100vh;display:grid}.login-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:24px;gap:26px;width:min(420px,100vw - 32px);padding:36px;display:grid;box-shadow:0 18px 50px #4052401a}.login-heading{text-align:center}.login-card h1{margin-bottom:6px}.login-form{gap:18px;display:grid}.login-page footer{color:var(--color-text-muted);font-size:11px}@media (max-width:800px){.app-shell{padding-bottom:72px;padding-left:0}.sidebar{z-index:10;flex-direction:row;align-items:center;width:auto;height:68px;padding:8px 12px;position:fixed;inset:auto 0 0}.sidebar>.brand,.sidebar>.user-card{display:none}.main-nav{width:100%;display:flex;overflow-x:auto}.main-nav a{flex:none;font-size:0}.main-nav svg{width:22px;height:22px}.app-content{padding:24px 16px}.app-content:has(.manage-page){padding-inline:16px}.application-form-card{padding:18px 16px}.applications-tabs-row{flex-direction:column;align-items:flex-start}.application-form-header{align-items:flex-start}.application-form-header>.button{flex:none}.application-form .form-grid{grid-template-columns:1fr}.application-form-actions .button{width:100%}.application-draft{padding:16px 14px}.page-loading{min-height:calc(100vh - 120px)}.dashboard-grid{grid-template-columns:1fr}.member-list-scroll{max-height:60vh}.daily-grid,.settings-shell{grid-template-columns:1fr}.settings-nav{max-height:none;display:flex;position:static;overflow:auto hidden}.record-item{grid-template-columns:1fr auto}}.company-info>*{min-width:0}.company-info .page-heading .muted{margin:6px 0 0}.company-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:18px;display:grid}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.kpi-card{gap:6px}.kpi-card .stat-value{font-variant-numeric:normal;font-size:clamp(22px,2.4vw,30px)}.kpi-meta{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.card-subtitle{color:var(--color-text-muted);letter-spacing:.04em;margin:18px 0 10px;font-size:12px;font-weight:700}.member-value{font-variant-numeric:tabular-nums;margin-left:auto}.trend-chart{width:100%;height:auto}.trend-chart .grid line{stroke:var(--color-border)}.trend-chart text{fill:var(--color-text-muted);font-size:11px}.trend-chart text.value,.trend-chart text.current{fill:var(--color-text);font-weight:700}.trend-chart .past{opacity:.4}.chart-legend{color:var(--color-text-muted);flex-wrap:wrap;gap:14px;margin:0 0 6px;padding:0;font-size:12px;list-style:none;display:flex}.chart-legend li{align-items:center;gap:6px;display:flex}.chart-swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.chart-table{margin-top:6px}.chart-table summary{cursor:pointer;color:var(--color-text-muted);font-size:12px}.leave-ring-layout{grid-template-columns:160px minmax(0,1fr);align-items:center;gap:20px;display:grid}.leave-ring-summary{text-align:center;justify-items:center;gap:4px;display:grid}.leave-ring-summary p{margin:0}.paid-leave-note{margin:16px 0 0;line-height:1.7}.leave-ring{width:150px;height:150px}.leave-ring .track{stroke:var(--color-primary-soft)}.leave-ring .fill{stroke:var(--color-primary);stroke-linecap:round}.leave-ring text.rate{fill:var(--color-text);font-size:26px;font-weight:700}.leave-ring text.caption{fill:var(--color-text-muted);font-size:11px}.hbar-list{gap:12px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.hbar-list li{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 10px;display:grid}.hbar-value{font-variant-numeric:tabular-nums}.hbar-track{border-radius:var(--radius-pill);background:var(--color-primary-soft);grid-column:1/-1;height:8px;overflow:hidden}.hbar-fill{border-radius:var(--radius-pill);background:var(--color-primary);height:100%;display:block}.hbar-fill.accent{background:var(--color-accent)}.sales-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 8px;display:grid}.sales-summary div{background:var(--color-surface-2);border-radius:12px;padding:12px 14px}.sales-summary dt{color:var(--color-text-muted);font-size:11px}.sales-summary dd{margin:4px 0 0;font-size:18px;font-weight:700}.compliance-summary{gap:8px;display:flex}.compliance-note{margin-bottom:12px;line-height:1.7}.compliance-table{min-width:760px}.compliance-table th,.compliance-table td{white-space:nowrap;vertical-align:middle}.grant-cell{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.obligation-progress{gap:5px;min-width:140px;display:grid}.obligation-progress .progress-bar{height:6px}.obligation-fill{border-radius:var(--radius-pill);background:var(--color-primary);height:100%;display:block}.obligation-fill.warning{background:var(--color-accent)}.obligation-fill.at_risk{background:var(--color-danger)}@media (max-width:1000px){.company-info-grid{grid-template-columns:1fr}.leave-ring-layout{grid-template-columns:1fr;justify-items:stretch}.leave-ring-summary{justify-items:center}}:is(.data-table tbody tr:has(.attendance-staggered)>td,.employee-timecard tbody tr:has(.attendance-staggered)>td){background:#edf3fc}:is(.data-table tbody tr:has(.attendance-approved-work)>td,.employee-timecard tbody tr:has(.attendance-approved-work)>td){background:#fff4e5}:is(.data-table tbody tr:has(.attendance-approved-leave)>td,.employee-timecard tbody tr:has(.attendance-approved-leave)>td){background:#edf6eb}.attendance-staggered{color:#36577d;font-weight:700}.attendance-category{vertical-align:middle;flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.employee-timecard .attendance-category .badge{font-size:inherit;padding:1px 4px;line-height:1.2}.attendance-color-legend{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.attendance-color-legend>li{align-items:center;gap:6px;display:inline-flex}.attendance-color-legend>li>span{background:#edf3fc;border:1px solid #8ba5c7;border-radius:3px;flex:none;width:14px;height:14px}.attendance-color-legend>li:has(.attendance-staggered){color:#36577d}.attendance-color-legend .attendance-approved-work{background:#fff4e5;border-color:#d6a76d}.attendance-color-legend .attendance-approved-leave{background:#edf6eb;border-color:#98b98d}.attendance-period-legend{flex-wrap:wrap;align-items:center;gap:8px 16px;min-width:0;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.period-day:disabled,.period-month:disabled,.period-today:disabled{opacity:.3;cursor:not-allowed}
