:root{--color-primary:#5850ec;--color-primary-hover:#4740d4;--color-primary-subtle:#eeedff;--color-ev-teal:#0ea5a6;--color-ice-amber:#d97706;--color-hybrid:#6d28d9;--color-bg:#f7f7f9;--color-surface:#fff;--color-surface-sunken:#f2f2f5;--color-border:#e5e5ea;--color-border-strong:#d4d4dc;--color-text-primary:#16171b;--color-text-secondary:#6b6c76;--color-text-disabled:#a8a9b3;--color-success:#16a34a;--color-success-bg:#e7f7ed;--color-warning:#d97706;--color-warning-bg:#fdf3e3;--color-danger:#e11d48;--color-danger-bg:#fde8ed;--color-info:#2563eb;--color-info-bg:#e9f0fe;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:999px;--shadow-sm:0 1px 2px #1011140a;--shadow-md:0 4px 12px #10111414;--shadow-lg:0 12px 32px #10111424;--font-ui:"Inter", sans-serif;--font-display:"Space Grotesk", sans-serif;--font-mono:"JetBrains Mono", monospace;--sidebar-width:224px;--topbar-height:56px}html[data-theme=dark]{--color-bg:#101114;--color-surface:#17181c;--color-surface-sunken:#1e2025;--color-border:#2a2c33;--color-border-strong:#3a3d46;--color-text-primary:#f2f2f5;--color-text-secondary:#9799a6;--color-text-disabled:#5a5c66;--color-primary:#7c74ff;--color-primary-hover:#8f88ff;--color-primary-subtle:#242150;--color-success-bg:#16a34a2e;--color-warning-bg:#d977062e;--color-danger-bg:#e11d482e;--color-info-bg:#2563eb33;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 16px #00000073;--shadow-lg:0 16px 40px #0000008c}.btn{cursor:pointer;border-radius:var(--radius-md);height:36px;color:var(--color-text-primary);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13.5px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.is-loading{opacity:1;pointer-events:none}.btn-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-sunken)}.btn-ghost{color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-sunken)}.btn-danger{background:var(--color-danger);color:#fff}.btn-sm{height:28px;padding:0 10px;font-size:12.5px}.btn-icon{width:32px;height:32px;color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:0}.btn-icon:hover:not(:disabled){background:var(--color-surface-sunken)}.pill{border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.pill .dot{border-radius:50%;width:6px;height:6px}.pill-success{background:var(--color-success-bg);color:var(--color-success)}.pill-success .dot{background:var(--color-success)}.pill-warning{background:var(--color-warning-bg);color:var(--color-warning)}.pill-warning .dot{background:var(--color-warning)}.pill-danger{background:var(--color-danger-bg);color:var(--color-danger)}.pill-danger .dot{background:var(--color-danger)}.pill-info{background:var(--color-info-bg);color:var(--color-info)}.pill-info .dot{background:var(--color-info)}.pill-ev{color:var(--color-ev-teal);background:#e5faf9}.pill-ice{color:var(--color-ice-amber);background:#fcf1e1}.pill-hybrid{color:var(--color-hybrid);background:#f1eafb}.pill-neutral{background:var(--color-surface-sunken);color:var(--color-text-secondary)}html[data-theme=dark] .pill-ev{background:#0ea5a62e}html[data-theme=dark] .pill-ice{background:#d977062e}html[data-theme=dark] .pill-hybrid{background:#6d28d933}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px 18px}.stat-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.stat-value{font-family:var(--font-display);margin:6px 0 0;font-size:24px;font-weight:600}.table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:auto}table.data{border-collapse:collapse;width:100%}table.data thead th{background:var(--color-surface-sunken);text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);padding:10px 16px;font-size:11px;font-weight:600}table.data thead th.num,table.data tbody td.num{text-align:right}table.data tbody td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:11px 16px;font-size:13.5px}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--color-surface-sunken)}table.data tbody tr.clickable{cursor:pointer}.cell-primary{font-weight:500}.cell-meta{color:var(--color-text-secondary);font-size:12px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.field{margin-bottom:14px}.field label{color:var(--color-text-secondary);margin-bottom:6px;font-size:12.5px;font-weight:500;display:block}.field .help{color:var(--color-text-secondary);margin-top:5px;font-size:11.5px}.field .err{color:var(--color-danger);margin-top:5px;font-size:11.5px}.input{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;height:36px;color:var(--color-text-primary);outline:none;padding:0 10px;font-size:13.5px}textarea.input{resize:vertical;height:auto;padding:8px 10px;line-height:18px}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-subtle)}.input.is-error{border-color:var(--color-danger)}.input.is-error:focus{border-color:var(--color-danger);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-danger) 22%, transparent)}.field-error{color:var(--color-danger);margin-top:4px;font-size:12px}.field.has-error label{color:var(--color-danger)}.page-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.page-title{font-family:var(--font-display);font-size:20px;font-weight:600}.page-title a{color:inherit;text-decoration:none}.page-title a:hover{color:var(--color-primary)}.page-sub a{color:inherit;text-decoration:none}.page-sub a:hover{color:var(--color-primary)}.job-page{min-height:calc(100vh - var(--topbar-height) - 52px);flex-direction:column;gap:14px;display:flex}.job-head{grid-template-columns:minmax(0,1fr) minmax(320px,460px);align-items:start;gap:16px;display:grid}.job-identity .page-title{margin-top:8px}.job-invoice-link{color:var(--color-primary);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.job-controls{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:1fr 1fr;gap:10px 12px;padding:12px;display:grid}.job-controls .field,.job-controls-team{margin:0}.job-controls-team{grid-column:1/-1}.job-stepper ol{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.job-stepper li{flex:1 1 0;min-width:0}.job-stepper button{border:none;border-right:1px solid var(--color-border);width:100%;height:100%;color:var(--color-text-secondary);font:inherit;cursor:pointer;text-align:left;background:0 0;align-items:center;gap:8px;padding:12px;font-size:13px;display:flex}.job-stepper li:last-child button{border-right:none}.job-stepper button.is-open{background:var(--color-primary-subtle);color:var(--color-text-primary);font-weight:600}.job-stepper li.is-done button{color:var(--color-primary)}.job-stepper li.is-locked button{opacity:.4;cursor:not-allowed}.job-stepper-mark{border:1.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-flex}.job-stepper button.is-now .job-stepper-mark,.job-stepper li.is-done .job-stepper-mark{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.job-stage{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;flex:1;display:flex}.job-stage-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px;display:flex}.job-stage-head h2{font-family:var(--font-display);font-size:18px;font-weight:600}.job-stage-head p{color:var(--color-text-secondary);max-width:62ch;margin-top:4px;font-size:13px}.job-stage-body{padding:18px}.job-columns{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);align-items:start;gap:20px;display:grid}.job-summary,.pay-panel,.photo-drop{background:var(--color-surface-sunken);border-radius:var(--radius-lg);padding:14px}.job-summary{position:sticky;top:12px}.job-metrics{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.job-metric{background:var(--color-surface);border-radius:var(--radius-md);padding:10px 12px}.job-metric span{color:var(--color-text-secondary);font-size:12px;display:block}.job-metric strong{font-family:var(--font-display);margin-top:4px;font-size:18px;display:block}.photo-drop .cell-meta{margin:4px 0 10px}.photo-add{border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);min-height:72px;color:var(--color-primary);cursor:pointer;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.photo-add input{display:none}.ack-card{text-align:left;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;width:100%;font:inherit;color:inherit;align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px;display:flex}.ack-card strong,.pay-choice strong{font-size:14px;display:block}.ack-card span span,.pay-choice span{color:var(--color-text-secondary);margin-top:2px;font-size:12.5px;display:block}.ack-mark{border:1.5px solid var(--color-border-strong);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-top:2px;font-size:12px;display:inline-flex}.ack-card.is-on{border-color:var(--color-primary);background:var(--color-primary-subtle)}.ack-card.is-on .ack-mark{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pay-choices{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 12px;display:grid}.pay-choice{text-align:left;border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:var(--radius-md);cursor:pointer;font:inherit;color:inherit;padding:12px}.pay-choice.is-on{border-color:var(--color-primary);background:var(--color-primary-subtle)}.task-board{grid-template-columns:1fr;gap:10px;display:grid}.task-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;gap:10px;padding:12px;display:flex}.task-status{background:var(--color-surface-sunken);border-radius:var(--radius-md);grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:3px;display:grid}.task-status button{font:inherit;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 2px;font-size:11px}.task-status button.is-on{background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-sm);font-weight:600}.choice-chip{font:inherit}.job-stack{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.job-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.job-panel.is-current{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.job-panel.is-locked{opacity:.62}.job-panel-head{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:12px 14px;display:flex}.job-panel-head:disabled{cursor:default}.job-panel-index{border:1px solid var(--color-border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:inline-flex}.job-panel.is-done .job-panel-index,.job-panel.is-current .job-panel-index{border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--color-primary)}.job-panel-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.job-panel-body{border-top:1px solid var(--color-border);padding:14px}.tech-picker{position:relative}.tech-chips{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.tech-chip{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-sunken);align-items:center;gap:6px;padding:4px 8px 4px 4px;font-size:12.5px;display:inline-flex}.tech-chip-remove{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.tech-search{position:relative}.tech-search svg{color:var(--color-text-disabled);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.tech-search .input{padding-left:32px}.tech-menu{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:240px;box-shadow:var(--shadow-md);margin-top:4px;position:absolute;left:0;right:0;overflow:auto}.tech-option{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;display:flex}.tech-option:hover{background:var(--color-surface-sunken)}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:8px;display:grid}.photo-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);color:inherit;text-decoration:none;overflow:hidden}.photo-card img{object-fit:cover;width:100%;height:96px;display:block}.photo-card-fields{flex-direction:column;gap:6px;padding:8px;display:flex}.photo-grid.is-record{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin:0}.photo-grid.is-record .photo-card img{height:140px}.record-quote{background:var(--color-surface-sunken);border-radius:var(--radius-md);padding:14px}.record-quote+.record-quote{margin-top:10px}.record-quote-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.part-row{grid-template-columns:1fr 72px 88px auto;gap:8px;margin-bottom:8px;display:grid}.task-add{grid-template-columns:1fr 110px auto;gap:8px;margin-top:12px;display:grid}.record-block+.record-block{border-top:1px solid var(--color-border);margin-top:28px;padding-top:22px}.record-block-head{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.record-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:16px;font-weight:600}.record-facts{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px 28px;margin:0;display:grid}.record-fact{flex-direction:column;gap:3px;min-width:0;display:flex}.record-fact.is-wide{grid-column:1/-1}.record-fact dt{color:var(--color-text-secondary);letter-spacing:0;font-size:12px;font-weight:500}.record-fact dd{letter-spacing:-.011em;margin:0;font-size:15px;font-weight:400;line-height:1.5}.record-fact.is-wide dd{max-width:42rem;font-size:16px;line-height:1.55}.arrival-copy h3,.arrival-photos h3{font-family:var(--font-display);letter-spacing:-.02em;font-size:16px;font-weight:600}.arrival.has-photos{grid-template-columns:minmax(0,1fr) minmax(220px,340px);align-items:start;gap:28px;display:grid}.arrival-lead{letter-spacing:-.02em;max-width:38rem;margin-top:8px;font-size:20px;font-weight:400;line-height:1.4}.arrival-package{color:var(--color-text-secondary);margin-top:6px;font-size:13px}.arrival-facts{flex-wrap:wrap;gap:8px 0;margin:18px 0 0;padding:0;list-style:none;display:flex}.arrival-facts li{border-right:1px solid var(--color-border);flex-direction:column;gap:2px;margin-right:20px;padding-right:20px;display:flex}.arrival-facts li:last-child{border-right:none;margin-right:0;padding-right:0}.arrival-facts span{color:var(--color-text-secondary);font-size:12px;font-weight:500}.arrival-facts strong{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:15px;font-weight:500}.arrival-note{max-width:40rem;margin-top:16px;font-size:15px;font-weight:400;line-height:1.55}.arrival-empty{color:var(--color-text-secondary);margin-top:18px;font-size:13px}.photo-card-caption{color:var(--color-text-secondary);flex-direction:column;gap:2px;padding:8px 10px 10px;font-size:12.5px;display:flex}.photo-card-caption strong{color:var(--color-text-primary);font-weight:500}.record-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.record-list li{background:var(--color-surface-sunken);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.record-list .input{width:160px}.estimate-row{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}@media (width<=800px){.task-add{grid-template-columns:1fr 1fr}}.page-sub{color:var(--color-text-secondary);margin-top:4px;font-size:13px}.setup-card{margin-bottom:16px}.setup-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.setup-track{background:var(--color-surface-sunken);border-radius:var(--radius-full);height:4px;margin:14px 0 4px;overflow:hidden}.setup-track span{background:var(--color-primary);height:100%;display:block}.setup-list{margin:0;padding:0;list-style:none}.setup-step{border-top:1px solid var(--color-border);grid-template-columns:20px 1fr auto;align-items:center;gap:12px;padding:12px 0;display:grid}.setup-step:first-child{border-top:none}.setup-step.is-done .cell-primary{color:var(--color-text-secondary)}.setup-check{border:1.5px solid var(--color-border-strong);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.setup-check.is-done{background:var(--color-success);border-color:var(--color-success);color:#fff}.setup-compact{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);cursor:pointer;width:100%;color:var(--color-text-primary);background:0 0;justify-content:space-between;align-items:center;margin-bottom:16px;padding:10px 14px;display:flex}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.dash-grid{grid-template-columns:1.2fr 1fr;gap:12px;margin-bottom:12px;display:grid}.dash-grid-single{grid-template-columns:1fr}.dash-panel{min-height:0}.dash-panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.dash-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.dash-row{border-radius:var(--radius-sm);color:inherit;justify-content:space-between;align-items:flex-start;gap:12px;margin:0 -6px;padding:8px 6px;text-decoration:none;display:flex}a.dash-row:hover{background:var(--color-surface-sunken)}.dash-row.is-static{cursor:default}.dash-row-side{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.dash-empty{margin:0;padding:8px 0 4px}.dash-attention{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.dash-attention li{padding-left:12px;font-size:13.5px;position:relative}.dash-attention li:before{content:"";background:var(--color-primary);border-radius:50%;width:6px;height:6px;position:absolute;top:.45em;left:0}.dash-chart,.dash-donut{width:100%;height:220px;position:relative}.dash-chart-sm{height:200px}.dash-donut-center{pointer-events:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dash-donut-center strong{font-family:var(--font-display);font-size:20px;font-weight:600}.dash-donut-center span{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.dash-legend{flex-wrap:wrap;gap:8px 14px;margin:8px 0 0;padding:0;list-style:none;display:flex}.dash-legend li{color:var(--color-text-secondary);align-items:center;gap:6px;font-size:12px;display:inline-flex}.dash-legend b{color:var(--color-text-primary);font-weight:600}.dash-swatch{border-radius:50%;width:8px;height:8px}.dash-tooltip{border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:8px 10px;font-size:12px}.dash-meter-wrap{margin-bottom:12px}.dash-meter{border-radius:var(--radius-full);background:var(--color-surface-sunken);height:8px;margin-bottom:6px;overflow:hidden}.dash-meter span{background:var(--color-primary);height:100%;display:block}.dash-rail{padding:4px 0 8px}.dash-rail-hours{color:var(--color-text-secondary);justify-content:space-between;margin-bottom:8px;font-size:11px;display:flex}.dash-rail-track{border-radius:var(--radius-md);background:var(--color-surface-sunken);height:64px;position:relative}.dash-rail-track:before{content:"";background:var(--color-border-strong);height:2px;position:absolute;top:50%;left:12px;right:12px}.dash-rail-slot{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);text-align:center;z-index:1;min-width:72px;padding:6px 8px;position:absolute;top:8px;transform:translate(-50%)}.dash-rail-slot span{color:var(--color-text-secondary);font-size:10px;display:block}.dash-rail-slot b{font-size:12px;font-family:var(--font-mono);font-weight:500;display:block}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar .input{max-width:280px}.toolbar .input-search{flex:1;min-width:220px;max-width:420px}.import-preview{max-height:320px;margin-top:12px;overflow:auto}.empty-state{text-align:center;color:var(--color-text-secondary);flex-direction:column;align-items:center;gap:10px;padding:48px 16px;display:flex}.guide-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.guide-grid .btn{margin-top:10px}.error-banner{background:var(--color-danger-bg);border-left:3px solid var(--color-danger);border-radius:0 var(--radius-sm) var(--radius-sm) 0;align-items:flex-start;gap:10px;margin-bottom:12px;padding:12px 14px;font-size:13px;display:flex}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.skeleton{background:linear-gradient(90deg, var(--color-surface-sunken) 25%, var(--color-border) 37%, var(--color-surface-sunken) 63%);border-radius:var(--radius-sm);background-size:400px 100%;animation:1.4s infinite shimmer}.skeleton-bar{max-width:180px;height:12px;display:block}.skeleton-row td{pointer-events:none}.modal-backdrop{z-index:40;background:#10111466;justify-content:center;align-items:flex-start;padding:48px 16px;display:flex;position:fixed;inset:0;overflow:auto}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(560px,100%);box-shadow:var(--shadow-lg);padding:22px}.modal.is-wide{width:min(680px,100%)}.modal-search{width:min(560px,100%)}.modal h3{font-family:var(--font-display);margin-bottom:16px;font-size:18px}.field-2col{grid-template-columns:1fr 1fr;gap:12px;display:grid}.row{align-items:center;gap:8px;display:flex}.choice-grid{flex-wrap:wrap;gap:8px;display:flex}.choice-chip{border:1px solid var(--color-border-strong);border-radius:var(--radius-full);cursor:pointer;background:var(--color-surface);align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;display:inline-flex}.choice-chip.is-on{border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--color-primary)}.choice-chip input{accent-color:var(--color-primary)}.split{grid-template-columns:1.2fr .8fr;gap:16px;display:grid}.tabs{border-bottom:1px solid var(--color-border);gap:4px;margin-bottom:14px;display:flex;overflow-x:auto}.tab{color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;margin-right:16px;padding:8px 4px;font-size:13px}.tab.active{color:var(--color-primary);border-color:var(--color-primary);font-weight:600}.kbd{font-family:var(--font-mono);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);border-radius:4px;padding:1px 5px;font-size:10.5px}.app-shell{background:var(--color-bg);min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;padding:16px 12px;display:flex}.brand{align-items:center;gap:8px;padding:6px 8px 16px;display:flex}.brand-logo{background:var(--color-primary);border-radius:6px;flex-shrink:0;width:24px;height:24px}.brand-logo-img{object-fit:cover;border-radius:6px;width:24px;height:24px}.brand span{font-family:var(--font-display);font-size:14px;font-weight:600;display:block}.brand small{color:var(--color-text-disabled);font-size:10px;font-weight:500;display:block}.search-mock{background:var(--color-surface-sunken);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;border:none;justify-content:space-between;align-items:center;width:100%;margin-bottom:16px;padding:7px 10px;font-size:12.5px;display:flex}.search-mock span{align-items:center;gap:6px;display:inline-flex}.nav-item{border-radius:var(--radius-md);color:var(--color-text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;margin-bottom:2px;padding:8px 10px;font-size:13px;display:flex}.nav-item.active,.nav-item.active:hover{background:var(--color-primary-subtle);color:var(--color-primary);font-weight:600}.nav-item:hover{background:var(--color-surface-sunken)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:var(--topbar-height);border-bottom:1px solid var(--color-border);background:var(--color-surface);justify-content:space-between;align-items:center;gap:12px;padding:0 24px;display:flex}.topbar-search{display:none}.topbar-who{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.topbar-actions{align-items:center;gap:8px;display:flex}.alert-menu,.alert-menu .btn-icon{position:relative}.alert-badge{background:var(--color-danger);color:#fff;pointer-events:none;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:16px;position:absolute;top:0;right:0}.alert-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(360px,100vw - 24px);max-height:min(420px,70vh);box-shadow:var(--shadow-lg);z-index:40;position:absolute;top:calc(100% + 8px);right:0;overflow:auto}.alert-panel-head{justify-content:space-between;align-items:center;gap:8px;padding:12px 12px 8px;display:flex}.alert-empty{color:var(--color-text-secondary);margin:0;padding:8px 14px 16px;font-size:13.5px}.alert-list{margin:0;padding:0 6px 8px;list-style:none}.alert-item{text-align:left;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px;display:flex}.alert-item:hover,.alert-item.is-unread{background:var(--color-surface-sunken)}.content{flex:1;min-height:0;padding:20px 24px 32px}.auth-screen{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(360px,100%);box-shadow:var(--shadow-md);padding:28px}.login-card .logo{background:var(--color-primary);border-radius:9px;width:36px;height:36px;margin:0 auto 14px}.login-card h1{font-family:var(--font-display);text-align:center;margin-bottom:6px;font-size:22px}.login-card .lead{text-align:center;color:var(--color-text-secondary);margin-bottom:18px;font-size:13px}.reply-actions{flex-direction:column;gap:8px;display:flex}.login-link{text-align:center;color:var(--color-primary);margin-top:12px;font-size:12.5px;display:block}.missing-card{text-align:center;width:min(420px,100%)}.missing-code{font-family:var(--font-display);letter-spacing:-.07em;color:var(--color-primary);margin:4px 0 10px;font-size:72px;font-weight:700;line-height:.9}.missing-home{justify-content:center;margin-top:10px;text-decoration:none;display:inline-flex}.field-hint{color:var(--color-text-secondary);margin-top:8px;font-size:12.5px}.field-optional{color:var(--color-text-disabled);font-weight:400}.auth-split{background:var(--color-bg);grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(260px,42vw) minmax(0,1fr);width:100%;height:100dvh;display:grid;position:fixed;inset:0;overflow:hidden}.auth-split-photo{height:100%;min-height:0;position:relative;overflow:hidden}.auth-split-photo img{object-fit:cover;width:100%;height:100%;animation:22s ease-in-out infinite alternate auth-ken;display:block;transform:scale(1.04)}.auth-split-veil{background:linear-gradient(#1011142e 0%,#1011148c 100%);position:absolute;inset:0}.auth-split-caption{color:#fff;text-shadow:0 1px 18px #10111473;max-width:16em;position:absolute;bottom:28px;left:24px;right:24px}.auth-split-brand{font-family:var(--font-display);align-items:center;gap:10px;margin-bottom:14px;font-size:16px;font-weight:650;display:inline-flex}.auth-split-brand .logo{background:var(--color-primary);border-radius:8px;width:28px;height:28px}.auth-split-caption p{letter-spacing:.12em;text-transform:uppercase;color:#ffffffb8;margin:0 0 8px;font-size:11px}.auth-split-caption h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(22px,2.4vw,30px);font-weight:600;line-height:1.2}.auth-split-pane{justify-content:center;align-items:center;height:100%;min-height:0;padding:24px 32px;display:flex;overflow:hidden}.auth-form{width:min(380px,100%)}.auth-form h1{font-family:var(--font-display);letter-spacing:-.03em;text-align:left;margin:0 0 4px;font-size:24px}.auth-form .lead{text-align:left;color:var(--color-text-secondary);margin-bottom:12px;font-size:13.5px;line-height:1.45}.auth-form .login-link{text-align:left;margin-top:10px}.auth-form .field{margin-bottom:10px}.onboarding-step{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 0 8px;font-size:11px}.onboarding-dots{gap:6px;margin:0 0 14px;display:flex}.onboarding-dots span{background:var(--color-border);border-radius:99px;width:28px;height:4px}.onboarding-dots span.is-on{background:var(--color-primary)}.onboarding-actions{justify-content:space-between;gap:8px;margin-top:8px;display:flex}.landing{min-height:100vh;color:var(--color-text-primary);background:#f3f1ec;overflow-x:hidden}.landing-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#f3f1eceb;border-bottom:1px solid #16171b14;justify-content:space-between;align-items:center;gap:16px;padding:16px 32px;display:flex;position:sticky;top:0}.landing-brand{font-family:var(--font-display);align-items:center;gap:10px;font-size:18px;font-weight:650;display:flex}.landing-brand .logo{background:var(--color-primary);border-radius:8px;width:28px;height:28px}.landing-nav-links{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:18px;display:flex}.landing-nav-links a:not(.btn){color:var(--color-text-secondary);font-size:13.5px}.landing-hero{align-items:end;min-height:min(88vh,820px);display:grid;position:relative;overflow:hidden}.landing-hero-photo{object-fit:cover;width:100%;height:100%;animation:28s ease-in-out infinite alternate auth-ken;position:absolute;inset:0}.landing-hero-veil{background:linear-gradient(#10111426 0%,#1011148c 55%,#101114c7 100%);position:absolute;inset:0}.landing-hero-copy{z-index:1;color:#fff;max-width:760px;padding:48px 32px 56px;animation:.85s both landing-rise;position:relative}.landing-hero .landing-kicker{color:#c9c4ff}.landing-hero h1,.landing-close h2{color:#fff}.landing-kicker{color:var(--color-primary);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:12px;font-weight:650}.landing h1{font-family:var(--font-display);letter-spacing:-.045em;margin:0 0 16px;font-size:clamp(36px,6vw,64px);font-weight:650;line-height:1.02}.landing-lead{color:#ffffffd1;max-width:34em;margin:0;font-size:18px;line-height:1.55}.landing-cta{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.landing .landing-ghost.btn{color:#fff;background:#ffffff1f;border-color:#fff6}.landing .landing-ghost.btn:hover:not(:disabled){background:#ffffff38}.landing-strip{color:#ffffffb8;letter-spacing:.04em;background:#16171b;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:18px 32px;font-size:13px;display:flex}.landing-strip p:first-child{color:#fff;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.landing-section,.landing-stories,.landing-section-board{scroll-margin-top:72px}.landing-section{max-width:1120px;margin:0 auto;padding:72px 32px}.landing-section-head{max-width:36em;margin-bottom:28px}.landing-section h2,.landing-story h2,.landing-close h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 10px;font-size:clamp(26px,3.4vw,36px);line-height:1.15}.landing-section-head p:last-child,.landing-story p:last-of-type{color:var(--color-text-secondary);margin:0;font-size:15px;line-height:1.55}.landing-reel{aspect-ratio:16/9;box-shadow:var(--shadow-lg);background:#1a1b1f;border-radius:18px;position:relative;overflow:hidden}.landing-reel img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .8s;position:absolute;inset:0}.landing-reel img.is-on{opacity:1}.landing-reel figcaption{color:#fff;background:linear-gradient(#0000,#101114d1);padding:28px 24px 22px;position:absolute;bottom:0;left:0;right:0}.landing-reel span{font-family:var(--font-mono);letter-spacing:.08em;color:#c9c4ff;font-size:12px}.landing-reel strong{font-family:var(--font-display);margin:4px 0;font-size:22px;display:block}.landing-reel p{color:#fffc;margin:0;font-size:14px}.landing-section-board{max-width:920px}.landing-board{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);border-radius:18px;padding:14px 14px 12px}.landing-board-bar{color:var(--color-text-secondary);align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.landing-board-bar strong{color:var(--color-text-primary);font-weight:600}.landing-board-live{background:var(--color-success);border-radius:99px;width:7px;height:7px;animation:1.8s ease-out infinite landing-pulse;box-shadow:0 0 #16a34a80}.landing-board-clock{font-family:var(--font-mono);letter-spacing:.04em;margin-left:auto;font-size:11px}.scene-tabs{gap:6px;margin-bottom:10px;display:flex}.scene-tabs button{background:var(--color-surface-sunken);color:var(--color-text-secondary);cursor:pointer;border:0;border-radius:8px;flex:1;padding:8px 6px;font-size:12px;font-weight:600}.scene-tabs button.is-on{background:var(--color-primary);color:#fff}.yard-copy{color:var(--color-text-secondary);min-height:2.4em;margin:0 4px 12px;font-size:13px;line-height:1.4}.landing-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.landing-cols h3{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary);justify-content:space-between;align-items:center;margin:0 2px 8px;font-size:11px;font-weight:650;display:flex}.landing-cols h3 em{font-style:normal;font-family:var(--font-mono);color:var(--color-primary);font-size:10px}.landing-cols ul{align-content:start;gap:8px;margin:0;padding:0;list-style:none;display:grid}.landing-cols li{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:10px;padding:10px 10px 9px;animation:.45s both landing-card}.landing-cols li strong{font-family:var(--font-mono);letter-spacing:.02em;font-size:11px;display:block}.landing-cols li span{color:var(--color-text-secondary);margin:3px 0 6px;font-size:12px;display:block}.landing-cols li small{color:var(--color-text-secondary);justify-content:space-between;gap:6px;font-size:11px;display:flex}.landing-cols li em{color:var(--color-primary);font-style:normal;font-weight:650}.landing-feed{border-top:1px solid var(--color-border);gap:4px;margin:10px 0 0;padding:8px 4px 2px;list-style:none;display:grid}.landing-feed li{color:var(--color-text-secondary);font-size:12px;animation:.4s both landing-card}.landing-feed strong{color:var(--color-text-primary);margin-right:6px}.landing-stories{gap:56px;max-width:1120px;margin:0 auto;padding:24px 32px 80px;display:grid}.landing-story{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:40px;display:grid}.landing-story-flip{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.landing-story-flip img{order:2}.landing-story img{aspect-ratio:4/3;object-fit:cover;width:100%;box-shadow:var(--shadow-md);border-radius:16px}.landing-close{align-items:center;min-height:420px;display:grid;position:relative;overflow:hidden}.landing-close img,.landing-close-veil{position:absolute;inset:0}.landing-close img{object-fit:cover;width:100%;height:100%}.landing-close-veil{background:linear-gradient(90deg,#101114d1,#10111473)}.landing-close-copy{z-index:1;color:#fff;max-width:640px;padding:64px 32px;position:relative}.landing-close .landing-kicker{color:#c9c4ff}.landing-close p:not(.landing-kicker){color:#fffc;margin:0;font-size:16px;line-height:1.5}.landing-foot{color:#ffffffa6;background:#16171b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 32px;font-size:13px;display:flex}.landing-foot .landing-brand{color:#fff}.landing-foot a{color:#fff;margin-left:16px}@keyframes landing-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes landing-card{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes landing-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes landing-pulse{0%{box-shadow:0 0 #16a34a73}to{box-shadow:0 0 0 8px #16a34a00}}@keyframes auth-ken{0%{transform:scale(1.04)translateY(0)}to{transform:scale(1.1)translateY(-1.5%)}}@media (width<=960px){.landing-nav-links a:not(.btn):not(:nth-last-child(2)){display:none}.landing-hero{min-height:78vh}.landing-story,.landing-story-flip{grid-template-columns:1fr}.landing-story-flip img{order:0}.landing-cols{grid-template-columns:1fr}.auth-split{grid-template-rows:minmax(120px,30vh) minmax(0,1fr);grid-template-columns:1fr}.auth-split-photo{height:100%;min-height:0;max-height:none}.auth-split-caption{bottom:14px;left:16px;right:16px}.auth-split-caption h2{font-size:18px}.auth-split-brand{margin-bottom:8px}.auth-split-pane{align-items:flex-start;padding:18px 20px 16px}}@media (prefers-reduced-motion:reduce){.landing-hero-copy,.landing-hero-photo,.landing-board,.landing-cols li,.landing-feed li,.landing-reel img,.auth-split-photo img{transition:none;animation:none}}.bay-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.bay-card{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);padding:16px}.bay-card.available{background:0 0;border-style:dashed}.bay-head{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.mobile-nav{display:none}@media (width<=1199px){.sidebar{width:64px;padding:12px 8px}.sidebar .brand span,.sidebar .brand small,.sidebar .search-mock,.sidebar .nav-item span{font-size:0}.sidebar .search-mock,.sidebar .nav-item{justify-content:center;gap:0;padding:10px}.sidebar .nav-item svg{margin:0}.sidebar .brand{justify-content:center;padding:8px 0 16px}}@media (width<=767px){.sidebar{display:none}.topbar{height:calc(var(--topbar-height) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(12px, env(safe-area-inset-right,0px)) 0 max(12px, env(safe-area-inset-left,0px))}.topbar-search{display:inline-flex}.content{padding:14px 12px calc(88px + env(safe-area-inset-bottom,0px))}.mobile-nav{background:var(--color-surface);border-top:1px solid var(--color-border);padding:6px 4px env(safe-area-inset-bottom,6px);z-index:30;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav a,.mobile-nav button{min-height:48px;color:var(--color-text-disabled);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10px;display:flex}.mobile-nav a.active,.mobile-nav button.is-on{color:var(--color-primary)}.more-sheet-backdrop{z-index:25;background:#10111466;align-items:flex-end;display:flex;position:fixed;inset:0}.more-sheet{background:var(--color-surface);border-top:1px solid var(--color-border);width:100%;padding:16px 12px calc(88px + env(safe-area-inset-bottom,12px));border-radius:16px 16px 0 0;gap:4px;display:grid}.more-sheet-title{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;padding:4px 10px 8px;font-size:12px;font-weight:600}.more-sheet-link{border-radius:var(--radius-md);color:var(--color-text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:12px 10px;font-size:15px;display:flex}.more-sheet-link.active,.more-sheet-link:hover{background:var(--color-primary-subtle);color:var(--color-primary)}}@media (width<=1199px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid{grid-template-columns:1fr}}@media (width<=900px){.job-page{min-height:0}.job-head,.job-columns,.arrival.has-photos,.pay-choices{grid-template-columns:1fr}.job-stepper ol{overflow-x:auto}.job-stepper li{flex:0 0 132px}}@media (width<=767px){html,body{overflow-x:hidden}.auth-screen{align-items:flex-start;padding:24px 16px}.stat-grid{grid-template-columns:1fr 1fr}.field-2col,.split,.setup-head,.dash-panel-head,.estimate-row,.job-stage-head,.board-toolbar{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.page-head{flex-direction:column;align-items:stretch}.page-head>.btn,.page-head>div:last-child:not(:first-child){width:100%}.page-head>div:last-child:not(:first-child){flex-wrap:wrap;gap:8px;display:flex}.page-head>div:last-child:not(:first-child) .btn{flex:auto}.input,select.input,textarea.input,textarea{font-size:16px}.toolbar{align-items:stretch}.toolbar .input,.toolbar .input-search,.toolbar .input-filter{flex:100%;width:100%;min-width:0;max-width:none}.seg{width:100%;overflow-x:auto}.table-wrap{border-left:none;border-right:none;border-radius:0;margin:0 -12px}table.data{min-width:620px}.job-stage{min-height:0}.job-stage-head .btn{width:100%}.board-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.board-columns{grid-template-columns:repeat(6,minmax(200px,1fr));margin:0 -12px;padding:0 12px 8px}.modal-backdrop{align-items:flex-end;padding:0}.modal,.modal.is-wide,.modal-search{width:100%;max-height:92vh;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;overflow:auto}.photo-grid,.photo-grid.is-record{grid-template-columns:repeat(2,minmax(0,1fr))}.task-add{grid-template-columns:1fr}.book-cal-week span,.book-cal-cell{padding:6px 4px}.book-cal-num{font-size:13px}.record-list .input{width:100%}}.board-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.seg{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-full);gap:2px;padding:3px;display:inline-flex}.seg.is-wrap{border-radius:16px;flex-wrap:wrap}.stack-fields{flex-direction:column;gap:8px;display:flex}@media print{.sidebar,.topbar,.mobile-nav,.no-print{display:none!important}.app-shell,.main,.content{color:#000;background:#fff;margin:0;padding:0;display:block}}.seg-btn{height:30px;color:var(--color-text-secondary);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;display:inline-flex}.seg-btn.is-on{background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-sm);font-weight:600}.board-stats{grid-template-columns:repeat(3,minmax(0,140px));gap:12px;margin-bottom:16px;display:grid}.board-stats>div{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:12px 14px}.board-columns{grid-template-columns:repeat(6,minmax(240px,1fr));gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.board-col{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;min-width:240px;min-height:420px;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.board-col.is-over{border-color:var(--color-primary);background:var(--color-primary-subtle);box-shadow:inset 0 0 0 1px var(--color-primary)}.board-col-head{border-bottom:1px solid var(--color-border);border-top:3px solid var(--color-info);justify-content:space-between;align-items:flex-start;gap:8px;padding:12px 12px 10px;display:flex}.board-col[data-status=in_progress] .board-col-head{border-top-color:var(--color-primary)}.board-col[data-status=stalled_awaiting_parts] .board-col-head,.board-col[data-status=stalled_troubleshooting] .board-col-head{border-top-color:var(--color-warning)}.board-col[data-status=stalled_no_resolution] .board-col-head{border-top-color:var(--color-danger)}.board-col[data-status=completed] .board-col-head{border-top-color:var(--color-success)}.board-col-title{font-size:13px;font-weight:600;line-height:1.3}.board-count{border-radius:var(--radius-full);background:var(--color-surface);border:1px solid var(--color-border);justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.board-col-body{flex-direction:column;flex:1;gap:10px;padding:10px;display:flex}.board-card-drag{touch-action:none}.board-card-drag:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-md)}.board-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-sm);border-left:3px solid var(--color-border-strong);padding:12px}.board-card.is-draggable{cursor:grab}.board-card.is-dragging{opacity:.35}.board-card.is-overlay{cursor:grabbing;box-shadow:var(--shadow-lg);width:260px;rotate:1.5deg}.board-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.board-card-lead{align-items:center;gap:4px;min-width:0;display:inline-flex}.board-card-grip{color:var(--color-text-disabled);flex-shrink:0}.board-card.is-high{border-left-color:var(--color-warning)}.board-card.is-urgent{border-left-color:var(--color-danger)}.board-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.board-card-copy{margin:6px 0 4px;font-size:13px;line-height:1.35}.board-card-people{align-items:center;gap:6px;min-height:24px;margin:10px 0 8px;display:flex}.board-avatar{background:var(--color-primary-subtle);width:24px;height:24px;color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.board-avatar.is-lg{width:32px;height:32px;font-size:12px}.board-progress{background:var(--color-surface-sunken);border-radius:var(--radius-full);height:4px;overflow:hidden}.board-progress-bar{background:var(--color-primary);border-radius:var(--radius-full);height:100%}.board-card-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.board-move{width:auto;max-width:148px;height:28px;padding:0 8px;font-size:11.5px}.board-empty{color:var(--color-text-disabled);text-align:center;padding:18px 8px;font-size:12.5px}.board-people{gap:12px;display:grid}.board-lane{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:12px}.board-lane-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.board-lane-who{align-items:center;gap:10px;display:flex}.board-lane-jobs{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.board-done{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-top:18px;padding:14px 16px}.board-done-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.checkin-photos{flex-direction:column;gap:4px;display:flex}.checkin-photos a{color:var(--color-primary)}.board-done-chip{border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface-sunken);cursor:pointer;color:inherit;align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.book-legend{color:var(--color-text-secondary);flex-wrap:wrap;gap:14px;margin:-4px 0 12px;font-size:12px;display:flex}.book-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.book-dot.is-diagnosis{background:var(--color-primary)}.book-dot.is-maintenance{background:var(--color-hybrid)}.book-dot.is-package{background:var(--color-ev-teal)}.book-dot.is-recall{background:var(--color-ice-amber)}.book-dot.is-live{background:var(--color-success)}.book-toolbar-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;display:flex}.page-book{flex-direction:column;display:flex}:is(.page-book:has(.book-cal),.page-book:has(.book-day)){min-height:calc(100vh - var(--topbar-height) - 52px)}.page-book .page-head,.page-book .tabs,.page-book .toolbar,.page-book .book-legend{flex-shrink:0}.page-book .empty-state{flex:1}.book-cal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.book-cal-week{background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border);flex-shrink:0;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.book-cal-week span{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary);padding:10px 12px;font-size:11px;font-weight:600}.book-cal-grid{flex:1;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:1fr;min-height:0;display:grid}.book-cal-cell{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;gap:6px;min-height:0;padding:8px;display:flex;overflow:hidden}.book-cal-cell:nth-child(7n){border-right:none}.book-cal-cell.is-muted{background:color-mix(in srgb, var(--color-surface-sunken) 70%, var(--color-surface))}.book-cal-cell.is-muted .book-cal-num{color:var(--color-text-disabled)}.book-cal-cell.is-closed{background:repeating-linear-gradient(-18deg, transparent, transparent 10px, color-mix(in srgb, var(--color-border) 55%, transparent) 10px, color-mix(in srgb, var(--color-border) 55%, transparent) 11px)}.book-cal-cell.is-today{background:color-mix(in srgb, var(--color-primary-subtle) 55%, var(--color-surface))}.book-cal-cell.is-selected{box-shadow:inset 0 0 0 2px var(--color-primary)}.book-cal-top{flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;display:flex}.book-cal-num{width:26px;height:26px;color:var(--color-text-primary);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;font-size:13px;font-weight:650}.book-cal-num:hover{background:var(--color-primary-subtle);color:var(--color-primary)}.book-cal-cell.is-today .book-cal-num{background:var(--color-primary);color:#fff}.book-cal-count{color:var(--color-text-secondary);margin-left:auto;font-size:11px;font-weight:600}.book-cal-add{border-radius:var(--radius-full);background:var(--color-primary-subtle);width:22px;height:22px;color:var(--color-primary);cursor:pointer;opacity:0;border:none;padding:0;font-size:16px;line-height:1}.book-cal-cell:hover .book-cal-add,.book-cal-cell:focus-within .book-cal-add{opacity:1}.book-cal-chips{flex-direction:column;gap:4px;min-height:0;display:flex;overflow:auto}.book-chip,.book-more{text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:none;border-radius:7px;flex-shrink:0;width:100%;padding:5px 8px;font-size:12px;font-weight:600;line-height:1.2;display:block;overflow:hidden}.book-chip.is-diagnosis{background:var(--color-primary-subtle);color:var(--color-primary)}.book-chip.is-maintenance{background:color-mix(in srgb, var(--color-hybrid) 14%, var(--color-surface));color:var(--color-hybrid)}.book-chip.is-package{background:color-mix(in srgb, var(--color-ev-teal) 16%, var(--color-surface));color:var(--color-ev-teal)}.book-chip.is-recall{background:var(--color-warning-bg);color:var(--color-ice-amber)}.book-chip.is-live{background:var(--color-success-bg);color:var(--color-success)}.book-chip.is-done{background:var(--color-surface-sunken);color:var(--color-text-secondary)}.book-more{color:var(--color-text-secondary);background:0 0;padding:2px 8px;font-weight:500}.book-more:hover{color:var(--color-primary)}.book-day{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex:1;min-height:0;overflow:auto}.book-slot{border-bottom:1px solid var(--color-border);grid-template-columns:72px minmax(0,1fr);min-height:108px;display:grid}.book-slot:last-child{border-bottom:none}.book-slot.is-now{background:color-mix(in srgb, var(--color-primary-subtle) 70%, var(--color-surface))}.book-slot.is-upcoming{background:color-mix(in srgb, var(--color-surface-sunken) 45%, var(--color-surface))}.book-slot.is-upcoming .book-slot-time strong{color:var(--color-text-disabled);font-weight:500}.book-slot.is-past{background:var(--color-surface-sunken)}.book-slot.is-past .book-slot-time strong,.book-slot.is-past .book-slot-card{opacity:.62}.book-slot-time{border-right:1px solid var(--color-border);align-items:flex-start;padding:16px 10px;display:flex}.book-slot-time strong{font-family:var(--font-display);font-size:15px}.book-slot-bays{flex-wrap:wrap;align-items:stretch;gap:10px;padding:10px;display:flex}.book-slot-card{text-align:left;cursor:pointer;width:248px;min-height:108px;box-shadow:var(--shadow-sm);border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px 12px 16px;display:flex}.book-slot-card:hover{box-shadow:var(--shadow-md)}.book-slot-card.is-diagnosis{background:var(--color-primary-subtle);border-color:color-mix(in srgb, var(--color-primary) 22%, transparent);box-shadow:inset 3px 0 0 var(--color-primary), var(--shadow-sm);color:var(--color-text-primary)}.book-slot-card.is-maintenance{background:color-mix(in srgb, var(--color-hybrid) 10%, var(--color-surface));border-color:color-mix(in srgb, var(--color-hybrid) 24%, transparent);box-shadow:inset 3px 0 0 var(--color-hybrid), var(--shadow-sm);color:var(--color-text-primary)}.book-slot-card.is-package{background:color-mix(in srgb, var(--color-ev-teal) 12%, var(--color-surface));border-color:color-mix(in srgb, var(--color-ev-teal) 28%, transparent);box-shadow:inset 3px 0 0 var(--color-ev-teal), var(--shadow-sm);color:var(--color-text-primary)}.book-slot-card.is-recall{background:var(--color-warning-bg);border-color:color-mix(in srgb, var(--color-ice-amber) 28%, transparent);box-shadow:inset 3px 0 0 var(--color-ice-amber), var(--shadow-sm);color:var(--color-text-primary)}.book-slot-card.is-live{box-shadow:inset 3px 0 0 var(--color-success), var(--shadow-sm)}.book-slot-card.is-done{background:var(--color-surface-sunken);border-color:var(--color-border);box-shadow:inset 3px 0 0 var(--color-border-strong), var(--shadow-sm);color:var(--color-text-secondary)}.book-slot-name{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:15px;font-weight:650;line-height:1.25;overflow:hidden}.book-slot-car{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.book-slot-kind{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary);margin-top:8px;font-size:10px;font-weight:700}.book-slot-card.is-diagnosis .book-slot-kind{color:var(--color-primary)}.book-slot-card.is-maintenance .book-slot-kind{color:var(--color-hybrid)}.book-slot-card.is-package .book-slot-kind{color:var(--color-ev-teal)}.book-slot-card.is-recall .book-slot-kind{color:var(--color-ice-amber)}.book-slot-reason{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:13px;line-height:1.35;display:-webkit-box;overflow:hidden}.book-slot-add{border:1.5px dashed var(--color-border-strong);background:var(--color-surface);width:56px;min-height:108px;color:var(--color-text-secondary);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.book-slot.is-upcoming .book-slot-add{border-color:var(--color-border);color:var(--color-text-disabled);background:0 0}.book-slot-add:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}.book-time-who{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650;display:block;overflow:hidden}.book-time-car{opacity:.9;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:12px;display:block;overflow:hidden}.book-time-visit{opacity:.82;text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:12px;display:block;overflow:hidden}.visit-kicker{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.visit-time{font-family:var(--font-display);font-size:20px;font-weight:600}.visit-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.visit-block h4{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 0 8px;font-size:11px;font-weight:650}.visit-name{font-family:var(--font-display);font-size:18px;font-weight:600}.visit-line{color:var(--color-text-secondary);margin-top:4px;font-size:13px}.visit-notes{background:var(--color-surface-sunken);border-radius:var(--radius-md);color:var(--color-text-secondary);margin-bottom:16px;padding:12px 14px;font-size:13px}.visit-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (width<=900px){.book-cal-cell{padding:6px}.book-chip{padding:4px 6px;font-size:11px}.visit-grid{grid-template-columns:1fr}}@media (width<=767px){:is(.page-book:has(.book-cal),.page-book:has(.book-day)){min-height:calc(100vh - var(--topbar-height) - 96px)}}@media (width<=1100px){.board-columns{grid-template-columns:repeat(6,minmax(220px,1fr))}}*{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--color-bg)}body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-ui);margin:0;font-size:14px;line-height:20px}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}
