:root{--stone-primary: #3c6f8a;--stone-primary-dark: #2d5368;--stone-sage: #a3c1ad;--stone-sage-light: #b5d3bf;--stone-mist: #b5cad0;--stone-mist-light: #dce6e9;--stone-fog: #f2f2f2;--stone-accent: #deb7ad;--stone-text: #333333;--stone-text-muted: #666666;--stone-text-faint: #858585;--stone-border: #dce6e9;--stone-danger: #a5432f;--stone-heading: var(--stone-primary-dark);--surface: #fff;--stone-billable: #5c8f6e;--stone-pto: var(--stone-primary);--stone-internal: #b8842f;--stone-holiday: var(--stone-accent);--font-header: "Aptos Display", "Segoe UI Semibold", "Segoe UI", system-ui, sans-serif;--font-body: "Aptos", "Segoe UI", system-ui, sans-serif;--font-light: "Aptos Light", "Segoe UI Light", "Segoe UI", system-ui, sans-serif;--radius: 10px;--shadow-card: 0 1px 2px rgba(45, 83, 104, .06), 0 2px 8px rgba(45, 83, 104, .08)}:root[data-theme=dark]{--stone-fog: #16191c;--surface: #22262a;--stone-border: #383f44;--stone-mist-light: #2c3236;--stone-text: #e7e9ea;--stone-text-muted: #aab1b6;--stone-text-faint: #7d868c;--stone-heading: #8fc4e0;--shadow-card: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 8px rgba(0, 0, 0, .3)}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--stone-fog);color:var(--stone-text);margin:0;padding:0}main{max-width:82rem;width:100%;margin:0 auto;padding:0 1.5rem 3rem}@media (max-width: 640px){main{padding:0 1rem 2rem}}h1,h2,h3{font-family:var(--font-header);color:var(--stone-heading);font-weight:600}.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;text-align:center;max-width:none;background:linear-gradient(180deg,var(--stone-mist-light) 0%,var(--stone-fog) 55%)}.login .brand-logo-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.5rem 2rem;margin-bottom:.5rem}.login .brand-logo{height:56px;width:auto;display:block}.login h1{font-size:1.75rem;margin:0}.login p{color:var(--stone-text-muted);font-family:var(--font-light);max-width:28rem;margin:0}.app-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--surface);padding:1rem 1.25rem;border:1px solid var(--stone-border);border-radius:var(--radius);box-shadow:var(--shadow-card);margin:1.5rem 0}.app-header .brand{display:flex;align-items:center;gap:.75rem}.app-header .brand-logo{height:28px;width:auto}.app-header h1{font-size:1.15rem;margin:0}.app-header .user-info{display:flex;align-items:center;gap:.75rem;font-family:var(--font-light);color:var(--stone-text-muted)}.pet-toggle{display:flex;border:1px solid var(--stone-border);border-radius:999px;overflow:hidden}.pet-toggle button{background:var(--surface);color:var(--stone-text-muted);border:none;border-radius:0;font-size:.75rem;font-weight:600;padding:.3rem .6rem}.pet-toggle button:hover{background:var(--stone-mist-light)}.pet-toggle button.pet-toggle-active{background:var(--stone-sage-light);color:var(--stone-primary-dark)}.week-nav{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin:0 0 1.25rem;padding:.5rem 0}.week-nav-buttons{display:flex;gap:.5rem}.week-nav strong{color:var(--stone-heading);font-family:var(--font-header);font-weight:600}.week-heading{display:flex;flex-direction:column;align-items:center;gap:.15rem}.week-progress{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--stone-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:.6rem .9rem;margin:0 0 1rem}.week-progress-track{flex:1;height:.55rem;border-radius:999px;background:var(--stone-mist-light);overflow:hidden}.week-progress-fill{height:100%;border-radius:999px;background:var(--stone-primary);transition:width .2s ease,background-color .2s ease}.week-progress-track.week-progress-over .week-progress-fill{background:var(--stone-accent)}.week-progress-label{white-space:nowrap;font-size:.85rem;color:var(--stone-text-muted)}.week-progress-label strong{font-family:var(--font-header);color:var(--stone-heading)}.week-summary-cards{display:flex;flex-wrap:wrap;gap:.75rem;margin:0 0 1.25rem}.summary-card{flex:1 1 9rem;display:flex;flex-direction:column;gap:.15rem;background:var(--surface);border:1px solid var(--stone-border);border-top:3px solid var(--stone-mist);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:.75rem .9rem}.summary-card-label{font-family:var(--font-header);font-weight:600;font-size:.72rem;letter-spacing:.03em;text-transform:uppercase;color:var(--stone-text-muted)}.summary-card-value{font-family:var(--font-header);font-weight:700;font-size:1.5rem;color:var(--stone-heading)}.summary-card-sub{font-family:var(--font-light);font-size:.78rem;color:var(--stone-text-muted)}.summary-card-billable{border-top-color:var(--stone-billable)}.summary-card-internal{border-top-color:var(--stone-internal)}.summary-card-pto{border-top-color:var(--stone-pto)}.summary-card-holiday{border-top-color:var(--stone-holiday)}.summary-card-unsubmitted .summary-card-value{color:var(--stone-internal)}.table-scroll{width:100%;overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow-card)}.week-table{width:100%;min-width:77.5rem;table-layout:fixed;border-collapse:collapse;background:var(--surface);border:1px solid var(--stone-border);font-size:.85rem}.week-table thead th{text-align:left;font-family:var(--font-header);font-weight:600;color:var(--stone-heading);background:var(--stone-mist-light);padding:.5rem .6rem;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-table td{padding:.4rem .6rem;vertical-align:top;border-top:1px solid var(--stone-border)}.day-cell,.daily-total-cell{white-space:nowrap;background:var(--stone-mist-light);vertical-align:middle}.daily-total-cell{text-align:right}.day-date{font-family:var(--font-header);font-weight:700;color:var(--stone-heading);font-size:1rem}.day-total{font-family:var(--font-header);font-weight:600;color:var(--stone-primary);font-size:.85rem}.entry-line td{vertical-align:middle}.entry-line select,.entry-line input{width:100%;font-family:var(--font-body);border:1px solid var(--stone-border);border-radius:5px;padding:.3rem .4rem;font-size:.8rem;background:var(--surface);color:var(--stone-text)}select option{color:#1a1a1a;background-color:#fff}.entry-line select:focus,.entry-line input:focus{outline:none;border-color:var(--stone-primary);box-shadow:0 0 0 3px #3c6f8a26}.entry-line select:disabled,.entry-line input:disabled{opacity:.6}.worktype-chip{display:inline-flex;align-items:center;gap:.35rem;width:100%;border-radius:999px;padding:.05rem .2rem .05rem .55rem;background:var(--stone-fog)}.worktype-dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0;background:var(--stone-text-faint)}.worktype-chip select{border:none;background:transparent;padding-left:0;font-weight:600;color:var(--stone-text)}.worktype-chip select:focus{box-shadow:none}.worktype-billable{background:color-mix(in srgb,var(--stone-billable) 16%,white);color:#2f5c3f}.worktype-billable select{color:#2f5c3f}.worktype-billable .worktype-dot{background:var(--stone-billable)}.worktype-pto{background:color-mix(in srgb,var(--stone-pto) 14%,white);color:var(--stone-primary-dark)}.worktype-pto select{color:var(--stone-primary-dark)}.worktype-pto .worktype-dot{background:var(--stone-pto)}.worktype-internal{background:color-mix(in srgb,var(--stone-internal) 16%,white);color:#7a5310}.worktype-internal select{color:#7a5310}.worktype-internal .worktype-dot{background:var(--stone-internal)}.worktype-holiday{background:color-mix(in srgb,var(--stone-holiday) 30%,white);color:#8a4a3a}.worktype-holiday select{color:#8a4a3a}.worktype-holiday .worktype-dot{background:var(--stone-holiday)}.cell-notes{position:relative}.cell-notes .error{display:block;margin-top:.2rem}.cell-status{white-space:normal;overflow-wrap:break-word}.cell-actions{text-align:center}.cell-actions-row{display:inline-flex;align-items:center;gap:.35rem}.approval-employee-table{font-size:.8rem;min-width:68rem}.approval-employee-table .cell-actions-row{gap:.2rem}.approval-employee-table .cell-actions button{padding:.22rem .4rem;font-size:.7rem}.day-footer-row td{padding:.3rem .6rem}tr.day-start td{border-top:3px solid var(--stone-primary)}tr.day-band-a td{background:#3c6f8a0d}tr.day-band-b td{background:#a3c1ad1f}tr.day-band-a .day-cell,tr.day-band-a .daily-total-cell,tr.day-band-b .day-cell,tr.day-band-b .daily-total-cell{background:var(--stone-mist-light)}.add-row-button{opacity:.8}.link-button{background:none;border:none;color:var(--stone-heading);font-weight:400;font-size:.78rem;padding:0;text-decoration:underline;opacity:.7;transition:opacity .15s ease}.link-button:hover{background:none;color:var(--stone-heading);opacity:1}.bulk-add-toggle{margin:0 0 .4rem}.bulk-add-help{margin:0 0 1rem}.bulk-add-panel{background:var(--stone-mist-light);border:1px solid var(--stone-border);border-radius:var(--radius);padding:.9rem 1rem;margin:0 0 1rem}.bulk-add-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.bulk-add-row .worktype-chip{width:auto}.bulk-add-row>select{font-family:var(--font-body);border:1px solid var(--stone-border);border-radius:6px;padding:.35rem .5rem;font-size:.85rem;background:var(--surface);color:var(--stone-text)}.bulk-add-row>select:disabled{opacity:.6}.bulk-add-days{display:flex;gap:.6rem;flex-wrap:wrap;margin:.75rem 0}.bulk-add-day{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem}.bulk-add-day-label{color:var(--stone-heading);font-family:var(--font-header)}.bulk-add-day input{width:4rem}.bulk-add-day .error{font-size:.7rem;max-width:6rem;white-space:normal}.bulk-add-submit{margin-top:.25rem}.icon-button{background:none;border:none;color:var(--stone-text-muted);padding:.2rem;display:inline-flex;align-items:center;justify-content:center;opacity:.85;transition:opacity .15s ease,color .15s ease}.icon-button:hover{background:none;color:var(--stone-danger);opacity:1}.icon-button:disabled{background:none;color:var(--stone-text-faint)}.muted{color:var(--stone-text-faint);font-family:var(--font-light);font-style:normal;font-size:.85rem}.error{color:var(--stone-danger);font-size:.75rem}button,.button{font-family:var(--font-body);font-size:.9rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;background:var(--stone-primary);color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;cursor:pointer;text-decoration:none;transition:background-color .15s ease}button:hover,.button:hover{background:var(--stone-primary-dark)}button:disabled{background:var(--stone-text-faint);cursor:not-allowed}.week-nav button,.app-header button{background:transparent;color:var(--stone-heading);border:1px solid var(--stone-border)}.week-nav button:hover,.app-header button:hover{background:var(--stone-mist-light)}.login .button{padding:.65rem 1.75rem;font-size:1rem}.admin{margin-top:2rem;background:var(--surface);border:1px dashed var(--stone-mist);border-radius:var(--radius);padding:1.25rem}.admin h2{font-size:1rem;margin:0 0 .5rem}.admin p{color:var(--stone-text-muted);font-family:var(--font-light);font-size:.85rem}.admin pre{background:var(--stone-fog);border-radius:6px;padding:.75rem;font-size:.8rem;overflow-x:auto}.main-tabs{display:flex;gap:.5rem;margin:1.25rem 0 0}.main-tabs button{background:none;color:var(--stone-text-muted);border:none;border-bottom:3px solid transparent;border-radius:0;padding:.5rem .25rem;font-size:.9rem}.main-tabs button:hover{background:none;color:var(--stone-heading)}.main-tabs button.tab-active{color:var(--stone-heading);border-bottom-color:var(--stone-primary)}.pagination{display:flex;align-items:center;gap:.75rem;margin:.75rem 0 1.25rem;font-size:.85rem}.sub-tabs{display:flex;gap:.5rem;margin:1rem 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--stone-border)}.sub-tabs button{background:none;color:var(--stone-text-muted);border:1px solid transparent;border-radius:6px;padding:.35rem .75rem;font-size:.85rem}.sub-tabs button:hover{background:none;color:var(--stone-heading)}.sub-tabs button.tab-active{color:var(--stone-heading);background:var(--stone-fog);border-color:var(--stone-border)}.view-as{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:0 0 1rem;font-size:.85rem}.view-as label{font-family:var(--font-header);font-weight:600;color:var(--stone-heading)}.view-as select{font-family:var(--font-body);border:1px solid var(--stone-border);border-radius:6px;padding:.35rem .5rem;font-size:.85rem;background:var(--surface);color:var(--stone-text)}.entry-locked td{background:var(--stone-fog)}.status-tag{display:inline-block;font-family:var(--font-light);font-size:.75rem;border-radius:999px;padding:.15rem .6rem}.status-tag+.status-tag{margin-left:.4rem}.status-draft{color:var(--stone-text-faint);font-style:italic;background:var(--stone-fog)}.status-pending{color:#7a5310;font-weight:600;background:color-mix(in srgb,var(--stone-internal) 22%,white)}.status-reopened{color:#8a4a3a;font-weight:600;background:color-mix(in srgb,var(--stone-accent) 45%,white)}.status-approved{color:#2f5c3f;font-weight:600;background:color-mix(in srgb,var(--stone-billable) 22%,white)}.status-rejected{color:#fff;font-weight:600;background:var(--stone-danger)}.status-backfilled{color:var(--stone-text-faint);background:var(--stone-fog)}.submit-week-button{background:var(--stone-primary);color:#fff;font-size:.8rem;padding:.35rem .7rem}.submit-week-button:hover{background:var(--stone-primary-dark)}.submit-week-button:disabled{background:var(--stone-text-faint)}.correction-toggle{background:var(--surface);color:var(--stone-heading);border:1px solid var(--stone-primary);font-size:.8rem;padding:.35rem .7rem}.correction-toggle:hover{background:var(--stone-mist-light)}.correction-toggle.correction-active{background:var(--stone-accent);color:#fff;border-color:var(--stone-accent)}.correction-toggle.correction-active:hover{background:var(--stone-danger);border-color:var(--stone-danger)}.approvals-panel,.holiday-panel,.sync-panel,.employees-panel,.compliance-panel{background:var(--surface);border:1px solid var(--stone-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.25rem;margin:1.25rem 0}.approvals-panel h2,.holiday-panel h2,.sync-panel h2,.employees-panel h2,.compliance-panel h2{font-size:1.1rem;margin:0 0 .35rem}.sync-panel h3{font-size:.95rem;margin:1.5rem 0 .5rem}.approvals-panel>p.muted,.holiday-panel>p.muted,.sync-panel>p.muted,.employees-panel>p.muted,.compliance-panel>p.muted{margin:0 0 1rem}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{color:var(--stone-primary)}.compliance-days-pill{display:inline-block;border-radius:999px;padding:.1rem .55rem;font-size:.78rem;font-weight:600}.compliance-days-green{color:#2f5c3f;background:color-mix(in srgb,var(--stone-billable) 22%,white)}.compliance-days-amber{color:#7a5310;background:color-mix(in srgb,var(--stone-internal) 22%,white)}.compliance-days-red{color:#fff;background:var(--stone-danger)}.employees-table{width:100%;min-width:62rem;border-collapse:collapse;font-size:.82rem;background:var(--surface)}.employees-table th{text-align:left;font-family:var(--font-header);font-weight:600;color:var(--stone-heading);background:var(--stone-mist-light);padding:.5rem .6rem;font-size:.75rem;white-space:nowrap}.employees-table td{padding:.4rem .6rem;border-top:1px solid var(--stone-border);white-space:nowrap}.employee-inactive-row{color:var(--stone-text-faint)}.sync-issues-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.sync-issues-header h3{margin:1.5rem 0 .5rem}.holiday-panel .view-as{margin:0 0 1rem}.holiday-panel input[type=date],.holiday-panel input[type=text]{font-family:var(--font-body);border:1px solid var(--stone-border);border-radius:5px;padding:.3rem .5rem;font-size:.85rem}.approvals-table{width:100%;border-collapse:collapse;font-size:.85rem}.approvals-table th{text-align:left;font-family:var(--font-header);font-weight:600;color:var(--stone-heading);background:var(--stone-mist-light);padding:.5rem .6rem;font-size:.78rem}.approvals-table td{padding:.5rem .6rem;border-top:1px solid var(--stone-border);vertical-align:middle}.admin-scope-warning{color:#7a5310;background:color-mix(in srgb,var(--stone-internal) 22%,white);border-radius:var(--radius);padding:.6rem .9rem;font-size:.85rem;margin:0 0 1rem}.approval-queue-spacer{flex:1}.ledger-download-button{margin-bottom:.75rem}.ledger-group{margin-bottom:1.5rem}.ledger-group-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.ledger-group-heading{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.ledger-group-summary{font-family:var(--font-body);font-size:.85rem;color:var(--stone-text)}.ledger-group-header h3{margin:1.5rem 0 .5rem}.reject-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.reject-modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.25rem;width:min(28rem,100%)}.reject-modal h3{margin:0 0 .75rem;font-family:var(--font-header);color:var(--stone-heading);font-size:1rem}.reject-modal textarea{width:100%;font-family:var(--font-body);border:1px solid var(--stone-border);border-radius:5px;padding:.5rem .6rem;font-size:.85rem;background:var(--surface);color:var(--stone-text);resize:vertical}.reject-modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:.9rem}.timeliness{display:inline-flex;align-items:center;gap:.35rem}.timeliness-heading{font-size:.6rem;line-height:1;color:var(--stone-text-muted);white-space:nowrap}.timeliness-weeks{position:relative;display:flex;gap:.3rem}.timeliness-reward-wrap{position:absolute;left:50%;bottom:calc(100% - .55rem);transform:translate(-50%);display:flex;align-items:flex-start;pointer-events:none}.timeliness-reward{display:block;width:auto;max-width:9rem;max-height:3.2rem;filter:drop-shadow(0 2px 3px rgba(45,83,104,.25))}.timeliness-bubble{position:relative;margin-left:.4rem;margin-top:-.1rem;background:#fff;color:var(--stone-primary-dark);border:1.5px solid var(--stone-billable);border-radius:999px;padding:.15rem .55rem;font-family:var(--font-header);font-size:.6rem;font-weight:700;white-space:nowrap;box-shadow:0 1px 2px #0000002e}.timeliness-bubble:after{content:"";position:absolute;left:-.28rem;bottom:.3rem;width:.45rem;height:.45rem;background:#fff;border-left:1.5px solid var(--stone-billable);border-bottom:1.5px solid var(--stone-billable);transform:rotate(45deg)}.timeliness-week{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;box-sizing:border-box;min-width:2.5rem;height:2.2rem;padding:0 .4rem;border:1px solid var(--stone-border);border-radius:6px;background:var(--surface);cursor:help}.timeliness-face{font-size:.9rem;line-height:1}.timeliness-week-label{font-size:.5rem;line-height:1;color:inherit;text-align:center;white-space:nowrap}.timeliness-on_time{background:color-mix(in srgb,var(--stone-billable) 30%,white);border-color:var(--stone-billable);color:#2f5c3f}.timeliness-documented{background:color-mix(in srgb,var(--stone-internal) 30%,white);border-color:var(--stone-internal);color:#7a5310}.timeliness-missing{background:var(--stone-danger);border-color:var(--stone-danger);color:#fff}.timeliness-unknown{border-style:dashed;color:var(--stone-text-faint)}.timeliness-estimated{opacity:.75}.timeliness-footnote{display:block;margin-top:.25rem;font-size:.65rem;color:var(--stone-text-faint)}
