:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;font-weight:inherit;margin:0}body{min-height:100vh;color:var(--color-text);background:var(--color-background);letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,Helvetica Neue,sans-serif;font-size:15px;font-weight:500;line-height:1.6;transition:color .5s,background-color .5s}:root{--bg:#f4f6f8;--panel:#fff;--panel-muted:#eef2f6;--field:#fff;--field-border:#cfd7e2;--table-head:#f8fafc;--sidebar:#17202a;--hover:#f4f7fb;--text:#17202a;--muted:#667085;--line:#d7dde5;--primary:#2457c5;--primary-strong:#183f91;--danger:#b42318;--success-bg:#e8f4ef;--success-text:#1f6b4f;--shadow:0 12px 28px #17202a14}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f141b;--panel:#151c25;--panel-muted:#1d2632;--field:#101720;--field-border:#334155;--table-head:#111923;--sidebar:#0b1118;--hover:#1d2632;--text:#e6edf5;--muted:#98a6b8;--line:#2c3847;--primary:#6ea2ff;--primary-strong:#4c7fe0;--danger:#ff8b7f;--success-bg:#12372b;--success-text:#8ee0bd;--shadow:0 12px 28px #00000052}:root[data-theme=night]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e141c;--panel:#151c26;--panel-muted:#1a2430;--field:#101821;--field-border:#304052;--table-head:#101822;--sidebar:#090f16;--hover:#1d2a38;--text:#dbe5ef;--muted:#8fa0b3;--line:#273545;--primary:#7aa7ff;--primary-strong:#9bbcff;--danger:#ff9b8e;--success-bg:#14352d;--success-text:#91d8bd;--shadow:0 10px 26px #00000042, inset 0 1px 0 #ffffff06}:root[data-theme=purple-light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f5fa;--panel:#fff;--panel-muted:#f1edf6;--field:#fff;--field-border:#d9cfe5;--table-head:#fbf8ff;--sidebar:#241833;--hover:#f4eefb;--text:#201929;--muted:#756982;--line:#ded5e8;--primary:#6b3fa0;--primary-strong:#4e2f78;--danger:#b42318;--success-bg:#e8f4ef;--success-text:#1f6b4f;--shadow:0 12px 28px #462a641a}:root[data-theme=purple-dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141019;--panel:#1d1725;--panel-muted:#281f32;--field:#15101d;--field-border:#453556;--table-head:#181220;--sidebar:#0f0b14;--hover:#2b2136;--text:#f2ecf8;--muted:#b4a7c3;--line:#392c49;--primary:#b38cff;--primary-strong:#8f68da;--danger:#ff8b7f;--success-bg:#18392e;--success-text:#8ee0bd;--shadow:0 12px 28px #00000057}:root[data-theme=green-light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f7f5;--panel:#fff;--panel-muted:#edf4f1;--field:#fff;--field-border:#cbdcd5;--table-head:#f7fbf9;--sidebar:#10251f;--hover:#edf7f3;--text:#15231f;--muted:#62746e;--line:#d3e1dc;--primary:#28785f;--primary-strong:#1f5d4a;--danger:#b42318;--success-bg:#e4f4ee;--success-text:#1f6b4f;--shadow:0 12px 28px #172a2314}:root[data-theme=green-dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1513;--panel:#13201c;--panel-muted:#1b2b26;--field:#0f1916;--field-border:#2f4a42;--table-head:#101a17;--sidebar:#08100e;--hover:#1c2d28;--text:#e6f2ef;--muted:#9bb5ad;--line:#294039;--primary:#69c7a5;--primary-strong:#48a987;--danger:#ff8b7f;--success-bg:#12372b;--success-text:#8ee0bd;--shadow:0 12px 28px #00000052}*{box-sizing:border-box}body{min-width:320px;color:var(--text);background:radial-gradient(circle at top right, color-mix(in srgb, var(--primary) 9%, transparent), transparent 34rem), var(--bg);font-feature-settings:"tnum" 1}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--primary);text-decoration:none}#app{min-height:100vh}.topbar-toggle{min-width:62px;min-height:38px;color:var(--primary);background:var(--field);border:1px solid var(--line);box-shadow:none;cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:850;transition:border-color .18s,background .18s,color .18s,transform .18s;display:inline-flex}.topbar-toggle:hover,.theme-select:hover{border-color:color-mix(in srgb, var(--primary) 48%, var(--line));background:color-mix(in srgb, var(--field) 84%, var(--primary) 16%)}.topbar-toggle:active,.theme-select:active{transform:translateY(1px)}.topbar-toggle span{color:#fff;background:var(--primary);border-radius:5px;place-items:center;width:20px;height:20px;font-size:12px;font-weight:900;display:grid}.theme-select{min-height:38px;color:var(--primary);background:var(--field);border:1px solid var(--line);border-radius:7px;align-items:center;gap:6px;transition:border-color .18s,background .18s,transform .18s;display:inline-flex;overflow:hidden}.theme-select span{color:#fff;background:var(--primary);align-self:stretch;place-items:center;width:32px;font-size:12px;font-weight:900;display:grid}.theme-select select{width:112px;height:36px;min-height:36px;color:var(--text);background:linear-gradient(45deg, transparent 50%, var(--muted) 50%) right 12px center / 5px 5px no-repeat, linear-gradient(135deg, var(--muted) 50%, transparent 50%) right 7px center / 5px 5px no-repeat, var(--field);appearance:none;cursor:pointer;border:0;border-radius:0;outline:0;padding:0 26px 0 0;font-size:13px;font-weight:850}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s;display:grid}.app-shell.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.sidebar{color:#f7fafc;background:var(--sidebar);height:100vh;padding:24px 18px;position:sticky;top:0;overflow:hidden}.brand{border-bottom:1px solid #ffffff24;flex-direction:column;align-items:flex-start;gap:10px;padding:4px 6px 24px;display:flex}.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.sidebar-collapsed .brand div{display:none}.brand-mark{color:#fff;background:var(--primary);border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand strong{font-size:16px;font-weight:800;display:block}.brand small{color:#b7c2d0;margin-top:2px;display:block}.nav{gap:6px;margin-top:22px;display:grid}.nav a{color:#dce5f0;border-radius:7px;align-items:center;padding:11px 12px;display:flex}.sidebar-collapsed .nav a{justify-content:center;min-height:42px;padding-left:0;padding-right:0}.sidebar-collapsed .nav a span{white-space:nowrap;width:1em;overflow:hidden}.sidebar-toggle{color:#dce5f0;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:7px;justify-content:center;align-items:center;gap:6px;width:100%;min-height:36px;margin-top:14px;font-weight:800;display:flex}.sidebar-toggle span{font-size:13px}.sidebar-collapsed .sidebar-toggle span{display:none}.nav a.router-link-exact-active,.nav a:hover{color:#fff;background:#ffffff1f}.main{min-width:0;padding:26px 30px 40px}.topbar,.toolbar,.panel-header,.form-actions{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar{margin-bottom:24px}.topbar h1,.toolbar h2,.panel-header h2{color:var(--text);letter-spacing:0;margin:0;font-size:24px;font-weight:800;line-height:1.2}.toolbar h2,.panel-header h2{font-size:18px}.toolbar p{color:var(--muted);margin:6px 0 0}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:800}.user-box{color:var(--muted);align-items:center;gap:10px;display:flex}.app-version{color:var(--muted);white-space:nowrap;align-items:center;padding:0 2px;font-size:12px;font-weight:800;display:inline-flex}.current-user{white-space:nowrap;margin-left:8px}.content-stack{gap:18px;display:grid}.panel,.form-panel,.inline-create,.metric{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;transition:border-color .18s,background .18s,box-shadow .18s}.panel{overflow:hidden}.panel-header{border-bottom:1px solid var(--line);padding:16px 18px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.metric{padding:18px}.metric span{color:var(--muted);font-size:13px}.metric strong{margin-top:8px;font-size:30px;font-weight:800;display:block}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;background:var(--panel);width:100%;min-width:860px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:13px 14px}th{color:var(--muted);background:var(--table-head);font-size:12px;font-weight:800;position:relative}th[draggable=true]{cursor:grab}th[draggable=true]:active{cursor:grabbing}td{font-size:14px;font-weight:520}.empty-cell{color:var(--muted);text-align:center}.table-tools{color:var(--muted);background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:13px;font-weight:800;display:flex}.column-menu{position:relative}.column-menu summary{min-height:32px;color:var(--text);background:var(--field);border:1px solid var(--line);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:0 11px;font-weight:800;list-style:none;display:inline-flex}.column-menu.compact summary{width:28px;min-height:28px;padding:0;font-size:18px;line-height:1}.column-menu summary::-webkit-details-marker{display:none}.column-menu-panel{z-index:30;background:var(--panel);border:1px solid var(--line);min-width:180px;box-shadow:var(--shadow);border-radius:8px;gap:4px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.column-settings-cell{text-align:right;width:38px;min-width:38px;max-width:38px}td.column-settings-cell{padding:0}.column-menu-panel label{min-height:30px;color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:4px 6px;font-size:13px;display:flex}.column-menu-panel label:hover{background:var(--hover)}.column-menu-panel input{width:auto;min-height:0}.column-resizer{cursor:col-resize;background:0 0;border:0;width:8px;height:100%;padding:0;position:absolute;top:0;right:-3px}.column-resizer:hover,.column-resizer:focus{background:#6ea2ff59}.status-pill{min-width:70px;color:var(--success-text);background:var(--success-bg);border-radius:999px;justify-content:center;padding:4px 8px;font-size:12px;font-weight:700;display:inline-flex}.status-pill.disabled{color:#8a4b10;background:#fff3df}.primary-button,.secondary-button,.ghost-button{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;min-height:38px;padding:0 14px;font-weight:750;transition:border-color .18s,background .18s,color .18s,transform .18s;display:inline-flex}.primary-button{color:#fff;background:var(--primary)}.primary-button:hover{background:var(--primary-strong)}.primary-button:active,.secondary-button:active,.ghost-button:active{transform:translateY(1px)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62}.secondary-button{color:var(--text);background:var(--field);border-color:var(--line)}.danger-button{color:var(--danger);background:var(--field);border:1px solid color-mix(in srgb, var(--danger) 36%, var(--line))}.secondary-button:hover,.ghost-button:hover{color:var(--text);background:var(--hover);border-color:color-mix(in srgb, var(--primary) 38%, var(--line))}.danger-button:hover,.secondary-button.danger-button:hover{color:#fff;background:var(--danger);border-color:var(--danger)}.ghost-button{min-height:34px;color:var(--muted);border-color:var(--line);background:0 0}.filter-row,.inline-create{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.service-order-toolbar{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:14px;padding:16px;display:grid}.service-order-filters{grid-template-columns:minmax(220px,1.35fr) minmax(220px,1.35fr) repeat(3,minmax(150px,.8fr));align-items:end;gap:12px;display:grid}.service-order-filters label{min-width:0}.service-order-filters label span{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:800;display:block}.service-order-filters input,.service-order-filters select{width:100%;height:40px;min-height:40px;line-height:40px}.service-order-filters select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px) 17px,calc(100% - 12px) 17px;background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:36px}.service-order-filters input[type=date]{appearance:none;padding-top:0;padding-bottom:0}.service-order-filters input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:40px;line-height:40px}.service-order-filters input[type=date]::-webkit-calendar-picker-indicator{margin:0}.service-order-search{min-width:64px}.service-order-button-row{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:10px;padding-top:2px;display:flex}.delete-panel{border:1px solid color-mix(in srgb, var(--danger) 28%, var(--line));background:var(--panel);border-radius:8px;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:10px;padding:12px 14px;display:grid}.delete-panel div{gap:3px;display:grid}.delete-panel strong{color:var(--text)}.delete-panel span{color:var(--muted);font-size:13px}.timesheet-toolbar{flex-direction:row;align-items:center}.timesheet-filter-row{flex-wrap:nowrap;flex:1}.timesheet-filter-row input,.timesheet-filter-row select{width:min(190px,100%)}.filter-row.service-order-filters input,.filter-row.service-order-filters select{width:100%}.customer-combobox{position:relative}.customer-combobox input{padding-right:34px}.combo-clear{width:22px;height:22px;min-height:0;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:18px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.combo-menu{z-index:20;background:var(--panel);border:1px solid var(--line);max-height:280px;box-shadow:var(--shadow);border-radius:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.combo-menu button{width:100%;color:var(--text);text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;gap:2px;padding:9px 11px;display:grid}.combo-menu button:last-child{border-bottom:0}.combo-menu button:hover{background:var(--hover)}.combo-menu strong{font-weight:800}.combo-menu span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.inline-create{padding:14px}input,select,textarea{width:100%;color:var(--text);background:var(--field);border:1px solid var(--field-border);border-radius:7px;outline:none;font-weight:550;transition:border-color .18s,background .18s,box-shadow .18s}input,select{height:38px;min-height:38px;padding:0 11px;line-height:normal}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=number]{appearance:none}input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}input[type=time]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}input[type=month]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}input[type=date]::-webkit-calendar-picker-indicator{opacity:.72;margin-left:4px}input[type=time]::-webkit-calendar-picker-indicator{opacity:.72;margin-left:4px}input[type=datetime-local]::-webkit-calendar-picker-indicator{opacity:.72;margin-left:4px}input[type=month]::-webkit-calendar-picker-indicator{opacity:.72;margin-left:4px}textarea{resize:vertical;padding:10px 11px}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 20%, transparent)}input[readonly],select:disabled{color:var(--muted);background:var(--panel-muted)}.filter-row input{width:min(220px,100%)}.filter-row select,.inline-create input{width:180px}.action-row{flex-wrap:wrap;gap:10px;display:flex}.table-action{color:var(--primary);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0;font-weight:800}.table-link-button{color:var(--primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0;font-weight:750}.table-link-button:hover{text-decoration:underline}.table-actions{flex-wrap:wrap;gap:10px;display:flex}.row-check-cell{text-align:center;width:56px}.row-check-cell input{vertical-align:middle;width:16px;height:16px;min-height:0;padding:0}.danger-action{color:var(--danger)}.table-action:disabled{cursor:not-allowed;opacity:.55}.pager{color:var(--muted);background:var(--panel);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.sort-button{width:100%;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-weight:800;display:inline-flex}.sort-button span{color:var(--muted);font-size:11px}.trend-chart{background:var(--panel);padding:18px}.trend-chart svg{width:100%;height:auto;display:block}.chart-axis{stroke:var(--line);stroke-width:1px}.chart-line{fill:none;stroke:var(--primary);stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.chart-dot{fill:var(--panel);stroke:var(--primary);stroke-width:2px}.chart-value{fill:var(--muted);text-anchor:middle;font-size:11px}.trend-labels{color:var(--muted);text-align:center;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px;margin-top:6px;font-size:11px;display:grid}.contact-list{flex-wrap:wrap;gap:7px;max-width:520px;display:flex}.contact-badge{background:var(--hover);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:30px;padding:4px 9px;display:inline-flex}.contact-badge strong{font-weight:800}.contact-badge small{color:var(--muted);font-size:12px}.export-page{align-items:center}.export-toolbar{width:min(920px,100%)}.sheet-page{justify-items:end;gap:10px;width:min(920px,100%);display:grid}.admin-export-preview-paper{background:#fff;border:1px solid #d7dde5;width:min(100%,794px);padding:0;overflow:hidden;box-shadow:0 18px 42px #17202a24}.admin-export-preview-paper .export-preview-image{width:100%;height:auto;display:block}.sheet-paper{color:#111;transform-origin:top;background:#fff;border:1px solid #d7dde5;width:794px;min-height:1123px;padding:56px 58px;box-shadow:0 18px 42px #17202a24}.sheet-head{grid-template-columns:1fr 1.2fr;align-items:center;margin-bottom:20px;display:grid}.sheet-head strong,.sheet-head span{display:block}.sheet-logo{width:245px;height:auto;display:block}.sheet-head h2{letter-spacing:0;text-align:center;margin:0;font-family:Georgia,Times New Roman,serif;font-size:34px;font-weight:500}.sheet-date{margin-bottom:8px;font-size:16px}.fixed-sheet-table{table-layout:fixed;border:1.5px solid #111;min-width:0}.fixed-sheet-table th,.fixed-sheet-table td{color:#111;vertical-align:top;white-space:pre-wrap;background:#fff;border:1px solid #111;height:38px;padding:7px 9px;font-size:14px}.fixed-sheet-table th{width:110px;font-weight:800}.work-row td,.work-row th{height:260px}.signature-row{grid-template-columns:1fr 1fr;align-items:center;gap:24px;margin-top:24px;font-size:16px;display:grid}.signature-row>div{align-items:center;gap:8px;min-height:64px;display:flex}.signature-row img{filter:brightness(0);vertical-align:middle;max-width:170px;max-height:60px;display:inline-block}.engineer-signatures{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.engineer-signatures img{filter:brightness(0);object-fit:contain;width:min(170px,100%);max-height:60px}@media print{body{background:#fff}.sidebar,.topbar,.export-toolbar,.sheet-actions{display:none!important}.app-shell{display:block}.main{padding:0}.sheet-page{page-break-after:always;width:auto;display:block}.sheet-paper{width:210mm;min-height:297mm;box-shadow:none;border:0;padding:14mm 15mm}.admin-export-preview-paper{width:210mm;box-shadow:none;border:0}.admin-export-preview-paper .export-preview-image{width:210mm}}.form-panel{gap:18px;padding:20px;display:grid}fieldset{border:0;min-width:0;padding:0}legend{margin-bottom:12px;font-size:16px;font-weight:800}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}label span{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:700;display:block}.span-2{grid-column:span 2}.form-error{color:var(--danger);background:#fff0ee;border:1px solid #f5b8b0;border-radius:7px;margin:0;padding:11px 12px}.active-filter{color:var(--muted);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.active-filter span{font-weight:800}:root[data-theme=dark] .form-error{background:#ff8b7f1f;border-color:#ff8b7f61}:root[data-theme=dark] .status-pill.disabled{color:#ffd39a;background:#3f2c13}:root[data-theme=dark] .sheet-paper,:root[data-theme=dark] .fixed-sheet-table th,:root[data-theme=dark] .fixed-sheet-table td{color:#111;background:#fff}:root[data-theme=night] .app-shell{background:linear-gradient(90deg, #ffffff04, transparent 24rem), var(--bg);grid-template-columns:286px minmax(0,1fr)}:root[data-theme=night] .app-shell.sidebar-collapsed{grid-template-columns:82px minmax(0,1fr)}:root[data-theme=night] .sidebar{background:linear-gradient(#111820 0%,#0b1118 100%);border-right:1px solid #7aa7ff1f;padding:28px 22px;box-shadow:inset -1px 0 #ffffff05}:root[data-theme=night] .brand{border-bottom-color:#ffffff14;gap:14px;padding:0 0 26px}:root[data-theme=night] .brand-mark{background:linear-gradient(135deg,#557cff,#7aa7ff);border-radius:12px;width:50px;height:50px;font-size:20px;box-shadow:0 14px 34px #557cff38}:root[data-theme=night] .brand strong{letter-spacing:.01em;font-size:18px}:root[data-theme=night] .brand small{color:#8fa0b3}:root[data-theme=night] .sidebar-toggle{color:#c8d4e1;background:#171f29;border-color:#263443;border-radius:9px;min-height:40px;transition:background .18s,border-color .18s,transform .18s}:root[data-theme=night] .sidebar-toggle:hover{background:#1d2a38;border-color:#7aa7ff61}:root[data-theme=night] .nav{gap:10px;margin-top:26px}:root[data-theme=night] .nav a{color:#aebbc9;border:1px solid #0000;border-radius:10px;min-height:48px;padding:0 16px;transition:background .18s,border-color .18s,color .18s,transform .18s;position:relative}:root[data-theme=night] .nav a:hover{color:#e8eef6;background:#171f29;border-color:#7aa7ff2e}:root[data-theme=night] .nav a.router-link-exact-active{color:#f2f6fb;background:linear-gradient(90deg,#557cff38,#7aa7ff0f);border-color:#7aa7ff57;box-shadow:0 10px 26px #0000002e}:root[data-theme=night] .nav a.router-link-exact-active:before{content:"";background:#7aa7ff;border-radius:0 999px 999px 0;width:3px;position:absolute;top:9px;bottom:9px;left:0}:root[data-theme=night] .main{padding:30px 34px 46px}:root[data-theme=night] .topbar{background:#0d131bd1;border-bottom:1px solid #7aa7ff21;margin:-30px -34px 30px;padding:26px 34px;position:relative;box-shadow:0 12px 34px #0000002e}:root[data-theme=night] .topbar:after{content:"";background:linear-gradient(90deg,#0000,#7aa7ff52,#0000);height:1px;position:absolute;bottom:-1px;left:34px;right:34px}:root[data-theme=night] .eyebrow{color:#7f8fa3;letter-spacing:.08em;margin-bottom:8px;font-size:11px}:root[data-theme=night] .topbar h1{color:#f1f5f9;font-size:30px;font-weight:850}:root[data-theme=night] .user-box{gap:12px}:root[data-theme=night] .app-version,:root[data-theme=night] .current-user{color:#9cabbd}:root[data-theme=night] .topbar-toggle,:root[data-theme=night] .theme-select,:root[data-theme=night] .ghost-button{background:#151e29;border-color:#2b3a4b;border-radius:10px;min-height:42px}:root[data-theme=night] .theme-select span,:root[data-theme=night] .topbar-toggle span{background:linear-gradient(135deg,#557cff,#7aa7ff);border-radius:7px}:root[data-theme=night] .content-stack{gap:24px}:root[data-theme=night] .toolbar,:root[data-theme=night] .service-order-toolbar,:root[data-theme=night] .inline-create,:root[data-theme=night] .timesheet-toolbar{background:linear-gradient(145deg,#171f29 0%,#131b25 100%);border:1px solid #273545;border-radius:14px;padding:18px;box-shadow:0 18px 46px #0003,inset 0 1px #ffffff06}:root[data-theme=night] .panel,:root[data-theme=night] .form-panel,:root[data-theme=night] .metric{background:linear-gradient(145deg,#171f29 0%,#141c26 100%);border-color:#273545;border-radius:14px;box-shadow:0 18px 46px #0003,inset 0 1px #ffffff06}:root[data-theme=night] .panel-header,:root[data-theme=night] .table-tools{background:#121a24;border-bottom-color:#273545;min-height:56px}:root[data-theme=night] .panel-header h2{color:#f1f5f9;font-size:20px}:root[data-theme=night] .metric-grid{gap:18px}:root[data-theme=night] .metric{min-height:132px;padding:22px;position:relative;overflow:hidden}:root[data-theme=night] .metric:after{content:"";background:#7aa7ff1c;border:1px solid #7aa7ff29;border-radius:14px;width:52px;height:52px;position:absolute;top:24px;right:22px}:root[data-theme=night] .metric strong{color:#f3f6fb;font-size:34px}:root[data-theme=night] input,:root[data-theme=night] select,:root[data-theme=night] textarea{color:#dbe5ef;background:#101821;border-color:#304052;border-radius:10px;min-height:42px}:root[data-theme=night] input::placeholder,:root[data-theme=night] textarea::placeholder{color:#6f7f91}:root[data-theme=night] input:hover,:root[data-theme=night] select:hover,:root[data-theme=night] textarea:hover{background:#121c27;border-color:#3a5066}:root[data-theme=night] input:focus,:root[data-theme=night] select:focus,:root[data-theme=night] textarea:focus{border-color:#7aa7ff;box-shadow:0 0 0 3px #7aa7ff24}:root[data-theme=night] .primary-button{color:#07111d;background:linear-gradient(135deg,#7aa7ff,#9bbcff);border-color:#7aa7ffb3;border-radius:10px;min-height:42px;box-shadow:0 10px 22px #557cff2e}:root[data-theme=night] .primary-button:hover{background:linear-gradient(135deg,#8bb3ff,#b4cbff)}:root[data-theme=night] .secondary-button,:root[data-theme=night] .column-menu summary{background:#151e29;border-color:#2b3a4b;border-radius:10px;min-height:42px}:root[data-theme=night] .secondary-button:hover,:root[data-theme=night] .column-menu summary:hover{background:#1d2a38;border-color:#7aa7ff66}:root[data-theme=night] table{border-collapse:separate;border-spacing:0;background:#151c26}:root[data-theme=night] th{color:#9cabbd;letter-spacing:.05em;text-transform:uppercase;background:#121a24;border-bottom-color:#2c3b4d;height:52px;font-size:11px}:root[data-theme=night] td{color:#dbe5ef;border-bottom-color:#273545;height:54px}:root[data-theme=night] tbody tr{transition:background .18s,transform .18s}:root[data-theme=night] tbody tr:hover{background:#7aa7ff0e}:root[data-theme=night] .sort-button{color:#aebbc9}:root[data-theme=night] .table-action,:root[data-theme=night] .table-link-button{color:#7aa7ff}:root[data-theme=night] .status-pill{color:#91d8bd;background:#68d3ab21;border:1px solid #68d3ab2e}:root[data-theme=night] .column-menu-panel,:root[data-theme=night] .combo-menu{background:#151e29;border-color:#2b3a4b;border-radius:12px;box-shadow:0 20px 48px #00000057}:root[data-theme=night] .combo-menu button,:root[data-theme=night] .column-menu-panel label{border-color:#273545;border-radius:8px}:root[data-theme=night] .combo-menu button:hover,:root[data-theme=night] .column-menu-panel label:hover{background:#1d2a38}:root[data-theme=night] .timesheet-filter-row{gap:14px}:root[data-theme=night] .timesheet-filter-row input,:root[data-theme=night] .timesheet-filter-row select{width:min(210px,100%)}@media (width<=900px){:root[data-theme=night] .app-shell,:root[data-theme=night] .app-shell.sidebar-collapsed{grid-template-columns:1fr}:root[data-theme=night] .topbar{margin:-22px -16px 24px;padding:22px 16px}}.muted{color:var(--muted);margin:0}.login-page{isolation:isolate;background:linear-gradient(#17202ac7,#17202ac7),url(https://images.unsplash.com/photo-1558494949-ef010cbdcc31?auto=format&fit=crop&w=1800&q=80) 50%/cover;place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.login-controls{z-index:2;align-items:center;gap:10px;display:flex;position:absolute;top:20px;right:24px}.login-page:before{z-index:0;content:"";background:conic-gradient(from 120deg,#0000,#6993ff33,#0000 28%);animation:12s linear infinite login-orbit;position:absolute;inset:-35%}.login-panel{z-index:1;background:#fff;border-radius:8px;grid-template-columns:1fr 360px;width:min(920px,100%);animation:.48s ease-out both login-panel-in;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 80px #0000003d}.login-copy{color:#fff;background:#17202a;padding:46px;position:relative;overflow:hidden}.login-copy:after{content:"";background:radial-gradient(circle,#6ea2ff5c,#0000 62%);width:220px;height:220px;animation:3s ease-in-out infinite pulse-glow;position:absolute;bottom:-100px;right:-80px}.login-copy .eyebrow{color:#9fb0c3}.login-copy h1{max-width:420px;margin:0;font-size:34px;font-weight:850;line-height:1.18}.login-copy p:last-child{color:#d2dbe6;max-width:380px;margin:16px 0 0}.login-form{align-content:center;gap:16px;padding:34px;display:grid}.login-meta{z-index:2;color:#ffffffc7;text-align:center;margin:0;font-size:12px;line-height:1.6;position:absolute;bottom:18px;left:24px;right:24px}.login-pulse{border:1px solid #9fb0c347;border-radius:50%;width:86px;height:86px;position:absolute;bottom:32px;right:36px}.login-pulse:before,.login-pulse:after{content:"";border:1px solid #6ea2ff6b;border-radius:50%;animation:2.4s ease-out infinite pulse-ring;position:absolute;inset:12px}.login-pulse:after{animation-delay:.8s}@keyframes login-panel-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes login-orbit{to{transform:rotate(1turn)}}@keyframes pulse-glow{50%{opacity:.72;transform:scale(1.08)}}@keyframes pulse-ring{to{opacity:0;inset:-10px}}@media (prefers-reduced-motion:reduce){.login-page:before,.login-panel,.login-copy:after,.login-pulse:before,.login-pulse:after{animation:none}}@media (width<=900px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar-toggle{display:none}.sidebar-collapsed .brand div{display:block}.sidebar-collapsed .nav a{justify-content:flex-start;padding:11px 12px}.sidebar-collapsed .nav a span{width:auto}.nav{grid-template-columns:repeat(2,minmax(0,1fr))}.main{padding:22px 16px 32px}.topbar,.toolbar{flex-direction:column;align-items:flex-start}.metric-grid,.form-grid,.login-panel{grid-template-columns:1fr}.span-2{grid-column:auto}.login-copy{padding:30px}}:root[data-theme=dark] .login-panel{background:var(--panel)}:root[data-theme=dark] .login-copy{background:var(--sidebar)}.customer-editor[data-v-9c215ac5]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 14px;display:grid}.customer-main-fields[data-v-9c215ac5]{grid-template-columns:1fr .9fr 1.7fr .9fr 1fr .8fr .8fr 1.8fr;align-items:center;gap:10px;min-width:0;display:grid}.customer-main-fields input[data-v-9c215ac5]{width:100%;min-width:0}.contact-editor[data-v-9c215ac5]{border:1px solid var(--line);background:var(--panel-muted);border-radius:8px;grid-column:1/-1;gap:8px;padding:10px;display:grid}.contact-editor-title[data-v-9c215ac5],.contact-editor-row[data-v-9c215ac5]{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.contact-editor-title span[data-v-9c215ac5]{color:var(--text);font-weight:700}.contact-editor-row[data-v-9c215ac5]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.salesperson-combobox[data-v-9c215ac5]{min-width:0;position:relative}.salesperson-menu[data-v-9c215ac5]{left:0;right:0}.customer-editor-actions[data-v-9c215ac5]{white-space:nowrap;justify-content:flex-end;align-self:center;gap:10px;display:flex}.map-link-box[data-v-9c215ac5]{grid-column:1/-1;gap:8px;display:grid}.map-search-row[data-v-9c215ac5]{flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;display:flex}.map-search-field[data-v-9c215ac5]{grid-column:1/-1;gap:6px;min-width:0;display:grid}.map-search-field label[data-v-9c215ac5]{color:var(--muted);font-size:13px;font-weight:700}.map-search-row input[data-v-9c215ac5]{width:100%;min-width:0}.merge-panel[data-v-9c215ac5]{border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto auto;align-items:center;gap:10px;padding:12px 14px;display:grid}.merge-panel div[data-v-9c215ac5]{gap:3px;display:grid}.merge-panel strong[data-v-9c215ac5]{color:var(--text)}.merge-panel span[data-v-9c215ac5]{color:var(--muted);font-size:13px}.table-actions[data-v-9c215ac5]{flex-wrap:wrap;gap:6px;display:flex}.merge-check-cell[data-v-9c215ac5]{text-align:center;width:56px}.merge-check-cell input[data-v-9c215ac5]{vertical-align:middle;width:16px;height:16px;min-height:0;padding:0}.map-search-row button[data-v-9c215ac5]{flex:none}.field-hint[data-v-9c215ac5]{color:#64748b;margin:0;font-size:13px}.map-result-list[data-v-9c215ac5]{gap:6px;max-height:220px;display:grid;overflow:auto}.map-result-list button[data-v-9c215ac5]{color:#0f172a;text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe3ef;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.map-result-list span[data-v-9c215ac5],.map-meta[data-v-9c215ac5]{color:#64748b;font-size:13px}.map-meta[data-v-9c215ac5]{flex-wrap:wrap;gap:8px;display:flex}.map-meta span[data-v-9c215ac5],.gps-pill[data-v-9c215ac5]{color:#047857;background:#ecfdf5;border-radius:999px;align-items:center;min-height:24px;padding:2px 8px;font-size:12px;display:inline-flex}@media (width<=720px){.customer-editor[data-v-9c215ac5],.customer-main-fields[data-v-9c215ac5]{grid-template-columns:1fr}.map-link-box[data-v-9c215ac5]{grid-column:auto}.customer-editor-actions[data-v-9c215ac5]{justify-content:stretch}.customer-editor-actions button[data-v-9c215ac5]{flex:1}.contact-editor-row[data-v-9c215ac5]{grid-template-columns:1fr}.map-search-row[data-v-9c215ac5]{grid-template-columns:1fr;justify-content:stretch}.merge-panel[data-v-9c215ac5]{grid-template-columns:1fr}}
