:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:14px/1.45 Manrope,system-ui,Segoe UI,Roboto,sans-serif}body{margin:0}#root{flex-direction:column;min-height:100vh;display:flex}.zn-root{--ink:#000;--muted:#333;--hair:#999;--zebra:#f6f6f6;--head:#ededed;color:var(--ink);text-align:left;font-family:Roboto,system-ui,Segoe UI,Arial,sans-serif}.zn-root *{box-sizing:border-box}.zn-sheet{color:#000;background:#fff;width:210mm;min-height:297mm;margin:0 auto;padding:15mm 16mm 14mm;position:relative;box-shadow:0 2px 14px #00000038}.zn-top{border-bottom:1.6pt solid #000;justify-content:space-between;align-items:flex-start;gap:8mm;padding-bottom:3mm;display:flex}.zn-brand{align-items:center;gap:4mm;display:flex}.zn-logo{object-fit:contain;flex:none;width:16mm;height:16mm}.zn-co-name{letter-spacing:.3px;font-size:15pt;font-weight:700;line-height:1.05}.zn-co-sub{color:var(--muted);max-width:82mm;margin-top:1.2mm;font-size:8.2pt;line-height:1.45}.zn-co-sub b{color:#000;font-weight:600}.zn-doc-meta{text-align:right;min-width:52mm;font-size:8.6pt;line-height:1.6}.zn-doc-meta .zn-mrow{justify-content:flex-end;gap:3mm;display:flex}.zn-doc-meta .zn-mrow span:first-child{color:var(--muted)}.zn-doc-meta .zn-mrow b{font-weight:600}.zn-title{text-align:center;margin:5mm 0 4mm}.zn-title h1{letter-spacing:1.2px;margin:0;font-size:16pt;font-weight:700}.zn-title .zn-num{margin-top:1mm;font-size:10.5pt;font-weight:600}.zn-info{gap:6mm;margin-bottom:3.5mm;display:flex}.zn-card{border:.6pt solid var(--hair);flex:1}.zn-card-h{text-transform:uppercase;letter-spacing:.5px;background:var(--head);border-bottom:.6pt solid var(--hair);padding:1.6mm 2.5mm;font-size:8.2pt;font-weight:700}.zn-card-b{padding:2mm 2.5mm}.zn-kv{font-size:9pt;line-height:1.55;display:flex}.zn-kv .zn-k{color:var(--muted);flex:0 0 34mm}.zn-kv .zn-v{flex:1;font-weight:500}.zn-sec{text-transform:uppercase;letter-spacing:.4px;border-bottom:.6pt solid var(--ink);margin:3.5mm 0 1.6mm;padding-bottom:.8mm;font-size:9pt;font-weight:700}.zn-textblock{white-space:pre-wrap;padding:.5mm 0 0;font-size:9pt;line-height:1.5}.zn-table{border-collapse:collapse;width:100%;font-size:8.8pt}.zn-table th,.zn-table td{border:.5pt solid var(--hair);vertical-align:top;padding:1.6mm 2mm}.zn-table thead th{background:var(--head);text-align:left;text-transform:uppercase;letter-spacing:.3px;font-size:8.2pt;font-weight:700}.zn-table tbody tr{break-inside:avoid;page-break-inside:avoid}.zn-table tbody tr:nth-child(2n){background:var(--zebra)}.zn-c-num{text-align:center;width:9mm}.zn-c-qty{text-align:center;width:20mm}.zn-c-unit{text-align:center;width:14mm}.zn-c-price,.zn-c-sum{text-align:right;white-space:nowrap;width:26mm}.zn-c-code{width:28mm}.zn-table tfoot td{border:.5pt solid var(--hair);background:var(--zebra);padding:1.5mm 2mm;font-weight:700}.zn-bottom{align-items:flex-start;gap:6mm;margin-top:4mm;display:flex}.zn-bottom-left{flex:1}.zn-totals{border:.6pt solid var(--hair);flex:0 0 86mm}.zn-tr{justify-content:space-between;padding:1.5mm 3mm;font-size:9pt;line-height:1.4;display:flex}.zn-tr:not(:last-child){border-bottom:.5pt solid #ddd}.zn-tr .zn-tl{color:var(--muted)}.zn-tr .zn-tv{white-space:nowrap;font-weight:600}.zn-tr-total{background:var(--head)}.zn-tr-total .zn-tl{color:#000;font-size:10pt;font-weight:700}.zn-tr-total .zn-tv{font-size:11.5pt;font-weight:700}.zn-words{border-top:.5pt solid #ddd;padding:1.6mm 3mm;font-size:8.6pt;font-style:italic;line-height:1.4}.zn-legal{text-align:justify;color:#111;border:.5pt solid var(--hair);break-inside:avoid;page-break-inside:avoid;margin-top:4mm;padding:2.5mm 3mm;font-size:8pt;line-height:1.5}.zn-legal .zn-lh{text-transform:uppercase;letter-spacing:.4px;margin-bottom:1mm;font-size:8pt;font-weight:700;display:block}.zn-legal p{white-space:pre-wrap;margin:0 0 2mm}.zn-legal p:last-child{margin-bottom:0}.zn-signs{break-inside:avoid;page-break-inside:avoid;gap:12mm;margin-top:6mm;display:flex}.zn-sign{flex:1;font-size:8.6pt}.zn-sign .zn-sl{margin-bottom:6mm;font-weight:700}.zn-sigline{border-top:.6pt solid #000;justify-content:space-between;padding-top:1mm;display:flex}.zn-sigline small{color:var(--muted);font-size:7.6pt}.zn-sign .zn-name{margin-top:1.5mm;font-size:8.4pt}.zn-date{margin-top:5mm;font-size:8.6pt}.zn-foot{border-top:.5pt solid var(--hair);color:var(--muted);justify-content:space-between;margin-top:7mm;padding-top:1.5mm;font-size:7.4pt;display:flex}.zn-bank{border-collapse:collapse;width:100%;margin:3mm 0 1mm;font-size:8.8pt}.zn-bank th{background:var(--head);border:.5pt solid var(--hair);text-transform:uppercase;letter-spacing:.4px;text-align:center;padding:1.6mm 2mm;font-size:8.2pt}.zn-bank td{border:.5pt solid var(--hair);vertical-align:middle;padding:1.6mm 2.5mm}.zn-bank .zn-bank-l{color:var(--muted);white-space:nowrap}.zn-bank .zn-bank-v{font-weight:600}.zn-invoice-total{margin-top:3mm;font-size:9.5pt}.zn-invoice-total b{font-size:11pt}.zn-invoice-total .zn-words{border:0;padding:1.5mm 0 0;font-style:italic}.zn-qr{break-inside:avoid;page-break-inside:avoid;align-items:center;gap:4mm;margin-top:4mm;display:flex}.zn-qr img{flex:none;width:32mm;height:32mm}.zn-qr-cap{color:var(--muted);font-size:8.4pt;line-height:1.45}.modal.modal-order{width:min(1180px,100vw - 32px);max-width:calc(100vw - 32px);height:92vh;max-height:92vh}.order-editor-root{flex-direction:column;flex:1;min-height:0;display:flex}.oe-history{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;padding:0 0 8px;display:flex}.oe-history-label{color:var(--color-text-muted);font-size:12px}.oe-history button{padding:4px 8px;font-size:12px}.oe-history button.active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.oe-history-new{margin-left:auto}.order-editor{flex:1;gap:16px;min-height:0;display:flex;overflow:hidden}.order-editor-left{flex-direction:column;flex:0 0 380px;gap:12px;padding-right:8px;display:flex;overflow-y:auto}.order-editor-right{border-radius:var(--radius-lg);background:#e8e8e8;flex:1;padding:16px;overflow:auto}.order-editor-right .zn-preview-scale{transform-origin:top}.oe-section{border-top:1px solid var(--color-border);flex-direction:column;gap:8px;padding-top:10px;display:flex}.oe-section:first-child{border-top:none;padding-top:0}.oe-section h4{margin:0;font-size:13px}.oe-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.oe-grid .oe-full{grid-column:1/-1}.oe-field{color:var(--color-text-muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.oe-toggle-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.oe-toggle{color:var(--color-text);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.oe-toggle input{width:16px;height:16px}.oe-textarea{width:100%;min-height:60px;font-family:inherit}.oe-textarea:disabled{opacity:.45}.oe-hint{color:var(--color-text-muted);font-size:11px}.order-editor-actions{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.order-editor-actions>div{align-items:center;gap:8px;display:flex}.oe-saved{color:var(--color-success,#16a34a);font-size:13px}.oe-recognized{color:var(--color-success,#16a34a);font-size:12px}#zn-print-mount{display:none}@media print{@page{size:A4;margin:12mm}#root{display:none!important}#zn-print-mount{display:block!important}#zn-print-mount .zn-sheet{box-shadow:none;width:auto;min-height:auto;margin:0;padding:0}.zn-table thead{display:table-header-group}.zn-root{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.hist-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:4px 0 18px;display:grid}.hist-card{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;padding:12px 14px}button.hist-card{cursor:pointer;font:inherit;color:inherit;width:100%;transition:transform 50ms}button.hist-card:active{transform:scale(.99)}.hist-card-success{border-color:var(--color-success);background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface-alt))}.hist-card-success .hist-card-value{color:var(--color-success)}.hist-card-danger{border-color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, var(--color-surface-alt))}.hist-card-danger .hist-card-value{color:var(--color-danger)}.hist-card-danger.is-active{outline:2px solid var(--color-danger);outline-offset:-1px}.hist-card-label{color:var(--color-text-muted);margin-bottom:6px;font-size:12px}.hist-card-value{font-size:22px;font-weight:800;font-family:var(--font-mono);line-height:1.1}.hist-card-danger .hist-card-sub{color:var(--color-danger)}.hist-card-sub{color:var(--color-text-muted);margin-top:4px;font-size:11px}.hist-chart{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:22px;padding:14px 16px}.hist-chart-title{margin-bottom:14px;font-size:13px;font-weight:600}.hist-chart-empty{color:var(--color-text-muted);padding:8px 0 4px;font-size:13px}.hist-bars{align-items:flex-end;gap:8px;height:150px;display:flex}.hist-bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex}.hist-bar-val{color:var(--color-text-muted);white-space:nowrap;margin-bottom:4px;font-size:10px}.hist-bar{background:var(--color-primary);border-radius:4px 4px 0 0;width:100%;max-width:30px;min-height:2px;transition:height .2s}.hist-bar-lbl{color:var(--color-text-muted);margin-top:6px;font-size:10px}.hist-bar-lbl.is-year{color:var(--color-text);font-weight:700}.hist-list-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:6px;display:flex}.hist-list-head h3{margin:0}.hist-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hist-sort{color:var(--color-text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.hist-sort select{font-size:13px}.hist-filter{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-size:13px}.hist-filter.is-active{border-color:var(--color-danger);color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, transparent)}.hist-amount{font-family:var(--font-mono);white-space:nowrap;font-size:14px;font-weight:700}.hist-paid-toggle{border:1px solid var(--color-border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700}.hist-paid-toggle.is-unpaid{border-color:var(--color-danger);color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 14%, transparent)}.hist-paid-toggle.is-paid{border-color:var(--color-success);color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent)}.hist-breakdown{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:12px;margin:6px 0 16px;padding:14px 16px}.hist-breakdown-title{margin-bottom:10px;font-size:13px;font-weight:700}.hist-breakdown-rows{flex-direction:column;gap:8px;display:flex}.hist-breakdown-row{grid-template-columns:160px 1fr auto;align-items:center;gap:10px;display:grid}.hist-breakdown-label{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.hist-breakdown-track{background:var(--color-surface);border-radius:999px;height:8px;overflow:hidden}.hist-breakdown-fill{background:var(--color-primary);border-radius:999px;min-width:2px;height:100%}.hist-breakdown-val{font-size:12px;font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap}@media (width<=640px){.hist-breakdown-row{grid-template-columns:120px 1fr}.hist-breakdown-val{text-align:right;grid-column:2;margin-top:-4px}}.hist-viewtabs{gap:8px;margin-bottom:16px;display:flex}.hist-viewtabs button{background:var(--color-surface-alt);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:10px;align-items:center;gap:7px;padding:9px 16px;font-size:14px;font-weight:700;display:inline-flex}.hist-viewtabs button svg{flex-shrink:0}.hist-viewtabs button.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.fin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.fin-periods{flex-wrap:wrap;gap:6px;display:flex}.fin-periods button{background:var(--color-surface-alt);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600}.fin-periods button.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.fin-export{cursor:pointer;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600}.fin-hero{border:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:16px;margin-bottom:16px;padding:18px 22px}.fin-hero.is-gain{border-color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent)}.fin-hero.is-loss{border-color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, transparent)}.fin-hero-label{color:var(--color-text-muted);text-transform:capitalize;font-size:13px}.fin-hero-value{font-size:34px;font-weight:800;font-family:var(--font-mono);margin:2px 0 6px;line-height:1.1}.fin-hero.is-gain .fin-hero-value{color:var(--color-success)}.fin-hero.is-loss .fin-hero-value{color:var(--color-danger)}.fin-hero-formula{color:var(--color-text-muted);font-size:12px}.fin-two-col{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=720px){.fin-two-col{grid-template-columns:1fr}}.fin-order-rows{flex-direction:column;gap:6px;display:flex}.fin-order-row{justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.fin-order-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fin-order-profit{font-family:var(--font-mono);white-space:nowrap;font-weight:700}.fin-order-profit.is-gain{color:var(--color-success)}.fin-order-profit.is-loss{color:var(--color-danger)}.fin-expenses{margin-top:18px}.fin-expenses h3{margin-bottom:4px}.fin-tx-form{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 14px;display:flex}.fin-tx-form select,.fin-tx-form input{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;padding:8px 10px;font-size:13px}.fin-tx-form input[type=number]{width:120px}.fin-tx-form input[type=date]{width:150px}.fin-tx-form input[type=text]{flex:180px;min-width:140px}.fin-tx-list{flex-direction:column;gap:4px;display:flex}.fin-tx-row{background:var(--color-surface-alt);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.fin-tx-date{font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap}.fin-tx-badge{white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.fin-tx-badge.is-expense{background:var(--color-danger-bg);color:var(--color-danger-text)}.fin-tx-badge.is-income{background:color-mix(in srgb, var(--color-success) 18%, transparent);color:var(--color-success)}.fin-tx-cat{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.fin-tx-note{color:var(--color-text-muted)}.fin-tx-amount{font-family:var(--font-mono);white-space:nowrap;font-weight:700}.fin-tx-amount.is-gain{color:var(--color-success)}.fin-tx-amount.is-loss{color:var(--color-danger)}.fin-tx-del{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.fin-tx-del:hover{color:var(--color-danger)}.hist-profit{font-family:var(--font-mono);white-space:nowrap;font-size:13px;font-weight:700}.hist-profit.is-gain{color:var(--color-success)}.hist-profit.is-loss{color:var(--color-danger)}.hist-nocost{color:var(--color-text-muted);margin-top:3px;font-size:12px}.fin-car-status{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.fin-car-status.is-active{background:var(--color-primary-light);color:var(--color-primary)}.fin-car-status.is-closed{background:var(--color-surface-alt);color:var(--color-text-muted);border:1px solid var(--color-border)}.fin-car-nocost{color:var(--color-text-muted);white-space:nowrap;font-size:12px;font-style:italic}.fin-car-breakdown{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px;font-size:12px;display:flex}.fin-car-breakdown>span:first-child,.fin-car-breakdown>span:nth-child(2){color:var(--color-text);font-weight:600}.fin-car-chip{background:var(--color-surface-alt);border:1px solid var(--color-border);font-variant-numeric:tabular-nums;border-radius:6px;padding:1px 7px}.fin-car-chip em{color:var(--text3);margin-right:3px;font-style:normal}.fin-car-invoice{color:var(--color-text-muted);margin-top:4px;font-size:12px}.fin-car-invoice .is-gain{color:var(--color-success);font-weight:600}.fin-car-invoice .is-loss{color:var(--color-danger);font-weight:600}.fin-car .history-item-actions{gap:8px;display:flex}.feed-day-head{color:var(--color-text-muted);text-transform:capitalize;margin:14px 0 6px;font-size:12px;font-weight:700}.feed-ico{width:20px;color:var(--text3);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.fin-tx-del-spacer{flex-shrink:0;width:18px}.fin-car-pay{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.fin-prepay-toggle{cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface-alt);color:var(--color-text);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.fin-prepay-toggle.is-unpaid{color:var(--color-primary);border-color:var(--color-primary)}.fin-prepay-toggle.is-paid{color:var(--color-success);border-color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent)}:root{--color-bg:#080b10;--bg2:#0b0f15;--color-surface:#0e131a;--color-surface-alt:#121924;--color-border:#1e2732;--line2:#2b3644;--color-text:#e8edf4;--color-text-muted:#8e9bab;--text3:#5a6674;--grid:#ffffff09;--color-primary:#29d3e8;--color-primary-dark:#12a9bd;--color-primary-light:color-mix(in srgb, var(--color-primary) 16%, transparent);--brand-soft:var(--color-primary-light);--color-on-primary:#04141a;--color-danger:#ff5468;--color-danger-text:#ff8a99;--color-danger-bg:color-mix(in srgb, var(--color-danger) 14%, transparent);--color-warning:#f7a93a;--color-warning-bg:color-mix(in srgb, var(--color-warning) 14%, transparent);--color-warning-strong:#b45309;--color-success:#37d399;--color-ink:#060911;--color-ink-2:#0f1726;--color-on-ink:#fff;--color-on-ink-muted:#8e9bab;--color-route-block:#475569;--color-dashed-border:#3a4658;--color-dashed-border-soft:#3a4658;--status-planned:#6b7a8d;--status-in-progress:#2fbbd6;--status-done:#37d399;--status-delayed:#ff5468;--status-queued:#f7a93a;--planned:var(--status-planned);--progress:var(--status-in-progress);--done:var(--status-done);--delay:var(--status-delayed);--wait:var(--status-queued);--shadow-sm:0 1px 2px #0006, 0 1px 1px #0000004d;--shadow-md:0 10px 30px #0000008c, 0 2px 8px #00000059;--radius-md:8px;--radius-lg:12px;--font-display:"Manrope", -apple-system, sans-serif;--font-body:"Manrope", -apple-system, sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace}[data-theme=light]{--color-bg:#e7ebf0;--bg2:#eef2f6;--color-surface:#fff;--color-surface-alt:#f4f7fa;--color-border:#d5dce4;--line2:#c3ccd7;--color-text:#141a22;--color-text-muted:#4c5766;--text3:#7d8896;--grid:#0000000a;--color-primary-dark:#0f93a6;--color-ink:#eef2f6;--color-ink-2:#e7ebf0;--color-on-ink:#141a22;--color-on-ink-muted:#4c5766;--color-route-block:#94a3b8;--color-dashed-border:#c3ccd7;--color-dashed-border-soft:#d5dce4;--shadow-sm:0 1px 2px #141a220f, 0 1px 1px #141a220d;--shadow-md:0 10px 26px #141a221f, 0 2px 6px #141a220f}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line2);background-clip:content-box;border:3px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted);background-clip:content-box}@keyframes fpulse{0%,to{opacity:1}50%{opacity:.25}}@keyframes fglow{0%,to{box-shadow:0 0 0 1px color-mix(in srgb, var(--jc) 55%, transparent), 0 3px 16px -6px color-mix(in srgb, var(--jc) 55%, transparent)}50%{box-shadow:0 0 0 1px color-mix(in srgb, var(--jc) 90%, transparent), 0 6px 26px -4px color-mix(in srgb, var(--jc) 80%, transparent)}}@keyframes fslide{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes ffade{0%{opacity:0}to{opacity:1}}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.2px}.app{flex-direction:column;height:100vh;display:flex}.app-header{background:linear-gradient(180deg, var(--bg2), var(--color-bg));height:66px;color:var(--color-text);border-bottom:1px solid var(--color-border);z-index:20;flex:none;align-items:center;gap:22px;padding:0 22px;display:flex;position:relative}.app-header:after{content:"";background:linear-gradient(90deg, transparent, var(--color-primary), transparent);opacity:.5;height:1px;position:absolute;bottom:-1px;left:0;right:0}.app-brand{flex-shrink:0;align-items:center;gap:13px;display:flex}.app-brand-text{flex-direction:column;justify-content:center;min-width:0;line-height:1.15;display:flex}.app-brand-title{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text);white-space:nowrap;font-size:16px;font-weight:700}.app-brand-subtitle{color:var(--text3);letter-spacing:.02em;white-space:nowrap;margin-top:2px;font-size:11.5px}.tabs{background:0 0;align-items:center;gap:4px;margin:0 auto;padding:0;display:flex}.tabs button{height:40px;color:var(--color-text-muted);cursor:pointer;font-family:var(--font-body);background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:0 15px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:flex}.tabs button svg{flex-shrink:0}.tabs button:hover{background:var(--color-surface-alt);color:var(--color-text)}.tabs button.active{border-color:var(--color-primary);background:var(--brand-soft);color:var(--color-primary)}.app-user{flex-shrink:0;align-items:center;gap:14px;display:flex}.icon-btn{border:1px solid var(--line2);background:var(--color-surface);width:38px;height:38px;color:var(--color-text-muted);cursor:pointer;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:flex}.icon-btn svg{flex-shrink:0}.icon-btn:hover{background:var(--color-surface-alt);color:var(--color-text)}.icon-btn.is-theme{color:var(--color-warning)}.icon-btn.active{border-color:var(--color-primary);color:var(--color-primary)}.app-user-id{border-left:1px solid var(--color-border);align-items:center;gap:9px;padding-left:14px;display:flex}.app-user-avatar{background:var(--color-surface-alt);border:1px solid var(--line2);width:34px;height:34px;color:var(--color-text-muted);border-radius:50%;justify-content:center;align-items:center;display:flex}.app-user-email{color:var(--color-text-muted);font-size:12.5px;font-family:var(--font-mono)}.app-logout{border:1px solid var(--line2);background:var(--color-surface);height:38px;color:var(--color-text);font-family:var(--font-body);cursor:pointer;border-radius:9px;align-items:center;gap:7px;padding:0 16px;font-size:13px;font-weight:600;transition:color .15s,border-color .15s;display:flex}.app-logout:hover{border-color:var(--color-danger);color:var(--color-danger)}.alert-strip{background:var(--bg2);border-bottom:1px solid var(--color-border);z-index:10;flex:none;align-items:center;gap:14px;padding:9px 22px;display:flex;position:relative}.alert-strip-title{border-right:1px solid var(--color-border);color:var(--text3);align-items:center;gap:8px;padding-right:16px;display:flex}.alert-strip-title span{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:11px}.alert-strip-pills{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.alert-pill{color:var(--ac);background:color-mix(in srgb, var(--ac) 12%, transparent);border:1px solid color-mix(in srgb, var(--ac) 32%, transparent);border-radius:8px;align-items:center;gap:8px;padding:5px 12px;display:flex}.alert-pill b{font-family:var(--font-mono);font-size:13px;font-weight:700}.alert-pill-label{letter-spacing:.06em;text-transform:uppercase;opacity:.85;font-size:11.5px}.alert-dot{background:var(--ac);width:8px;height:8px;box-shadow:0 0 8px var(--ac);border-radius:50%;flex:none}.alert-dot.is-pulse{animation:1.3s ease-in-out infinite fpulse}.alert-strip-calm{color:var(--color-text-muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.alert-shift{font-family:var(--font-mono);color:var(--text3);align-items:center;gap:7px;margin-left:auto;font-size:12px;display:flex}.gantt-page{flex-direction:column;height:100%;min-height:0;display:flex}.gantt-page>.gantt-layout{flex:auto;min-height:0}.app-main{background-image:radial-gradient(#22d3ee0d 1px,#0000 1px);background-size:22px 22px;flex:1;padding:20px 24px;overflow:auto}.app-main--flush{background-image:none;padding:0;overflow:hidden}.login-screen{background:var(--color-bg);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);flex-direction:column;gap:10px;width:320px;padding:32px 28px;display:flex}.login-card h2{font-family:var(--font-display);margin:0}.login-card .panel-hint{margin:0 0 8px}.login-card input{width:100%}.login-error{color:var(--color-danger-text);background:var(--color-danger-bg);border-radius:var(--radius-md);padding:6px 10px;font-size:13px}button{font:inherit;cursor:pointer;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,transform 50ms}button:hover{border-color:var(--color-dashed-border-soft)}button:active{transform:translateY(1px)}button.primary{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}button.primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:var(--color-on-primary)}button.danger{background:var(--color-danger-bg);color:var(--color-danger-text);border-color:var(--color-danger)}button.danger:hover{background:#f8717138}button.small{padding:3px 10px;font-size:12px}input,select,textarea{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);padding:7px 10px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}textarea{width:100%;min-height:50px}.gantt{background:var(--color-bg);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.gantt-watermark{pointer-events:none;z-index:0;display:var(--wm-show,flex);justify-content:center;align-items:center;position:absolute;inset:0;overflow:hidden}.gantt-watermark-mark{width:var(--wm-size,min(64vh, 660px));height:var(--wm-size,min(64vh, 660px));background:linear-gradient(122deg, color-mix(in srgb, var(--color-text) 7%, transparent) 0%, color-mix(in srgb, var(--color-text) 7%, transparent) 40%, color-mix(in srgb, var(--wm-glow,var(--color-primary)) 70%, #fff) 47%, #fff 50%, color-mix(in srgb, var(--wm-glow,var(--color-primary)) 70%, #fff) 53%, color-mix(in srgb, var(--color-text) 7%, transparent) 60%, color-mix(in srgb, var(--color-text) 7%, transparent) 100%);opacity:var(--wm-op,.28);animation:6.5s linear infinite logoShine;animation-play-state:var(--wm-play,running);background-position:145% 145%;background-size:300% 300%;-webkit-mask:url(/logo-outline.png) 50%/contain no-repeat;mask:url(/logo-outline.png) 50%/contain no-repeat}@keyframes logoShine{0%{background-position:145% 145%}to{background-position:-45% -45%}}.gantt-toast{background:var(--color-ink);color:var(--color-on-ink);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:20;white-space:nowrap;border:1px solid var(--color-border);padding:10px 18px;font-size:13px;font-weight:600;animation:.15s ease-out toast-in;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.gantt-toast{align-items:center;gap:4px;display:flex}.gantt-toast-btn{color:var(--color-on-ink);cursor:pointer;background:#ffffff24;border:1px solid #ffffff47;border-radius:6px;flex-shrink:0;margin-left:8px;padding:3px 12px;font-size:12px;font-weight:700}.gantt-toast-btn:hover{background:#ffffff42}.gantt-bar-advance{z-index:3;cursor:pointer;color:#10141c;opacity:0;background:#ffffffeb;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:11px;font-weight:800;line-height:1;transition:opacity .12s,transform .1s;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%);box-shadow:0 1px 2px #00000059}.gantt-bar:hover .gantt-bar-advance{opacity:1}.gantt-bar-advance:hover{background:#fff;transform:translateY(-50%)scale(1.08)}.gantt-bar-advance:active{transform:translateY(-50%)scale(.95)}.gantt-bar-advance.is-due{opacity:1;animation:1.5s ease-in-out infinite advance-pulse}@keyframes advance-pulse{0%,to{box-shadow:0 0 #ffffffb3}50%{box-shadow:0 0 0 5px #fff0}}.cc-advance{white-space:nowrap;cursor:pointer;border:1px solid var(--color-primary);background:var(--color-primary-light);color:var(--color-primary);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.cc-advance:hover{background:color-mix(in srgb, var(--color-primary) 24%, transparent)}.cc-advance.is-due{animation:1.5s ease-in-out infinite cc-advance-pulse}@keyframes cc-advance-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-primary) 55%, transparent)}50%{box-shadow:0 0 0 5px #0000}}.gantt-toolbar{border-bottom:1px solid var(--color-border);z-index:1;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex;position:relative}.gantt-toolbar>strong{font-family:var(--font-mono);font-weight:700}.toolbar-divider{background:var(--color-border);flex-shrink:0;width:1px;height:22px}.date-nav{border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:center;gap:2px;padding:2px;display:flex}.date-nav button{border:none;padding:4px 8px;line-height:1}.date-nav strong{font-family:var(--font-mono);white-space:nowrap;padding:0 4px;font-size:12px;font-weight:700}.date-nav-sep{background:var(--color-border);width:1px;height:16px;margin:0 2px}.date-nav select{color:var(--color-text-muted);background:0 0;border:none;padding:4px 4px 4px 0;font-size:12px}.toolbar-tools{align-items:center;gap:8px;display:flex}.toolbar-tools>button{color:var(--color-text-muted);background:0 0;border:1px solid #0000;padding:4px 8px;font-size:14px}.toolbar-tools>button:hover{border-color:var(--color-border);color:var(--color-text)}.legend{font-family:var(--font-mono);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.09em;gap:18px;margin-left:auto;font-size:11px;font-weight:500;display:flex}.legend-item{align-items:center;gap:7px;display:flex}.legend-item i{border-radius:3px;width:11px;height:11px;display:inline-block}.gantt-scroll{z-index:1;flex:1;position:relative;overflow:auto}.gantt-grid{position:relative}.gantt-header{background:var(--bg2);z-index:3;border-bottom:1px solid var(--line2);flex-direction:column;display:flex;position:sticky;top:0}.gantt-header-row{display:flex}.gantt-hour-row{border-top:1px solid var(--color-border);height:20px;display:flex}.gantt-corner-sub{background:var(--bg2);z-index:6;flex-shrink:0;width:220px;min-width:220px;position:sticky;left:0}.gantt-hour-labels{position:relative}.gantt-hour-label{font-size:10px;font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;padding-top:3px;position:absolute;top:0;transform:translate(-50%)}.gantt-hour-label.is-day-start{color:var(--color-text);font-weight:700}.gantt-hour-line{background:var(--color-border);opacity:.45;width:1px;position:absolute;top:0;bottom:0}.gantt-hour-line.is-day-start{opacity:.9}.gantt-offhours-band{background:repeating-linear-gradient(135deg,#00000059 0 6px,#0000002e 6px 12px);position:absolute;top:0;bottom:0}[data-theme=light] .gantt-offhours-band{background:repeating-linear-gradient(135deg,#17140f12 0 6px,#17140f08 6px 12px)}.gantt-bar.is-ot-start:before,.gantt-bar.is-ot-end:after{content:"";background:var(--color-warning);z-index:1;pointer-events:none;width:3px;position:absolute;top:0;bottom:0}.gantt-bar.is-ot-start:before{border-radius:5px 0 0 5px;left:0}.gantt-bar.is-ot-end:after{border-radius:0 5px 5px 0;right:0}.gantt-row-label{border-right:1px solid var(--color-border);background:var(--bg2);z-index:5;justify-content:space-between;align-items:center;gap:6px;width:220px;min-width:220px;padding:10px 16px;font-size:14px;font-weight:700;display:flex;position:sticky;left:0}.load-wrap{flex-shrink:0;align-items:center;gap:8px;display:flex}.load-bar{background:var(--color-border);border-radius:3px;flex-shrink:0;width:40px;height:5px;overflow:hidden}.load-bar>i{background:var(--color-success);border-radius:3px;height:100%;display:block}.load-bar.load-mid>i{background:var(--color-warning)}.load-bar.load-high>i{background:var(--color-danger)}.load-pill{font-family:var(--font-mono);color:var(--color-success);text-align:right;flex-shrink:0;min-width:34px;font-size:11.5px;font-weight:600}.load-pill.load-mid{color:var(--color-warning)}.load-pill.load-high{color:var(--color-danger)}.gantt-corner{background:var(--bg2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--text3);font-size:11px;font-weight:400}.gantt-days{display:flex}.gantt-day{font-family:var(--font-mono);text-align:center;border-right:1px solid var(--color-border);text-transform:capitalize;letter-spacing:.04em;color:var(--color-text-muted);padding:10px 8px;font-size:13px;font-weight:600}.gantt-day.is-today{background:color-mix(in srgb, var(--color-primary) 6%, transparent);color:var(--color-primary);font-weight:700}.gantt-row{border-bottom:1px solid var(--color-border);display:flex}.gantt-row:hover .gantt-row-label{background:var(--color-surface-alt)}.gantt-row-track{position:relative}.gantt-cell{border-right:1px solid var(--color-surface-alt);position:absolute;top:0;bottom:0}.gantt-cell.is-today{background:color-mix(in srgb, var(--color-primary) 4%, transparent)}.gantt-bar{color:var(--color-text);font-family:var(--font-mono);cursor:grab;background:color-mix(in srgb, var(--jc) 15%, var(--color-surface));border:1px solid color-mix(in srgb, var(--jc) 42%, transparent);border-left:3px solid var(--jc);-webkit-user-select:none;user-select:none;border-radius:9px;align-items:center;padding:0 9px;font-size:12px;font-weight:600;transition:opacity .2s,box-shadow .2s,transform .12s;display:flex;position:absolute;overflow:hidden}.gantt-bar.is-delay{animation:2.4s ease-in-out infinite fglow}.gantt-bar:hover{box-shadow:0 4px 18px -6px color-mix(in srgb, var(--jc) 55%, transparent)}.gantt-bar:active{cursor:grabbing}.gantt-bar.is-dimmed{opacity:.25}.gantt-bar.is-focused{box-shadow:0 0 0 2px var(--color-primary), 0 0 0 4px #22d3ee40, 0 2px 6px #00000080;z-index:1;transform:translateY(-1px)}.gantt-bar.has-conflict{box-shadow:0 0 0 2px var(--color-warning), 0 2px 6px #00000080}.gantt-bar.has-conflict.is-focused{box-shadow:0 0 0 2px var(--color-warning), 0 0 0 4px var(--color-ink)}[data-theme=light] .gantt-bar.is-focused{box-shadow:0 0 0 2px var(--color-ink), 0 2px 6px #17140f59}.gantt-bar.is-locked{cursor:pointer}.gantt-bar.is-dragging{z-index:6;transition:none;box-shadow:0 4px 14px #0009}.conflict-flag{margin-right:4px;font-size:11px}.conflict-banner{background:var(--color-warning-bg);color:var(--color-warning);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.gantt-bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gantt-bar-resize{cursor:ew-resize;z-index:2;width:10px;position:absolute;top:0;bottom:0}.gantt-bar-resize.left{left:0}.gantt-bar-resize.right{right:0}.gantt-bar-resize:after{content:"";background:#fff0;border-radius:2px;width:3px;height:16px;transition:background .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gantt-bar:hover .gantt-bar-resize:after{background:#ffffff80}.gantt-bar-resize:hover:after{background:#ffffffe6}.gantt-bar-tooltip{background:var(--color-ink);color:var(--color-on-ink);font-family:var(--font-mono);white-space:nowrap;z-index:7;pointer-events:none;box-shadow:var(--shadow-md);border:1px solid var(--color-border);border-radius:6px;padding:6px 10px;font-size:11px;font-weight:600;position:absolute;bottom:calc(100% + 6px);left:0}.gantt-bar-tooltip-title{font-family:var(--font-display);margin-bottom:3px;font-weight:700}.gantt-bar-tooltip-sub{font-family:var(--font-mono);color:var(--color-on-ink-muted);font-size:10px;font-weight:500}.gantt-bar-tooltip-sub.is-conflict{color:var(--color-warning)}.gantt-bar-tooltip-sub.is-overtime{color:var(--color-warning);margin-top:2px}.gantt-links{z-index:1}.gantt-link{stroke:var(--color-primary);stroke-width:2px;stroke-dasharray:1 5;stroke-linecap:round;stroke-linejoin:round;opacity:.5;transition:opacity .15s,stroke-width .15s}.gantt-link.is-focused{stroke-width:2.5px;opacity:1}.gantt-bar-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex;overflow:hidden}.gantt-bar-sub{font-family:var(--font-mono);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:500;overflow:hidden}.gantt-now-line{background:var(--color-danger);z-index:4;pointer-events:none;width:2px;box-shadow:0 0 10px var(--color-danger);position:absolute;top:0}.gantt-now-label{background:var(--color-danger);color:#120306;font-family:var(--font-mono);white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:700;position:absolute;top:-2px;left:4px}.gantt-deadline-line{z-index:1;pointer-events:none;background:repeating-linear-gradient(180deg, var(--color-warning) 0 6px, transparent 6px 10px);width:2px;position:absolute;top:0}.gantt-deadline-label{background:var(--color-warning-strong);color:#fff;font-family:var(--font-mono);white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:10px;position:absolute;top:-2px;left:4px}.gantt-layout{gap:0;height:100%;display:flex}.job-sidebar{background:var(--bg2);border-right:1px solid var(--color-border);flex-direction:column;width:320px;min-width:320px;display:flex;overflow:hidden}.job-search-wrap{flex-shrink:0;margin:16px 16px 12px;position:relative}.job-search-icon{color:var(--text3);display:flex;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.job-search{border:1px solid var(--line2);background:var(--color-surface);width:100%;height:42px;color:var(--color-text);font-family:var(--font-body);border-radius:10px;outline:none;margin:0;padding:0 14px 0 40px;font-size:13.5px}.job-search:focus{border-color:var(--color-primary)}.job-queue-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text3);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 16px 6px;font-size:11px;display:flex}.job-queue-label span:last-child{letter-spacing:0;text-transform:none}.job-sidebar-new{background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:10px;flex-shrink:0;margin:8px 16px 16px;padding:12px;font-size:13.5px;font-weight:700}.job-sidebar-new:hover{background:var(--color-primary-dark)}.job-list{flex-direction:column;flex:1;gap:11px;padding:6px 14px 20px;display:flex;overflow-y:auto}.job-item{cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--sc,var(--color-border));border-radius:12px;padding:14px 15px;transition:border-color .15s,transform .12s,box-shadow .2s}.job-item:hover,.job-item.hovered{border-color:var(--line2)}.job-item.is-delay{box-shadow:0 4px 20px -8px color-mix(in srgb, var(--sc) 55%, transparent)}.job-item-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.job-item-title{font-family:var(--font-body);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:700;overflow:hidden}.job-status-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;color:var(--badge-color);background:color-mix(in srgb, var(--badge-color) 15%, transparent);border:1px solid color-mix(in srgb, var(--badge-color) 38%, transparent);border-radius:6px;flex-shrink:0;padding:4px 9px;font-size:10px;font-weight:700}.job-item-head-actions{flex-shrink:0;align-items:center;gap:5px;display:flex}.job-item-finish{border:1px solid var(--color-border);width:18px;height:18px;color:var(--color-success);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:11px;font-weight:700;line-height:1;display:flex}.job-item-finish:hover{background:var(--color-success);border-color:var(--color-success);color:var(--color-on-primary)}.job-item-order{color:var(--text3);font-weight:500;font-family:var(--font-mono);font-size:12px}.job-item-sub{font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:12px;overflow:hidden}.job-item-meta{flex-direction:column;gap:5px;margin-top:11px;display:flex}.job-meta-row{color:var(--color-text-muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.job-meta-row svg{color:var(--text3);flex-shrink:0}.job-meta-row.is-done,.job-meta-row.is-done svg{color:var(--color-success)}.job-meta-row.is-danger{color:var(--color-danger)}.job-meta-row.is-warn{color:var(--color-warning)}.job-meta-row.is-warn svg,.job-meta-row.is-danger svg{color:currentColor}.job-meta-dot{background:var(--color-danger);border-radius:50%;flex-shrink:0;width:7px;height:7px}.job-item-route-row{align-items:center;gap:6px;margin-top:11px;display:flex}.job-item-route{scroll-behavior:auto;flex:1;align-items:center;gap:5px;min-width:0;display:flex;overflow-x:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.job-route-step{flex-shrink:0;align-items:center;gap:5px;transition:opacity .15s;display:flex}.job-route-chip{font-family:var(--font-mono);color:var(--color-text-muted);background:var(--color-surface-alt);border:1px solid var(--line2);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:92px;padding:3px 9px;font-size:11px;font-weight:500;overflow:hidden}.job-route-chip.is-current{color:var(--color-primary);background:var(--brand-soft);border-color:color-mix(in srgb, var(--color-primary) 45%, transparent);box-shadow:none}.job-route-arrow{color:var(--text3);flex-shrink:0;font-size:11px}.job-item-add-stage{border:1px dashed var(--line2);width:22px;height:22px;color:var(--text3);background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;display:flex}.job-item-add-stage:hover{background:var(--brand-soft);border-color:var(--color-primary);color:var(--color-primary)}.job-item.is-queued{border-radius:12px}.job-item-queued-hint{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 12%, transparent);border:1px solid color-mix(in srgb, var(--color-warning) 35%, transparent);border-radius:8px;align-items:center;gap:8px;margin-top:11px;padding:8px 10px;font-size:12px;line-height:1.35;display:flex}.job-item-queued-hint svg{flex-shrink:0}.job-empty{text-align:center;color:var(--color-text-muted);padding:16px;font-size:13px}.car-detail-modal{max-height:90vh}.car-detail-header h3{margin:0 0 4px}.car-detail-body{flex-direction:column;gap:18px;max-height:62vh;padding-right:2px;display:flex;overflow-y:auto}.car-detail-section h4{margin:0 0 8px}.car-detail-section textarea{width:100%;margin-top:8px}.car-stepper{flex-direction:column;gap:0;display:flex}.car-stepper-item{cursor:pointer;border-radius:10px;gap:12px;padding:8px 4px;display:flex;position:relative}.car-stepper-item:hover{background:var(--color-surface-alt)}.car-stepper-item:not(:last-child):before{content:"";background:var(--color-border);width:2px;position:absolute;top:36px;bottom:-8px;left:19px}.car-stepper-dot{color:#fff;z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:flex}.car-stepper-content{flex-direction:column;gap:3px;display:flex}.car-stepper-title{font-size:13px;font-weight:700}.car-stepper-sub{color:var(--color-text-muted);font-size:12px;font-family:var(--font-mono)}.car-add-stage{border-top:1px solid var(--color-border);margin-top:14px;padding-top:14px}.car-add-stage h4{font-size:13px}.panel-hint-inline{color:var(--color-text-muted);text-transform:none;letter-spacing:0;font-size:11px;font-weight:400}.modal.cc-modal{border:none;border-left:4px solid var(--sc,var(--color-primary));border-radius:0;gap:0;width:min(760px,94vw);height:100%;max-height:100%;padding:0;animation:.26s cubic-bezier(.2,.8,.2,1) fslide;overflow:hidden;box-shadow:-30px 0 80px -30px #000}.cc-header,.cc-footer{flex-shrink:0}.cc-body{flex:auto;min-height:0}.cc-header{border-bottom:1px solid var(--color-border);background:var(--color-surface);justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 26px;display:flex}.cc-header-main{align-items:flex-start;gap:12px;min-width:0;display:flex}.cc-header-text{min-width:0}.cc-doc-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text3);margin-bottom:7px;font-size:11px}.cc-title{letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:24px;font-weight:800;overflow:hidden}.cc-header-meta{font-family:var(--font-mono);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;font-size:13px;display:flex}.cc-plate{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line2);color:var(--color-text);text-transform:uppercase;background:0 0;border-radius:6px;padding:3px 9px;font-size:13px;font-weight:600}.cc-header-client{color:var(--color-text-muted)}.cc-header-phone{color:var(--text3)}.cc-header-sub{color:var(--color-text-muted);font-size:12px;font-family:var(--font-body)}.cc-insurer-chip{font-family:var(--font-body);background:var(--brand-soft);color:var(--color-primary);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.job-item-insurer{color:var(--color-primary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;font-weight:600;overflow:hidden}.cc-header-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.cc-status-pill{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--badge-color);background:color-mix(in srgb, var(--badge-color) 15%, transparent);border:1px solid color-mix(in srgb, var(--badge-color) 40%, transparent);border-radius:8px;padding:7px 13px;font-size:12px;font-weight:700}.cc-close{width:38px;height:38px;color:var(--color-text-muted);background:var(--color-surface-alt);border:1px solid var(--line2);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.cc-close:hover{background:var(--color-surface);color:var(--color-text)}.cc-body{flex-direction:column;gap:14px;padding:16px 20px;display:flex;overflow-y:auto}.cc-audatex{border:1px dashed var(--color-primary);border-radius:var(--radius-md);background:var(--color-primary-light);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.cc-audatex-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.cc-audatex-hint{color:var(--color-text-muted);flex:1;min-width:160px;font-size:12px}.cc-audatex-ok{color:var(--color-success);font-size:12px;font-weight:700}.cc-audatex-err{color:var(--color-danger-text);font-size:12px;font-weight:600}.cc-imported-head{cursor:pointer;width:100%;color:var(--color-text);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.4px;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:13px;font-weight:800;display:flex}.cc-imported-count{font-family:var(--font-body);text-transform:none;letter-spacing:0;color:var(--color-text-muted);margin-left:auto;font-size:11px;font-weight:600}.cc-imported-chevron{color:var(--color-text-muted);text-align:center;width:14px;font-size:11px}.cc-imported-body{flex-direction:column;gap:12px;margin-top:12px;display:flex}.cc-imported-group{flex-direction:column;display:flex}.cc-imported-sub{text-transform:uppercase;letter-spacing:.3px;color:var(--color-text-muted);justify-content:space-between;gap:10px;margin-bottom:4px;font-size:11px;font-weight:700;display:flex}.cc-imported-sub span:last-child{font-family:var(--font-mono);color:var(--color-text)}.cc-imported-list{flex-direction:column;display:flex}.cc-imported-row{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:5px 0;font-size:12px;display:flex}.cc-imported-row:last-child{border-bottom:none}.cc-imported-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cc-imported-qty{color:var(--color-text-muted);font-family:var(--font-mono);flex-shrink:0;font-size:11px}.cc-imported-price{font-family:var(--font-mono);text-align:right;flex-shrink:0;min-width:84px;font-weight:700}.cc-imported-foot{color:var(--color-text-muted);justify-content:space-between;gap:10px;padding-top:4px;font-size:12px;display:flex}.cc-imported-note{font-style:italic}.cc-section{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px}.cc-section-head{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-muted);align-items:center;gap:12px;margin-bottom:14px;font-size:12px;font-weight:500;display:flex}.cc-section-icon{background:var(--color-primary);border-radius:2px;flex-shrink:0;width:4px;height:15px;font-size:0}.cc-section-hint{font-family:var(--font-body);text-transform:none;letter-spacing:0;color:var(--color-text-muted);margin-left:auto;font-size:11px;font-weight:500}.cc-section-subhead{font-family:var(--font-display);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;margin:14px 0 6px;font-size:12px;font-weight:700}.cc-spec{background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.cc-spec-item{background:var(--color-surface-alt);flex-direction:column;gap:3px;min-width:0;padding:9px 12px;display:flex}.cc-spec-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text3);font-size:10px}.cc-spec-value{font-family:var(--font-mono);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.cc-spec-value.is-risk{color:var(--color-danger-text)}.cc-spec-value.is-empty{color:var(--text3);font-weight:400}.cc-pay-shield{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.cc-stage-progress{align-items:center;gap:8px;margin-top:5px;display:flex}.cc-stage-progress-bar{background:var(--color-border);border-radius:3px;flex:1;height:4px;overflow:hidden}.cc-stage-progress-bar>i{border-radius:3px;height:100%;display:block}.cc-stage-pct{font-family:var(--font-mono);color:var(--color-text-muted);text-align:right;min-width:30px;font-size:10.5px;font-weight:600}.cc-2col{grid-template-columns:1fr 1fr;gap:12px;display:grid}.cc-sum-list{flex-direction:column;display:flex}.cc-sum-row{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:6px 0;font-size:12px;display:flex}.cc-sum-row:last-child{border-bottom:none}.cc-sum-ico{color:var(--color-text-muted);flex-shrink:0;display:flex}.cc-sum-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cc-sum-qty{font-family:var(--font-mono);color:var(--color-text-muted);flex-shrink:0;font-size:11px}.cc-sum-val{font-family:var(--font-mono);flex-shrink:0;font-weight:700}.cc-sum-total{font-family:var(--font-mono);border-top:1px solid var(--line2);justify-content:space-between;margin-top:8px;padding-top:8px;font-size:12px;display:flex}.cc-doc-pill{font-size:10px;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:2px 8px}.cc-journal{flex-direction:column;display:flex}.cc-journal-item{gap:10px;padding:0 0 12px;display:flex;position:relative}.cc-journal-item:last-child{padding-bottom:0}.cc-journal-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px;position:relative}.cc-journal-item:not(:last-child) .cc-journal-dot:after{content:"";background:var(--color-border);width:1px;height:calc(100% - 4px);position:absolute;top:12px;left:50%;transform:translate(-50%)}.cc-journal-body{flex-direction:column;gap:1px;min-width:0;display:flex}.cc-journal-time{font-family:var(--font-mono);color:var(--text3);font-size:10.5px}.cc-journal-text{color:var(--color-text);font-size:12.5px}.cc-grid{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.cc-field{flex-direction:column;gap:5px;min-width:0;display:flex}.cc-field.full{grid-column:1/-1}.cc-field>span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.cc-field>span i{text-transform:none;letter-spacing:0;opacity:.8;font-style:normal;font-weight:500}.cc-field input,.cc-field select{width:100%}.cc-req{color:var(--color-primary);font-weight:800}.cc-cell-btn{text-align:left;background:var(--color-surface);width:100%;color:var(--color-text);border-style:dashed}.cc-cell-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.cc-hint{color:var(--color-text-muted);margin-top:10px;font-size:12px}.cc-deadline{border-radius:var(--radius-md);font-size:12px;font-weight:700;font-family:var(--font-mono);margin-top:10px;padding:7px 12px}.cc-deadline.is-ok{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 14%, transparent)}.cc-deadline.is-at-risk{color:var(--color-warning);background:var(--color-warning-bg)}.cc-deadline.is-missed{color:var(--color-danger-text);background:var(--color-danger-bg)}.cc-notes{width:100%;min-height:60px}.cc-route{flex-direction:column;gap:8px;display:flex}.cc-route-empty{text-align:center;color:var(--color-text-muted);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-md);margin-bottom:10px;padding:14px;font-size:13px}.cc-stage{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.cc-stage.is-editing{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.cc-stage-num{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:2px;font-size:12px;font-weight:800;display:flex}.cc-stage-view{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.cc-stage-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cc-stage-title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.cc-stage-sub{color:var(--color-text-muted);font-size:12px;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cc-stage-edit-hint{color:var(--color-text-muted);opacity:0;flex-shrink:0;font-size:11px;transition:opacity .12s}.cc-stage-view:hover .cc-stage-edit-hint{opacity:1}.cc-stage-edit{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.cc-stage-edit-grid{grid-template-columns:1fr 1fr;gap:8px 10px;display:grid}.cc-stage-edit-actions{justify-content:flex-end;gap:8px;display:flex}.cc-add-stage{width:100%;color:var(--color-primary);border-style:dashed;border-color:var(--color-primary-dark);background:var(--color-primary-light);margin-top:10px;font-weight:700}.cc-add-stage:hover{background:color-mix(in srgb, var(--color-primary) 24%, transparent)}.cc-footer{border-top:1px solid var(--color-border);background:var(--bg2);justify-content:space-between;align-items:center;gap:12px;padding:16px 26px;display:flex}.cc-footer-actions{align-items:center;gap:8px;display:flex}.cc-footer-hint{color:var(--color-text-muted);font-size:12px}.cc-btn-ico{align-items:center;gap:7px;display:inline-flex}.cc-btn-ico svg{flex-shrink:0}.cc-modal.is-narrow{width:min(560px,100vw - 32px)}.cc-linkbtn{cursor:pointer;color:var(--color-primary);background:0 0;border:none;padding:0;font-size:12px;font-weight:700}.cc-linkbtn:hover{text-decoration:underline}.seg{border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;overflow:hidden}.seg-btn{background:var(--color-surface);color:var(--color-text);cursor:pointer;border:none;border-radius:0;flex:1;padding:9px 6px;font-size:13px;font-weight:700}.seg-btn:not(:last-child){border-right:1px solid var(--color-border)}.seg-btn:not(.active):hover{background:var(--color-surface-alt)}.seg-btn.active{color:#fff}.se-quick{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.se-dur-label{color:var(--color-text-muted);margin-right:auto;font-size:12px}.se-dur-label b{color:var(--color-text);font-family:var(--font-mono)}.dur-chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.dur-chip:hover{border-color:var(--color-dashed-border-soft)}.dur-chip.active{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.se-warn{border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning);padding:8px 12px;font-size:12px;font-weight:700}.se-warn.err{background:var(--color-danger-bg);color:var(--color-danger-text)}.se-hint{color:var(--color-text-muted);margin-top:-2px;font-size:11px}.dtf{width:100%;position:relative}.dtf-field{text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;cursor:pointer;align-items:center;gap:8px;padding:7px 10px;display:flex}.dtf-field:hover{border-color:var(--color-dashed-border-soft)}.dtf-field:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.dtf-field.is-empty .dtf-value{color:var(--color-text-muted)}.dtf-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);flex:1;font-size:13px;overflow:hidden}.dtf-cal{opacity:.85;flex-shrink:0;font-size:13px}.dtf-catch{z-index:59;position:fixed;inset:0}.dtf-pop{z-index:60;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;gap:8px;padding:10px;display:flex;position:fixed}.dtf-head{justify-content:space-between;align-items:center;display:flex}.dtf-month{font-family:var(--font-display);font-size:14px;font-weight:700}.dtf-nav{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);width:28px;height:28px;color:var(--color-text);cursor:pointer;padding:0;font-size:16px;line-height:1}.dtf-nav:hover{background:var(--color-surface-alt);border-color:var(--color-dashed-border-soft)}.dtf-wd,.dtf-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.dtf-wd span{text-align:center;color:var(--color-text-muted);text-transform:uppercase;padding:2px 0;font-size:10px;font-weight:700}.dtf-day{aspect-ratio:1;border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-size:12px;font-weight:600;display:flex}.dtf-day:hover{background:var(--color-surface-alt)}.dtf-day.is-other{color:var(--color-text-muted);opacity:.5}.dtf-day.is-today{border-color:var(--color-border);color:var(--color-primary)}.dtf-day.is-sel{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.dtf-time{border-top:1px solid var(--color-border);align-items:center;gap:8px;padding-top:8px;display:flex}.dtf-time span{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.dtf-time input{flex:1}.dtf-foot{border-top:1px solid var(--color-border);align-items:center;gap:6px;padding-top:8px;display:flex}.dtf-foot-btn{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:5px 10px;font-size:12px}.dtf-foot-btn:hover{background:var(--color-surface-alt)}.dtf-foot-btn.primary{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary);margin-left:auto}@media (width<=640px){.cc-grid,.cc-stage-edit-grid{grid-template-columns:1fr}.cc-footer{flex-wrap:wrap}.cc-footer-actions{justify-content:flex-end;width:100%}}.history-panel{max-width:760px}.history-panel .job-search{width:100%;margin:10px 0 16px}.history-list{flex-direction:column;gap:10px;display:flex}.history-item{border:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:12px;padding:12px 14px}.history-item-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.history-item-restore{border-radius:var(--radius-md);border:1px solid var(--color-primary);color:var(--color-primary);background:0 0;flex-shrink:0;padding:4px 10px;font-size:11px}.history-item-restore:hover{background:var(--color-primary-light)}.history-item-date{color:var(--color-text-muted);font-size:11px;font-family:var(--font-mono);margin-top:4px}.history-item-stages{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.history-stage-chip{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:2px 8px;font-size:11px}.gantt{flex:1;min-width:0}.row-mode-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;overflow:hidden}.row-mode-toggle button{border:none;border-radius:0}.row-mode-toggle button.active{background:var(--color-primary);color:var(--color-on-primary)}.zoom-control{border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:center;gap:6px;padding:2px;display:flex}.zoom-control button{border-radius:var(--radius-md);border:none;padding:4px 10px;line-height:1}.zoom-control button:disabled{opacity:.35;cursor:default}.zoom-label{color:var(--color-text-muted);text-align:center;min-width:38px;font-size:12px;font-family:var(--font-mono)}.lock-toggle{font-size:13px}.lock-toggle.active{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning)}.wh{background:var(--color-bg);height:100%;color:var(--color-text);flex-direction:column;display:flex}.wh-toolbar{border-bottom:1px solid var(--color-border);background:var(--bg2);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.wh-body{flex:1;padding:22px;overflow:auto}.wh-count{font-family:var(--font-mono);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);white-space:nowrap;padding:5px 12px;font-size:12.5px}.wh-legend{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-muted);gap:18px;font-size:11px;display:flex}.wh-legend-item{align-items:center;gap:7px;display:flex}.wh-legend-item i{border-radius:3px;width:10px;height:10px;display:inline-block}.wh-zone-chip{font-family:var(--font-mono);letter-spacing:.1em;background:var(--brand-soft);color:var(--color-primary);border:1px solid color-mix(in srgb, var(--color-primary) 40%, transparent);border-radius:6px;padding:4px 12px;font-size:13px}.wh-grid{gap:8px;display:grid}.wh-cell{cursor:pointer;text-align:left;background:var(--color-surface);border-radius:10px;flex-direction:column;min-height:84px;padding:10px;transition:transform .12s,box-shadow .12s;display:flex}.wh-cell:hover{box-shadow:0 0 0 1px color-mix(in srgb, var(--color-primary) 45%, transparent), 0 12px 26px -16px #000000d9;transform:translateY(-2px)}.wh-cell.is-stale{box-shadow:0 0 0 1px color-mix(in srgb, var(--status-delayed) 35%, transparent), 0 0 18px -7px color-mix(in srgb, var(--status-delayed) 60%, transparent)}.wh-cell.is-stale:hover{box-shadow:0 0 0 1px color-mix(in srgb, var(--status-delayed) 60%, transparent), 0 12px 26px -14px color-mix(in srgb, var(--status-delayed) 45%, transparent);transform:translateY(-2px)}.wh-cell-num{font-family:var(--font-mono);white-space:nowrap;align-items:center;gap:4px;margin-bottom:4px;font-size:11px;font-weight:600;display:flex}.wh-cell-num svg{flex-shrink:0}.wh-cell-free-tag{color:var(--text3);align-items:center;gap:6px;margin-top:auto;font-size:11px;display:flex}.wh-cell-free-tag i{background:var(--status-done);border-radius:50%;width:6px;height:6px;display:inline-block}.wh-list{max-width:1120px}.wh-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:16px;margin-bottom:8px;padding:12px 16px;transition:transform .12s,background .12s,border-color .12s;display:flex}.wh-row.is-click{cursor:pointer}.wh-row:hover{background:var(--color-surface-alt)}.wh-row.is-click:hover{border-color:var(--line2);transform:translate(2px)}.wh-row.is-stale{border-left:3px solid var(--status-delayed)}.wh-row.is-occupied{border-left:3px solid var(--status-queued)}.wh-chip{font-family:var(--font-mono);white-space:nowrap;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600}.wh-metric{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem}.wh-metric-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-muted);margin-bottom:6px;font-size:11px}.wh-metric-value{font-family:var(--font-mono);color:var(--color-text);font-size:26px;font-weight:700}.wh-metric.is-alert{border-color:color-mix(in srgb, var(--status-delayed) 45%, transparent);background:color-mix(in srgb, var(--status-delayed) 8%, var(--color-surface))}.wh-metric.is-alert .wh-metric-label,.wh-metric.is-alert .wh-metric-value{color:var(--status-delayed)}.wh-section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text3);margin:0 0 12px;font-size:11px}.wh-modal{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#04060999;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.wh-modal-card{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:12px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 24px 60px #0000008c}.wh-modal-head{border-bottom:1px solid var(--color-border);background:var(--bg2);z-index:1;align-items:center;gap:1rem;padding:1.1rem 1.4rem;display:flex;position:sticky;top:0}.wh-modal-body{padding:1.4rem}.wh-modal-foot{border-top:1px solid var(--color-border);background:var(--bg2);justify-content:flex-end;align-items:center;gap:8px;padding:1rem 1.4rem;display:flex;position:sticky;bottom:0}.wh-modal-title{font-family:var(--font-mono);color:var(--color-text);font-size:16px;font-weight:700}.wh-field-label{font-family:var(--font-mono);color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;font-size:11px;font-weight:600}.wh-close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:20px;line-height:1}.wh-close:hover{color:var(--color-text);background:0 0;border-color:#0000}.wh-link-row{cursor:pointer;border-bottom:1px solid var(--color-border);justify-content:space-between;gap:10px;padding:8px 10px;font-size:13px;display:flex}.wh-link-row:hover{background:var(--color-surface-alt)}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-backdrop.cc-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#040609ad;justify-content:flex-end;align-items:stretch;animation:.18s ffade}.modal{background:var(--color-surface);border-radius:var(--radius-lg);width:360px;box-shadow:var(--shadow-md);border:1px solid var(--color-border);flex-direction:column;gap:10px;padding:22px;display:flex}.modal h3{margin:0 0 4px}.modal label{color:var(--color-text-muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.modal-actions{justify-content:space-between;margin-top:8px;display:flex}.modal-actions>div{gap:8px;display:flex}.stage-editor{width:420px}.stage-editor-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.stage-editor-header h3{margin:0}.stage-editor-car-link{border-radius:var(--radius-md);border:1px solid var(--color-primary);color:var(--color-primary);background:0 0;flex-shrink:0;padding:4px 10px;font-size:12px}.stage-editor-car-link:hover{background:var(--color-primary-light)}.stage-editor-grid{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.stage-editor-grid label:nth-child(odd):last-child{grid-column:1/-1}.job-item-docs{border:1px solid var(--color-border);width:18px;height:18px;color:var(--color-text-muted);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:10px;line-height:1;display:flex}.job-item-docs:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.history-item-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.modal-wide{width:min(820px,100vw - 32px);max-height:90vh}.doc-tabs{flex-wrap:wrap;gap:6px;display:flex}.doc-tabs button.active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.handover-form{background:var(--color-surface-alt);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;gap:14px;padding:12px;display:grid}.handover-col{flex-direction:column;gap:6px;display:flex}.handover-col h4{margin:0 0 2px;font-size:13px}.handover-col textarea{min-height:60px}.doc-modal-body{flex-direction:column;gap:10px;max-height:60vh;padding-right:4px;display:flex;overflow-y:auto}.doc-modal-body h4{margin:8px 0 0}.doc-modal-body textarea{width:100%;min-height:50px}.doc-fields-row{flex-wrap:wrap;gap:10px;display:flex}.doc-fields-row input{flex:1;min-width:120px}.audatex-upload{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.audatex-upload-btn{cursor:pointer;border-radius:var(--radius-md);border:1px dashed var(--color-primary);color:var(--color-primary);background:var(--color-primary-light);align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:700;display:inline-flex}.audatex-upload-btn:hover{background:#22d3ee47}.audatex-upload-btn.is-busy{opacity:.6;cursor:default}.doc-field-label{color:var(--color-text-muted);flex-direction:column;flex:1;gap:4px;min-width:140px;font-size:12px;display:flex}.doc-total{text-align:right;font-size:15px;font-weight:800;font-family:var(--font-mono);margin-top:4px}.doc-summary ul{margin:6px 0;padding-left:18px;font-size:13px}.items-table{border-collapse:collapse;width:100%}.items-table th,.items-table td{text-align:left;padding:5px 4px;font-size:12px}.items-table th{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:10px;font-weight:600}.items-table input{width:100%;min-width:0}.items-table-sum{white-space:nowrap;font-size:12px;font-weight:700;font-family:var(--font-mono)}.panel-wide{grid-column:1/-1}.panel-hint{color:var(--color-text-muted);margin-top:-6px;font-size:12px}.company-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.company-saved{color:var(--color-success);align-self:center;font-size:12px;font-weight:700}.add-next-stage{width:100%;color:var(--color-primary);border-style:dashed;border-color:var(--color-primary-dark);background:var(--color-primary-light);border-radius:var(--radius-md);font-weight:700}.add-next-stage:hover{background:#22d3ee47}.add-next-hint{color:var(--color-text-muted);margin:-2px 0 4px;font-size:11px}.panel-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.panel{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);padding:18px}.panel h3{margin-top:0}.list{flex-direction:column;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.list li{background:var(--color-surface-alt);border-radius:999px;align-items:center;gap:8px;padding:7px 12px;display:flex}.list-icon{color:var(--color-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.list-icon--letter{background:var(--brand-soft);width:22px;height:22px;color:var(--color-primary);font-family:var(--font-mono);border-radius:6px;font-size:12px;font-weight:700}.parts-screen{background:var(--color-bg);height:100%;color:var(--color-text);flex-direction:column;display:flex}.parts-loading{text-align:center;color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.1em;padding:40px}.parts-toolbar{border-bottom:1px solid var(--color-border);background:var(--bg2);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}.parts-search{flex:0 0 280px;position:relative}.parts-search-ico{color:var(--text3);display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.parts-search input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;height:38px;color:var(--color-text);box-sizing:border-box;border-radius:10px;outline:none;padding:0 12px 0 36px;font-size:13px}.parts-search input:focus{border-color:var(--color-primary)}.parts-filters{flex-wrap:wrap;gap:6px;display:flex}.parts-filter{border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;display:inline-flex}.parts-filter b{font-family:var(--font-mono);font-weight:700}.parts-filter.active{background:var(--brand-soft);border-color:var(--color-primary);color:var(--color-primary)}.parts-filter.is-alert{border-color:color-mix(in srgb, var(--status-delayed) 55%, transparent);color:var(--status-delayed)}.parts-total{font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;margin-left:auto;font-size:12.5px}.parts-total b{color:var(--color-text);font-weight:700}.parts-kpis{align-items:center;gap:18px;margin-left:auto;display:flex}.parts-kpi{white-space:nowrap;flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.parts-kpi .k-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text3);font-size:9.5px}.parts-kpi .k-value{font-family:var(--font-mono);color:var(--color-text);font-size:13.5px;font-weight:700}.parts-missing-badge{white-space:nowrap;cursor:help;color:var(--status-delayed);border:1px solid color-mix(in srgb, var(--status-delayed) 45%, transparent);background:color-mix(in srgb, var(--status-delayed) 10%, transparent);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.parts-body{flex-direction:column;flex:1;gap:20px;padding:20px 22px;display:flex;overflow:auto}.parts-empty{color:var(--text3);text-align:center;padding:24px;font-size:14px}.parts-group{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;overflow:hidden}.parts-group-head{background:var(--bg2);border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:11px 14px;display:flex}.parts-car{font-size:14px;font-weight:700}.parts-plate{font-family:var(--font-mono);background:var(--color-surface-alt);border:1px solid var(--line2);border-radius:6px;padding:2px 8px;font-size:12px}.parts-order{font-family:var(--font-mono);color:var(--text3);font-size:12px}.parts-group-count{font-family:var(--font-mono);color:var(--text3);margin-left:auto;font-size:11px}.parts-group-right{align-items:center;gap:12px;margin-left:auto;display:flex}.parts-group-right .parts-group-count{margin-left:0}.parts-gfin{font-family:var(--font-mono);align-items:center;gap:10px;font-size:12.5px;font-weight:700;display:inline-flex}.parts-saving{font-family:var(--font-mono);color:var(--color-text-muted);font-size:11px}.parts-table-wrap{overflow-x:auto}.parts-table{min-width:760px}.parts-row{border-bottom:1px solid var(--color-border);grid-template-columns:120px minmax(150px,1fr) 52px 130px 104px 96px 84px 52px;align-items:center;gap:8px;padding:6px 14px;display:grid}.parts-row:last-child{border-bottom:none}.parts-row--head{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text3);padding:9px 14px;font-size:10px}.parts-row .ta-c{text-align:center}.parts-row .ta-r{text-align:right}.parts-row input,.parts-row select{height:30px;color:var(--color-text);box-sizing:border-box;background:0 0;border:1px solid #0000;border-radius:7px;outline:none;width:100%;padding:0 8px;font-family:inherit;font-size:12.5px}.parts-row input:hover,.parts-row select:hover{border-color:var(--line2)}.parts-row input:focus,.parts-row select:focus{border-color:var(--color-primary);background:var(--color-surface-alt)}.parts-status select{text-align:center;font-size:11px;font-weight:700}.parts-name{flex-direction:column;gap:2px;min-width:0;display:flex}.parts-name-sub{align-items:center;gap:8px;display:flex}.parts-article{font-family:var(--font-mono);color:var(--text3)!important;font-size:11px!important}.parts-eta{font-family:var(--font-mono);color:var(--status-queued);white-space:nowrap;align-items:center;gap:4px;font-size:10px;display:inline-flex}.parts-eta.is-overdue{color:var(--status-delayed)}.parts-eta input{font-family:var(--font-mono);width:64px!important;color:inherit!important;font-size:11px!important}.parts-qty{text-align:center;font-family:var(--font-mono)}.parts-supplier{font-size:12px}.parts-cost{text-align:right;font-family:var(--font-mono)}.parts-buy{font-family:var(--font-mono);font-size:12.5px;font-weight:700}.parts-sell{font-family:var(--font-mono);color:var(--color-text-muted);flex-direction:column;align-items:flex-end;gap:1px;font-size:12px;line-height:1.2;display:flex}.parts-rentab{font-size:10.5px;font-weight:700}.parts-row.is-flagged{background:color-mix(in srgb, var(--status-delayed) 5%, transparent)}.parts-row input.is-required{border-color:color-mix(in srgb, var(--status-delayed) 55%, transparent);background:color-mix(in srgb, var(--status-delayed) 10%, transparent)}.parts-row-hint{color:var(--status-delayed);margin-top:-2px;padding:0 14px 8px;font-size:11.5px}.parts-actions{justify-content:flex-end;align-items:center;gap:4px;display:flex}.parts-order-btn,.parts-del-btn{border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;padding:0;display:inline-flex}.parts-order-btn{color:var(--status-queued);border-color:color-mix(in srgb, var(--status-queued) 45%, transparent)}.parts-order-btn:hover{background:color-mix(in srgb, var(--status-queued) 14%, transparent)}.parts-del-btn{color:var(--color-text-muted)}.parts-del-btn:hover{color:var(--status-delayed);border-color:color-mix(in srgb, var(--status-delayed) 45%, transparent)}.parts-group-empty{color:var(--text3);padding:12px 14px;font-size:12.5px}.parts-add{color:var(--color-primary);border-style:dashed;align-items:center;gap:6px;margin:10px 14px;display:inline-flex}.list-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.list-sub{color:var(--color-text-muted);font-weight:400}.list-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.list-action-btn{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:12px;line-height:1;display:flex}.draggable-list li{cursor:grab}.draggable-list li.is-dragging{opacity:.4}.drag-handle{color:var(--color-text-muted);cursor:grab;flex-shrink:0;font-size:13px}.list li.list-item-editing{border-radius:var(--radius-md);cursor:default;flex-wrap:wrap}.list-edit-input{flex:1;min-width:90px;padding:5px 8px;font-size:13px}.list li select{padding:5px 8px;font-size:13px}.list-empty,.list-loading{color:var(--color-text-muted);text-align:center;background:var(--color-surface-alt);border-radius:var(--radius-md);flex-direction:column;justify-content:center;align-items:center;gap:8px;margin-bottom:10px;padding:20px 12px;font-size:13px;display:flex}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-form.column{flex-direction:column;align-items:stretch}.stage-table{border-collapse:collapse;table-layout:fixed;width:100%;margin:10px 0}.stage-table th,.stage-table td{text-align:left;padding:6px;font-size:13px}.stage-table th{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.stage-table th:first-child,.stage-table td:first-child{width:28px}.stage-table th:last-child,.stage-table td:last-child{width:32px}.stage-table select,.stage-table input{width:100%}.job-form-panel{max-width:760px;margin:0 auto}.job-form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.job-form-grid input{width:100%}.job-form-full{grid-column:1/-1}.job-form-field{color:var(--color-text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.job-form-field input{width:100%}.deadline-warning{background:var(--color-danger-bg);color:var(--color-danger-text);border-radius:999px;margin-top:8px;padding:8px 14px;font-size:13px;font-weight:700}.route-preview{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:12px;overflow:hidden}.route-preview-empty{text-align:center;color:var(--color-text-muted);padding:16px;font-size:13px}.route-preview-scroll{overflow-x:auto}.route-preview-ticks{border-bottom:1px solid var(--color-border);background:var(--color-surface-alt);height:22px;display:flex;position:relative}.route-preview-tick{border-left:1px dashed var(--color-dashed-border-soft);color:var(--color-text-muted);white-space:nowrap;font-size:10px;font-family:var(--font-mono);padding-top:3px;padding-left:3px;position:absolute;top:0;bottom:0}.route-preview-row{border-bottom:1px solid var(--color-surface-alt);display:flex}.route-preview-row:last-child{border-bottom:none}.route-preview-label{background:var(--color-surface);border-right:1px solid var(--color-border);align-items:center;width:150px;min-width:150px;padding:8px 10px;font-size:12px;font-weight:700;display:flex;position:sticky;left:0}.route-preview-track{height:40px;position:relative}.route-preview-block{color:#fff;white-space:nowrap;text-overflow:ellipsis;background:var(--color-route-block);border-radius:5px;align-items:center;height:28px;padding:0 6px;font-size:10px;display:flex;position:absolute;top:6px;overflow:hidden}.route-preview-block.is-draft{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 0 0 2px var(--color-bg), 0 0 0 3px var(--color-primary);z-index:1;font-weight:700}.route-preview-block.is-draft.has-conflict{background:var(--color-danger);color:#fff;box-shadow:0 0 0 2px var(--color-bg), 0 0 0 3px var(--color-danger)}.route-preview-now{background:var(--color-danger);z-index:2;width:2px;position:absolute;top:0;bottom:0}.route-preview-deadline{background:repeating-linear-gradient(180deg, var(--color-warning) 0 6px, transparent 6px 10px);z-index:2;width:2px;position:absolute;top:0}.route-preview-deadline-label{background:var(--color-warning-strong);color:#fff;font-family:var(--font-mono);white-space:nowrap;border-radius:3px;padding:1px 4px;font-size:10px;position:absolute;top:-1px;left:4px}.route-preview-hint{color:var(--color-text-muted);background:var(--color-surface-alt);border-top:1px solid var(--color-border);padding:6px 10px;font-size:11px}.gantt-loading,.gantt-empty{background:var(--color-surface);border-radius:var(--radius-lg);height:100%;box-shadow:var(--shadow-sm);color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px;display:flex}.gantt-loading span{font-size:13px}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.gantt-empty-icon{font-size:40px}.gantt-empty h3{color:var(--color-text);margin:0}.gantt-empty p{max-width:320px;margin:0;font-size:13px}.gantt-empty button{margin-top:6px}.list-loading,.list-empty{color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:28px 16px;font-size:13px;display:flex}.board{flex-direction:column;gap:16px;display:flex}.board-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;gap:24px;padding:14px 18px;display:flex}.board-summary-stat{flex-direction:column;gap:2px;display:flex}.board-summary-stat-value{font-family:var(--font-mono);color:var(--color-primary);font-size:20px;font-weight:800}.board-summary-stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:11px}.board-range-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-left:auto;display:flex;overflow:hidden}.board-range-toggle button{border:none;border-radius:0}.board-range-toggle button.active{background:var(--color-primary);color:var(--color-on-primary)}.board-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.board-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:12px;padding:16px;display:flex;position:relative;overflow:hidden}.board-card:before{content:"";background:var(--card-accent,var(--color-border));height:2px;position:absolute;top:0;left:0;right:0}.board-card-head{align-items:center;gap:8px;display:flex}.board-card-icon{font-size:16px}.board-card-name{flex:1;font-size:14px;font-weight:700}.board-card-status{width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--dot-color) 25%, transparent);background:var(--dot-color);border-radius:50%;flex-shrink:0}.board-card-body{align-items:center;gap:14px;display:flex}.board-ring{background:conic-gradient(var(--color-primary) calc(var(--pct) * 1%), var(--color-surface-alt) 0);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.board-ring-inner{background:var(--color-surface);width:48px;height:48px;font-family:var(--font-mono);color:var(--color-text);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.board-card-current{flex-direction:column;gap:2px;min-width:0;display:flex}.board-card-current-label{text-transform:uppercase;letter-spacing:.3px;color:var(--color-text-muted);font-size:10px}.board-card-current-value{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.board-card-current-sub{color:var(--color-text-muted);font-size:11px}.board-card-idle{color:var(--color-text-muted);font-size:13px;font-style:italic}.board-queue{border-top:1px solid var(--color-border);flex-direction:column;gap:6px;padding-top:10px;display:flex}.board-queue-title{text-transform:uppercase;letter-spacing:.3px;color:var(--color-text-muted);margin-bottom:2px;font-size:10px}.board-queue-item{align-items:center;gap:6px;font-size:12px;display:flex}.board-queue-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.board-queue-time{font-family:var(--font-mono);color:var(--color-text-muted);flex-shrink:0}.board-queue-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-queue-empty{color:var(--color-text-muted);font-size:12px;font-style:italic}@media (width<=1100px){.gantt-row-label{width:170px;min-width:170px}.job-sidebar{width:220px;min-width:220px}}@media (width<=900px){.app-header{flex-wrap:wrap;gap:10px;padding:10px 16px}.tabs{order:3;justify-content:flex-start;width:100%;overflow-x:auto}.app-main{padding:14px}.gantt-layout{flex-direction:column;height:auto}.job-sidebar{flex-flow:wrap;align-items:center;gap:8px;width:100%;min-width:0;padding:10px}.job-search{flex:160px;order:1;min-width:140px;margin:0}.job-sidebar-new{white-space:nowrap;flex-shrink:0;order:2;margin:0}.job-list{flex-direction:row;flex:100%;order:3;padding:4px 2px;overflow:auto hidden}.job-item{flex-shrink:0;min-width:230px}.gantt{flex:none;height:72vh}.panel-grid{grid-template-columns:1fr}}@media (width<=640px){.app-brand-subtitle{display:none}.app-brand-title{font-size:14px}.app-main{padding:10px}.job-form-grid{grid-template-columns:1fr}.modal{width:calc(100vw - 32px);max-height:86vh;overflow-y:auto}.car-detail-body{max-height:70vh}.gantt-row-label{width:100px;min-width:100px;padding:8px;font-size:12px}.gantt-toolbar{gap:6px;padding:8px}.gantt-toolbar>strong{font-size:12px}.legend{display:none}.history-panel{max-width:100%}.stage-table{white-space:nowrap;display:block;overflow-x:auto}.company-grid,.handover-form{grid-template-columns:1fr}.doc-fields-row{flex-direction:column}}.app--tv{padding:0}.app--tv .gantt-layout{box-sizing:border-box;flex:1;min-height:0;padding:14px}.gantt-layout--tv{font-size:15px}.gantt-layout--tv .job-item-title{font-size:16px}.gantt-layout--tv .gantt-row-label{font-size:15px}.gantt-layout--tv .gantt-day{font-size:14px}.gantt-layout--tv .gantt-bar-label{font-size:15px}.gantt-layout--tv .gantt-bar-sub{font-size:12px}.job-item.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.gantt-toolbar--tv{justify-content:space-between;padding:12px 18px}.tv-clock{align-items:baseline;gap:12px;display:flex}.tv-clock-time{font-family:var(--font-mono);letter-spacing:1px;color:var(--color-text);font-size:30px;font-weight:800;line-height:1}.tv-clock-date{color:var(--color-text-muted);text-transform:capitalize;font-size:15px}.gantt-toolbar--tv .legend{margin-left:0;font-size:13px}.tv-error{background:var(--color-bg);height:100vh;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:15px;display:flex}.modal.costing-modal{gap:0;width:min(880px,100vw - 40px);max-height:92vh;padding:0;overflow:hidden}.costing-source{color:var(--color-text-muted);background:var(--color-surface-alt);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;padding:8px 12px;font-size:13px;display:flex}.costing-source b{color:var(--color-text)}.costing-table th,.costing-table td{vertical-align:middle}.costing-code{color:var(--color-text-muted);font-size:11px}.costing-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.costing-num.is-loss{color:var(--color-danger)}.costing-num.is-gain{color:var(--color-success)}.costing-table tfoot td{border-top:1px solid var(--color-border);padding-top:8px;font-weight:600}.costing-input{background:var(--color-surface);border:1px solid var(--color-border);width:100%;max-width:130px;color:var(--color-text);text-align:right;border-radius:6px;padding:5px 8px;font-size:13px}.costing-fields{flex-wrap:wrap;gap:16px;display:flex}.costing-fields .cc-field{flex:220px}.costing-fields .cc-field i{color:var(--color-text-muted);font-size:11px}.costing-auto-row{align-items:center;gap:6px;display:flex}.costing-summary{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:8px;margin-top:4px;padding:14px 16px;display:flex}.costing-summary-row{justify-content:space-between;align-items:baseline;font-size:14px;display:flex}.costing-summary-row .costing-summary-val{font-variant-numeric:tabular-nums;font-weight:700}.costing-breakdown{color:var(--color-text-muted);flex-wrap:wrap;gap:4px 14px;font-size:12px;display:flex}.costing-summary-row.is-total{border-top:1px solid var(--color-border);padding-top:10px;font-size:17px}.costing-summary-row.is-total.is-gain{color:var(--color-success)}.costing-summary-row.is-total.is-loss{color:var(--color-danger)}
