*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}.app-shell{background:var(--color-window);min-height:100vh;color:var(--color-text)}.app-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.app-header-left{align-items:center;gap:20px;display:flex}.app-header h1{margin:0;font-size:16px}.app-nav{gap:4px;display:flex}.nav-link{color:var(--color-text-soft);border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none}.nav-link.active{background:var(--color-subtle-bg);color:var(--color-accent)}.app-header button{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);cursor:pointer;border-radius:6px;padding:6px 12px}main{padding:24px}.page-subtitle{color:var(--color-text-soft);margin-top:-8px}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.button-link{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px;text-decoration:none;display:inline-block}.button-link:hover{border-color:var(--color-accent);color:var(--color-accent)}.attention-strip{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.pill{border-radius:8px;padding:5px 10px;font-size:11px;font-weight:600}.pill-flag{background:var(--color-error-bg);color:var(--color-error)}.pill-neutral{background:var(--color-subtle-bg);color:var(--color-text-soft)}.stat-tiles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0;display:grid}.stat-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:12px 16px}.stat-tile-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-soft);margin-bottom:4px;font-size:11px}.stat-tile-value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.stat-tile-muted{color:var(--color-text-faint);font-size:13px;font-weight:400}.stat-tile-warn{color:var(--color-error)}.secondary-caption{color:var(--color-text-soft);margin:8px 0 20px;font-size:12px}.roster-table,.week-table{border-collapse:collapse;width:100%;margin-bottom:16px}.roster-table th,.roster-table td,.week-table th,.week-table td{border-bottom:1px solid var(--color-border);text-align:left;font-variant-numeric:tabular-nums;padding:6px 10px}.roster-table th{color:var(--color-text-soft);text-transform:uppercase;letter-spacing:.03em;font-size:12px}.cost-cell{color:var(--color-text-faint)}.week-table td.num,.week-table th.num{text-align:right;font-variant-numeric:tabular-nums}.status-pill{white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600}.status-flag{background:var(--color-error-bg);color:var(--color-error)}.status-muted{background:var(--color-subtle-bg);color:var(--color-text-faint)}.status-accent{background:var(--color-subtle-bg);color:var(--color-accent)}.status-success{background:var(--color-success-bg);color:var(--color-success)}.tab-bar{border-bottom:1px solid var(--color-border);gap:8px;margin-bottom:16px;padding-bottom:8px;display:flex}.tab-bar-sub{border-bottom:none;margin-bottom:12px;padding-bottom:0}.tab-bar button{cursor:pointer;color:var(--color-text-soft);background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 12px;font-size:13px}.tab-bar button:disabled{background:var(--color-subtle-bg);color:var(--color-accent);cursor:default;font-weight:600}.needs-setup-banner{background:var(--color-error-bg);color:var(--color-error);border-radius:6px;padding:8px 12px;font-size:13px}.form-groups{flex-direction:column;gap:16px;margin-bottom:16px;display:flex}.form-groups-row{align-items:flex-start;gap:16px;display:flex}.form-groups-row .form-group{flex:1}.form-group{border:1px solid var(--color-border);border-radius:8px;grid-template-columns:1fr 1fr;gap:10px 16px;padding:14px 16px 16px;display:grid}.form-group legend{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-soft);padding:0 4px;font-size:11px;font-weight:700}.form-group.span-full{grid-template-columns:1fr}.form-group label{color:var(--color-text-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.form-group label.span-2{grid-column:span 2}.form-group input,.form-group select,.form-group textarea{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:6px;padding:6px 8px;font-size:13px}.form-group input:disabled{color:var(--color-text-faint)}.input-row{gap:6px;display:flex}.input-row select{flex:0 0 80px}.input-row input{flex:1}.input-with-chip{align-items:center;gap:6px;display:flex}.inline-chip{color:var(--color-text-soft);background:var(--color-subtle-bg);border-radius:6px;padding:4px 8px;font-size:11px;font-weight:600}.weekly-hours-field{max-width:220px;margin-bottom:10px}.rate-grid{grid-template-columns:1fr 1fr;gap:10px 16px;display:grid}.checkbox-row{align-items:center;flex-direction:row!important;gap:8px!important}.field-help{color:var(--color-text-faint);grid-column:1/-1;margin:6px 0 0;font-size:11px}.save-bar{align-items:center;gap:12px;margin:16px 0 24px;display:flex}.save-bar button{background:var(--color-accent);color:var(--color-accent-text);cursor:pointer;border:none;border-radius:6px;padding:8px 20px;font-weight:600}.save-confirmation{color:var(--color-success);font-size:13px}.save-error{color:var(--color-error);font-size:13px}.calendar-boundaries{gap:24px;margin-bottom:16px;display:flex}.calendar-boundaries label{color:var(--color-text-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.calendar-boundaries input{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:6px;padding:6px 8px}.calendar-boundaries .input-row button{background:var(--color-surface);border:1px solid var(--color-border-strong);cursor:pointer;color:var(--color-text);border-radius:6px;padding:5px 10px}.calendar-days-off,.calendar-brush-row{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.calendar-days-off-label{color:var(--color-text-soft);font-size:12px;font-weight:600}.calendar-days-off .checkbox-row{color:var(--color-text);align-items:center;gap:4px;font-size:12px;display:flex}.brush-button{background:var(--color-surface);border:1px solid var(--color-border-strong);cursor:pointer;color:var(--color-text-soft);border-radius:6px;padding:6px 12px;font-size:12px}.brush-button.brush-active{color:var(--color-text);border-width:2px;font-weight:600}.brush-button.brush-working.brush-active{border-color:var(--color-success);color:var(--color-success)}.brush-button.brush-travel.brush-active{border-color:var(--color-accent);color:var(--color-accent)}.brush-button.brush-holiday.brush-active{border-color:var(--color-error);color:var(--color-error)}.brush-button.brush-day_off.brush-active{border-color:var(--color-border-strong);color:var(--color-text-faint)}.calendar-month-nav{justify-content:center;align-items:center;gap:16px;margin:16px 0 10px;font-size:15px;display:flex}.calendar-month-nav button{background:var(--color-surface);border:1px solid var(--color-border-strong);cursor:pointer;color:var(--color-text);border-radius:6px;padding:4px 10px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;max-width:560px;margin-bottom:8px;display:grid}.calendar-grid-header{text-align:center;color:var(--color-text-soft);padding-bottom:4px;font-size:11px;font-weight:600}.calendar-day,.calendar-day-blank{cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);height:48px;color:var(--color-text);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;font-size:12px;display:flex}.calendar-day-blank{cursor:default;background:0 0;border:none}.calendar-day-icon{font-size:11px}.calendar-day-working-default{background:var(--color-surface);color:var(--color-text)}.calendar-day-off-default{background:var(--color-weekend-bg);color:var(--color-text-faint)}.calendar-day-working{background:var(--color-success-bg);color:var(--color-success);border:2px solid var(--color-success)}.calendar-day-travel{background:var(--color-accent);color:var(--color-accent-text);border:2px solid var(--color-accent)}.calendar-day-holiday{background:var(--color-error-bg);color:var(--color-error);border:2px solid var(--color-error)}.calendar-day-day_off{background:var(--color-weekend-bg);color:var(--color-text-faint);border:2px solid var(--color-border-strong)}.timecard-week-block{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;margin-bottom:20px;padding:20px 24px}.week-card-title{color:var(--color-text);margin:0 0 10px;font-size:14px;font-weight:700}.week-total-line{text-align:right;color:var(--color-text);margin-top:10px;font-size:14px;font-weight:700}.row-weekend{background:var(--color-weekend-bg)}.overtime-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.overtime-cost-label{color:var(--color-text);font-size:14px;font-weight:700}.row-total td{background:var(--color-subtle-bg);font-weight:700}.per-diem-bulk-toolbar{background:var(--color-subtle-bg);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;padding:6px 8px;display:flex}.bulk-label{color:var(--color-text-soft);font-size:12px;font-weight:600}.chip-button{background:var(--color-surface);border:1px solid var(--color-border-strong);cursor:pointer;color:var(--color-text-soft);border-radius:6px;padding:5px 10px;font-size:12px}.chip-button:disabled{opacity:.4;cursor:default}.chip-button.chip-active{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent);font-weight:600}.chip-button.chip-small{padding:2px 6px;font-size:11px}.per-diem-chip-cell{gap:4px;display:flex}.row-outside-contract{background:var(--color-border-strong);opacity:.6}.row-future{color:var(--color-text-faint)}
