*{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}.production-switcher{color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:0;font-size:16px;font-weight:600}.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)}.pill-info{background:var(--color-success-bg);color:var(--color-success)}.security-log-table td{font-family:var(--font-mono,ui-monospace, monospace);vertical-align:top;font-size:12px}.security-log-fields{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);justify-content:space-between;align-items:center;gap:12px;margin:0 0 10px;font-size:14px;font-weight:700;display:flex}.week-delete-button{font-size:12px;font-weight:500}.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)}.login-split{background:var(--color-window);min-height:100vh;color:var(--color-text);grid-template-columns:minmax(280px,420px) 1fr;display:grid}.login-rail{color:#e7ecf5;background:#101826;flex-direction:column;padding:40px 40px 32px;display:flex}.login-rail-word{letter-spacing:-.2px;font-size:20px;font-weight:800}.login-rail-word span{color:#6e9bff}.login-rail-tagline{color:#a6b3cc;max-width:30ch;margin-top:10px;font-size:13.5px;line-height:1.5}.login-rail-mock-wrap{margin-top:auto;padding-block:36px}.login-tc-card{background:#16202f;border:1px solid #23324a;border-radius:12px;padding:18px 18px 16px}.login-tc-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;font-size:12.5px;display:flex}.login-tc-cw{color:#e7ecf5;font-weight:700}.login-tc-role{color:#7c8aa6}.login-tc-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px;display:grid}.login-tc-day{text-align:center;border:1px solid #23324a;border-radius:6px;padding:6px 2px 7px}.login-tc-d{letter-spacing:.3px;color:#5e6c87;font-size:9px;font-weight:700}.login-tc-h{color:#e7ecf5;font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px;font-weight:700}.login-tc-premium{background:#1e3350;border-color:#2e4c78}.login-tc-premium .login-tc-h{color:#8fb2ff}.login-tc-off .login-tc-h{color:#5e6c87}.login-tc-chips{flex-wrap:wrap;gap:6px;display:flex}.login-chip{font-variant-numeric:tabular-nums;color:#8fb2ff;background:#1e3350;border:1px solid #2e4c78;border-radius:999px;padding:4px 9px;font-size:10.5px;font-weight:700}.login-chip-done{color:#7fdda8;background:#163227;border-color:#245c3d}.login-rail-caption{color:#6e7c99;margin-top:14px;font-size:12px}.login-rail-foot{color:#5e6c87;border-top:1px solid #23324a;padding-top:16px;font-size:11.5px}.login-formside{justify-content:center;align-items:center;padding:40px 24px;display:flex}.login-formbox{width:100%;max-width:340px}.login-formbox h1{letter-spacing:-.2px;margin:0 0 6px;font-size:22px;font-weight:800}.login-sub{color:var(--color-text-soft);margin:0 0 26px;font-size:13.5px}.login-banner{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success);border-radius:8px;margin-bottom:20px;padding:10px 12px;font-size:12.5px}.login-field{color:var(--color-text-soft);margin-bottom:16px;font-size:12px;font-weight:700;display:block}.login-field input{width:100%;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:7px;margin-top:6px;padding:10px 12px;font-family:inherit;font-size:14px;display:block}.login-field input:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.login-row-between{justify-content:flex-end;margin:-8px 0 20px;display:flex}.login-row-between a{color:var(--color-accent);font-size:12.5px;font-weight:600;text-decoration:none}.login-row-between a:hover{text-decoration:underline}.login-error{margin:-8px 0 16px}.login-btn-primary{width:100%;color:var(--color-accent-text);background:var(--color-accent);cursor:pointer;border:none;border-radius:7px;padding:11px 16px;font-family:inherit;font-size:14px;font-weight:700}.login-btn-primary:hover{filter:brightness(1.06)}.login-btn-primary:disabled{opacity:.7;cursor:default}.login-below{border-top:1px solid var(--color-border);color:var(--color-text-faint);margin-top:22px;padding-top:18px;font-size:12.5px;line-height:1.6}@media (width<=760px){.login-split{grid-template-columns:1fr}.login-rail{padding:28px 24px}.login-rail-mock-wrap{margin-top:24px;padding-block:0 8px}.login-rail-foot{display:none}.login-formside{padding:32px 24px 48px}}
