:root{--bg: #f0eee6;--panel: #ffffff;--panel-alt: #f7f5ee;--border: #ddd7c8;--border-soft: #eae7dc;--text: #1c211f;--text-muted: #5f665f;--text-faint: #8b948c;--accent: #2b616c;--accent-hover: #204c55;--accent-soft: #e2edee;--danger: #96382c;--danger-soft: #f6e9e6;--warn: #8a5a20;--warn-soft: #f5ecd9;--warn-border: #e4d4a8;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 7px;--space-5: 8px;--space-6: 9px;--space-7: 10px;--space-8: 12px;--space-9: 14px;--space-10: 16px;--space-11: 20px;--space-12: 24px;--radius-lg: 16px;--radius-md: 10px;--radius-sm: 7px;--shadow-sm: 0 1px 2px rgba(28, 33, 31, .07);--shadow-md: 0 4px 16px rgba(28, 33, 31, .09);--shadow-lg: 0 20px 50px rgba(28, 33, 31, .2);--ease: cubic-bezier(.2, .8, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--dur-fast: .12s;--dur: .18s;--dur-slow: .32s;--sans: "IBM Plex Sans", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--manual-serif: "Source Serif 4", Georgia, "Times New Roman", serif;color-scheme:light;--dark-bg: #15181a;--dark-panel: #1c2023;--dark-panel-alt: #21262a;--dark-border: #383e40;--dark-border-soft: #282e30;--dark-text: #ecebe6;--dark-text-muted: #a3aca5;--dark-text-faint: #6f7873;--dark-accent: #7db8c0;--dark-accent-hover: #93c6cd;--dark-accent-soft: #21363a;--dark-danger: #d98a7c;--dark-danger-soft: #35211d;--dark-warn: #d9ab5c;--dark-warn-soft: #332a17;--dark-warn-border: #4a3c1f;--dark-shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--dark-shadow-md: 0 4px 16px rgba(0, 0, 0, .38);--dark-shadow-lg: 0 20px 50px rgba(0, 0, 0, .55)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: var(--dark-bg);--panel: var(--dark-panel);--panel-alt: var(--dark-panel-alt);--border: var(--dark-border);--border-soft: var(--dark-border-soft);--text: var(--dark-text);--text-muted: var(--dark-text-muted);--text-faint: var(--dark-text-faint);--accent: var(--dark-accent);--accent-hover: var(--dark-accent-hover);--accent-soft: var(--dark-accent-soft);--danger: var(--dark-danger);--danger-soft: var(--dark-danger-soft);--warn: var(--dark-warn);--warn-soft: var(--dark-warn-soft);--warn-border: var(--dark-warn-border);--shadow-sm: var(--dark-shadow-sm);--shadow-md: var(--dark-shadow-md);--shadow-lg: var(--dark-shadow-lg);color-scheme:dark}}:root[data-theme=dark]{--bg: var(--dark-bg);--panel: var(--dark-panel);--panel-alt: var(--dark-panel-alt);--border: var(--dark-border);--border-soft: var(--dark-border-soft);--text: var(--dark-text);--text-muted: var(--dark-text-muted);--text-faint: var(--dark-text-faint);--accent: var(--dark-accent);--accent-hover: var(--dark-accent-hover);--accent-soft: var(--dark-accent-soft);--danger: var(--dark-danger);--danger-soft: var(--dark-danger-soft);--warn: var(--dark-warn);--warn-soft: var(--dark-warn-soft);--warn-border: var(--dark-warn-border);--shadow-sm: var(--dark-shadow-sm);--shadow-md: var(--dark-shadow-md);--shadow-lg: var(--dark-shadow-lg);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14.5px;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}::selection{background:var(--accent-soft);color:var(--accent-hover)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px;border:2px solid var(--bg)}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}h1,h2,h3{font-weight:650;letter-spacing:-.01em;text-wrap:balance}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:var(--radius-sm);padding:var(--space-6) var(--space-10);font-weight:550;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease),color var(--dur) var(--ease)}button:hover{background:var(--panel-alt);border-color:var(--text-faint)}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft),0 0 0 1px var(--accent)}button.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-sm)}button.active:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--danger);border-color:var(--warn-border);background:var(--danger-soft)}button.danger:hover{filter:brightness(.97)}button.ghost-btn,button.close-btn{background:transparent;border-color:transparent;color:var(--text-muted)}button.ghost-btn:hover,button.close-btn:hover{background:var(--panel-alt);color:var(--text)}input,select,textarea{font:inherit;padding:var(--space-6) 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--text-muted);margin-bottom:var(--space-8);letter-spacing:.01em}.duration-input{display:flex;gap:var(--space-3)}.time-input{display:inline-flex;align-items:center;gap:var(--space-2);width:fit-content}.time-input-field{width:2.8em;padding-left:var(--space-4);padding-right:var(--space-4);text-align:center;font-variant-numeric:tabular-nums}.time-input-sep{color:var(--text-muted);font-weight:600}.form-row{display:flex;gap:var(--space-3)}.field-with-scan{display:flex;align-items:center;gap:var(--space-4)}.field-with-scan input,.form-row label,.duration-input input{flex:1 1 0;min-width:0}.duration-input select{flex:none;width:auto}.login-screen{position:relative;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 20% 20%,rgba(43,97,108,.09),transparent 45%),radial-gradient(circle at 80% 80%,rgba(43,97,108,.07),transparent 45%),var(--bg)}.login-lang{position:absolute;top:18px;right:18px}.login-footer{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:11.5px;color:var(--text-faint)}.login-card{background:var(--panel);padding:36px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:340px;display:flex;flex-direction:column;gap:var(--space-1);animation:rise-in var(--dur-slow) var(--ease)}.login-logo{height:126px;width:auto;align-self:center;margin-bottom:var(--space-9)}.login-card h1{font-size:21px;margin:0 0 var(--space-5)}.login-card form{display:contents}.link-button{background:none;border:none;box-shadow:none;padding:var(--space-2) 0;color:var(--accent);font-size:13px;font-weight:500;text-align:left;cursor:pointer}.link-button:hover{text-decoration:underline;background:none;transform:none;box-shadow:none}.login-card h1:after{content:"";display:block;width:34px;height:3px;border-radius:999px;background:var(--accent);margin-top:var(--space-7);margin-bottom:var(--space-2)}.checkbox-label{flex-direction:row;align-items:center;gap:var(--space-5);font-size:13.5px;font-weight:500;color:var(--text);margin:var(--space-1) 0 var(--space-10)}.checkbox-label input{width:auto}.admin-add-row .checkbox-label,.admin-list li .checkbox-label{display:inline-flex;margin:0}.login-card button[type=submit]{background:var(--accent);color:#fff;border-color:var(--accent);padding:11px var(--space-10);box-shadow:var(--shadow-sm)}.login-card button[type=submit]:hover{background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.app-shell{height:100%;display:flex;flex-direction:column}.topnav{display:flex;align-items:center;justify-content:space-between;padding:var(--space-8) var(--space-12);background:var(--panel);border-bottom:1px solid var(--border-soft);box-shadow:var(--shadow-sm);z-index:5}.topnav-left{display:flex;align-items:center;gap:18px}.dzp-logo{height:30px;width:auto;display:block}.topnav-tabs{display:flex;gap:var(--space-3);background:var(--bg);padding:var(--space-2);border-radius:var(--radius-md)}.topnav-tabs button{border:none;background:transparent;border-radius:var(--radius-sm);padding:var(--space-4) var(--space-10);font-size:13.5px}.topnav-tabs button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow-sm);border:1px solid var(--border-soft)}.topnav-user{display:flex;align-items:center;gap:var(--space-7);color:var(--text-muted);font-size:13.5px;font-weight:550}.help-link,.theme-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--border);color:var(--text-muted);font-family:inherit;font-weight:700;font-size:13px;text-decoration:none;background:var(--panel);padding:0;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.help-link:hover,.theme-toggle:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.theme-toggle svg{width:15px;height:15px;stroke:currentColor}.lang-switcher{padding:var(--space-2) 22px var(--space-2) var(--space-5);font-size:13px;border-radius:999px;cursor:pointer}.lang-switcher:hover{border-color:var(--text-faint)}.app-main{flex:1;overflow:auto;padding:22px 26px}.app-footer{flex-shrink:0;padding:var(--space-5) 26px;text-align:center;font-size:11.5px;color:var(--text-faint);background:var(--panel);border-top:1px solid var(--border-soft)}.tactical-logo{height:16px;width:auto;vertical-align:middle;margin:0 var(--space-2);opacity:.85}.splash,.board-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-9);height:100%;color:var(--text-muted);font-size:14px}.splash:before,.board-loading:before{content:"";width:28px;height:28px;border-radius:50%;border:3px solid var(--border-soft);border-top-color:var(--accent);animation:spin .8s linear infinite}.weekly-board,.parking-board,.stage-board,.admin-view,.export-view{animation:fade-in var(--dur-slow) var(--ease) both}.board-header{display:flex;align-items:center;gap:var(--space-10);margin-bottom:var(--space-10)}.board-header h2,.admin-section .board-header h2{margin:0}.week-nav,.week-span-toggle{display:flex;align-items:center;gap:var(--space-3);background:var(--panel);padding:5px;border-radius:var(--radius-md);border:1px solid var(--border-soft);box-shadow:var(--shadow-sm)}.week-span-toggle button{border:none;padding:var(--space-4) var(--space-8);font-size:13px}.admin-tabs{display:inline-flex;flex-wrap:wrap;margin-bottom:18px}.admin-tabs-select,.modal-tabs-select{display:none;width:100%;margin-bottom:18px;padding:var(--space-5) var(--space-8);font-size:16px;font-family:var(--sans);color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.admin-tabs-select:focus,.modal-tabs-select:focus{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.week-nav button{border:none;padding:var(--space-4) var(--space-8)}.week-picker{border:none;background:transparent;font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600;min-width:190px;text-align:center;font-size:13px;letter-spacing:-.01em;color:var(--text);padding:var(--space-4) var(--space-5);border-radius:var(--radius-sm);cursor:pointer}.week-picker:hover{background:var(--panel-alt)}.week-picker:focus{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.new-ticket-btn{background:var(--accent);color:#fff;border-color:var(--accent);margin-left:auto;box-shadow:var(--shadow-sm)}.export-buttons{display:flex;gap:var(--space-3);margin-left:auto}.export-date-field{margin-bottom:0}.export-date-field select{max-width:220px}.export-buttons .new-ticket-btn{margin-left:0}.report-presets-select{max-width:220px;margin-bottom:0}.report-filters-stats{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--space-8);margin-bottom:var(--space-10)}.report-filters{display:flex;flex-wrap:wrap;gap:var(--space-8)}.report-filters .export-date-field{margin-bottom:0}.report-stats{display:flex;flex-wrap:wrap;gap:var(--space-5)}.report-stat{display:flex;flex-direction:column;gap:var(--space-1);background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-6) var(--space-9);min-width:96px;box-shadow:var(--shadow-sm)}.report-stat strong{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.report-stat span{font-size:10.5px;color:var(--text-faint);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.new-ticket-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.sync-indicator{color:var(--text-faint);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:var(--space-3)}.sync-indicator:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse-dot 1.1s ease-in-out infinite}.board-grid-wrap{position:relative}.board-grid{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-lg);overflow-x:auto;overflow-y:hidden;box-shadow:var(--shadow-md);touch-action:pan-y}.board-edge-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:44px;border-radius:50%;border:1px solid var(--border-soft);background:var(--panel);box-shadow:var(--shadow-md);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);opacity:.9}.board-edge-nav:hover{opacity:1;color:var(--accent);border-color:var(--accent);transform:translateY(-50%) scale(1.06)}.board-edge-nav.left{left:-18px}.board-edge-nav.right{right:-18px}.board-grid-headrow,.technician-row{display:grid;grid-template-columns:148px repeat(var(--day-count, 6),minmax(140px,1fr));border-bottom:1px solid var(--border-soft);width:calc(148px + var(--day-count, 6) * 140px);min-width:100%}.week-seam{border-left:2px solid var(--border)}.technician-row:last-child{border-bottom:none}.board-grid-headrow{background:var(--panel-alt);font-weight:650;font-size:12.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.corner-cell,.day-header{padding:var(--space-8) var(--space-7);border:none;border-right:1px solid var(--border-soft);text-align:center}.corner-cell{position:sticky;left:0;z-index:2;background:var(--panel-alt)}.day-header{background:transparent;border-radius:0;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12.5px;font-weight:650}.technician-tab{display:flex;align-items:center;justify-content:flex-start;padding:var(--space-7) var(--space-9);color:#fff;text-shadow:-1px -1px 1px rgba(0,0,0,.5),1px -1px 1px rgba(0,0,0,.5),-1px 1px 1px rgba(0,0,0,.5),1px 1px 1px rgba(0,0,0,.5);-webkit-text-stroke:.4px rgba(0,0,0,.35);font-weight:650;font-size:13px;border:none;border-right:1px solid var(--border-soft);border-radius:0;text-align:left;cursor:pointer;transition:filter var(--dur) var(--ease);position:sticky;left:0;z-index:2}.technician-tab:hover{filter:brightness(1.12)}.technician-tab.drop-over{background:var(--accent-hover)!important;box-shadow:inset 0 0 0 2px #fff}.day-cell{border-right:1px solid var(--border-soft);min-height:80px;padding:var(--space-4);overflow:hidden;display:flex;flex-direction:column;gap:var(--space-3);transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.day-cell .job-card{flex:none;width:100%;min-width:0}@media (min-width: 861px){.board-grid.multi-week .board-grid-headrow,.board-grid.multi-week .technician-row{grid-template-columns:148px repeat(var(--day-count, 6),minmax(0,1fr));width:100%;min-width:0}}.drop-over{background:var(--accent-soft)!important;box-shadow:inset 0 0 0 2px var(--accent)}.day-cell.holiday{background:repeating-linear-gradient(45deg,var(--panel-alt),var(--panel-alt) 8px,var(--border-soft) 8px,var(--border-soft) 16px)}.day-cell.absent{background:var(--panel-alt)}.absent-label{font-size:10.5px;color:var(--text-faint);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.absent-label.removable{cursor:pointer;border-radius:var(--radius-sm);padding:3px 5px;margin:-3px -5px;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.absent-label.removable:hover{background:var(--danger-soft);color:var(--danger)}.job-card{background:var(--panel);border:1px solid var(--border-soft);border-left:4px solid #999;border-radius:var(--radius-sm);padding:var(--space-4) var(--space-6);font-size:12px;cursor:grab;box-shadow:var(--shadow-sm);touch-action:none;-webkit-user-select:none;user-select:none;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.job-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.job-card:active{cursor:grabbing}.job-card.dragging{opacity:.55;box-shadow:var(--shadow-lg);z-index:10;transition:none}.job-card.readonly,.dayview-job.readonly{cursor:default;touch-action:auto}.job-card.readonly:hover,.dayview-job.readonly:hover{box-shadow:var(--shadow-sm);transform:none}.job-card-order,.job-card-client{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-card-order{font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums}.job-card-client{color:var(--text-muted);font-size:11.5px}.parking-board{display:flex;flex-direction:column;gap:var(--space-11)}.parking-lane{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.parking-lane-header{background:var(--warn-soft);border-bottom:1px solid var(--warn-border);color:var(--warn);padding:var(--space-8) var(--space-10);font-weight:650;font-size:13px}.parking-lane-columns{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(160px,1fr);overflow-x:auto}.parking-cell{border-right:1px solid var(--border-soft);padding:var(--space-7);min-height:96px;transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.parking-cell-header{font-size:11px;font-weight:700;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-7);text-align:center}.parking-card{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-7);margin-bottom:var(--space-5);font-size:12px;cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.parking-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.parking-card.dragging{opacity:.55;box-shadow:var(--shadow-lg);transition:none}.return-btn{margin-top:var(--space-5);width:100%;font-size:11px;padding:5px var(--space-3)}.stage-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);gap:var(--space-9);overflow-x:auto;align-items:start}.stage-column{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);min-height:200px;display:flex;flex-direction:column;transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.stage-column.drop-over{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.stage-column-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-8) var(--space-9);border-bottom:1px solid var(--border-soft);font-weight:650;font-size:13px}.stage-column-count{font-size:11px;font-weight:700;color:var(--text-faint);background:var(--panel-alt);border-radius:999px;padding:1px var(--space-5);font-variant-numeric:tabular-nums}.stage-column-body{padding:var(--space-7);display:flex;flex-direction:column;gap:var(--space-5);flex:1}.stage-column-empty{color:var(--text-faint);font-size:11.5px;text-align:center;padding:var(--space-7) 0}.stage-card{background:var(--panel);border:1px solid var(--border-soft);border-left:4px solid #999;border-radius:var(--radius-sm);padding:var(--space-5) var(--space-7);font-size:12px;cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.stage-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stage-card.dragging{opacity:.55;box-shadow:var(--shadow-lg);transition:none}.stage-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-1)}.stage-status-badge{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:var(--space-1) var(--space-3);border-radius:999px;white-space:nowrap;background:var(--accent-soft);color:var(--accent)}.stage-status-badge.parked{background:var(--warn-soft);color:var(--warn)}.stage-card-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);font-size:11px;color:var(--text-muted)}.stage-card-technician{display:inline-flex;align-items:center;gap:5px}.stage-card-unassigned{color:var(--text-faint);font-style:italic}.stage-card-date{font-variant-numeric:tabular-nums;color:var(--text-faint)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c0b80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:safe center;justify-content:center;overflow-y:auto;z-index:100;animation:fade-in var(--dur) var(--ease)}.modal{background:var(--panel);border-radius:var(--radius-lg);padding:26px;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 2 * var(--space-12));margin:var(--space-12) 0;box-shadow:var(--shadow-lg);animation:rise-in var(--dur-slow) var(--ease);display:flex;flex-direction:column}@media (max-width: 480px){.modal{padding:var(--space-11)}}.modal h2{margin-top:0;font-size:18px;flex-shrink:0}.modal-body{flex:1;min-height:0;overflow-y:auto}.ticket-page{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:100;display:flex;flex-direction:column;animation:fade-in var(--dur) var(--ease)}.ticket-page-header{display:flex;align-items:center;gap:var(--space-9);padding:var(--space-9) var(--space-11);border-bottom:1px solid var(--border);flex-shrink:0}.ticket-page-header h2{margin:0;font-size:18px}.ticket-page-back{background:none;border:none;color:var(--accent);font-weight:600;font-size:14px;cursor:pointer;padding:var(--space-4) var(--space-6);border-radius:var(--radius-sm);flex-shrink:0}.ticket-page-back:hover{background:var(--accent-soft)}.ticket-page-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-11);max-width:720px;width:100%;margin:0 auto;box-sizing:border-box}.ticket-page-fieldset{border:none;padding:0;margin:0;min-width:0}.success-text{color:var(--accent);font-weight:600;padding:var(--space-6) 0}.modal.modal-wide{width:min(920px,calc(100vw - 32px))}.import-review-table-wrap{max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);margin:var(--space-7) 0}.import-review-table{width:100%;border-collapse:collapse;font-size:13px}.import-review-table th,.import-review-table td{padding:var(--space-3) var(--space-7);text-align:left;white-space:nowrap}.import-review-table thead th{position:sticky;top:0;background:var(--panel);border-bottom:1px solid var(--border);z-index:1}.import-review-table tbody tr:not(:last-child){border-bottom:1px solid var(--border)}.import-review-table tbody tr.import-review-row-error{background:var(--danger-soft)}.import-review-table select{max-width:220px}.modal-actions{display:flex;gap:var(--space-5);margin-top:18px;flex-wrap:wrap;flex-shrink:0}.modal-actions button{padding:var(--space-4) var(--space-8);font-size:13px}.more-menu{position:relative;display:inline-flex}.more-menu-list{position:absolute;bottom:calc(100% + 6px);left:0;min-width:220px;background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);z-index:10;animation:rise-in var(--dur) var(--ease)}.more-menu-list button{border:none;background:transparent;text-align:left;padding:var(--space-5) var(--space-7);font-size:13px;font-weight:500;border-radius:var(--radius-sm)}.more-menu-list button:hover{background:var(--panel-alt)}.more-menu-list button.danger-text{color:var(--danger)}.more-menu-list button.danger-text:hover{background:var(--danger-soft)}.user-menu-trigger{display:flex;align-items:center;gap:var(--space-3);background:transparent;border:1px solid transparent;color:var(--text-muted);font:inherit;font-size:13.5px;font-weight:550;padding:var(--space-3) var(--space-7);border-radius:var(--radius-sm)}.user-menu-trigger:hover{background:var(--panel-alt);border-color:var(--border-soft)}.user-menu-caret{font-size:10px;opacity:.7}.user-menu-list{top:calc(100% + 6px);bottom:auto;left:auto;right:0;min-width:200px}.user-menu-list button{display:flex;align-items:center;gap:var(--space-5)}.user-menu-list button svg{width:15px;height:15px;stroke:currentColor;flex-shrink:0}.user-menu-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-7);padding:var(--space-3) var(--space-7);font-size:13px;font-weight:500;color:var(--text-muted)}.user-menu-divider{height:1px;background:var(--border-soft);margin:var(--space-2) var(--space-1)}.location-switcher-list{min-width:180px}.location-switcher-list button.active{background:var(--panel-alt);color:var(--accent);font-weight:600}.notification-bell .help-link{position:relative}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 3px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--panel)}.notification-list{top:calc(100% + 6px);bottom:auto;left:auto;right:0;min-width:220px}.park-form{background:var(--warn-soft);border:1px solid var(--warn-border);padding:var(--space-8);border-radius:var(--radius-md);margin:var(--space-8) 0;animation:rise-in var(--dur) var(--ease)}.duplicate-technician-list{list-style:none;margin:var(--space-5) 0;padding:var(--space-3) var(--space-5);max-height:180px;overflow-y:auto;background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-sm)}.duplicate-technician-list li{padding:var(--space-2) 0}.duplicate-technician-list .checkbox-label{margin-bottom:0}.locations-picker{margin:var(--space-5) 0;padding:var(--space-3) var(--space-5);max-height:160px;overflow-y:auto;background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-sm)}.locations-picker .hint{margin-bottom:var(--space-2)}.locations-picker .checkbox-label{margin:0 0 var(--space-2)}.locations-picker select{margin-top:var(--space-3)}.mode-toggle{display:flex;gap:var(--space-5);margin-bottom:var(--space-9)}.hint{font-size:12.5px;color:var(--text-muted);margin-bottom:var(--space-8);font-weight:500}.search-modal{width:min(520px,calc(100vw - 32px));display:flex;flex-direction:column;max-height:min(70vh,560px)}.search-input{width:100%;font-size:15px;padding:11px var(--space-9);margin-bottom:var(--space-8);flex-shrink:0}.search-results{overflow-y:auto;flex:1;min-height:40px}.search-results .hint{margin-bottom:0}.block-list{margin:var(--space-2) 0 0;padding-left:18px;font-weight:500;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px}.modal-tabs{margin-bottom:var(--space-10);flex-shrink:0}.ticket-timer{display:flex;align-items:center;gap:var(--space-9);flex-shrink:0;margin-bottom:var(--space-9)}.ticket-timer-value{font-family:var(--mono);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-muted)}.ticket-timer-value.running{color:var(--accent)}.modal-tabs-select{flex-shrink:0}.checklist-list{list-style:none;margin:var(--space-7) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-5)}.checklist-list .checkbox-label{display:flex}.checklist-freetext-row{display:flex;align-items:center;gap:var(--space-5)}.checklist-freetext-label{flex-shrink:0}.checklist-admin{width:100%;margin:var(--space-5) 0 var(--space-2) var(--space-12);padding:var(--space-7) var(--space-8);background:var(--panel-alt);border-radius:var(--radius-md);border:1px solid var(--border-soft)}.checklist-admin .checklist-list li{display:flex;align-items:center;gap:var(--space-5);font-size:13.5px}.checklist-stage-group{margin-bottom:var(--space-8)}.checklist-stage-group h4.clickable,.report-table tr.clickable,.report-table th.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.collapse-caret{display:inline-block;margin-right:var(--space-2)}.sort-arrow{opacity:.4;font-size:10px}.sort-arrow.active,.report-table th.clickable:hover .sort-arrow{opacity:1}.pagination-bar{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);justify-content:flex-end}.pagination-bar select{width:auto}.checklist-stage-group h4{margin:0 0 var(--space-3);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.checklist-item-code{font-family:var(--font-mono, monospace);font-size:11.5px;font-weight:700;color:var(--text-muted);background:var(--panel-alt);border-radius:4px;padding:1px 5px;margin-right:var(--space-3)}.checklist-item-code-input{max-width:90px;flex-shrink:0}.certification-list{list-style:none;margin:var(--space-5) 0;padding:0;display:flex;flex-direction:column;gap:var(--space-5)}.certification-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);font-size:13.5px}.checklist-drag-handle{cursor:grab;color:var(--text-faint);font-size:15px;line-height:1;touch-action:none;flex-shrink:0}.checklist-drag-handle:active{cursor:grabbing}.upload-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--space-6) var(--space-9);font-size:13.5px;font-weight:600;cursor:pointer;margin-bottom:var(--space-8);transition:background var(--dur) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}.upload-btn:hover{background:var(--accent-hover)}.upload-btn:active{transform:scale(.97)}.upload-btn:has(input:focus-visible){box-shadow:0 0 0 3px var(--accent-soft),0 0 0 1px var(--accent)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--space-5)}.photo-thumb{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-soft);background:var(--panel-alt)}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.photo-thumb-delete{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:#0a0c0b99;color:#fff;font-size:15px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}.photo-thumb-delete:hover{background:var(--danger)}.photos-toolbar{display:flex;align-items:center;gap:var(--space-5)}.photos-tab{border-radius:var(--radius-md);transition:background var(--dur) var(--ease)}.photos-tab.drag-active{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:-2px}.photos-dropzone{text-align:center;padding:var(--space-8) var(--space-9);margin-bottom:var(--space-7);border:1.5px dashed var(--border);border-radius:var(--radius-md);color:var(--text-faint);font-weight:550;font-size:13px;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.photos-tab.drag-active .photos-dropzone{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.photos-bulk-bar{display:flex;align-items:center;gap:var(--space-5);background:var(--panel-alt);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-7);margin-bottom:var(--space-7)}.photos-bulk-bar .hint{margin-right:auto}.photo-thumb-open{display:block;width:100%;height:100%;border:none;background:none;padding:0;border-radius:0}.photo-thumb.selected{box-shadow:0 0 0 3px var(--accent)}.photo-thumb-checkbox{position:absolute;top:6px;left:6px;width:18px;height:18px;margin:0;accent-color:var(--accent);cursor:pointer}.gallery-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#060707eb;z-index:1000;display:flex;flex-direction:column;animation:fade-in var(--dur-slow) var(--ease)}.gallery-modal{display:flex;flex-direction:column;flex:1;min-height:0}.gallery-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);padding:var(--space-8) var(--space-10);color:#f2f1ec}.gallery-caption{font-size:13px;color:#cfd0cb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-position{color:#9a9d97}.gallery-topbar-actions{display:flex;align-items:center;gap:var(--space-5);flex-shrink:0}.gallery-topbar-actions button{background:#ffffff14;border-color:#ffffff2e;color:#f2f1ec}.gallery-topbar-actions button:hover{background:#ffffff29}.gallery-close{font-size:20px;line-height:1;padding:var(--space-4) var(--space-6)!important}.gallery-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 var(--space-11) var(--space-11)}.gallery-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:none;background:#ffffff1a;color:#f2f1ec;font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center}.gallery-nav:hover{background:#fff3}.gallery-nav-prev{left:var(--space-9)}.gallery-nav-next{right:var(--space-9)}.scan-viewport{position:relative;flex:1;min-height:0;background:#000}.scan-viewport-video{width:100%;height:100%}.scan-viewport-video video{width:100%;height:100%;object-fit:cover}.scan-error{position:absolute;left:var(--space-10);right:var(--space-10);bottom:var(--space-11);text-align:center;color:#f2a0a0}@media (max-width: 640px){.gallery-topbar{flex-wrap:wrap}.gallery-nav{width:36px;height:36px;font-size:20px}.gallery-nav-prev{left:var(--space-5)}.gallery-nav-next{right:var(--space-5)}}.error-text{color:var(--danger);font-size:13px;margin-bottom:var(--space-7);font-weight:550}@keyframes rise-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes view-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.dayview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c0b80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:safe center;justify-content:center;overflow-y:auto;z-index:100;animation:fade-in var(--dur) var(--ease)}.dayview-panel{background:var(--panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:1180px;max-height:92vh;margin:var(--space-12) auto;display:flex;flex-direction:column;overflow:hidden;animation:rise-in var(--dur-slow) var(--ease)}.dayview-header{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-10) var(--space-11);border-bottom:1px solid var(--border-soft)}.dayview-header h2{font-size:16px;margin:0 var(--space-5);flex:1;text-align:center}.dayview-header .close-btn{margin-left:auto}.dayview-holiday-banner{margin:var(--space-12);padding:var(--space-10);background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn-border);border-radius:var(--radius-md);text-align:center;font-weight:600}.stage-drag-error{margin:var(--space-8) var(--space-12) 0;padding:var(--space-8) var(--space-10);background:var(--danger-soft);border-radius:var(--radius-md);cursor:pointer}.dayview-grid{overflow:auto;padding:var(--space-5) var(--space-11) var(--space-11);min-height:0}.dayview-hourline{display:grid;grid-template-columns:140px 1fr;position:sticky;top:0;background:var(--panel);z-index:2}.dayview-corner{border-right:1px solid var(--border-soft)}.dayview-timeline-header{position:relative;height:26px;border-bottom:1px solid var(--border-soft)}.dayview-hour-mark{position:absolute;top:0;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11px;color:var(--text-faint);font-weight:600;border-left:1px solid var(--border-soft);padding-left:var(--space-2);height:100%}.dayview-body{position:relative}.dayview-hour-gridline{position:absolute;top:0;bottom:0;width:1px;background:var(--border-soft);pointer-events:none}.dayview-break-band{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,var(--panel-alt),var(--panel-alt) 6px,var(--border-soft) 6px,var(--border-soft) 12px);border-left:1px dashed var(--border);border-right:1px dashed var(--border);z-index:1;pointer-events:none}.dayview-now-line{position:absolute;top:0;bottom:0;width:2px;background:var(--danger);z-index:3;pointer-events:none}.dayview-now-line:before{content:"";position:absolute;top:-3px;left:50%;transform:translate(-50%);width:8px;height:8px;border-radius:50%;background:var(--danger)}.dayview-row{display:grid;grid-template-columns:140px 1fr;border-bottom:1px solid var(--border-soft)}.dayview-row:last-child{border-bottom:none}.dayview-tab{display:flex;align-items:center;padding:var(--space-7) var(--space-8);color:#fff;text-shadow:-1px -1px 1px rgba(0,0,0,.5),1px -1px 1px rgba(0,0,0,.5),-1px 1px 1px rgba(0,0,0,.5),1px 1px 1px rgba(0,0,0,.5);-webkit-text-stroke:.4px rgba(0,0,0,.35);font-weight:650;font-size:13px;border-right:1px solid var(--border-soft)}.dayview-lane{position:relative;min-height:72px;padding:var(--space-5) 0;transition:background var(--dur) var(--ease)}.dayview-absent{padding:var(--space-11) var(--space-8)}.dayview-job{position:absolute;top:6px;bottom:6px;background:var(--panel);border:1px solid var(--border-soft);border-left:4px solid #999;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6);font-size:11.5px;overflow:hidden;cursor:grab;box-shadow:var(--shadow-sm);z-index:2;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);min-width:60px;touch-action:none;-webkit-user-select:none;user-select:none}.dayview-job:active{cursor:grabbing}.dayview-job.dragging-float{z-index:999;box-shadow:var(--shadow-lg);opacity:.94;pointer-events:none;cursor:grabbing;transition:none}.dayview-lane.drop-target{background:var(--accent-soft)}.dayview-job:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);z-index:4}.dayview-job-time{color:var(--text-faint);font-size:10.5px;font-weight:600;font-family:var(--mono);font-variant-numeric:tabular-nums;margin-top:var(--space-1)}.dayview-resize-handle{position:absolute;top:0;right:0;bottom:0;width:10px;cursor:ew-resize;touch-action:none}.dayview-resize-handle:after{content:"";position:absolute;top:50%;right:3px;transform:translateY(-50%);width:2px;height:14px;border-radius:2px;background:var(--text-faint);opacity:0;transition:opacity var(--dur-fast) var(--ease)}.dayview-job:hover .dayview-resize-handle:after{opacity:.6}.dayview-job.resizing{z-index:4;box-shadow:var(--shadow-md);transition:none}.dayview-job.resizing .dayview-resize-handle:after{opacity:1;background:var(--accent)}.dayview-panel.technician-overview{max-width:640px}.dayview-panel.technician-overview.embedded{max-height:none;margin:0 auto;animation:view-in var(--dur-slow) var(--ease)}.dayview-panel.embedded{max-width:none;max-height:none;margin:0;box-shadow:none;animation:view-in var(--dur-slow) var(--ease)}.technician-overview-body{padding:var(--space-5) var(--space-12) var(--space-12);overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:22px}.overview-section h3{font-size:13.5px;margin:0 0 var(--space-7);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.overview-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.overview-list li{background:var(--panel-alt);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-8);cursor:pointer;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}.overview-list li:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px);border-color:var(--accent)}.overview-list.plain li{cursor:default;font-size:13px;color:var(--text-muted)}.overview-list.plain li:hover{box-shadow:none;transform:none;border-color:var(--border-soft)}.overview-list li.ticket-overview-row{cursor:default;display:flex;align-items:center;justify-content:space-between;gap:var(--space-9)}.ticket-row-info{flex:1;min-width:0;cursor:pointer}.ticket-row-timer{flex-shrink:0;display:flex;align-items:center;gap:var(--space-5)}.ticket-timer-value.small{font-size:13px}.overview-list-main{display:flex;gap:var(--space-5);align-items:baseline;font-size:13.5px}.overview-list-meta{font-size:11.5px;color:var(--text-faint);margin-top:var(--space-1)}.technician-overview.embedded .overview-list li{padding:var(--space-9) var(--space-10)}.technician-overview.embedded .overview-list-main{gap:var(--space-6);font-size:16px}.technician-overview.embedded .job-card-client,.technician-overview.embedded .overview-list-meta{font-size:14px}.technician-overview.embedded .ticket-row-timer{gap:var(--space-6)}.technician-overview.embedded .ticket-timer-value.small{font-size:15px}.technician-overview.embedded .ticket-row-timer .link-btn{font-size:14px;padding:var(--space-3) var(--space-5)}@media (min-width: 700px){.technician-overview.embedded .overview-list-main{font-size:18px}.technician-overview.embedded .job-card-client,.technician-overview.embedded .overview-list-meta{font-size:15px}}.badge-progress{color:var(--accent);font-weight:650}.schedule-list-view{display:flex;flex-direction:column;gap:var(--space-11);background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:18px var(--space-11);box-shadow:var(--shadow-md)}.schedule-list-tech-header{display:flex;align-items:center;gap:var(--space-5);font-size:14px;margin:0 0 var(--space-7);color:var(--text)}.schedule-list-view .job-card-order,.schedule-list-view .job-card-client{white-space:normal;overflow:visible;text-overflow:clip}.schedule-list-absence{cursor:default}.schedule-list-absence:hover{box-shadow:none;transform:none;border-color:var(--border-soft)}.vacation-badge{display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:var(--space-1) var(--space-5);border-radius:999px;margin-right:var(--space-3)}.vacation-badge.pending{background:var(--warn-soft);color:var(--warn)}.vacation-badge.approved{background:var(--accent-soft);color:var(--accent)}.vacation-badge.denied{background:var(--danger-soft);color:var(--danger)}.admin-view{display:flex;flex-direction:column;gap:var(--space-11);max-width:min(1520px,96vw)}.export-view{display:flex;flex-direction:column;gap:var(--space-10);max-width:min(1520px,96vw)}.report-table-wrap{overflow-x:auto}.report-table{width:100%;border-collapse:collapse;font-size:13px}.report-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);border-bottom:1px solid var(--border-soft);padding:0 var(--space-7) var(--space-5) 0;white-space:nowrap}.report-table td{padding:var(--space-5) var(--space-7) var(--space-5) 0;border-bottom:1px solid var(--border-soft);white-space:nowrap}.report-table th.numeric,.report-table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.report-table tbody tr{transition:background var(--dur-fast) var(--ease)}.report-table tbody tr:hover{background:var(--panel-alt)}.report-table tr:last-child td{border-bottom:none}.report-order-link{cursor:pointer;color:inherit;text-decoration:none}.report-order-link:hover{color:var(--accent);text-decoration:underline}.report-table td.clickable{cursor:pointer}.report-table td.clickable:hover{color:var(--accent)}.report-table-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);white-space:nowrap}.expand-caret{display:inline-block;width:1em;color:var(--text-faint)}.report-table-nested{white-space:normal;background:var(--panel-alt);padding:var(--space-6) var(--space-7)}.report-table tr.hint-row:hover{background:transparent}.admin-section{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:var(--space-11) 22px;box-shadow:var(--shadow-sm)}.admin-section h2{display:flex;align-items:center;gap:var(--space-5);font-size:15px;margin-top:0;margin-bottom:var(--space-9)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-11);align-items:start}.dashboard-widget h3{font-size:14px;margin:0 0 var(--space-9)}.glance-list,.dashboard-list{list-style:none;margin:0 0 var(--space-8);padding:0;display:flex;flex-direction:column;gap:var(--space-7)}.glance-item{display:inline-flex;align-items:baseline;gap:var(--space-4);font-size:13px;color:var(--text-muted);padding:0;text-align:left}button.glance-item{cursor:pointer}button.glance-item:hover strong{color:var(--accent)}.glance-item strong{font-size:18px;font-variant-numeric:tabular-nums;color:var(--text)}.dashboard-list{font-size:13px}.dashboard-time{color:var(--text-muted);margin-right:var(--space-5)}.hint-icon{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;border:1px solid var(--border);color:var(--text-faint);font-size:11px;font-weight:700;cursor:help;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.hint-icon:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.icon-btn:hover{background:var(--accent-soft);color:var(--accent)}.icon-btn:disabled{opacity:.5;cursor:default;background:transparent;color:var(--text-muted)}.admin-list{list-style:none;padding:0;margin:0 0 var(--space-10);display:flex;flex-direction:column;gap:var(--space-2)}.admin-list li{display:flex;align-items:center;gap:var(--space-7);font-size:13.5px;padding:var(--space-3) 0;border-bottom:1px solid var(--border-soft);transition:background var(--dur-fast) var(--ease)}.admin-list li:last-child{border-bottom:none}.admin-list button,.report-table-actions button{font-size:11.5px;padding:var(--space-2) var(--space-3);border:none;background:transparent;color:var(--text-muted)}.admin-list button{margin-left:auto}.admin-list button:hover,.report-table-actions button:hover{background:transparent;color:var(--accent);text-decoration:underline}.admin-list button+button{margin-left:0}.admin-list button.danger-text,.report-table-actions button.danger-text{color:var(--danger)}.admin-list button.danger-text:hover,.report-table-actions button.danger-text:hover{color:var(--danger);text-decoration:underline}.link-btn{font-size:12.5px;padding:var(--space-2) var(--space-3);border:none;background:transparent;color:var(--text-muted)}.link-btn:hover{background:transparent;color:var(--accent);text-decoration:underline}.link-btn.danger-text{color:var(--danger)}.link-btn.danger-text:hover{color:var(--danger);text-decoration:underline}.modal-actions button.link-btn{padding:var(--space-2) var(--space-3);font-size:12.5px}.admin-search{display:block;width:100%;margin-bottom:var(--space-8)}.admin-add-row{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.admin-add-row>input:not([type=color]):not([type=checkbox]),.admin-add-row>select{flex:1 1 150px;min-width:120px}.field-half{flex:1 1 150px}.admin-list li{flex-wrap:wrap}.admin-list-info{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);flex:1 1 auto;min-width:0}.admin-list-info.clickable{cursor:pointer;border-radius:var(--radius-sm)}.admin-list-info.clickable:hover{color:var(--accent)}.admin-list-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.admin-list-actions button{margin-left:0}.split-action{position:relative;display:inline-flex;align-items:center}.split-action-caret{padding:var(--space-2) 3px!important;font-size:9px!important}.split-action-list{top:calc(100% + 4px);bottom:auto;left:auto;right:0;min-width:130px}.swatch{width:13px;height:13px;border-radius:4px;display:inline-block;box-shadow:0 0 0 1px #0000001f}.weekday-toggle{display:inline-flex;flex-direction:row;align-items:center;gap:var(--space-2);margin-right:var(--space-9);font-size:12.5px;font-weight:500;color:var(--text)}@media (min-width: 1400px){.job-card{font-size:14px;padding:var(--space-7) var(--space-8)}.day-cell{min-height:92px}button{padding:var(--space-7) 18px}}@media (max-width: 860px){.app-main{padding:var(--space-9) var(--space-8)}.topnav{display:grid;grid-template-columns:auto 1fr auto;column-gap:var(--space-7);row-gap:var(--space-5);padding:var(--space-7) var(--space-9)}.topnav-left{display:contents}.dzp-logo{grid-column:1;grid-row:1;height:24px;align-self:center}.topnav-tabs{grid-column:1 / -1;grid-row:2;overflow-x:auto;max-width:100%}.topnav-tabs button{padding:var(--space-4) var(--space-8)}.admin-tabs{display:none}.admin-tabs-select{display:block}.modal-tabs{display:none}.modal-tabs-select{display:block}.topnav-user{grid-column:3;grid-row:1;gap:var(--space-3);justify-self:end}.board-header{flex-wrap:wrap;row-gap:var(--space-5)}.new-ticket-btn,.export-buttons{margin-left:0;order:10;flex:1 1 100%}.export-buttons .new-ticket-btn{flex:1 1 0}.board-grid{touch-action:pan-x pan-y}.board-edge-nav{display:none}.dayview-grid{padding:var(--space-5) var(--space-8) var(--space-10)}.dayview-hourline,.dayview-row{grid-template-columns:112px minmax(560px,1fr);width:max-content;min-width:100%}.dayview-tab{position:sticky;left:0;z-index:2}.dayview-corner{position:sticky;left:0;z-index:2;background:var(--panel)}}.manual-view{display:grid;grid-template-columns:230px 1fr;gap:var(--space-12);max-width:1180px;margin:0 auto}.manual-nav{border-right:1px solid var(--border);padding-right:var(--space-11)}.manual-logo{display:block;max-height:40px;max-width:100%;width:auto;height:auto;margin-bottom:var(--space-8)}.manual-brand{font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:-.01em;margin-bottom:2px}.manual-brand-sub{font-family:var(--sans);font-size:12px;color:var(--text-faint);margin-bottom:var(--space-8)}.manual-nav-group-label{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);margin:18px 0 6px 8px}.manual-nav-group-label:first-child{margin-top:0}.manual-nav ul{list-style:none;margin:0;padding:0}.manual-nav li{margin-bottom:2px}.manual-nav a{display:flex;gap:10px;align-items:baseline;text-decoration:none;color:var(--text-muted);font-family:var(--sans);font-size:13.5px;font-weight:500;padding:6px 8px;border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.manual-nav a:hover{background:var(--panel-alt);color:var(--text)}.manual-nav a.active{background:var(--accent-soft);color:var(--accent)}.manual-nav a .manual-num{font-family:var(--mono);color:var(--text-faint);font-size:11px;min-width:16px}.manual-content{min-width:0;padding-bottom:60px;font-family:var(--manual-serif);font-size:17px;line-height:1.65}.manual-content h2,.manual-content h3{text-wrap:balance;font-weight:700;letter-spacing:-.01em;color:var(--text);font-family:var(--sans)}.manual-content p{max-width:66ch}.manual-content a{color:var(--accent)}.manual-content code,.manual-content kbd,.manual-content .ui{font-family:var(--mono);font-size:.86em}.manual-content .ui{display:inline-block;background:var(--panel-alt);border:1px solid var(--border);border-radius:5px;padding:1px 7px;color:var(--text);font-weight:500;white-space:nowrap}.manual-chapter{margin-top:56px;padding-top:8px;scroll-margin-top:24px}.manual-chapter:first-of-type{margin-top:0}.manual-chapter .chapter-head{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:22px;font-family:var(--sans)}.manual-chapter .chapter-num{font-family:var(--mono);font-size:14px;color:var(--accent);font-weight:500}.manual-chapter .chapter-head h2{font-size:23px;margin:0}.manual-content h3{font-size:16.5px;margin-top:30px;margin-bottom:10px}.manual-content h3 .badge{margin-bottom:0;margin-left:8px;vertical-align:middle}.manual-content ol.steps{padding-left:0;list-style:none;display:flex;flex-direction:column;gap:12px;margin:16px 0;counter-reset:manual-step}.manual-content ol.steps li{position:relative;padding-left:34px;max-width:66ch;counter-increment:manual-step}.manual-content ol.steps li:before{content:counter(manual-step);position:absolute;left:0;top:1px;font-family:var(--sans);font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.manual-content ul.plain{padding-left:22px;max-width:66ch}.manual-content ul.plain li{margin-bottom:6px}.manual-content .callout{max-width:66ch;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:12px 16px;margin:18px 0;font-size:15.5px}.manual-content .callout.tip:before{content:"Tip";display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.manual-content .callout.warn{border-left-color:var(--warn);background:var(--warn-soft)}.manual-content .callout.warn:before{content:"Careful";display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--warn);margin-bottom:4px}.manual-content .callout.admin{border-left-color:var(--danger);background:var(--danger-soft)}.manual-content .callout.admin:before{content:"Admins only";display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--danger);margin-bottom:4px}.manual-content .badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--panel-alt);color:var(--text-muted);margin-bottom:14px}.manual-content .badge.admin-only{background:var(--danger-soft);color:var(--danger)}.manual-content table.reference{width:100%;max-width:66ch;border-collapse:collapse;font-family:var(--sans);font-size:13.5px;margin:18px 0}.manual-content table.reference th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);border-bottom:1px solid var(--border);padding:0 10px 8px 0}.manual-content table.reference td{padding:9px 10px 9px 0;border-bottom:1px solid var(--border);vertical-align:top}.manual-content table.reference tr:last-child td{border-bottom:none}.manual-footer{max-width:66ch;margin-top:70px;padding-top:20px;border-top:1px solid var(--border);font-family:var(--sans);font-size:12.5px;color:var(--text-faint)}@media (max-width: 880px){.manual-view{grid-template-columns:1fr}.manual-nav{border-right:none;border-bottom:1px solid var(--border);padding:0 0 var(--space-9);margin-bottom:var(--space-9)}}.display-dashboard{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);padding:var(--space-12)}.display-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-11);padding-bottom:var(--space-11);border-bottom:2px solid var(--border);margin-bottom:var(--space-12);flex-shrink:0}.display-logo{height:56px;width:auto;max-width:40%}.display-clock{text-align:right}.display-time{font-family:var(--mono);font-size:56px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}.display-date{font-family:var(--sans);font-size:18px;color:var(--text-muted);margin-top:var(--space-3);text-transform:capitalize}.display-split{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--space-11)}.display-half{flex:1;min-height:0;display:flex;flex-direction:column}.display-list{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--space-9);overflow-y:auto}.display-row{display:flex;flex-direction:column;gap:var(--space-5);background:var(--panel);border-left:10px solid var(--accent);border-radius:var(--radius-lg);padding:var(--space-11) var(--space-12);box-shadow:var(--shadow-sm)}.display-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-9)}.display-tech{font-family:var(--sans);font-size:30px;font-weight:700}.display-order{font-family:var(--mono);font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-muted)}.display-job{font-family:var(--sans);font-size:26px;color:var(--text-muted)}.display-phase{color:var(--text-faint)}.display-empty{margin:auto;font-family:var(--sans);font-size:22px;color:var(--text-faint)}.display-timers-title{font-family:var(--sans);font-size:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-9);flex-shrink:0}.display-row-timer{border-left-style:dashed;padding:var(--space-9) var(--space-12)}.display-timer-value{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.display-footer{flex-shrink:0;margin-top:var(--space-12);padding-top:var(--space-9);border-top:1px solid var(--border-soft);text-align:center;font-family:var(--sans);font-size:13px;color:var(--text-faint)}@media (max-width: 700px){.display-header{flex-direction:column;align-items:flex-start;gap:var(--space-7)}.display-clock{text-align:left}.display-time{font-size:44px}.display-tech{font-size:24px}.display-order{font-size:18px}.display-job{font-size:20px}}
