[data-theme=light]{--bg-app: #f8fafc;--bg-sidebar: #0f172a;--bg-card: #ffffff;--bg-surface: #f1f5f9;--border-color: #e2e8f0;--border-light: #cbd5e1;--text-main: #0f172a;--text-muted: #475569;--text-subtle: #64748b;--text-strong: #334155;--text-faint: #94a3b8;--accent-primary: #ea580c;--accent-hover: #c2410c;--accent-tint-bg: #fff5ef;--accent-tint-border: #fbd0b5;--section-accent: var(--accent-primary);--section-accent-hover: var(--accent-hover);--section-tint-bg: var(--accent-tint-bg);--section-tint-border: var(--accent-tint-border);--status-inuse: #059669;--status-inuse-bg: #d1fae5;--status-inuse-tint: #ecfdf5;--status-due: #d97706;--status-due-bg: #fef3c7;--status-due-text: #b45309;--status-overdue: #dc2626;--status-overdue-bg: #fee2e2;--status-overdue-text: #b91c1c;--status-repair: #7c3aed;--status-repair-bg: #f3e8ff}[data-theme=dark]{--bg-app: #0f172a;--bg-sidebar: #1e293b;--bg-card: #1e293b;--bg-surface: #334155;--border-color: #334155;--border-light: #475569;--text-main: #f8fafc;--text-muted: #94a3b8;--text-subtle: #64748b;--text-strong: #cbd5e1;--text-faint: #64748b;--accent-primary: #ea580c;--accent-hover: #c2410c;--accent-tint-bg: rgba(234, 88, 12, .14);--accent-tint-border: rgba(234, 88, 12, .45);--section-accent: var(--accent-primary);--section-accent-hover: var(--accent-hover);--section-tint-bg: var(--accent-tint-bg);--section-tint-border: var(--accent-tint-border);--status-inuse: #10b981;--status-inuse-bg: rgba(16, 185, 129, .15);--status-inuse-tint: rgba(16, 185, 129, .1);--status-due: #f59e0b;--status-due-bg: rgba(245, 158, 11, .15);--status-due-text: #fbbf24;--status-overdue: #ef4444;--status-overdue-bg: rgba(239, 68, 68, .15);--status-overdue-text: #f87171;--status-repair: #a855f7;--status-repair-bg: rgba(168, 85, 247, .15)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,sans-serif;background-color:var(--bg-app);color:var(--text-main);height:100vh;overflow:hidden}#root{display:flex;height:100vh;width:100vw}.app-container{display:flex;width:100%;height:100vh;overflow:hidden}.sidebar{width:290px;background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;transition:width .18s ease}.sidebar.collapsed{width:68px}.sidebar.collapsed .sidebar-label,.sidebar.collapsed .sidebar-brand-mark{display:none}.sidebar.collapsed .brand,.sidebar.collapsed .nav-item{justify-content:center;gap:0}.sidebar.collapsed .brand{padding:16px 0}.sidebar.collapsed .nav-item{padding:10px 0}.sidebar .brand{padding:16px 18px;font-size:1.1rem;font-weight:700;color:#f8fafc;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.1);white-space:nowrap;overflow:hidden}.sidebar-brand-mark{width:30px;height:30px;flex-shrink:0;background:var(--accent-primary);border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff}.sidebar-toggle{flex-shrink:0;padding:6px;border:none;border-radius:6px;background:transparent;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease}.sidebar-toggle:hover{background-color:#ffffff1f;color:#f8fafc}.sidebar .nav-menu{padding:16px 12px;display:flex;flex-direction:column;gap:4px}.sidebar .nav-item{padding:10px 14px;border-radius:6px;color:#94a3b8;font-size:.9rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:12px;transition:all .15s ease;text-decoration:none;white-space:nowrap;overflow:hidden}.sidebar .nav-item svg{flex-shrink:0}.sidebar .nav-item:hover{background-color:#ffffff14;color:#f8fafc}.sidebar .nav-item.active{background-color:var(--accent-primary);color:#fff}.main-wrapper{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden;min-width:0}.topbar{height:60px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background-color:var(--bg-card);flex-shrink:0}.content-container{padding:24px;width:100%;flex:1;display:flex;flex-direction:column;overflow-y:auto;min-height:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s ease}.btn-primary{background-color:var(--accent-primary);color:#fff}.btn-primary:hover{background-color:var(--accent-hover)}.btn-secondary{background-color:var(--bg-surface);color:var(--text-main);border-color:var(--border-color)}.btn-secondary:hover{background-color:var(--border-color)}.btn-danger{background-color:transparent;color:var(--status-overdue-text);border-color:var(--status-overdue-text)}.btn-danger:hover{background-color:var(--status-overdue-bg)}.btn-destructive{background-color:var(--status-overdue);color:#fff}.btn-destructive:hover:not(:disabled){background-color:var(--status-overdue-text)}.btn-destructive:disabled{opacity:.6;cursor:default}.btn-outline{background:transparent;color:var(--text-muted);border-color:var(--border-color)}.btn-outline:hover{color:var(--text-main);border-color:var(--text-muted)}.btn-static{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:6px;border:1px solid transparent;font-size:.875rem;font-weight:500;background-color:var(--status-due-bg);color:var(--status-due-text);cursor:default;-webkit-user-select:none;user-select:none}.search-input{background-color:var(--bg-card);border:1px solid var(--border-color);color:var(--text-main);padding:8px 14px;border-radius:6px;font-size:.875rem}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-shrink:0}.serial-no{font-family:JetBrains Mono,monospace;font-weight:600;color:#0284c7}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;flex-shrink:0}.metric-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:18px 20px;box-shadow:0 1px 3px #0000000d}.metric-title{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;font-weight:700;letter-spacing:.5px}.metric-value{font-size:1.8rem;font-weight:700;margin-top:8px}.panel{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 1px 3px #0000000d;padding:20px 24px;flex-shrink:0}.panel-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}.panel-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.panel-title{font-size:1.05rem;font-weight:600;color:var(--text-main)}.panel-lead{font-size:.85rem;color:var(--text-muted)}.table-header-text{display:flex;flex-direction:column;gap:2px;min-height:38px}.notice{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;font-size:.875rem;margin-top:16px}.notice-ok{background-color:var(--status-inuse-bg);color:var(--status-inuse)}.notice-bad{background-color:var(--status-overdue-bg);color:var(--status-overdue-text)}.notice-info{background-color:var(--accent-tint-bg);color:var(--accent-primary)}.thumb-chip{gap:4px;cursor:help}.staging-preview{width:48px;height:48px;border-radius:6px;overflow:hidden;background-color:var(--bg-surface);display:flex;align-items:center;justify-content:center}.staging-preview-img{width:48px;height:48px;object-fit:cover;display:flex;align-items:center;justify-content:center}.table-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.table-container{overflow-y:auto;flex:1;min-height:0}.is-refreshing{opacity:.55;transition:opacity .15s ease;pointer-events:none}.table-empty-row td{padding:40px 16px;text-align:center;color:var(--text-muted)}.table-empty-row:hover{background-color:transparent;cursor:default}.list-empty{padding:40px;text-align:center;color:var(--text-muted);flex:none}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-top:1px solid var(--border-color);background-color:var(--bg-card);font-size:.85rem;color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-btn{padding:4px 10px;font-size:.8rem}.pagination-page{font-weight:500;margin:0 4px;white-space:nowrap}.table-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}th{background-color:var(--bg-surface);padding:12px 16px;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:10}td{padding:14px 16px;border-bottom:1px solid var(--border-color)}tr:hover{background-color:var(--bg-surface);cursor:pointer}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600}.badge-inuse{background-color:var(--status-inuse-bg);color:var(--status-inuse)}.badge-due{background-color:var(--status-due-bg);color:var(--status-due)}.badge-overdue{background-color:var(--status-overdue-bg);color:var(--status-overdue)}.badge-repair{background-color:var(--status-repair-bg);color:var(--status-repair)}.badge-neutral{background-color:var(--bg-surface);color:var(--text-muted)}.date-overdue{color:var(--status-overdue-text);font-weight:600}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-rows:max-content;align-content:start;gap:20px}.gear-card{display:flex;flex-direction:column;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;cursor:pointer;transition:transform .15s ease,border-color .15s ease;box-shadow:0 1px 3px #0000000d}.gear-card:hover{transform:translateY(-2px);border-color:var(--accent-primary)}.gear-card-img{flex:0 0 160px;height:160px;background-color:var(--bg-surface);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.gear-card-body{flex:1 1 auto;min-height:0;padding:16px}.gear-card-title{font-weight:600;font-size:1rem;margin-bottom:4px}.gear-card-sub{font-size:.8rem;color:var(--text-muted);margin-bottom:12px}.gear-card-footer{display:flex;justify-content:space-between;align-items:center;font-size:.8rem}.details-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.gallery-box{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000000d}.main-image-container{height:300px;background-color:var(--bg-surface);border-radius:6px;position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.nav-arrow{position:absolute;top:50%;transform:translateY(-50%);background:#0f172acc;color:#fff;border:none;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem}.nav-arrow.left{left:12px}.nav-arrow.right{right:12px}.thumbnail-row{display:flex;align-items:center;gap:12px}.thumbnail-strip{display:flex;gap:10px;overflow-x:auto;flex:1}.thumb-item{width:60px;height:60px;border-radius:6px;border:2px solid transparent;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--bg-surface);font-size:1.5rem}.thumb-item.active{border-color:var(--accent-primary)}.gallery-actions{display:flex;gap:8px;margin-top:14px;border-top:1px solid var(--border-color);padding-top:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal-box{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;width:500px;max-width:90%;padding:24px;color:var(--text-main)}.modal-box.fullscreen{width:90vw;height:85vh;max-width:none;display:flex;flex-direction:column}.modal-box.tall{max-height:85vh;display:flex;flex-direction:column}.modal-box.tall .modal-body{overflow-y:auto;padding-right:6px;margin-right:-6px}.modal-header{font-size:1.1rem;font-weight:600;margin-bottom:16px;display:flex;justify-content:space-between}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.modal-error{color:var(--status-overdue);font-size:.85rem;margin-bottom:12px}.modal-notice{color:var(--status-inuse);font-size:.85rem;margin-bottom:12px}.modal-section-title{font-weight:600;font-size:.9rem;margin-bottom:12px}.status-list{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.status-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border-color);border-radius:8px}.status-row-description{flex:1;min-width:0;color:var(--text-muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-row-actions{display:flex;gap:2px}.status-editor{margin-top:16px;padding:16px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-surface)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;border-radius:6px;background:none;color:var(--text-muted);cursor:pointer}.icon-btn:hover:not(:disabled){background-color:var(--bg-surface);color:var(--text-main)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.danger:hover:not(:disabled){background-color:var(--status-overdue-bg);color:var(--status-overdue-text)}.checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.85rem;color:var(--text-strong)}.colour-input{width:48px;height:32px;padding:2px;border:1px solid var(--border-color);border-radius:6px;background-color:var(--bg-card);cursor:pointer}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}@media(max-width:640px){.form-grid-2{grid-template-columns:1fr}}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:6px;font-weight:500}.form-control{width:100%;background-color:var(--bg-app);border:1px solid var(--border-color);color:var(--text-main);padding:10px;border-radius:6px;font-size:.9rem}.signalr-banner{background-color:#0284c7;color:#fff;padding:10px 16px;border-radius:6px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;font-size:.875rem}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:6px;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:160px;z-index:50;display:flex;flex-direction:column;padding:4px 0}.dropdown-item{padding:8px 14px;font-size:.85rem;color:var(--text-main);cursor:pointer;display:flex;align-items:center;gap:8px}.dropdown-item:hover{background-color:var(--bg-surface)}.sidebar,.topbar,th,.btn,.nav-item,.brand,.badge,.metric-card,.gear-card-img,.modal-header{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.segmented-control{display:inline-flex;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:8px;padding:3px;gap:2px;user-select:none;-webkit-user-select:none}.segmented-control-btn{padding:6px 14px;border-radius:6px;border:none;background:transparent;color:var(--text-muted);font-size:.85rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.segmented-control-btn:hover:not(:disabled){color:var(--text-main)}.segmented-control-btn.active{background-color:var(--bg-card);color:var(--accent-primary);box-shadow:0 1px 3px #0000001a}.segmented-control-btn:disabled{cursor:not-allowed;opacity:.45}.segmented-control-btn:disabled.active{box-shadow:none}.segmented-control:has(.segmented-control-btn:disabled){background-color:var(--bg-app);border-style:dashed}.ms-filter{position:relative}.ms-trigger{display:flex;align-items:center;gap:8px;width:220px;height:42px;padding:0 13px;border-radius:8px;border:1px solid var(--border-light);background-color:var(--bg-card);color:var(--text-strong);font-family:inherit;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.ms-trigger.is-active{background-color:var(--section-tint-bg);border-color:var(--section-tint-border)}.ms-trigger-label{font-weight:600;flex-shrink:0}.ms-trigger-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;text-align:left;color:var(--text-subtle);font-weight:500}.ms-trigger-summary.is-active{color:var(--section-accent-hover);font-weight:600}.ms-trigger-count{min-width:16px;padding:1px 7px;border-radius:20px;background-color:var(--section-accent);color:#fff;font-size:11.5px;font-weight:700;text-align:center;flex-shrink:0}.ms-trigger-caret{color:var(--text-subtle);flex-shrink:0}.ms-popover{position:absolute;top:calc(100% + 6px);left:0;min-width:268px;z-index:60;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 16px 40px #0f172a2e}.ms-search{padding:10px 12px;border-bottom:1px solid var(--bg-surface)}.ms-search input{width:100%;padding:8px 10px;border:1px solid var(--border-light);border-radius:7px;background-color:var(--bg-card);color:var(--text-main);font-family:inherit;font-size:13.5px}.ms-options{max-height:232px;overflow-y:auto;padding:6px}.ms-option{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;font-size:14px;color:var(--text-main);cursor:pointer;transition:background-color .15s ease}.ms-option:hover,.ms-option:focus-visible{background-color:var(--bg-app);outline:none}.ms-option.is-selected{background-color:var(--section-tint-bg)}.ms-option.is-selected .ms-option-label{font-weight:600}.ms-checkbox{width:17px;height:17px;flex-shrink:0;border-radius:5px;border:1.5px solid var(--border-light);display:flex;align-items:center;justify-content:center;color:#fff}.ms-option.is-selected .ms-checkbox{background-color:var(--section-accent);border-color:var(--section-accent)}.ms-option-count{margin-left:auto;font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums}.ms-no-hits{padding:14px 10px;text-align:center;font-size:13.5px;color:var(--text-subtle)}.ms-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-top:1px solid var(--bg-surface);background-color:var(--bg-app);border-radius:0 0 10px 10px;font-size:12.5px;color:var(--text-subtle)}.ms-clear{border:none;background:none;padding:0;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--section-accent);cursor:pointer}.cust-badge{display:inline-flex;align-items:center;padding:4px 11px;border-radius:20px;font-size:12.5px;font-weight:600;white-space:nowrap}.cust-badge--ok{background-color:var(--status-inuse-bg);color:var(--status-inuse)}.cust-badge--active{background-color:var(--status-inuse-tint);color:var(--status-inuse)}.cust-badge--warn{background-color:var(--status-due-bg);color:var(--status-due-text)}.cust-badge--bad{background-color:var(--status-overdue-bg);color:var(--status-overdue)}.cust-badge--neutral{background-color:var(--bg-surface);color:var(--text-muted)}.cust-monogram{width:36px;height:36px;flex-shrink:0;border-radius:8px;background-color:#eef2f7;color:#334155;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600;display:flex;align-items:center;justify-content:center}.cust-monogram.lg{width:46px;height:46px;border-radius:10px;background-color:#0f172a;color:#fff;font-size:13px}.cust-section-label{font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--text-subtle)}.cust-filter-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-shrink:0}.cust-search{display:flex;align-items:center;gap:8px;width:300px;height:42px;padding:0 12px;border:1px solid var(--border-light);border-radius:8px;background-color:var(--bg-card);transition:border-color .15s ease,box-shadow .15s ease}.cust-search:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #ea580c24}.cust-search input{flex:1;min-width:0;border:none;background:transparent;outline:none;padding:0;font-family:inherit;font-size:14px;color:var(--text-main)}.cust-search-icon{color:var(--text-faint);flex-shrink:0}.cust-search-clear{border:none;background:none;padding:0;display:flex;color:var(--text-faint);cursor:pointer}.cust-table-card{border-radius:10px}.cust-table{min-width:900px;font-size:14px}.cust-table th{padding:13px 16px;font-size:11.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--text-muted)}.cust-table td{padding:15px 16px;border-bottom:1px solid var(--bg-surface);vertical-align:middle}.cust-table tbody tr:hover{background-color:var(--bg-app)}.cust-table .right{text-align:right}.cust-table .mono{font-family:JetBrains Mono,monospace;color:var(--text-muted)}.cust-cell-stack{display:flex;flex-direction:column;gap:2px}.cust-cell-sub{font-size:12.5px;color:var(--text-subtle)}.cust-count{font-weight:600;font-variant-numeric:tabular-nums}.cust-count-unit{color:var(--text-faint);font-size:11.5px}.cust-chevron{color:var(--text-faint)}.cust-empty{padding:40px;text-align:center;font-size:14.5px;color:var(--text-subtle)}.cust-detail{display:flex;flex-direction:column;gap:16px}.cust-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-subtle)}.cust-breadcrumb button{border:none;background:none;padding:0;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--accent-primary);cursor:pointer}.cust-breadcrumb button:hover{color:var(--accent-hover)}.cust-breadcrumb-current{color:var(--text-strong)}.cust-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 1px 3px #0f172a0d;overflow:hidden;flex:none}.cust-identity-top{display:flex;align-items:flex-start;gap:16px;padding:18px 20px;flex-wrap:wrap}.cust-identity-headings{display:flex;flex-direction:column;gap:6px;min-width:0}.cust-identity-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cust-identity-title h2{font-size:20px;font-weight:700;letter-spacing:-.3px}.cust-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--text-muted)}.cust-meta strong{color:var(--text-main)}.cust-meta .mono{font-family:JetBrains Mono,monospace}.cust-identity-actions{margin-left:auto;flex-shrink:0;display:flex;align-items:center;gap:10px}.cust-identity-actions .btn{border-radius:8px;padding:9px 15px;font-size:13px;font-weight:600;white-space:nowrap}.cust-identity-grid{display:grid;grid-template-columns:2fr 3fr;border-top:1px solid var(--bg-surface)}.cust-identity-grid>div{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.cust-identity-grid>div:first-child{border-right:1px solid var(--bg-surface)}.cust-fields{display:flex;flex-direction:column;gap:11px}.cust-fields.two-col{display:grid;grid-template-columns:1fr 1fr;gap:11px 20px}.cust-field{display:flex;flex-direction:column;gap:2px;min-width:0}.cust-field-label{font-size:12px;color:var(--text-faint)}.cust-field-value{font-size:14.5px;color:var(--text-main);overflow-wrap:anywhere}.cust-field-value.link{color:var(--accent-primary)}.cust-field-value.muted{font-size:13px;color:var(--text-muted)}.cust-field-value.tabular{font-variant-numeric:tabular-nums}.cust-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;flex:none}.cust-stat{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px}.cust-stat--due{box-shadow:inset 3px 0 0 var(--status-due)}.cust-stat--overdue{box-shadow:inset 3px 0 0 var(--status-overdue)}.cust-stat-label{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-subtle)}.cust-stat-value{font-size:24px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums}.cust-stat--due .cust-stat-value{color:var(--status-due-text)}.cust-stat--overdue .cust-stat-value{color:var(--status-overdue-text)}.cust-stat-note{font-size:12.5px;color:var(--text-subtle);margin-top:2px}.cust-worklist-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-color)}.cust-worklist-title{font-size:15px;font-weight:600}.cust-worklist-hint{margin-left:auto;font-size:12.5px;color:var(--text-subtle)}.cust-work-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--bg-surface);font-size:14px;transition:background-color .15s ease}.cust-work-row:hover{background-color:var(--bg-app)}.cust-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.cust-dot--bad{background-color:var(--status-overdue)}.cust-dot--warn{background-color:var(--status-due)}.cust-work-id{width:70px;flex-shrink:0}.cust-work-names{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.cust-work-name{font-weight:600}.cust-work-date{width:104px;flex-shrink:0;font-weight:600;font-variant-numeric:tabular-nums}.cust-work-date--bad{color:var(--status-overdue-text)}.cust-work-date--warn{color:var(--status-due-text)}.cust-work-action{flex-shrink:0;border-radius:7px;padding:7px 12px;font-size:13px;font-weight:600}.cust-worklist-empty{display:flex;align-items:center;justify-content:center;gap:12px;padding:26px 16px;font-size:14px;color:var(--text-muted)}.cust-worklist-check{width:26px;height:26px;border-radius:50%;flex-shrink:0;background-color:var(--status-inuse-bg);color:var(--status-inuse);display:flex;align-items:center;justify-content:center}.cust-worklist-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border-top:1px solid var(--bg-surface);font-size:13px;color:var(--text-muted)}.cust-worklist-footer button{border:none;background:none;padding:0;font-family:inherit;font-size:13px;font-weight:600;color:var(--accent-primary);cursor:pointer;white-space:nowrap}.cust-worklist-footer button:hover{color:var(--accent-hover);text-decoration:underline}.dlg-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background-color:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:32px}.dlg{width:760px;max-width:100%;max-height:100%;background-color:var(--bg-card);border-radius:12px;box-shadow:0 24px 60px #0f172a59;display:flex;flex-direction:column;overflow:hidden}.dlg-header{display:flex;align-items:flex-start;gap:12px;padding:20px 24px;border-bottom:1px solid var(--border-color)}.dlg--confirm{width:460px}.dlg--confirm .dlg-header{align-items:center}.dlg-confirm-icon{width:32px;height:32px;flex-shrink:0;border-radius:50%;background-color:var(--bg-surface);color:var(--text-muted);display:flex;align-items:center;justify-content:center}.dlg-confirm-icon.is-destructive{background-color:var(--status-overdue-bg);color:var(--status-overdue-text)}.dlg-confirm-message{font-size:14px;line-height:1.55;color:var(--text-strong)}.dlg-title{font-size:17px;font-weight:700}.dlg-subtitle{font-size:12.5px;color:var(--text-subtle);margin-top:3px}.dlg-close{margin-left:auto;width:30px;height:30px;flex-shrink:0;border:none;border-radius:7px;background-color:var(--bg-surface);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .15s ease}.dlg-close:hover{background-color:var(--border-color)}.dlg-body{padding:20px 24px;display:flex;flex-direction:column;gap:22px;overflow-y:auto}.dlg-section{display:flex;flex-direction:column;gap:12px}.dlg-section-head{display:flex;align-items:center;gap:10px}.dlg-section-head:after{content:"";flex:1;height:1px;background-color:var(--bg-surface)}.dlg-row{display:grid;gap:14px}.dlg-field{display:flex;flex-direction:column;gap:6px;min-width:0}.dlg-field-label{font-size:13px;font-weight:600;color:var(--text-strong)}.dlg-required{color:var(--accent-primary)}.dlg-input{width:100%;padding:10px 12px;border:1px solid var(--border-light);border-radius:8px;background-color:var(--bg-card);color:var(--text-main);font-family:inherit;font-size:14.5px;transition:border-color .15s ease,box-shadow .15s ease}.dlg-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #ea580c24}.dlg-input.is-invalid{border-color:#fca5a5}.dlg-hint{font-size:11.5px;color:var(--text-faint)}.dlg-hint.is-error{color:var(--status-overdue)}.dlg-checkbox-row{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text-strong);cursor:pointer;-webkit-user-select:none;user-select:none}.dlg-checkbox{width:16px;height:16px;flex-shrink:0;border-radius:4px;border:1.5px solid var(--border-light);display:flex;align-items:center;justify-content:center;color:#fff}.dlg-checkbox.is-checked{background-color:var(--accent-primary);border-color:var(--accent-primary)}.dlg-error{padding:0 24px 12px;color:var(--status-overdue);font-size:13px}.dlg-footer{display:flex;align-items:center;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color);background-color:var(--bg-app)}.dlg-required-note{font-size:12px;color:var(--text-subtle)}.dlg-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.dlg-actions .btn{border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600}.dlg-actions .btn-primary:disabled{background-color:#fdba8c;cursor:default}.cust-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:200;padding:11px 18px;border-radius:8px;background-color:#0f172a;color:#f8fafc;font-size:13px;font-weight:500;box-shadow:0 12px 30px #0f172a4d}.app-loading,.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:100vh;padding:24px;text-align:center;background-color:var(--bg-app);color:var(--text-main)}.app-loading{color:var(--text-muted);font-size:14px}.access-denied h1{margin:0;font-size:22px;font-weight:600}.access-denied p{margin:0;max-width:460px;color:var(--text-muted);font-size:14px;line-height:1.6}.access-denied-icon{color:var(--status-overdue)}.access-denied-actions{display:flex;gap:12px;margin-top:8px}.users-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);white-space:nowrap}.users-forbidden{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px;color:var(--text-muted)}.token-create{display:flex;gap:8px;margin-bottom:12px}.token-create .dlg-input{flex:1}.token-table{margin-top:4px;width:100%;min-width:0;font-size:13px}.token-table th,.token-table td{padding:9px 10px}.token-table th:first-child,.token-table td:first-child{padding-left:0}.token-table th:last-child,.token-table td:last-child{padding-right:0}.token-table code{font-size:12px;color:var(--text-muted)}.token-row-inactive td{opacity:.6}.token-empty{margin:4px 0 0;color:var(--text-muted);font-size:13px}.token-error{margin-bottom:12px;padding:10px 12px;border-radius:6px;background-color:var(--status-overdue-bg);color:var(--status-overdue);font-size:13px}.token-reveal{margin-bottom:14px;padding:14px;border:1px solid var(--accent-color, #f97316);border-radius:8px;background-color:var(--status-due-bg)}.token-reveal p{margin:6px 0 12px;font-size:13px;color:var(--text-muted)}.token-reveal-value{display:flex;align-items:center;gap:8px}.token-reveal-value code{flex:1;padding:8px 10px;border-radius:6px;background-color:var(--bg-card);border:1px solid var(--border-color);font-size:12px;word-break:break-all}.section-appliances{--section-accent: #0284c7;--section-accent-hover: #0369a1;--section-tint-bg: #f0f9ff;--section-tint-border: #bae6fd}.section-inspections{--section-accent: #0f766e;--section-accent-hover: #115e59;--section-tint-bg: #f0fdfa;--section-tint-border: #99f6e4}.section-dashboard{--section-accent: #64748b}.section-customers{--section-accent: #ea580c}.page-head{display:flex;align-items:center;gap:13px;margin-bottom:16px;flex-shrink:0;min-height:42px}.page-head-rule{width:4px;height:30px;border-radius:3px;background-color:var(--section-accent);flex-shrink:0}.page-head-title{font-size:21px;font-weight:700;letter-spacing:-.3px;margin:0;white-space:nowrap}.page-head-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.btn-add{height:38px;border-radius:8px;font-size:13px;font-weight:600;white-space:nowrap}.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;flex-shrink:0}.filter-bar .cust-search{width:300px;height:42px}.capacity-filter{display:flex;align-items:center;gap:8px;width:210px;height:42px;padding:0 12px;border:1px solid var(--border-light);border-radius:8px;background-color:var(--bg-card);transition:border-color .15s ease,box-shadow .15s ease}.capacity-filter:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #ea580c24}.capacity-filter-label{flex-shrink:0;font-size:14px;font-weight:600;color:var(--text-strong)}.capacity-filter input{flex:1;min-width:0;border:none;background:transparent;outline:none;padding:0;font-family:inherit;font-size:14px;color:var(--text-main)}.filter-clear{border:none;background:none;padding:0 4px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--text-subtle);cursor:pointer}.filter-clear:hover{color:var(--text-main)}.ms-option-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.appliance-table{min-width:1080px}.inspection-table{min-width:1040px}.due-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}.due-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.due-date{font-variant-numeric:tabular-nums;color:var(--text-strong)}.due-date.is-flagged,.cell-stack-main{font-weight:600}.cell-stack-sub{font-size:12.5px;color:var(--text-subtle)}.cell-numeric{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.row-open{text-align:right;white-space:nowrap}.row-open-link{font-size:13px;font-weight:600;color:#0369a1}.identifier-link{font-family:JetBrains Mono,monospace;font-weight:600;color:#0284c7}.appliance-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:14px}.appliance-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden;cursor:pointer;transition:border-color .15s ease}.appliance-card:hover{border-color:#94a3b8}.appliance-card-img{height:120px;background-color:#eef2f7;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-size:12.5px}.appliance-card-img img{width:100%;height:100%;object-fit:cover}.appliance-card-body{padding:13px 14px;display:flex;flex-direction:column;gap:5px}.appliance-card-top{display:flex;align-items:center;gap:8px;justify-content:space-between}.appliance-card-name{font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appliance-card-customer{font-size:12.5px;color:var(--text-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appliance-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;padding-top:10px;border-top:1px solid var(--border-color);font-size:12.5px;color:var(--text-strong)}.detail-topbar{margin-bottom:14px;min-height:32px}.detail-nav{margin-left:auto;display:flex;gap:8px}.detail-nav button{display:flex;align-items:center;gap:5px;height:32px;padding:0 11px;border-radius:8px;border:1px solid var(--border-light);background-color:var(--bg-card);color:var(--text-strong);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.detail-nav button:hover:not(:disabled){border-color:var(--text-faint)}.detail-nav button:disabled{border-color:var(--border-color);color:var(--text-faint);cursor:default}.appliance-head-card{padding:18px 20px;display:flex;flex-direction:row;align-items:flex-start;gap:16px;flex:none}.appliance-head-main{flex:1;min-width:0}.appliance-head-main h2{font-size:20px;font-weight:700;margin:0}.appliance-head-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.appliance-head-meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;color:var(--text-muted)}.appliance-head-actions{flex-shrink:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.detail-columns{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;align-items:start;margin-top:16px}@media(max-width:1100px){.detail-columns{grid-template-columns:1fr}}.card-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border-color)}.card-head-title{font-size:14.5px;font-weight:600}.card-head-action{margin-left:auto;display:flex;align-items:center;gap:10px}.card-link{border:none;background:none;padding:0;font-family:inherit;font-size:12.5px;font-weight:600;color:#0369a1;cursor:pointer}.count-badge{padding:2px 9px;border-radius:20px;background-color:var(--bg-surface);color:var(--text-muted);font-size:12px;font-weight:600}.gallery-main{position:relative;height:404px;border-radius:8px;border:1px solid var(--border-color);background-color:#eef2f7;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-faint);font-size:13px}.gallery-main img{width:100%;height:100%;object-fit:contain;cursor:zoom-in}.gallery-overlay-btn{width:36px;height:36px;border:none;border-radius:50%;background-color:#0f172a47;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.55;transition:opacity .15s ease,background-color .15s ease,color .15s ease}.gallery-main:hover .gallery-overlay-btn{opacity:1}.gallery-overlay-btn:hover:not(:disabled){background-color:#0f172abf}.gallery-overlay-btn.is-default{opacity:1;color:#fbbf24;cursor:default}.gallery-step{position:absolute;top:50%;transform:translateY(-50%)}.gallery-step.is-prev{left:10px}.gallery-step.is-next{right:10px}.gallery-main-actions{position:absolute;top:12px;right:12px;display:flex;gap:8px}.gallery-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:12px}.gallery-thumb{position:relative;height:62px;border-radius:7px;border:1px solid var(--border-color);background-color:#eef2f7;overflow:hidden;color:var(--text-faint)}.gallery-thumb.is-empty{padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.gallery-thumb.is-active{border-color:var(--section-accent)}.gallery-thumb-pick{display:block;width:100%;height:100%;padding:0;border:none;background:none;cursor:pointer}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.gallery-thumb-flag{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background-color:#0f172ab3;color:#fbbf24;display:flex;align-items:center;justify-content:center;pointer-events:none}.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 24px;padding:16px 18px}.spec-label{font-size:11.5px;color:var(--text-faint)}.spec-value{font-size:14.5px;color:var(--text-main);margin-top:2px}.spec-value.mono{font-family:JetBrains Mono,monospace}.spec-value.strong{font-weight:600;font-variant-numeric:tabular-nums}.spec-extra{grid-column:1 / -1;padding-top:14px;border-top:1px solid var(--border-color)}.spec-extra-text{font-size:14px;color:var(--text-strong);line-height:1.5;margin-top:3px}.history-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--bg-surface);font-size:14px}.history-row:hover{background-color:var(--bg-app)}.history-date{width:96px;flex-shrink:0;font-weight:600;font-variant-numeric:tabular-nums}.history-result{width:96px;flex-shrink:0;text-align:center}.history-inspector{width:120px;flex-shrink:0;color:var(--text-strong)}.history-remarks{flex:1;min-width:0;font-size:13.5px;color:var(--text-subtle)}.history-edit{margin-left:auto;border:none;background:none;padding:0;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--text-faint);cursor:pointer}.history-edit:hover{color:var(--text-main)}.card-note{padding:12px 16px;font-size:12.5px;color:var(--text-subtle)}.events-head{cursor:pointer}.event-row{display:flex;align-items:center;gap:14px;padding:11px 16px;border-bottom:1px solid var(--bg-surface);font-size:13.5px}.event-when{width:132px;flex-shrink:0;color:var(--text-subtle);font-variant-numeric:tabular-nums}.event-name{width:150px;flex-shrink:0;font-weight:600}.event-detail{flex:1;min-width:0;color:var(--text-subtle)}.event-actor{color:var(--text-strong)}.dlg--wide{width:1120px}.dlg--narrow{width:600px}.dlg-section-label{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-subtle)}.dlg-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--text-subtle) 50%),linear-gradient(135deg,var(--text-subtle) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.dlg-select-row{display:flex;align-items:center;gap:9px}.dlg-select-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0}.dlg-input:disabled{background-color:var(--bg-app);color:var(--text-faint);cursor:not-allowed}.dlg-hint-line{box-sizing:border-box;height:38px;display:flex;align-items:center;justify-content:center;padding:0 14px;border-radius:8px;border:1px solid transparent;font-size:12.5px;text-align:center}.dlg-hint-line.is-neutral{background-color:var(--bg-app);border-color:var(--border-color);color:var(--text-subtle)}.dlg-hint-line.is-warning{background-color:#fffbeb;border-color:#fde68a;color:#b45309}.result-pills{display:flex;gap:9px;flex-wrap:wrap}.result-pill{padding:9px 15px;border-radius:8px;border:1px solid var(--border-color);background-color:var(--bg-app);color:var(--text-muted);font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer}.result-pill.is-selected{color:#fff;border-color:transparent}.segmented-3{display:inline-flex;padding:3px;border-radius:8px;background-color:var(--bg-surface)}.segmented-3 button{flex:1;padding:6px 14px;border:none;border-radius:6px;background:none;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--text-muted);cursor:pointer;white-space:nowrap}.segmented-3 button.is-active{background-color:var(--bg-card);color:var(--text-main);box-shadow:0 1px 3px #0f172a1a}.dlg-info-strip{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:9px;border:1px solid var(--border-color);background-color:var(--bg-app);font-size:13px;color:var(--text-strong)}.dlg-info-disc{width:26px;height:26px;flex-shrink:0;border-radius:50%;background-color:#e0f2fe;color:#0369a1;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.dlg-duty-row{display:flex;align-items:flex-start;gap:24px;flex-wrap:wrap}.dlg-duty-checkbox{margin-top:30px}.dlg-duty-interval{width:170px}.btn-inspect-row{padding:7px 13px;border-radius:7px;font-size:12.5px;font-weight:600;white-space:nowrap}.sidebar .nav-item{font-size:14.5px}.sidebar .nav-item.active{background-color:var(--section-accent)}.nav-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background-color:var(--section-accent);opacity:.9}.sidebar .nav-item.active .nav-dot{background-color:#fff;opacity:.85}.nav-count{margin-left:auto;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}.sidebar.collapsed .nav-count{display:none}
