:root{--bg:#eef2f7;--bg-card:#fff;--bg-sidebar:#f1f5f9;--bg-grid:#fff;--bg-hour-alt:#f8fafc;--row-hover:#e2e7ee;--row-hover-alt:#dbe1ea;--cell-hover:#cbd4e0;--border:#c3cdd9;--text:#0f172a;--text-secondary:#64748b;--text-light:#94a3b8;--accent:#3b82f6;--danger:#ef4444;--success:#10b981;--warning:#f59e0b;--urgent:#ef4444;--tech-col:180px;--radius:8px;--shadow:0 1px 3px #00000014;--shadow-lg:0 4px 12px #0000001f}*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.app{height:100dvh;display:flex;overflow:hidden}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;width:280px;min-width:280px;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);padding:16px}.sidebar-header h2{font-size:var(--t-body);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.sidebar-scroll{flex:1;overflow-y:auto}.sidebar-section{border-bottom:1px solid var(--border)}.sidebar-header-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.sidebar-header-toggle:hover{background:#00000008}.sidebar-chevron{font-size:var(--t-title);color:var(--text);padding:2px 6px;font-weight:700;line-height:1;transition:transform .2s}.sidebar-chevron.collapsed{transform:rotate(-90deg)}.sidebar-list{padding:8px}.sidebar-job{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;margin-bottom:8px;padding:12px;transition:box-shadow .15s;position:relative}.drag-grip{cursor:grab;touch-action:none;opacity:.35;border-radius:4px;grid-template-rows:repeat(3,3px);grid-template-columns:repeat(2,3px);gap:2px;padding:6px;transition:opacity .15s,background .15s;display:grid;position:absolute;top:6px;right:6px}.drag-grip span{background:var(--text-secondary);border-radius:50%;width:3px;height:3px}.sidebar-job:hover .drag-grip{opacity:.85}.drag-grip:hover{opacity:1;background:#0000000f}.drag-grip:active{cursor:grabbing}@media (hover:none){.drag-grip{opacity:.6;padding:10px}}.sidebar-job .job-card-refs{padding-right:22px}.sidebar-job:hover{box-shadow:var(--shadow-lg)}.sidebar-job .job-title{font-size:var(--t-body);overflow-wrap:anywhere;margin-bottom:4px;font-weight:600}.sidebar-job .job-customer{font-size:var(--t-small);color:var(--text-secondary)}.sidebar-job .job-urgent{background:var(--urgent);color:#fff;font-size:var(--t-small);text-transform:uppercase;border-radius:3px;margin-top:6px;padding:2px 6px;font-weight:700;display:inline-block}.main{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:var(--bg-card);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.topbar-left{align-items:center;gap:8px;display:flex}.topbar h1{font-size:var(--t-title);margin-right:16px;font-weight:700}.topbar .date-display,.date-nav .date-display{font-size:var(--t-strong);text-align:center;white-space:nowrap;min-width:15.5rem;font-weight:600}.topbar button,.date-nav>button{border:1px solid var(--border);background:var(--bg-card);border-radius:var(--radius);font-size:var(--t-body);cursor:pointer;color:var(--text);padding:6px 14px}.topbar button:hover,.date-nav>button:hover{background:var(--bg)}.topbar button.active,.date-nav>button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.view-toggle{border:1px solid var(--border);border-radius:var(--radius);display:flex;overflow:hidden}.view-toggle button{border:none;border-right:1px solid var(--border);font-size:var(--t-small);border-radius:0;padding:4px 12px;font-weight:500}.view-toggle button:last-child{border-right:none}.week-view{flex:1;padding:0;overflow:auto}.week-grid{min-width:100%;display:grid}.week-day-header{font-size:var(--t-small);text-align:center;border-bottom:2px solid var(--border);border-left:1px solid var(--border);color:var(--text-secondary);cursor:pointer;padding:10px 8px;font-weight:600}.week-day-header.today{color:var(--accent);border-bottom-color:var(--accent)}.week-cell{border-bottom:1px solid var(--border);border-left:1px solid var(--border);cursor:pointer;min-height:60px;padding:4px;transition:background .1s}.week-cell:hover{background:var(--bg)}.week-cell.today{background:#3b82f60a}.week-job{background:var(--bg-card);cursor:pointer;border-left:3px solid;border-radius:4px;margin-bottom:3px;padding:3px 6px;transition:box-shadow .1s}.week-job:hover{box-shadow:var(--shadow)}.week-job-title{font-size:var(--t-small);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.week-job-time{font-size:var(--t-small);color:var(--text-light)}.month-view{flex:1;padding:16px;overflow:auto}.month-header-row{grid-template-columns:repeat(7,1fr);gap:0;display:grid}.month-day-label{text-align:center;font-size:var(--t-small);color:var(--text-secondary);text-transform:uppercase;padding:8px 0;font-weight:600}.month-week-row{grid-template-columns:repeat(7,1fr);gap:0;display:grid}.month-cell{border:1px solid var(--border);cursor:pointer;min-height:90px;margin:-.5px;padding:8px;transition:background .1s}.month-cell:hover{background:var(--bg)}.month-cell.today{border-color:var(--accent);background:#3b82f60f}.month-cell.other-month{opacity:.35}.month-date{font-size:var(--t-body);color:var(--text);margin-bottom:4px;font-weight:600}.month-cell.today .month-date{color:var(--accent)}.month-tech-dots{flex-wrap:wrap;gap:3px;display:flex}.tech-dot-sm{border-radius:50%;width:8px;height:8px;display:inline-block}.grid-container{overscroll-behavior-x:contain;flex:1;overflow:auto}.dispatch-grid{border-collapse:collapse;min-width:100%;display:grid;position:relative}.job-block.clipped-left{border-left:3px dashed #ffffffbf;border-top-left-radius:0;border-bottom-left-radius:0}.job-block.clipped-right{border-right:3px dashed #ffffffbf;border-top-right-radius:0;border-bottom-right-radius:0}.zoom-toggle{margin-left:6px}.now-line{z-index:3;pointer-events:none;background:#dc2626;width:2px;position:absolute;top:0;bottom:0}.now-line-label{color:#fff;font-size:var(--t-small);white-space:nowrap;background:#dc2626;border-radius:3px;padding:1px 5px;font-weight:700;position:absolute;top:2px;left:3px}.grid-corner{z-index:4;background:var(--bg-card);border-bottom:2px solid var(--border);border-right:1px solid var(--border);width:var(--tech-col);min-width:var(--tech-col);padding:8px;position:sticky;top:0;left:0}.hour-label{z-index:2;background:var(--bg-card);border-bottom:2px solid var(--border);border-right:1px solid var(--border);font-size:var(--t-small);color:var(--text-secondary);text-align:center;min-width:80px;padding:8px 4px;font-weight:600;position:sticky;top:0}.tech-label{z-index:3;background:var(--bg-card);border-right:1px solid var(--border);border-bottom:1px solid var(--border);width:var(--tech-col);min-width:var(--tech-col);align-items:center;gap:8px;padding:8px 12px;display:flex;position:sticky;left:0;overflow:hidden}.tech-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.tech-name{font-size:var(--t-body);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.grid-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;min-height:72px;transition:background .1s;position:relative}.grid-cell.holds-blocks{z-index:2}.grid-cell.alt{background:var(--bg-hour-alt)}.tech-row:hover .tech-label,.tech-row:hover .grid-cell{background:var(--row-hover)}.tech-row:hover .grid-cell.alt{background:var(--row-hover-alt)}.grid-cell:hover,.tech-row:hover .grid-cell:hover,.tech-row:hover .grid-cell.alt:hover{background:var(--cell-hover)}.job-block{color:#fff;font-size:var(--t-small);cursor:pointer;z-index:1;box-shadow:var(--shadow);border-radius:6px;flex-direction:column;justify-content:center;padding:6px 10px;font-weight:600;transition:box-shadow .15s;display:flex;position:absolute;top:4px;bottom:4px;overflow:hidden}.job-block:hover{box-shadow:var(--shadow-lg)}.job-block .job-block-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.job-block .job-block-time{font-size:var(--t-small);opacity:.85;font-weight:400}.job-block.type-estimate{opacity:.8;border:2px dashed #ffffff80}.job-block.needs-confirm{background-image:repeating-linear-gradient(-45deg,#0000,#0000 4px,#ffffff26 4px 8px)!important}.job-block .confirm-badge{font-size:var(--t-small);background:#0000004d;border-radius:2px;margin-top:2px;padding:1px 4px;display:inline-block}.job-block .resize-handle{cursor:ew-resize;opacity:.5;border-radius:0 6px 6px 0;justify-content:center;align-items:center;gap:2px;width:12px;transition:background .15s,opacity .15s;display:flex;position:absolute;top:0;bottom:0;right:0}.job-block .resize-handle:before,.job-block .resize-handle:after{content:"";background:currentColor;border-radius:1px;width:2px;height:12px}.job-block .resize-handle:hover{opacity:1;background:#ffffff59}.job-block.unsettled .resize-handle:hover{background:#00000014}.job-block.clipped-right .resize-handle:before,.job-block.clipped-right .resize-handle:after{display:none}.status-badge{font-size:var(--t-small);text-transform:uppercase;border-radius:3px;padding:2px 6px;font-weight:700;display:inline-block}.status-scheduled{background:var(--accent);color:#fff}.status-in_progress{background:var(--warning);color:#fff}.status-complete{background:var(--success);color:#fff}.status-unscheduled{background:var(--text-light);color:#fff}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);width:480px;max-height:90vh;box-shadow:var(--shadow-lg);border-radius:12px;overflow-y:auto}.modal-framed{flex-direction:column;display:flex;overflow:hidden}.modal-framed>.modal-header,.modal-framed>.modal-footer{flex:none}.modal-framed>.modal-body{flex:auto;min-height:0;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{font-size:var(--t-section);font-weight:700}.modal-close{font-size:var(--t-title);cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:4px}.modal-body{padding:20px}.confirm-banner{border-radius:var(--radius);font-size:var(--t-body);color:#92400e;background:#fef3c7;border:1px solid #f59e0b;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;font-weight:500;display:flex}.btn-confirm{cursor:pointer;white-space:nowrap;color:#fff!important;font-weight:600!important;font-size:var(--t-small)!important;background:#10b981!important;border:none!important;border-radius:6px!important;padding:6px 14px!important}.btn-confirm:hover{background:#059669!important}.form-group{margin-bottom:16px}.form-group label{font-size:var(--t-body);color:var(--text-secondary);margin-bottom:4px;font-weight:600;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:var(--t-body);color:var(--text);background:var(--bg);padding:8px 12px;font-family:inherit}.form-group textarea{resize:vertical;min-height:80px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-footer{border-top:1px solid var(--border);justify-content:space-between;padding:16px 20px;display:flex}.modal-footer .btn-group{gap:8px;display:flex}.btn{border-radius:var(--radius);font-size:var(--t-body);cursor:pointer;border:1px solid var(--border);background:var(--bg-card);color:var(--text);padding:8px 16px;font-weight:600;transition:all .15s}.btn:hover{background:var(--bg)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{opacity:.9;background:var(--primary)}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:#fef2f2}.btn-complete{color:var(--success);border-color:var(--success)}.btn-complete:hover{background:#ecfdf5}.sidebar-section .sidebar-header{border-bottom:none}.sidebar-job-hold{opacity:.6}.job-hold-badge{background:var(--text-light);color:#fff;font-size:var(--t-small);text-transform:uppercase;border-radius:3px;margin-top:6px;padding:2px 6px;font-weight:700;display:inline-block}.sidebar-job-confirm{border-left:3px solid var(--warning)}.job-confirm-badge{background:var(--warning);color:#fff;font-size:var(--t-small);text-transform:uppercase;border-radius:3px;margin-top:6px;padding:2px 6px;font-weight:700;display:inline-block}.tech-picker{flex-wrap:wrap;gap:6px;display:flex}.tech-chip{border:2px solid var(--border);background:var(--bg);font-size:var(--t-body);cursor:pointer;color:var(--text);border-radius:20px;padding:5px 12px;font-weight:500;transition:all .15s}.tech-chip:hover{border-color:var(--text-light)}.tech-chip.selected{border-color:#0000}.tech-chip-wrapper{flex-direction:column;align-items:center;gap:2px;display:flex}.pull-off-link{color:var(--text-light);font-size:var(--t-small);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline;transition:color .15s}.pull-off-link:hover{color:var(--accent)}.pull-off-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);border-left:3px solid var(--warning);margin-top:12px;padding:12px}.pull-off-header{font-size:var(--t-body);color:var(--text);margin-bottom:10px}.duration-picker{flex-wrap:wrap;gap:6px;display:flex}.duration-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:var(--t-body);cursor:pointer;border-radius:6px;padding:6px 12px;font-weight:500;transition:all .15s}.duration-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.duration-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.duration-chip:disabled{opacity:.4;cursor:not-allowed}.job-block.multi-tech{border-left:4px solid #fff9}.drag-ghost{color:#fff;font-size:var(--t-small);pointer-events:none;z-index:1000;border-radius:6px;padding:6px 10px;font-weight:600;box-shadow:0 8px 24px #0003}.grid-cell.drop-target{outline:none;position:relative;background:0 0!important}.grid-cell.drop-target:after{content:"";outline:2px dashed var(--accent);outline-offset:-2px;pointer-events:none;background:#dbeafe;border-radius:3px;width:50%;position:absolute;top:2px;bottom:2px;left:0}.grid-cell.drop-target.drop-target-late:after{left:50%}.sidebar-job.dragging{opacity:.3}.conflict-panel{width:420px}.conflict-desc{font-size:var(--t-body);color:var(--text);margin-bottom:12px}.conflict-job{border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;justify-content:space-between;align-items:center;margin-bottom:16px;padding:10px 14px;display:flex}.conflict-time{font-size:var(--t-body);color:var(--text-secondary)}.conflict-options{flex-direction:column;gap:8px;display:flex}.conflict-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;text-align:left;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;transition:all .15s;display:flex}.conflict-option:hover{border-color:var(--accent);background:#f0f7ff}.conflict-option-icon{font-size:var(--t-title);flex-shrink:0;margin-top:2px}.conflict-option strong{font-size:var(--t-body);margin-bottom:2px;display:block}.conflict-option p{font-size:var(--t-small);color:var(--text-secondary);margin:0}.needs-confirm-badge{background:var(--warning);color:#fff;font-size:var(--t-small);text-transform:uppercase;border-radius:3px;margin-top:4px;padding:2px 6px;font-weight:700;display:inline-block}.tech-dot-lg{border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-top:3px}.tech-free{color:var(--success);font-size:var(--t-small);margin:0}.tech-busy{color:var(--danger);font-size:var(--t-small);margin:0}.conflict-option-busy{opacity:.7;border-color:#fecaca}.conflict-option-busy:hover{border-color:var(--danger);background:#fef2f2}.undo-toast{color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:200;font-size:var(--t-body);background:#1e293b;align-items:center;gap:12px;padding:12px 20px;animation:.3s slideUp;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.undo-toast button{background:var(--primary);color:#fff;border-radius:var(--radius);font-weight:600;font-size:var(--t-body);cursor:pointer;border:none;padding:6px 14px}.undo-toast button:hover{opacity:.9}.undo-toast .undo-dismiss{color:var(--text-light);font-size:var(--t-strong);background:0 0;padding:4px 8px}@keyframes slideUp{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.job-block.split-time{border-top-left-radius:0;border-bottom-left-radius:0;padding-left:14px;overflow:visible}.job-block.split-time:before{content:"";background:linear-gradient(45deg, var(--bg-grid,#fff) 50%, transparent 50%) 0 0 / 6px 6px repeat-y;width:6px;position:absolute;top:0;bottom:0;left:0}.mobile-view{background:var(--bg);max-width:480px;min-height:100vh;margin:0 auto}.mobile-header{background:var(--bg-card);z-index:10;border-bottom:3px solid #3b82f6;padding:16px 20px 12px;position:sticky;top:0}.mobile-header-top{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.mobile-tech-name{font-size:var(--t-title);margin:0;font-weight:700}.mobile-role{font-size:var(--t-small);color:var(--text-secondary)}.mobile-dispatch-link{font-size:var(--t-small);color:var(--accent);border:1px solid var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px}.mobile-date-nav{justify-content:center;align-items:center;gap:12px;margin-bottom:8px;display:flex}.mobile-date-nav button{border:1px solid var(--border);font-size:var(--t-strong);cursor:pointer;color:var(--text);background:0 0;border-radius:6px;padding:4px 10px}.mobile-date{font-size:var(--t-strong);font-weight:600}.mobile-summary{font-size:var(--t-body);color:var(--text-secondary);justify-content:space-between;display:flex}.mobile-job-count{color:var(--text);font-weight:600}.mobile-jobs{flex-direction:column;gap:0;padding:12px 16px;display:flex}.mobile-empty{text-align:center;color:var(--text-secondary);font-size:var(--t-strong);padding:60px 20px}.mobile-job-card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid var(--accent);padding:16px}.mobile-job-card.in-progress{border-left-color:var(--warning);background:#fffbeb}.mobile-job-card.complete{border-left-color:var(--success);opacity:.7}.mobile-job-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.mobile-job-time{font-size:var(--t-body);color:var(--text-secondary);font-weight:600}.mobile-job-status{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-weight:600}.mobile-job-status.status-scheduled{color:#1d4ed8;background:#dbeafe}.mobile-job-status.status-in_progress{color:#92400e;background:#fef3c7}.mobile-job-status.status-complete{color:#065f46;background:#d1fae5}.mobile-job-status.status-needs_confirmation{color:#991b1b;background:#fee2e2}.mobile-job-title{font-size:var(--t-strong);margin:0 0 4px;font-weight:700}.mobile-job-type{font-size:var(--t-small);color:var(--text-secondary);margin-bottom:12px}.mobile-job-actions{border-top:1px solid var(--border);gap:8px;margin-top:12px;padding-top:12px;display:flex}.mobile-btn{font-size:var(--t-body);cursor:pointer;border:none;border-radius:6px;flex:1;padding:10px;font-weight:600}.mobile-btn-start{background:var(--primary);color:#fff}.mobile-btn-stop{background:var(--warning);color:#fff}.mobile-complete-badge{font-size:var(--t-body);color:var(--success);align-items:center;font-weight:600;display:inline-flex}.mobile-travel{justify-content:center;align-items:center;padding:8px 0;display:flex}.mobile-travel-gap{font-size:var(--t-small);color:var(--text-light);background:var(--bg-sidebar);border-radius:10px;padding:2px 10px}.mobile-error{text-align:center;padding:60px 20px}.mobile-error h2{margin-bottom:8px}.ticket-ref{white-space:nowrap;color:var(--text-light);font-variant-numeric:tabular-nums;font-weight:600}.mobile-job-title .ticket-ref{font-size:var(--t-body);color:var(--text-secondary);margin-right:6px}.modal-ticket-ref{font-size:var(--t-body);color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-left:8px;font-weight:600}.sidebar-search{border-bottom:1px solid var(--border);padding:12px 12px 8px;position:relative}.sidebar-search-clear{font-size:var(--t-section);color:var(--text-light);cursor:pointer;background:0 0;border:none;padding:0 4px;line-height:1;position:absolute;top:50%;right:20px;transform:translateY(-25%)}.sidebar-search-clear:hover{color:var(--text)}.sidebar-search-count{font-size:var(--t-small);color:var(--text-secondary);border-bottom:1px solid var(--border);padding:0 12px 8px;font-weight:600}.modal-job-banner{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:10px 12px;display:flex}.modal-job-label{font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);font-weight:700}.modal-job-number{font-size:var(--t-body);color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.modal-job-name{font-size:var(--t-body);color:var(--text-secondary)}.modal-job-stage{font-size:var(--t-small);color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:999px;margin-left:auto;padding:2px 8px;font-weight:600}.job-card-refs,.job-block-refs{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:3px;display:flex}.job-number{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-weight:700}.job-card-refs .ticket-ref,.job-card-refs .job-number,.job-block-refs .ticket-ref,.job-block-refs .job-number{font-size:var(--t-small)}.job-block .job-block-refs .ticket-ref,.job-block .job-block-refs .job-number{color:#fffc}.week-job-refs{margin-bottom:1px}.week-job-refs .ticket-ref,.week-job-refs .job-number{font-size:var(--t-small)}.job-block .job-block-title,.week-job-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.job-block .job-block-refs,.job-block .job-block-title,.job-block .job-block-time{flex:none}.job-block .job-block-time{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-sort{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:0 12px 10px;display:flex}.sidebar-sort-label{font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);font-weight:700}.sidebar-sort-select{font-size:var(--t-small);color:var(--text);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:6px;outline:none;flex:1;padding:5px 8px}.sidebar-sort-select:focus{border-color:var(--accent)}.sidebar-title{padding:12px 12px 0}.sidebar-title h2{font-size:var(--t-body);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);font-weight:700}.sidebar-empty{font-size:var(--t-body);text-align:center;color:var(--text-light);padding:24px 12px}.job-card-tags{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.job-status-badge{font-size:var(--t-small);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:2px 7px;font-weight:700}.job-status-badge.status-unscheduled{color:var(--text-secondary);background:var(--bg-sidebar);border:1px solid var(--border)}.job-status-badge.status-needs_confirmation{color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.job-status-badge.status-on_hold{color:#3730a3;background:#e0e7ff;border:1px solid #c7d2fe}.sidebar-job-needs_confirmation{border-left:3px solid #f59e0b}.sidebar-job-on_hold{border-left:3px solid #6366f1}.stage-warn{font-size:var(--t-small);letter-spacing:.03em;text-transform:uppercase;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:999px;margin-left:8px;padding:1px 6px;font-weight:700}.job-status-badge.status-unmapped{color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.sidebar-title{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.sidebar-collapse-all{font-size:var(--t-small);color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-weight:600}.sidebar-collapse-all:hover{background:var(--bg-card)}.sidebar-title-actions{align-items:center;gap:4px;display:flex}.sidebar-hide{font-size:var(--t-body);color:var(--text-light);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 4px;line-height:1}.sidebar-hide:hover{color:var(--text);background:var(--bg-card)}.sidebar-rail{background:var(--bg-sidebar);border:none;border-right:1px solid var(--border);cursor:pointer;flex-direction:column;align-items:center;gap:12px;width:34px;min-width:34px;padding:14px 0;display:flex}.sidebar-rail:hover{background:var(--bg-card)}.sidebar-rail-arrow{font-size:var(--t-body);color:var(--text-secondary)}.sidebar-rail-label{font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;writing-mode:vertical-rl;font-weight:700}.sidebar-section .sidebar-header h2{font-size:var(--t-body);letter-spacing:.01em;text-transform:none;color:var(--text);overflow-wrap:anywhere;font-weight:700}.sidebar-section .sidebar-header{background:var(--bg-sidebar);z-index:2;padding:12px 14px;position:sticky;top:0}.group-count{color:var(--text-light);margin-left:4px;font-weight:600}.job-status-badge.status-complete{color:var(--text-light);background:var(--bg-sidebar);border:1px solid var(--border)}.sidebar-job-complete{border-left:3px solid var(--border);opacity:.72}.sidebar-job-complete:hover{opacity:1}.sidebar-show-closed{font-size:var(--t-small);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:4px;font-weight:600;display:flex}.sidebar-show-closed input{cursor:pointer;margin:0}.count-split{font-size:var(--t-small);letter-spacing:0;text-transform:none;color:var(--text-light);margin-top:2px;font-weight:600;display:block}.owner-filter{position:relative}.owner-filter-button{font-size:var(--t-small);color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:3px;padding:4px 6px;font-weight:600;display:flex}.owner-filter-button.active{color:var(--accent);border-color:var(--accent)}.owner-filter-caret{font-size:var(--t-small)}.owner-menu{z-index:20;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);min-width:190px;box-shadow:var(--shadow-lg);padding:6px;position:absolute;top:calc(100% + 4px);left:0}.owner-menu-all{width:100%;font-size:var(--t-small);text-align:left;color:var(--accent);border:none;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;margin-bottom:4px;padding:5px 6px;font-weight:600}.owner-menu-row{font-size:var(--t-small);color:var(--text);cursor:pointer;border-radius:4px;align-items:center;gap:7px;padding:5px 6px;display:flex}.owner-menu-row:hover{background:var(--bg-sidebar)}.owner-menu-row input{cursor:pointer;margin:0}.owner-menu-name{flex:1}.owner-menu-count{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums;font-weight:600}.sidebar-sort{border-bottom:none;padding-bottom:6px}.sidebar-filters{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:0 12px 10px;display:flex}.sidebar-show-closed{white-space:nowrap;flex:none}.menu-backdrop{z-index:15;position:fixed;inset:0}.job-scheduled{font-size:var(--t-small);color:var(--accent);font-variant-numeric:tabular-nums;margin-top:3px;font-weight:600}.job-scheduled.none{color:var(--text-light);font-weight:500}.sidebar-job.booked{cursor:pointer}.sidebar-job.booked:hover{border-color:var(--accent)}.job-scheduled{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.job-scheduled-go{font-size:var(--t-small);letter-spacing:.03em;text-transform:uppercase;color:var(--text-light);font-weight:700}.sidebar-job.booked:hover .job-scheduled-go{color:var(--accent)}.job-status-badge.status-scheduled{color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe}.sidebar-job-scheduled{border-left:3px solid var(--accent)}.move-banner{font-size:var(--t-body);color:#1e40af;background:#dbeafe;border-bottom:1px solid #bfdbfe;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.move-banner-text strong{font-weight:700}.move-banner-cancel{font-size:var(--t-small);color:#1e40af;background:var(--bg-card);cursor:pointer;border:1px solid #bfdbfe;border-radius:6px;flex:none;padding:4px 10px;font-weight:600}.move-banner-cancel:hover{background:#eff6ff}.job-block.being-moved{outline:2px dashed var(--accent);outline-offset:-2px}.modal-footer{flex-wrap:wrap;align-items:center;gap:10px}.btn-group-actions{flex-wrap:wrap;gap:6px}.btn-icon{font-size:var(--t-body);align-items:center;gap:5px;padding:6px 10px;display:inline-flex}.btn-icon .icon{flex:none}.btn-icon.btn-danger{border-color:var(--danger)}@keyframes undo-drain{0%{width:100%}to{width:0%}}.data-banner{font-size:var(--t-small);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:7px 16px;display:flex}.data-banner button{font-size:var(--t-small);background:var(--bg-card);cursor:pointer;color:inherit;border:1px solid;border-radius:6px;flex:none;padding:3px 10px;font-weight:600}.data-banner-sample{color:#92400e;background:#fef3c7;border-bottom-color:#fcd34d}.data-banner-loading{color:#1e40af;background:#dbeafe;border-bottom-color:#bfdbfe}.job-status-badge.status-parts{color:#0e7490;background:#cffafe;border:1px solid #a5f3fc}.attention{background:var(--bg);flex:1;padding:16px 20px 40px;overflow-y:auto}.attention-summary{font-size:var(--t-strong);color:var(--text);padding:12px 0 18px}.attention-summary strong{font-size:var(--t-title)}.attention-sub{font-size:var(--t-small);color:var(--text-secondary);margin-top:3px;display:block}.attention-group{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.attention-group.sev-red{border-left-color:var(--danger)}.attention-group.sev-yellow{border-left-color:var(--warning)}.attention-head{cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:none;align-items:center;gap:10px;padding:12px 14px;display:flex}.sev-dot{border-radius:50%;flex:none;width:9px;height:9px}.sev-dot.sev-red{background:var(--danger)}.sev-dot.sev-yellow{background:var(--warning)}.attention-title{font-size:var(--t-body);color:var(--text);flex:1;font-weight:700}.attention-count{font-size:var(--t-small);color:var(--text-secondary);font-variant-numeric:tabular-nums;font-weight:700}.attention-count em{color:var(--danger);font-style:normal}.attention-why{font-size:var(--t-small);color:var(--text-secondary);margin:-4px 14px 10px;line-height:1.5}.attention-list{border-top:1px solid var(--border)}.attention-row{border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;width:100%;font:inherit;font-size:var(--t-body);background:0 0;grid-template-columns:62px 62px 1fr 190px 72px;align-items:baseline;gap:10px;padding:9px 14px;display:grid}.attention-row:last-child{border-bottom:none}.attention-row:hover{background:var(--bg-sidebar)}.attention-ref{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-weight:700}.attention-job{font-size:var(--t-small);color:var(--text-light);font-weight:600}.attention-name{color:var(--text);overflow-wrap:anywhere;font-weight:600}.attention-customer{font-size:var(--t-small);color:var(--text-secondary);overflow-wrap:anywhere}.attention-age{text-align:right;font-size:var(--t-small);color:var(--text-secondary);font-variant-numeric:tabular-nums;font-weight:600}.attention-row.sev-red .attention-age{color:var(--danger)}.attention-clear{text-align:center;color:var(--text-secondary);padding:60px 20px}.attention-clear h2{font-size:var(--t-title);color:var(--text);margin-bottom:6px}@media (width<=900px){.attention-row{grid-template-columns:58px 1fr 64px}.attention-job,.attention-customer{display:none}}.topbar{flex-wrap:wrap;gap:8px 12px}.topbar h1{white-space:nowrap;font-size:var(--t-section);margin-right:12px}.topbar-left{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attention-head.static{cursor:default}.sched-warn{border-bottom:1px solid var(--border);background:var(--bg-card)}.sched-warn.sev-red{background:#fef2f2;border-bottom-color:#fecaca}.sched-warn.sev-yellow{background:#fffbeb;border-bottom-color:#fde68a}.sched-warn-bar{cursor:pointer;width:100%;font:inherit;font-size:var(--t-small);color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:9px;padding:8px 20px;font-weight:600;display:flex}.sched-warn-summary{flex:1}.sched-warn-body{max-height:320px;padding:4px 20px 14px;overflow-y:auto}.sched-warn-group{margin-bottom:12px}.sched-warn-head{font-size:var(--t-body);align-items:center;gap:8px;margin-bottom:2px;display:flex}.sched-warn-row{cursor:pointer;width:100%;font:inherit;font-size:var(--t-small);text-align:left;background:0 0;border:none;border-top:1px solid #0000000f;grid-template-columns:140px 1fr 120px;gap:10px;padding:5px 0;display:grid}.sched-warn-row:disabled{cursor:default}.sched-warn-who{color:var(--text);font-weight:700}.sched-warn-detail{color:var(--text-secondary);overflow-wrap:anywhere}.sched-warn-when{text-align:right;color:var(--text-secondary);font-weight:600}.sched-warn-note{font-size:var(--t-small);color:var(--text-secondary);background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius);padding:8px 10px;line-height:1.5}.rail{background:var(--text);color:#fff;flex-direction:column;width:168px;min-width:168px;padding:12px 8px;display:flex;overflow-y:auto}.rail-brand{justify-content:space-between;align-items:center;gap:8px;padding:4px 10px 16px;display:flex}.rail-mark{flex:none;width:28px;height:28px;display:block}.rail-list{flex-direction:column;gap:2px;list-style:none;display:flex}.rail-item{width:100%;font:inherit;font-size:var(--t-body);color:#ffffffb8;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;padding:9px 10px;font-weight:600;text-decoration:none;display:flex}.rail-item:hover{color:#fff;background:#ffffff14}.rail-item.active{color:#fff;box-shadow:inset 3px 0 0 var(--accent);background:#ffffff38;font-weight:700}.rail-item.active svg{color:var(--accent)}.rail-group.holds-current>.rail-group-label{color:#fff}.rail-group.shut.holds-current>.rail-group-label:after{content:"";background:var(--primary);border-radius:50%;width:5px;height:5px;margin-left:6px}.rail-label{flex:1}.rail-badge{font-size:var(--t-small);color:#fff;background:var(--danger);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 6px;font-weight:700}.rail-item.unbuilt{color:#fff6}.rail-soon{font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;color:#ffffff73;font-weight:700}.coming-soon{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:60px 24px;display:flex}.coming-soon h2{font-size:var(--t-title);color:var(--text)}.coming-soon p{max-width:420px;font-size:var(--t-body);line-height:1.6}.coming-soon-note{font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);margin-top:4px;font-weight:700}.rail-group{margin-bottom:14px}.rail-group-label{font-size:var(--t-small);letter-spacing:.1em;text-transform:uppercase;color:#ffffff94;border-radius:6px;padding:3px 10px 5px;font-weight:800}.home{background:var(--bg);flex:1;padding:20px;overflow-y:auto}.home-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px;display:grid}.home-stat{text-align:left;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font:inherit;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.home-stat:hover{border-color:var(--accent)}.home-stat-value{font-size:var(--t-big);color:var(--text);font-variant-numeric:tabular-nums;font-weight:800}.home-stat-label{font-size:var(--t-small);color:var(--text-secondary)}.home-worst{width:100%;font:inherit;font-size:var(--t-body);text-align:left;color:#92400e;border-radius:var(--radius);cursor:pointer;background:#fef3c7;border:1px solid #fcd34d;align-items:center;gap:10px;margin-bottom:18px;padding:12px 16px;display:flex}.home-section-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.home-section-head h2{font-size:var(--t-strong);font-weight:700}.home-section-head span{font-size:var(--t-small);color:var(--text-secondary)}.home-recents{margin-top:18px}.home-recent-list{flex-wrap:wrap;gap:7px;display:flex}.home-recent{font-size:var(--t-body);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;color:var(--text-primary);border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:6px 11px;display:inline-flex}.home-recent:hover{border-color:var(--accent)}.home-recent-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.office-day{flex-direction:column;gap:14px;padding:16px 20px;display:flex}.office-day-head h2{font-size:var(--t-section);font-weight:700}.office-day-sub{font-size:var(--t-body);color:var(--text-secondary)}.office-day-link{cursor:pointer;font:inherit;color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}.office-day .attention{padding-left:0;padding-right:0}.app-booting{height:100vh;color:var(--text-light);font-size:var(--t-body);justify-content:center;align-items:center;display:flex}.signin{background:var(--bg);justify-content:center;align-items:center;height:100vh;padding:24px;display:flex}.signin-card{text-align:center;background:var(--bg-card);border:1px solid var(--border);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border-radius:14px;padding:34px 30px}.signin-logo{width:72px;height:72px;margin:0 auto 14px;display:block}.signin-card h1{font-size:var(--t-title);margin-bottom:5px;font-weight:700}.signin-sub{font-size:var(--t-body);color:var(--text-secondary);margin-bottom:22px}.signin-button{justify-content:center;min-height:44px;display:flex}.signin-setup{text-align:left;font-size:var(--t-small);color:var(--text-secondary);background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius);padding:14px;line-height:1.6}.signin-setup p+p{margin-top:8px}.signin-setup code{font-size:var(--t-small);background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.signin-error{font-size:var(--t-body);color:#991b1b;border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;margin-top:16px;padding:10px 12px}.signin-note{font-size:var(--t-small);color:var(--text-light);margin-top:16px}.data-banner-error{color:#991b1b;background:#fef2f2;border-bottom-color:#fecaca}.banner-spinner{opacity:.6;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:11px;height:11px;animation:.7s linear infinite banner-spin}@keyframes banner-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.banner-spinner{animation:none}}.job-block,.job-block-resize{touch-action:none}.marquee{border:1.5px solid var(--accent);pointer-events:none;z-index:60;background:#3b82f61f;border-radius:3px}.job-block.selected{outline-offset:1px;outline:2px solid #111827;box-shadow:0 0 0 4px #11182726}.selection-banner{color:#fff;border-radius:var(--radius);background:#111827;align-items:center;gap:10px;margin-bottom:8px;padding:8px 14px;display:flex}.selection-count{font-weight:600;font-size:var(--t-body)}.selection-banner button{color:#fff;font-size:var(--t-small);cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:4px;padding:4px 10px}.selection-banner button:hover{background:#ffffff1f}.selection-banner .selection-clear{opacity:.75;border-color:#0000;margin-left:auto}.sidebar-job,.drag-grip,.job-block,.week-job{-webkit-user-select:none;user-select:none}body.is-dragging,body.is-dragging *{-webkit-user-select:none!important;user-select:none!important;cursor:grabbing!important}.month-more{font-size:var(--t-small);color:var(--text-secondary);margin-top:3px;font-weight:600}.week-job{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.attention-group.focused{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}.tech-chip.is-lead{box-shadow:0 0 0 2px var(--bg-card), 0 0 0 4px var(--warning)}.tech-chip-lead{font-size:var(--t-small);margin-right:4px;line-height:1}.lead-link{color:var(--text-light);font-size:var(--t-small);letter-spacing:.02em;cursor:pointer;background:0 0;border:none;margin:2px auto 0;padding:0 2px;display:block}.lead-link:hover{color:var(--text-secondary)}.lead-link.active{color:var(--warning);font-weight:600}.lead-summary{font-size:var(--t-body);color:var(--text);margin-top:10px}.lead-summary-none{color:var(--text-light);font-style:italic}.mobile-lead-you{color:var(--warning);font-weight:600}.field-note{border-left:3px solid var(--warning);border-radius:0 var(--radius) var(--radius) 0;background:color-mix(in srgb, var(--warning) 8%, transparent);color:var(--text-secondary);font-size:var(--t-small);margin-top:8px;padding:8px 10px;line-height:1.45}.field-note code{font-size:var(--t-small);background:#0000000f;border-radius:3px;padding:1px 4px}.field-error{color:var(--danger);font-size:var(--t-small);margin-top:8px}.jobs{flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px;display:flex}.jobs-count{color:var(--text-light);font-size:var(--t-small);white-space:nowrap}.jobs-layout{flex:1;align-items:flex-start;gap:14px;min-height:0;display:flex}.job-card{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow);text-align:left;cursor:pointer;flex-direction:column;gap:6px;padding:12px;display:flex}.job-card:hover{box-shadow:var(--shadow-lg)}.job-card.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent)}.job-card.closed{border-left-color:var(--text-light);opacity:.62}.job-card.pending{opacity:.7;border-style:dashed}.job-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.job-card-number{font-size:var(--t-small);letter-spacing:.03em;color:var(--accent);font-weight:700}.job-card-stage{background:var(--bg-sidebar);color:var(--text-secondary);font-size:var(--t-small);white-space:nowrap;border-radius:10px;padding:2px 7px;font-weight:600}.job-card-stage.unmapped{background:color-mix(in srgb, var(--warning) 20%, transparent);color:#92400e}.job-card-name{font-size:var(--t-body);color:var(--text);overflow-wrap:anywhere;font-weight:600;line-height:1.3}.job-card-meta{font-size:var(--t-small);color:var(--text-secondary);flex-wrap:wrap;gap:4px 10px;display:flex}.job-card-nocustomer{color:var(--text-light)}.job-card-value{color:var(--success);font-weight:600}.job-card-foot{color:var(--text-light);font-size:var(--t-small);justify-content:space-between;gap:8px;display:flex}.jobs-none,.jobs-empty{color:var(--text-secondary);font-size:var(--t-body);padding:24px}.jobs-empty{text-align:center}.jobs-empty h2{font-size:var(--t-section);color:var(--text);margin:10px 0 6px}.jobs-empty p{max-width:44ch;margin:0 auto;line-height:1.5}.job-detail{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);width:380px;max-height:100%;box-shadow:var(--shadow-lg);flex:0 0 380px;overflow-y:auto}.job-detail-head{border-bottom:1px solid var(--border);background:var(--bg-card);z-index:1;justify-content:space-between;align-items:flex-start;gap:8px;padding:14px;display:flex;position:sticky;top:0}.job-detail-head h2{font-size:var(--t-strong);overflow-wrap:anywhere;margin:2px 0 0;line-height:1.3}.job-detail-number{font-size:var(--t-small);letter-spacing:.03em;color:var(--accent);font-weight:700}.job-detail-body{padding:14px}.job-facts{gap:6px;margin:14px 0 0;display:grid}.job-facts>div{font-size:var(--t-small);gap:10px;display:flex}.job-facts dt{color:var(--text-light);flex:0 0 96px}.job-facts dd{color:var(--text);overflow-wrap:anywhere;margin:0}.job-detail-section{margin-top:18px}.job-detail-section h3{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);align-items:center;gap:8px;margin:0 0 8px;font-weight:700;display:flex}.job-detail-count{background:var(--bg-sidebar);font-size:var(--t-small);letter-spacing:0;border-radius:9px;padding:1px 6px}.job-detail-total{color:var(--success);letter-spacing:0;margin-left:auto}.job-detail-text{font-size:var(--t-body);white-space:pre-wrap;margin:0;line-height:1.5}.job-detail-none{font-size:var(--t-small);color:var(--text-light);margin:0;line-height:1.5}.job-ticket-list{flex-direction:column;gap:4px;display:flex}.job-ticket-row{border:1px solid var(--border);background:var(--bg);text-align:left;font-size:var(--t-small);cursor:pointer;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:baseline;gap:4px 8px;padding:7px 8px;display:grid}.job-ticket-row:hover{border-color:var(--accent)}.job-ticket-ref{color:var(--accent);font-weight:700;font-size:var(--t-small)}.job-ticket-title{color:var(--text);overflow-wrap:anywhere}.job-ticket-stage{color:var(--text-light);font-size:var(--t-small);grid-column:2}.job-ticket-when{color:var(--text-secondary);font-size:var(--t-small);white-space:nowrap;grid-area:1/3/span 2}.job-quote{border:1px solid var(--border);background:var(--bg);border-radius:6px;margin-bottom:8px;padding:8px}.job-quote-head{font-size:var(--t-small);align-items:baseline;gap:8px;display:flex}.job-quote-title{overflow-wrap:anywhere;font-weight:600}.job-quote-status{color:var(--text-light);font-size:var(--t-small)}.job-quote-amount{color:var(--success);white-space:nowrap;margin-left:auto;font-weight:600}.job-quote-lines{flex-direction:column;gap:3px;margin:6px 0 0;padding:0;list-style:none;display:flex}.job-quote-lines li{font-size:var(--t-small);color:var(--text-secondary);gap:6px;display:flex}.job-line-qty{color:var(--text-light);flex:none}.job-line-name{overflow-wrap:anywhere;flex:1}.job-line-amount{white-space:nowrap;flex:none}.modal.modal-narrow{max-width:480px}@media (width<=900px){.jobs-layout{flex-direction:column}.job-detail{flex:auto;width:100%}}.picker{position:relative}.picker input,.job-attach input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);width:100%;color:var(--text);font-size:var(--t-body);padding:8px 10px}.picker-results{z-index:10;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);max-height:260px;box-shadow:var(--shadow-lg);margin-top:4px;position:absolute;left:0;right:0;overflow-y:auto}.picker-result,.job-attach-row{border:none;border-bottom:1px solid var(--border);text-align:left;width:100%;font-size:var(--t-small);cursor:pointer;background:0 0;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.picker-result:last-child,.job-attach-row:last-child{border-bottom:none}.picker-result:hover,.job-attach-row:hover{background:var(--bg-sidebar)}.picker-result-name{color:var(--text);font-weight:500}.picker-result-sub{color:var(--text-light);font-size:var(--t-small)}.picker-none{color:var(--text-light);font-size:var(--t-small);padding:10px}.picker-kind{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;border-radius:9px;flex:none;padding:1px 6px;font-weight:600}.picker-kind-contacts{background:color-mix(in srgb, var(--accent) 15%, transparent);color:#1d4ed8}.picker-kind-companies{background:color-mix(in srgb, var(--success) 18%, transparent);color:#047857}.picker-chosen{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);font-size:var(--t-body);align-items:center;gap:8px;padding:7px 8px;display:flex}.picker-chosen-name{overflow-wrap:anywhere;flex:1}.picker-clear{color:var(--text-light);font-size:var(--t-strong);cursor:pointer;background:0 0;border:none;line-height:1}.picker-clear:hover{color:var(--danger)}.form-optional{color:var(--text-light);font-size:var(--t-small);text-transform:none;letter-spacing:0;margin-left:6px;font-weight:400}.job-attach-toggle{color:var(--accent);font-size:var(--t-small);letter-spacing:0;text-transform:none;cursor:pointer;background:0 0;border:none;margin-left:auto;font-weight:600}.job-attach-toggle:hover{text-decoration:underline}.job-attach{margin-bottom:10px}.job-attach-results{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);max-height:220px;margin-top:6px;overflow-y:auto}.job-attach-row .job-ticket-ref{white-space:nowrap;flex:none}.job-attach-row .job-ticket-title{flex:1}.job-attach-row .job-ticket-stage{text-align:right;flex:0 auto}.jobs-board-wrap{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.board-note,.board-error{margin:0}.jobs-board{align-items:flex-start;gap:12px;min-height:0;padding-bottom:12px;display:flex;overflow-x:auto}.board-col{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-sidebar);flex-direction:column;flex:0 0 244px;max-height:100%;display:flex}.board-col.closed{opacity:.72}.board-col.over{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 26%, transparent)}.board-col-head{border-bottom:1px solid var(--border);align-items:baseline;gap:8px;padding:10px 12px;display:flex}.board-col-name{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);overflow-wrap:anywhere;font-weight:700}.board-col-count{background:var(--bg-card);border:1px solid var(--border);font-size:var(--t-small);color:var(--text-secondary);font-variant-numeric:tabular-nums;border-radius:9px;padding:1px 7px;font-weight:600}.board-col-value{font-size:var(--t-small);color:var(--success);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.board-col-body{flex-direction:column;gap:8px;min-height:60px;padding:10px;display:flex;overflow-y:auto}.board-col-empty{color:var(--text-light);font-size:var(--t-small);text-align:center;padding:6px 2px}.board-card{border:1px solid var(--border);background:var(--bg-card);box-shadow:var(--shadow);cursor:grab;border-radius:6px;flex-direction:column;gap:4px;padding:10px;display:flex}.board-card:hover{box-shadow:var(--shadow-lg)}.board-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.board-card.active{border-color:var(--accent)}.board-card.dragging{opacity:.4;cursor:grabbing}.board-card-top{justify-content:space-between;align-items:center;gap:6px;display:flex}.board-card-tickets{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums;font-weight:600}.board-card-name{font-size:var(--t-small);color:var(--text);overflow-wrap:anywhere;font-weight:600;line-height:1.3}.board-card-customer{font-size:var(--t-small);color:var(--text-secondary)}.board-card-nocustomer{font-size:var(--t-small);color:var(--text-light);font-style:italic}.board-card-value{font-size:var(--t-small);color:var(--success);font-weight:600}.docs{flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px;display:flex}.docs-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.docs-filters{flex-wrap:wrap;gap:6px;display:flex}.docs-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:var(--t-small);cursor:pointer;border-radius:14px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.docs-chip span{color:var(--text-light);font-size:var(--t-small);font-variant-numeric:tabular-nums}.docs-chip:hover{border-color:var(--text-light)}.docs-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.docs-chip.active span{color:#fffc}.docs-chip.warn{border-color:var(--warning);color:#92400e}.docs-chip.warn.active{background:var(--warning);border-color:var(--warning);color:#fff}.docs-list{flex-direction:column;gap:8px;display:flex;overflow-y:auto}.doc-row{border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow);align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.doc-row.exp-red{border-left-color:var(--danger)}.doc-row.exp-yellow{border-left-color:var(--warning)}.doc-row.exp-ok{border-left-color:var(--success)}.doc-row.exp-none{border-left-color:var(--border)}.doc-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.doc-top{align-items:center;gap:8px;display:flex}.doc-category{background:var(--bg-sidebar);color:var(--text-secondary);font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;border-radius:10px;padding:2px 8px;font-weight:700}.doc-number{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums}.doc-title{font-size:var(--t-body);overflow-wrap:anywhere;margin:0;font-weight:600}.doc-title a{color:var(--text);text-decoration:none}.doc-title a:hover{color:var(--accent);text-decoration:underline}.doc-meta{font-size:var(--t-small);color:var(--text-secondary);flex-wrap:wrap;gap:4px 12px;display:flex}.facts{font-size:var(--t-small);flex-wrap:wrap;gap:4px 16px;margin:0;display:flex}.fact{align-items:baseline;gap:5px;min-width:0;display:flex}.fact dt{color:var(--text-light);text-transform:uppercase;letter-spacing:.04em;font-size:var(--t-small);flex:none;margin:0;font-weight:700}.fact dd{color:var(--text);overflow-wrap:anywhere;margin:0}.fact-empty dd{color:var(--text-light);font-style:italic}.part-facts{margin-top:2px}.doc-number-kind{text-transform:uppercase;letter-spacing:.04em;font-size:var(--t-small);color:var(--text-light);font-weight:700}.doc-nolink{color:var(--text-light)}.doc-links{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.doc-links.editing{margin-bottom:8px}.doc-link-chip{border:1px solid var(--border);background:var(--bg);font-size:var(--t-small);color:var(--text-secondary);border-radius:10px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.doc-notes{font-size:var(--t-small);color:var(--text-secondary);white-space:pre-wrap;margin:4px 0 0}.doc-side{flex-direction:column;flex:none;align-items:flex-end;gap:8px;display:flex}.doc-expiry{border-radius:var(--radius);background:var(--bg-sidebar);flex-direction:column;align-items:flex-end;min-width:104px;padding:4px 10px;display:flex}.doc-expiry-label{font-size:var(--t-small);font-weight:700}.doc-expiry-date{font-size:var(--t-small);color:var(--text-light)}.doc-expiry.exp-red{background:color-mix(in srgb, var(--danger) 12%, transparent)}.doc-expiry.exp-red .doc-expiry-label{color:var(--danger)}.doc-expiry.exp-yellow{background:color-mix(in srgb, var(--warning) 16%, transparent)}.doc-expiry.exp-yellow .doc-expiry-label{color:#92400e}.doc-expiry.exp-ok .doc-expiry-label{color:var(--success)}.doc-expiry.exp-none .doc-expiry-label{color:var(--text-light);font-weight:500}.picker-kind-deals{background:color-mix(in srgb, var(--warning) 18%, transparent);color:#92400e}.picker-kind-tickets{background:color-mix(in srgb, var(--accent) 15%, transparent);color:#1d4ed8}.quiet-note{max-width:46ch;color:var(--text-light);font-size:var(--t-small);margin:4px auto 0;line-height:1.5}.home-stat.urgent{border-color:var(--danger)}.home-stat.urgent .home-stat-value{color:var(--danger)}.home-worst.urgent{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}.doc-row.req-pending{border-left-color:var(--warning)}.doc-row.req-approved{border-left-color:var(--success)}.doc-row.req-declined{border-left-color:var(--text-light);opacity:.7}.req-badge{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;border-radius:10px;padding:2px 8px;font-weight:700}.req-badge-approved{background:color-mix(in srgb, var(--success) 18%, transparent);color:#047857}.req-badge-declined{background:var(--bg-sidebar);color:var(--text-light)}.myday-requests{flex-direction:column;gap:8px;max-width:480px;margin:0 auto;padding:12px 16px 0;display:flex}.myday-ask{width:100%;font-size:var(--t-body);padding:12px}.myday-request-list{flex-direction:column;gap:4px;display:flex}.myday-request{background:var(--bg-card);border:1px solid var(--border);font-size:var(--t-small);border-radius:6px;align-items:baseline;gap:8px;padding:7px 10px;display:flex}.myday-request-status{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;flex:none;font-weight:700}.myday-request.pending{border-left:3px solid var(--warning)}.myday-request.pending .myday-request-status{color:#92400e}.myday-request.approved{border-left:3px solid var(--success)}.myday-request.approved .myday-request-status{color:var(--success)}.myday-request.declined{border-left:3px solid var(--text-light);opacity:.7}.myday-request.declined .myday-request-status{color:var(--text-light)}.myday-request-what{color:var(--text);overflow-wrap:anywhere}.work-list{flex-direction:column;gap:6px;display:flex;overflow-y:auto}.work-item{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow);flex:none;grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.work-flag,.work-visits{grid-column:1/-1}.work-item.closed{opacity:.62;border-left-color:var(--text-light)}.work-item.active{border-color:var(--accent)}.work-item.flagged{border-left-color:var(--warning)}.work-head{text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:74px minmax(0,1fr) auto auto auto auto;align-items:center;gap:12px;width:100%;padding:11px 14px;display:grid}.work-head:hover{background:var(--bg-sidebar)}.work-kind{font-size:var(--t-small);letter-spacing:.03em;color:var(--accent);white-space:nowrap;font-weight:700}.work-main{flex-direction:column;gap:2px;min-width:0;display:flex}.work-title{font-size:var(--t-body);color:var(--text);overflow-wrap:anywhere;font-weight:600}.work-sub{font-size:var(--t-small);color:var(--text-secondary)}.work-stage{background:var(--bg-sidebar);color:var(--text-secondary);font-size:var(--t-small);white-space:nowrap;border-radius:10px;padding:2px 8px;font-weight:600}.work-value{font-size:var(--t-small);color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.work-stage.unmapped{color:var(--warning)}.work-expand{color:var(--text-light);font-size:var(--t-small);cursor:pointer;background:0 0;border:none;align-self:stretch;padding:0 12px;transition:transform .12s}.work-expand:hover{background:var(--bg-sidebar);color:var(--text)}.work-expand.collapsed{transform:rotate(-90deg)}.standalone-when{padding:9px 14px;display:inline-block}.work-when{font-size:var(--t-small);color:var(--text-secondary);white-space:nowrap}.work-when.none{color:var(--text-light);font-style:italic}.work-crew{font-size:var(--t-small);color:var(--text-light);white-space:nowrap}.work-flag{border-top:1px solid var(--border);background:color-mix(in srgb, var(--warning) 8%, transparent);color:var(--text-secondary);font-size:var(--t-small);padding:8px 14px;line-height:1.45}.work-visits{border-top:1px solid var(--border);background:var(--bg)}.work-visit{border:none;border-bottom:1px solid var(--border);text-align:left;width:100%;font-size:var(--t-small);cursor:pointer;background:0 0;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:baseline;gap:10px;padding:8px 14px;display:grid}.work-visit:hover{background:var(--bg-card)}.work-visit-ref{color:var(--accent);font-weight:700;font-size:var(--t-small);white-space:nowrap}.work-visit-title{color:var(--text);overflow-wrap:anywhere}.work-visit-stage{color:var(--text-light);font-size:var(--t-small);white-space:nowrap}.work-visit-when{color:var(--text-secondary);font-size:var(--t-small);white-space:nowrap}.work-ask{width:100%;color:var(--accent);font-size:var(--t-small);text-align:left;cursor:pointer;background:0 0;border:none;padding:8px 14px;display:block}.work-ask:hover{background:var(--bg-card);text-decoration:underline}@media (width<=900px){.work-head{grid-template-columns:70px minmax(0,1fr) auto}.work-stage,.work-crew,.work-value{display:none}}.work-list.narrow .work-head{grid-template-columns:62px minmax(0,1fr) auto}.work-list.narrow .work-stage,.work-list.narrow .work-crew,.work-list.narrow .work-value{display:none}.work-list.narrow .work-title{overflow-wrap:normal;word-break:normal}.parts-deadline{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--bg-card);font-size:var(--t-body);color:var(--text-secondary);align-items:center;gap:8px;padding:10px 14px;display:flex}.parts-deadline.soon{border-left-color:var(--warning)}.doc-row.part-holding{border-left-color:var(--danger)}.doc-row.part-late,.doc-row.part-coming{border-left-color:var(--warning)}.doc-row.part-here{border-left-color:var(--success)}.part-open{font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.part-open:hover{color:var(--accent);text-decoration:underline}.part-blocking{background:color-mix(in srgb, var(--danger) 8%, transparent);color:var(--text);font-size:var(--t-small);border-radius:6px;margin:6px 0 0;padding:7px 10px;line-height:1.45}.banner-note{font-size:var(--t-small);opacity:.85;white-space:nowrap}.view-as{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin-top:auto;padding:10px 12px;display:flex}.view-as label{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;color:var(--text-light)}.view-as select{font-size:var(--t-small);border:1px solid var(--border);background:var(--bg-card);color:var(--text);border-radius:4px;padding:4px 6px}.data-banner-viewing{color:#fff;z-index:40;background:#4c1d95;position:sticky;top:0}.data-banner-viewing button{color:#4c1d95;background:#fff;font-weight:600}.daygrid{--time-col:62px;flex-direction:column;flex:1;min-height:0;display:flex}.daygrid-head{border-bottom:1px solid var(--border);background:var(--bg-card);z-index:5;display:grid;position:sticky;top:0}.daygrid-corner{border-right:1px solid var(--border)}.daygrid-tech{border-right:1px solid var(--border);font-size:var(--t-small);color:var(--text);align-items:center;gap:6px;padding:8px 10px;font-weight:600;display:flex;overflow:hidden}.daygrid-tech .tech-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.daygrid-scroll{flex:1;min-height:0;overflow:auto}.daygrid-body{display:grid;position:relative}.daygrid-times{border-right:1px solid var(--border)}.daygrid-time{border-bottom:1px solid var(--border);font-size:var(--t-small);color:var(--text-light);position:relative}.daygrid-time span{background:var(--bg);padding:0 2px;position:absolute;top:-6px;right:6px}.daygrid-col{border-right:1px solid var(--border);position:relative}.daygrid-slot{border-bottom:1px solid var(--border);cursor:pointer}.daygrid-slot:hover{background:var(--cell-hover)}.daygrid-job{color:#fff;font-size:var(--t-small);cursor:grab;border-radius:5px;flex-direction:column;gap:1px;padding:3px 5px;line-height:1.25;display:flex;position:absolute;left:2px;right:2px;overflow:hidden;box-shadow:0 1px 2px #0000002e}.daygrid-job.selected{outline:2px solid var(--text);outline-offset:1px}.daygrid-job.being-moved{opacity:.35}.daygrid-job.clipped-top{border-top:3px dashed #ffffffbf;border-top-left-radius:0;border-top-right-radius:0}.daygrid-job.clipped-bottom{border-bottom:3px dashed #ffffffbf;border-bottom-right-radius:0;border-bottom-left-radius:0}.daygrid-resize{cursor:ns-resize;height:6px;position:absolute;bottom:0;left:0;right:0}.daygrid-now{left:var(--time-col);z-index:4;pointer-events:none;background:#dc2626;height:2px;position:absolute;right:0}.daygrid-now-label{color:#fff;font-size:var(--t-small);white-space:nowrap;background:#dc2626;border-radius:3px;padding:1px 5px;font-weight:700;position:absolute;top:-8px;left:3px}.page-error{border:1px solid var(--border);border-left:3px solid var(--danger);border-radius:var(--radius);background:var(--bg-card);max-width:52ch;margin:48px auto;padding:24px 26px}.page-error h2{font-size:var(--t-section);color:var(--text);margin:0 0 10px}.page-error p{font-size:var(--t-body);color:var(--text-secondary);margin:0 0 12px;line-height:1.55}.page-error-what{color:var(--text)}.page-error button{border:1px solid var(--border);background:var(--primary);color:#fff;cursor:pointer;border-radius:6px;padding:7px 14px;font-weight:600}.page-error-detail{border-top:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--t-small);color:var(--text-light);word-break:break-word;margin-top:14px;padding-top:12px}.active-now{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);font-size:var(--t-small);color:var(--text-secondary);align-items:center;gap:8px;margin:0 0 14px;padding:8px 12px;display:flex}.active-now strong{color:var(--text)}.active-now-dot{background:var(--success);border-radius:50%;flex:none;width:7px;height:7px}.active-now-when{color:var(--text-light)}.job-block{border:2px solid #0000}.job-block.unsettled{border-style:dashed;font-weight:600}.job-block.unsettled .confirm-badge{color:inherit;background:#ffffffbf;border:1px solid}.job-block.unsettled .ticket-ref,.job-block.unsettled .job-number,.job-block.unsettled .job-block-time{color:inherit;opacity:1}.job-block.unsettled{border-width:2px}.hour-label.off-hours{color:var(--text-light);opacity:.6}.grid-cell.off-hours{background:var(--bg-hour-alt);opacity:.55}.grid-cell.off-hours:hover{opacity:1;background:var(--cell-hover)}.backups-open{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);width:fit-content;color:var(--text-secondary);font-size:var(--t-small);cursor:pointer;align-self:flex-start;margin:0 0 14px;padding:5px 12px}.backups-open:hover{color:var(--text);border-color:var(--text-light)}.backups{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);font-size:var(--t-body);margin:0 0 16px;padding:14px 16px}.backups-head{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.backups-note{color:var(--text-light);font-size:var(--t-small);flex:1}.backups-close{font-size:var(--t-section);cursor:pointer;color:var(--text-light);background:0 0;border:none}.backups-actions{align-items:center;gap:12px;margin-bottom:10px;display:flex}.backups-actions button{border:1px solid var(--border);background:var(--primary);color:#fff;cursor:pointer;border-radius:6px;padding:6px 14px;font-weight:600}.backups-actions button:disabled{opacity:.6;cursor:default}.backups-message{color:var(--text-secondary)}.backups-empty{color:var(--text-light);margin:4px 0 0}.backups-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:7px 0;display:flex}.backups-when{min-width:15rem;font-weight:600}.backups-meta{color:var(--text-light);flex:1}.backups-confirm{color:var(--danger);font-weight:600}.backups-row button{border:1px solid var(--border);background:var(--bg);cursor:pointer;font-size:var(--t-small);border-radius:5px;padding:4px 10px}.full-backups-about{color:var(--text-light);font-size:var(--t-small);max-width:70ch;margin:4px 0 10px}.full-backups .ok-note,.full-backups .warn-note{margin-bottom:10px}.full-backups .ok-note p,.full-backups .warn-note p{margin:2px 0}.backups-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.changes-row{border-top:1px solid var(--border);align-items:baseline;gap:10px;padding:7px 0;display:flex}.changes-when{min-width:6.5rem;color:var(--text-light);font-size:var(--t-small)}.changes-what{flex:1;line-height:1.45}.changes-fields{color:var(--text-light);font-size:var(--t-small);display:block}.changes-nofix{color:var(--text-light);text-align:center;width:4.5rem}.changes-row button{border:1px solid var(--border);background:var(--bg);cursor:pointer;font-size:var(--t-small);white-space:nowrap;border-radius:5px;padding:4px 10px}.changes-note{margin-bottom:8px;display:block}.place-ticket{padding:18px 20px}.place-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.place-head strong{font-size:var(--t-strong)}.place-head span{color:var(--text-light);font-size:var(--t-body)}.place-ticket input{width:100%;font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);padding:9px 12px}.place-results{max-height:320px;margin:10px 0;overflow-y:auto}.place-result{border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;align-items:baseline;gap:10px;padding:9px 8px;display:flex}.place-result:hover{background:var(--bg-hour-alt)}.place-ref{min-width:4.5rem;color:var(--text-secondary);font-weight:600;font-size:var(--t-small)}.place-what{flex-direction:column;flex:1;display:flex}.place-customer{font-weight:600;font-size:var(--t-body)}.place-title{color:var(--text-secondary);font-size:var(--t-small)}.place-stage{color:var(--text-light);font-size:var(--t-small);white-space:nowrap}.place-none{color:var(--text-light);font-size:var(--t-body);padding:10px 8px}.place-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.place-actions button{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:var(--t-body);border-radius:6px;padding:7px 14px}.place-cancel{color:var(--text-light)}.tickets-page{flex-direction:column;flex:1;min-height:0;padding:16px 20px;display:flex}.tickets-count{font-size:var(--t-small);color:var(--text-light);font-weight:500}.tickets-new{border-radius:var(--radius);border:1px solid var(--border);background:var(--primary);color:#fff;cursor:pointer;font-weight:600;font-size:var(--t-body);padding:7px 14px}.tickets-summary{color:var(--text-light);font-size:var(--t-small);margin-bottom:6px}.tickets-list{flex:1;min-height:0;overflow-y:auto}.tickets-row{grid-template-columns:var(--cols,5.5rem minmax(9rem, 1.1fr) minmax(0, 2fr) 8.5rem 8rem 4rem);text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;font:inherit;background:0 0;align-items:baseline;gap:10px;padding:9px 8px;display:grid}.tickets-row:hover{background:var(--bg-hour-alt)}.tickets-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:var(--bg-hour-alt)}.tickets-row.seen .tickets-customer{font-weight:400}.tickets-row.seen .tickets-customer,.tickets-row.seen .tickets-title{color:var(--text-secondary)}.tickets-ref{font-weight:600;font-size:var(--t-small);color:var(--text-secondary)}.tickets-customer{font-weight:600;font-size:var(--t-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tickets-title,.tickets-stage,.tickets-crew{color:var(--text-secondary);font-size:var(--t-small);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tickets-when{font-size:var(--t-small);color:var(--text-light);text-align:right}.tickets-stale{color:var(--danger);font-weight:600}.tickets-empty{color:var(--text-light);padding:20px 8px}@media (width<=900px){.tickets-row,.tickets-headers{grid-template-columns:5rem 1fr 4rem}.tickets-title,.tickets-stage,.tickets-crew,.tickets-headers .col-title,.tickets-headers .col-stage,.tickets-headers .col-crew{display:none}}.customers-page{flex:1;min-height:0;display:flex}.customers-list{border-right:1px solid var(--border);flex-direction:column;width:21rem;padding:12px;display:flex}.customers-list input{border:1px solid var(--border);border-radius:var(--radius);font-size:var(--t-body);padding:8px 11px}.customers-scroll{flex:1;min-height:0;margin-top:8px;overflow-y:auto}.customers-row{border:none;border-bottom:1px solid var(--border);text-align:left;width:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;grid-template-columns:1fr auto;gap:4px 8px;padding:8px;text-decoration:none;display:grid}.customers-row:hover{background:var(--bg-hour-alt)}.customers-row.picked{background:#eff6ff}.customers-name{font-weight:600;font-size:var(--t-body)}.customers-meta{color:var(--text-light);font-size:var(--t-small);text-overflow:ellipsis;white-space:nowrap;grid-column:1;overflow:hidden}.customers-detail{flex:1;min-height:0;padding:18px 22px;overflow-y:auto}.customers-detail h2{font-size:var(--t-section);margin:0 0 6px}.customers-detail h3{font-size:var(--t-body);text-transform:uppercase;letter-spacing:.04em;color:var(--text-light);margin:20px 0 8px}.customers-note-add{margin-bottom:10px}.customers-note-add textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;font:inherit;font-size:var(--t-body);resize:vertical;padding:8px 10px}.customers-note-controls{font-size:var(--t-small);align-items:center;gap:14px;margin-top:6px;display:flex}.customers-note-controls label{cursor:pointer;align-items:center;gap:5px;display:flex}.customers-note-controls button{border:1px solid var(--border);background:var(--primary);color:#fff;cursor:pointer;font-weight:600;font-size:var(--t-small);border-radius:6px;margin-left:auto;padding:6px 13px}.customers-note-controls button:disabled{opacity:.5;cursor:default}.customers-note{border-bottom:1px solid var(--border);font-size:var(--t-body);grid-template-columns:4.5rem 1fr auto auto;align-items:baseline;gap:10px;padding:8px 0;display:grid}.customers-note-x{color:var(--text-light);cursor:pointer;font-size:var(--t-strong);background:0 0;border:none}.customers-empty{color:var(--text-light);font-size:var(--t-body)}.customers-job{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;font:inherit;font-size:var(--t-body);background:0 0;align-items:baseline;gap:10px;padding:7px 0;display:flex}.customers-job:hover{background:var(--bg-hour-alt)}.customers-job-title{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.customers-job-when{color:var(--text-light);font-size:var(--t-small);white-space:nowrap}@media (width<=900px){.customers-list{width:13rem}}.closing-parts{font-size:var(--t-body);margin:8px 0 12px;padding-left:18px}.closing-parts li{margin-bottom:4px}.closing-stage{color:var(--text-light);font-size:var(--t-small);margin-left:8px}.closing-note{color:var(--text-secondary);font-size:var(--t-small);line-height:1.5}.cal-connect{background:var(--primary);color:#fff;font-weight:600;font-size:var(--t-body);border-radius:6px;padding:6px 14px;text-decoration:none}.cal-share input{border:1px solid var(--border);border-radius:var(--radius);font-size:var(--t-body);min-width:16rem;padding:6px 10px}.data-banner-offline{color:#fff;background:#78350f;border-bottom:1px solid #92400e}.data-banner-offline strong{color:#fde68a}@media (width<=640px){.rail-item,.rail-list button{min-width:44px;min-height:44px}.rail{width:60px;min-width:60px}.rail-group-label{display:none}.home-stats{grid-template-columns:1fr 1fr;gap:8px}.home-stat{padding:12px 10px}.home-stat-value{font-size:var(--t-big)}.home-stat-label{font-size:var(--t-small)}.backups-open{margin:0 6px 8px 0;display:inline-block}.segmented,.pill-row{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;flex-wrap:nowrap;max-width:100%;overflow-x:auto}.segmented button,.pill{flex:none;min-height:44px}.tickets-new{min-height:44px}.tickets-page{padding:12px}.customers-page{flex-direction:column}.customers-list{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:45vh}.customers-row{min-height:44px}.takecall-note{min-height:9rem}.takecall-result,.place-result{min-height:44px}}.tickets-board{overscroll-behavior-x:contain;flex:1;gap:10px;min-height:0;padding-bottom:8px;display:flex;overflow-x:auto}.tickets-col{background:var(--bg-sidebar);border-radius:var(--radius);flex-direction:column;flex:0 0 15rem;min-height:0;display:flex}.tickets-col-head{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;padding:9px 11px;font-weight:700;display:flex}.tickets-col-body{flex-direction:column;flex:1;gap:7px;min-height:3rem;padding:8px;display:flex;overflow-y:auto}.tickets-card{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;box-shadow:var(--shadow);border-radius:6px;flex-direction:column;gap:2px;padding:8px 9px;display:flex}.tickets-card:hover{border-color:var(--accent)}.tickets-card:active{cursor:grabbing}.tickets-card.dragging{opacity:.4}.tickets-card.dragging-overlay{cursor:grabbing;border-color:var(--accent);pointer-events:none;box-shadow:0 8px 20px #0000002e}.tickets-col.over{background:var(--bg-card);outline:2px dashed var(--accent);outline-offset:-2px}.tickets-card-customer{font-weight:600;font-size:var(--t-body)}.tickets-card-title{color:var(--text-secondary);font-size:var(--t-small)}.tickets-card-foot{color:var(--text-light);font-size:var(--t-small);justify-content:space-between;gap:8px;display:flex}.tickets-col-empty{color:var(--text-light);font-size:var(--t-small);padding:6px 2px}@media (width<=640px){.tickets-col{flex:0 0 13rem}}@media (width>=901px){.rail.collapsed{width:60px;min-width:60px}.rail.collapsed .rail-label,.rail.collapsed .rail-soon,.rail.collapsed .rail-group-label,.rail.collapsed .view-as label,.rail.collapsed .rail-badge{display:none}.rail.collapsed .rail-item{justify-content:center;padding:11px 0}.rail.collapsed .view-as select{width:40px;padding:4px 2px}}.rail-collapse{cursor:pointer;color:#ffffffd9;background:#ffffff0f;border:1px solid #ffffff38;border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;margin:0;padding:0;line-height:1;display:flex}.rail-collapse:hover{color:#fff;background:#ffffff29;border-color:#ffffff73}.rail-collapse-arrow{transition:transform .12s;display:flex}.rail.collapsed .rail-brand{justify-content:center;padding:4px 0 16px}.rail.collapsed .rail-mark{display:none}.rail-collapse:hover{color:#fff}.equip-row-actions{align-items:center;gap:2px;display:inline-flex}.equip-row{grid-template-columns:var(--cols);border-bottom:1px solid var(--border);font-size:var(--t-body);align-items:baseline;gap:10px;padding:8px 0;display:grid}.equip-kind{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;color:var(--text-light);font-weight:700}.equip-what{flex-direction:column;gap:1px;min-width:0;display:flex}.equip-make{font-weight:600}.equip-detail{color:var(--text-light);font-size:var(--t-small)}.equip-warranty{font-size:var(--t-small);white-space:nowrap;font-weight:600}.equip-warranty.tone-ok{color:var(--success)}.equip-warranty.tone-soon{color:var(--warning)}.equip-warranty.tone-gone{color:var(--text-light)}.equip-form{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);margin-top:10px;padding:12px}.equip-grid{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:10px;display:grid}.equip-form label{font-size:var(--t-small);color:var(--text-light);flex-direction:column;gap:3px;display:flex}.equip-form input,.equip-form select{border:1px solid var(--border);font:inherit;font-size:var(--t-body);color:var(--text);border-radius:5px;padding:6px 8px}.equip-notes{margin-top:10px}@media (width<=640px){.equip-row{grid-template-columns:1fr auto}.equip-kind{grid-column:1/-1}}.card-clickable{cursor:pointer}.card-clickable:hover{border-color:var(--accent)}.card-clickable .part-open{font:inherit;color:inherit;text-align:left;background:0 0;border:none;padding:0}.pill-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pill{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:var(--t-small);cursor:pointer;border-radius:14px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.pill span{color:var(--text-light);font-size:var(--t-small);font-variant-numeric:tabular-nums}.pill:hover{border-color:var(--text-light)}.pill.active{background:var(--primary);border-color:var(--primary);color:#fff}.pill.active span{color:#fffc}.pill.warn{border-color:var(--warning);color:#92400e}.pill.warn.active{background:var(--warning);border-color:var(--warning);color:#fff}.segmented{background:var(--bg-sidebar);border-radius:var(--radius);gap:2px;padding:3px;display:flex}.segmented button{cursor:pointer;font-size:var(--t-body);color:var(--text-secondary);background:0 0;border:none;border-radius:5px;align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:flex}.segmented button.active{background:var(--bg-card);color:var(--text);box-shadow:var(--shadow)}.segmented button span{font-size:var(--t-small);color:var(--text-light);font-weight:500}.control-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.control-bar>input[type=text]{flex:12rem;min-width:0}.control-bar input[type=text]{font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);padding:7px 11px}.control-bar select{font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);padding:7px 9px}.control-bar-end{align-items:center;gap:10px;margin-left:auto;display:flex}.show-closed{font-size:var(--t-body);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;display:flex}.show-closed-count{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums}.segmented-icons button{padding:6px 9px}.segmented-icons svg{display:block}.jobs-count-line{font-size:var(--t-small);color:var(--text-light);margin:-2px 0 8px}.parts-deadline{font-size:var(--t-small);color:var(--text-secondary);background:0 0;border:none;align-items:center;gap:8px;margin:0 0 10px;padding:0;display:flex}.parts-deadline strong{color:var(--text)}.parts-deadline-count{color:var(--text-light);white-space:nowrap;margin-left:auto}.parts-deadline.soon{border-radius:var(--radius);background:var(--warning-bg,#fef3c7);color:#92400e;padding:8px 10px}.parts-deadline.soon strong{color:inherit}.customer-open{border-top:1px solid var(--border);align-items:baseline;gap:10px;margin:0 0 14px;padding-top:10px;display:flex}.customer-open-label{font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);flex:none;font-weight:700}.customer-open-list{flex-wrap:wrap;gap:6px;display:flex}.customer-open-list .pill{font-weight:600}.customer-open-list .pill span{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;font-weight:400;overflow:hidden}.customer-access{border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--bg-sidebar);margin:0 0 16px;padding:10px 12px}.customer-access-label{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.06em;color:var(--text-light)}.customer-access ul{font-size:var(--t-body);margin:4px 0 0;padding-left:18px}.customer-access li{margin:2px 0}.customer-timeline-year{margin-bottom:10px}.customer-timeline-label{font-size:var(--t-small);color:var(--text-light);letter-spacing:.06em;border-bottom:1px solid var(--border);margin:8px 0 4px;padding-bottom:3px;font-weight:700}.customers-job-stage{color:var(--text-light);font-size:var(--t-small)}.attachments{margin:14px 0 4px}.attachments-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.attachments-head h3{font-size:var(--t-body);margin:0}.attachments-count{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums;margin-left:6px;font-weight:500}.attachments-add{min-height:36px;font-size:var(--t-small);cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);margin-left:auto;padding:7px 12px;font-weight:600}.attachments-add:hover:not(:disabled){border-color:var(--accent)}.attachments-add:disabled{opacity:.6;cursor:default}.attachments-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;display:grid}.attachment>a{color:var(--text);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);flex-direction:column;gap:3px;padding:6px;text-decoration:none;display:flex}.attachment>a:hover{border-color:var(--accent)}.attachment img{aspect-ratio:4/3;object-fit:cover;background:var(--bg-sidebar);border-radius:4px;width:100%}.attachment-icon{aspect-ratio:4/3;background:var(--bg-sidebar);color:var(--text-light);border-radius:4px;justify-content:center;align-items:center;display:flex}.attachment-name{font-size:var(--t-small);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.attachment-size{font-size:var(--t-small);color:var(--text);white-space:nowrap;align-items:center;gap:6px;line-height:1.3;display:flex}.attachment-size>em{flex:none}.attachment-x{cursor:pointer;color:#fff;width:22px;height:22px;line-height:1;font-size:var(--t-strong);background:#0000008c;border:none;border-radius:50%;position:absolute;top:3px;right:3px}.attachment-x:hover{background:var(--danger)}.customer-head{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.customer-head h2{margin:0}.customer-book{white-space:nowrap;min-height:38px;margin-left:auto}.settings-page{flex:1;max-width:60rem;min-height:0;padding:16px 20px;overflow-y:auto}.settings-page h1{margin:0 0 4px}.settings-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);margin:0 0 22px;padding:14px 16px}.settings-section h2{font-size:var(--t-body);margin:0 0 2px}.settings-section>.quiet-note{margin:0 0 10px}button.rail-group-label{cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:none;align-items:center;gap:6px;display:flex}.rail-group-arrow{opacity:1;margin-left:auto;transition:transform .12s;display:flex;transform:rotate(90deg)}.rail-group-arrow svg{stroke-width:2.6px}.rail-group-arrow.collapsed{transform:rotate(0)}.rail-group.shut .rail-group-label{color:#ffffffc7}.rail-group.shut .rail-group-arrow{opacity:1}button.rail-group-label:hover{color:#fff;background:#ffffff14}button.rail-group-label:hover .rail-group-arrow{opacity:1}.rail-group.shut{margin-bottom:2px}.assoc{border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:12px}.assoc-head{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.assoc-head h3{font-size:var(--t-body);font-weight:700}.assoc-head .attachments-add{margin-left:auto}.assoc-row{font-size:var(--t-body);align-items:baseline;gap:8px;padding:5px 0;display:flex}.assoc-who{align-items:baseline;gap:8px;font-weight:600;display:flex}.assoc-who em{color:var(--text-light);font-style:normal;font-weight:400}.assoc-phone{color:var(--text-secondary);font-weight:400;font-size:var(--t-small)}.assoc-note{min-width:0;color:var(--text-secondary);font-size:var(--t-small);flex:1}.assoc-row .customers-note-x{margin-left:auto}.assoc-add{background:var(--bg-sidebar);border-radius:var(--radius);flex-direction:column;gap:6px;margin-top:8px;padding:10px;display:flex}.assoc-add input{font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:7px 9px}.assoc-option{width:100%;font-size:var(--t-body);text-align:left;cursor:pointer;border-radius:var(--radius);background:0 0;border:none;align-items:baseline;gap:7px;padding:6px 8px;display:flex}.assoc-option:hover{background:var(--bg-card)}.assoc-option em{color:var(--text-light);font-style:normal;font-size:var(--t-small)}.assoc-chosen{font-size:var(--t-body);align-items:center;gap:7px;display:flex}.customers-order{width:100%;font-size:var(--t-small);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text-secondary);margin-bottom:6px;padding:5px 7px}.customers-scope-note{font-size:var(--t-small);color:var(--text-light);margin:6px 0 4px;line-height:1.4}.customers-tag{font-size:var(--t-small);letter-spacing:.05em;text-transform:uppercase;color:var(--text-light);background:var(--bg-sidebar);vertical-align:middle;border-radius:3px;margin-left:7px;padding:1px 6px;font-weight:700}.connections{margin:0 0 16px}.connections-list{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.connections-row{font-size:var(--t-body);align-items:center;gap:10px;display:flex}.connections-name{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-weight:600}span.connections-name{color:var(--text-secondary);cursor:default}.connections-label{font:inherit;font-size:var(--t-small);color:var(--text-secondary)}select.connections-label{border:1px solid var(--border);background:var(--bg-card);border-radius:6px;padding:2px 6px}.connections-phone{color:var(--text-secondary);font-variant-numeric:tabular-nums}.connections-remove{font-size:var(--t-strong);color:var(--text-light);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:2px 6px;line-height:1}.connections-remove:hover{color:var(--danger)}.connections-add{flex-direction:column;align-items:flex-start;gap:6px;margin-top:8px;display:flex}.connections-picked{font-size:var(--t-body);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.customers-note{align-items:flex-start;gap:9px;display:flex}.customers-note-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.customers-note-who{width:26px;height:26px;font-size:var(--t-small);letter-spacing:.02em;background:var(--bg-sidebar);color:var(--text-secondary);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.customers-note-who.small{width:20px;height:20px;font-size:var(--t-small)}.customers-note.is-pinned{background:var(--bg-sidebar);border-radius:var(--radius)}.customers-note-pinned{font-size:var(--t-small);letter-spacing:.05em;text-transform:uppercase;color:var(--accent);align-self:flex-start;align-items:center;gap:4px;margin-bottom:2px;font-weight:700;display:inline-flex}.customers-note-pinned em{color:var(--text-light);font-style:normal;font-weight:400}.customers-note-edited{font-size:var(--t-small);color:var(--text-light)}.customers-note-where{color:var(--text-light);font-style:normal;font-weight:400}.changes-who{font-size:var(--t-small);color:var(--accent);margin-left:6px;text-decoration:underline}.day-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite day-spin}@keyframes day-spin{to{transform:rotate(360deg)}}.attach-staging{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;margin:8px 0 12px;padding:12px;display:flex}.attach-staging-head{font-size:var(--t-body);align-items:baseline;gap:10px;display:flex}.attach-staging-head button{margin-left:auto}.attach-name{font-size:var(--t-small);color:var(--text-secondary);flex-direction:column;gap:3px;display:flex}.attach-name input{font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);padding:7px 9px}.attach-scope{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attach-scope-label{font-size:var(--t-small);color:var(--text-secondary)}.attachment-what{font-size:var(--t-small);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-scope{text-overflow:ellipsis;font-style:normal;font-size:var(--t-small);letter-spacing:.04em;text-transform:uppercase;background:var(--bg-sidebar);color:var(--text-light);border-radius:3px;padding:1px 5px;font-weight:700;overflow:hidden}@media (prefers-reduced-motion:reduce){.day-spinner{animation-duration:2.4s}}.customers-note-edit{flex-direction:column;gap:4px;display:flex}.customers-note-edit .customers-note-controls{margin-top:2px}.customers-note-edit .customers-note-controls button:last-child{margin-left:auto}.customers-note.focused{border-radius:var(--radius);animation:2.2s ease-out note-focus}@keyframes note-focus{0%,40%{background:var(--bg-hour-alt)}to{background:0 0}}@media (prefers-reduced-motion:reduce){.customers-note.focused{background:var(--bg-hour-alt);animation:none}}.customers-reply{border-left:2px solid var(--border);font-size:var(--t-small);align-items:baseline;gap:7px;margin-top:5px;padding-left:9px;display:flex}.customers-note-actions{gap:10px;margin-top:5px;display:flex}.customers-note-actions button{cursor:pointer;font-size:var(--t-small);color:var(--text-light);background:0 0;border:none;padding:0;text-decoration:underline}.customers-note-actions button:hover{color:var(--text)}.customers-note-actions button.danger:hover{color:var(--danger)}.customers-reply-box{gap:6px;margin-top:5px;display:flex}.customers-reply-box input{min-width:0;font-size:var(--t-small);border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:5px 8px}.customers-note-stamp{flex-direction:column;flex:none;align-items:center;gap:3px;width:3.1rem;display:flex}.customers-note-when{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.25}.customers-note-stamp.small{width:2.8rem}.notes-headings{border-bottom:1px solid var(--border);font-size:var(--t-small);letter-spacing:.05em;text-transform:uppercase;color:var(--text-light);align-items:baseline;gap:9px;margin-bottom:4px;padding:0 0 4px;font-weight:700;display:flex}.notes-headings span:first-child{text-align:center;width:3.1rem;font-size:var(--t-small);flex:none}.notes-headings span:last-child{flex:1}.customers-reply{align-items:flex-start}.customer-panes{grid-template-columns:minmax(0,1fr) minmax(0,22rem);align-items:start;gap:20px;display:grid}.customer-work{min-width:0}.customer-reference{border-left:1px solid var(--border);min-width:0;padding-left:18px}.customer-reference h3{margin-top:0}.customer-section-head{align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.customer-section-head h3{margin:0}.customer-add-note{min-height:30px;font-size:var(--t-small);cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);margin-left:auto;padding:4px 11px;font-weight:600}.customer-add-note:hover{border-color:var(--accent)}.customer-cancel-note{cursor:pointer;font-size:var(--t-small);color:var(--text-light);background:0 0;border:none;text-decoration:underline}.customers-note-actions{visibility:hidden}.customers-note:hover .customers-note-actions,.customers-note:focus-within .customers-note-actions,.customers-note-actions.held{visibility:visible}.customers-thread{border-left:2px solid var(--border);margin:6px 0 2px 2px;padding:8px 0 8px 10px}.customers-thread .customers-reply{border-left:none;margin-top:0;padding-left:0}.customers-thread .customers-reply+.customers-reply{margin-top:7px}.customers-thread .customers-reply-box{margin-top:8px}@media (width<=1100px){.customer-panes{grid-template-columns:minmax(0,1fr)}.customer-reference{border-left:none;border-top:1px solid var(--border);padding-top:14px;padding-left:0}}.note-section{margin-bottom:22px}.note-section+.note-section{border-top:3px solid var(--border);margin-top:24px;padding-top:18px}.section-toggle{cursor:pointer;color:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:7px;padding:2px 0;display:flex}.section-toggle h3{margin:0}.section-toggle svg{color:var(--text-light);transition:transform .12s}.note-section:not(.shut) .section-toggle svg{transform:rotate(90deg)}.section-count{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums;font-weight:500}.global-search{min-width:18rem;margin-left:18px;position:relative}.global-search input{width:100%;font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);padding:6px 11px}.global-search input:focus{border-color:var(--accent);outline:none}.global-search-results{z-index:60;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);max-height:24rem;padding:4px;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 28px #00000024}.global-search-group{font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);padding:6px 9px 3px;font-weight:700}.global-search .global-search-row{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-radius:5px;flex-direction:column;gap:1px;padding:6px 9px;display:flex}.global-search .global-search-row.active,.global-search .global-search-row:hover{background:var(--bg-sidebar);color:var(--text);border:none}.global-search-label{font-size:var(--t-body);color:var(--text)}.global-search-sub{font-size:var(--t-small);color:var(--text-light);overflow-wrap:anywhere}.global-search-empty{font-size:var(--t-small);color:var(--text-light);margin:0;padding:10px}@media (width<=900px){.global-search{display:none}}.customer-tab{margin-top:14px}.customer-event{grid-template-columns:var(--cols);border-radius:var(--radius);text-align:left;cursor:pointer;border:none;border-left:2px solid var(--border);background:0 0;align-items:baseline;gap:10px;width:100%;margin-bottom:2px;padding:7px 8px;display:grid}.customer-event:hover:not(.flat){background:var(--bg-sidebar)}.customer-event.flat{cursor:default}:root{--kind-visit:var(--accent);--kind-part:#b45309;--kind-job:#6d28d9;--kind-quote:#0f766e;--kind-note:var(--border)}.customer-event.kind-ticket{border-left-color:var(--kind-visit)}.customer-event.kind-part{border-left-color:var(--kind-part)}.customer-event.kind-job{border-left-color:var(--kind-job)}.customer-event.kind-note{border-left-color:var(--kind-note)}.sort-headers.customer-event-headers{padding-left:10px}.customer-event-who{font-size:var(--t-small);letter-spacing:.02em;color:var(--text-secondary);white-space:nowrap;font-weight:700}.customer-event-who.quiet{color:var(--text-light);font-weight:400}.customers-job{border-left:3px solid #0000;padding-left:8px}.customers-job.kind-visit{border-left-color:var(--kind-visit)}.customers-job.kind-part{border-left-color:var(--kind-part)}.customers-job.kind-job{border-left-color:var(--kind-job)}.customers-job.focused{animation:2.2s ease-out work-focus}@keyframes work-focus{0%,40%{background:var(--bg-sidebar)}to{background:0 0}}@media (prefers-reduced-motion:reduce){.customers-job.focused{background:var(--bg-sidebar);animation:none}}.customers-job.kind-quote{border-left-color:var(--kind-quote)}.customer-event-when{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums;white-space:nowrap}.customer-event-kind{font-size:var(--t-small);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.customer-event-text{font-size:var(--t-body);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.customers-job.flat{cursor:default}@media (width<=720px){.customer-event{grid-template-columns:4.4rem minmax(0,1fr)}.customer-event-kind,.customer-event-text{grid-column:2}}.sort-headers{grid-template-columns:var(--cols);border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-top:4px;padding:0 8px 4px;display:grid}.sort-header{cursor:pointer;font-size:var(--t-small);letter-spacing:.05em;text-transform:uppercase;color:var(--text-light);text-align:left;background:0 0;border:none;align-items:center;gap:4px;padding:2px 0;font-weight:700;display:flex}.sort-header:hover,.sort-header.active{color:var(--text)}.sort-arrow{width:.7em;font-size:var(--t-small);display:inline-block}.sort-header.movable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.sort-header.movable:active{cursor:grabbing}.sort-header.movable .icon{opacity:.4;flex:none;transition:opacity .12s}.sort-headers:hover .sort-header.movable .icon{opacity:.75}.sort-header.movable:hover .icon,.sort-header.dragging-overlay .icon{opacity:1}.sort-header.dragging{opacity:.35}.sort-header.drop-target{box-shadow:inset 2px 0 0 var(--accent);color:var(--text)}.sort-header.dragging-overlay{background:var(--bg-card);border:1px solid var(--accent);border-radius:var(--radius);pointer-events:none;cursor:grabbing;padding:4px 9px;box-shadow:0 8px 20px #0000002e}.columns-reset{cursor:pointer;font-size:var(--t-small);color:var(--text-light);background:0 0;border:none;align-self:flex-start;margin:4px 0 0 8px;padding:0;text-decoration:underline}.columns-reset:hover{color:var(--text)}.customers-job{align-items:baseline;gap:8px;display:grid}.customers-job.kind-job .customers-job-title{font-weight:600}.customers-job.kind-job .ticket-ref{color:var(--kind-job)}.customers-job-job{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums}.customer-edit{margin:4px 0 14px}.customer-edit-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:10px 12px;display:grid}.customer-edit-grid label{flex-direction:column;gap:3px;display:flex}.customer-edit-grid label.wide{grid-column:1/-1}.phone-field-row{align-items:flex-end;gap:6px;display:flex}.phone-field-row label{flex:auto;min-width:0}.customer-edit-grid span{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.06em;color:var(--text-light)}.customer-edit-grid input{font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);padding:7px 9px}.customer-edit-actions{align-items:center;gap:12px;margin-top:12px;display:flex}.customer-edit-open{min-height:30px;font-size:var(--t-small);cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);padding:4px 11px;font-weight:600}.customer-edit-open:hover{border-color:var(--accent)}.contact-star{cursor:pointer;font-size:var(--t-body);color:var(--text-light);background:0 0;border:none;padding:0;line-height:1}.contact-star:hover,.contact-star.on{color:var(--warning)}.ticket-equipment{margin:14px 0 4px}.ticket-equipment-row{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);min-height:40px;font-size:var(--t-body);align-items:center;gap:9px;margin-bottom:6px;padding:8px;display:flex}.ticket-equipment-row:hover{border-color:var(--text-light)}.ticket-equipment-row.on{border-color:var(--accent);background:var(--bg-sidebar)}.ticket-equipment-what{flex:1;min-width:0}.ticket-equipment-count{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums;flex:none}.ticket-equipment-add{background:var(--bg-sidebar);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;padding:10px;display:flex}.ticket-equipment-add input,.ticket-equipment-add select{min-width:0;font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);flex:8rem;padding:6px 8px}.equip-service{border-left:2px solid var(--border);flex-direction:column;gap:2px;margin-top:6px;padding-left:9px;display:flex}.equip-service-label{font-size:var(--t-small);letter-spacing:.05em;text-transform:uppercase;color:var(--text-light);font-weight:700}.equip-visit{font-size:var(--t-small);color:var(--text-secondary)}.tasks-page{padding:16px 20px}.task-row{grid-template-columns:var(--cols);border-bottom:1px solid var(--border);font-size:var(--t-body);align-items:baseline;gap:10px;padding:9px 8px;display:grid}.task-row:hover{background:var(--bg-sidebar)}.task-row.done{opacity:.55}.task-row.done .task-open{text-decoration:line-through}.task-row.late .task-due{color:var(--danger);font-weight:600}.task-due.due-today{color:#92400e;font-weight:600}.task-what{align-items:baseline;gap:9px;min-width:0;display:flex}.task-what input{flex:none;margin-top:2px}.task-tick{cursor:pointer;flex:none;align-items:center;display:inline-flex}.task-tick:empty{cursor:default;width:13px}.task-open{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;padding:0}.task-open:hover{text-decoration:underline}.task-row .task-open,.task-row .task-details,.task-row .task-about{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.task-row .task-open{overflow-wrap:normal}.task-row .task-about{display:block}.task-details{color:var(--text-secondary);font-size:var(--t-small);display:block}.task-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.task-card-done{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:9px;margin-bottom:16px;padding-bottom:14px;font-weight:600;display:flex}.task-card-done input{flex:none}.task-card-read{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.task-card-subject{font-weight:600;font-size:var(--t-strong);overflow-wrap:anywhere;margin:0}.task-card-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.task-card-read .quiet-note{text-align:left;margin:0}.task-card-about{color:var(--text-secondary);font-size:var(--t-body);margin:0 0 4px}.task-about,.task-owner{color:var(--text-secondary);font-size:var(--t-small)}.task-due{font-size:var(--t-small);color:var(--text-light);font-variant-numeric:tabular-nums;white-space:nowrap}.task-status{font-style:normal;font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;display:block}.task-link{cursor:pointer;font:inherit;color:var(--accent);text-align:left;background:0 0;border:none;padding:0}.task-link:hover{text-decoration:underline}.task-add{background:var(--bg-sidebar);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:10px;display:flex}.task-add>input[type=text],.task-add>input:not([type]){flex:18rem;min-width:0}.customer-edit-grid input,.customer-edit-grid select{flex:none}.task-add input{font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);padding:7px 9px}.work-controls{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:6px;display:flex}.work-toggle{cursor:pointer;color:var(--text-light);background:0 0;border:none;align-items:center;padding:0 4px 0 0;display:inline-flex}.work-toggle:hover{color:var(--text)}.work-toggle span{transition:transform .12s}.work-ref{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;padding:0}.work-ref:hover{text-decoration:underline}.work-childcount{font-style:normal;font-size:var(--t-small);color:var(--text-light);margin-left:8px}.customers-job.nested{padding-left:26px}.standby-box{background:var(--bg-sidebar);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:4px;margin:12px 0 4px;padding:10px;display:flex}.standby-box>:not(.standby-check):not(.info-button){flex-basis:100%}.standby-check{font-size:var(--t-body);cursor:pointer;align-items:center;gap:8px;display:flex}.standby-note{width:100%;font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);margin-top:8px;padding:7px 9px}.sidebar-show-closed.on{color:var(--accent);font-weight:600}.rail{flex-direction:column;display:flex}.rail-foot{border-top:1px solid #ffffff1a;margin-top:auto;padding-top:10px}.rail-group:last-of-type{margin-bottom:4px}.topbar{z-index:20;background:var(--bg-card);border-bottom:1px solid var(--border);align-items:center;gap:14px;display:flex;position:relative;box-shadow:0 1px 3px #0000000f}.topbar h1{letter-spacing:-.01em}.topbar .global-search input{background:var(--bg-sidebar)}.topbar .global-search input:focus{background:var(--bg-card)}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.account-menu{position:relative}.account-menu .account-button{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);font-size:var(--t-small);letter-spacing:.02em;border-radius:50%;padding:0;font-weight:700}.account-menu .account-button:hover{border-color:var(--accent);color:var(--accent)}.account-panel{z-index:70;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);min-width:14rem;padding:12px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 28px #00000029}.account-name{font-weight:700;font-size:var(--t-body)}.account-email,.account-cert{font-size:var(--t-small);color:var(--text-secondary);overflow-wrap:anywhere}.account-panel .account-signout{width:100%;font:inherit;font-size:var(--t-body);border:1px solid var(--border);background:var(--bg-card);cursor:pointer;border-radius:6px;margin-top:10px;padding:8px;font-weight:600}.account-panel .account-signout:hover{border-color:var(--accent);color:var(--accent)}.session-warning .session-warning-google{display:inline-block}.bell{position:relative}.bell .bell-button{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;display:flex;position:relative}.bell .bell-button:hover{border-color:var(--accent)}.bell .bell-button{color:var(--text-secondary)}.bell .bell-button:hover{color:var(--accent)}.bell-count{background:var(--danger);color:#fff;min-width:17px;height:17px;font-size:var(--t-small);font-variant-numeric:tabular-nums;border-radius:9px;justify-content:center;align-items:center;padding:0 4px;font-weight:700;display:flex;position:absolute;top:-3px;right:-3px}.bell-panel{z-index:70;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:22rem;max-height:26rem;padding:4px;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 10px 28px #00000029}.bell-empty{font-size:var(--t-small);color:var(--text-light);margin:0;padding:14px}.bell-item{cursor:pointer;text-align:left;width:100%;font-size:var(--t-body);background:0 0;border:none;border-radius:5px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.bell-item:hover{background:var(--bg-sidebar)}.bell-item.unread{border-left:3px solid var(--accent)}.bell-earlier{text-align:left;width:100%;font-size:var(--t-small);padding:10px 14px;display:block}.bell-item-top{justify-content:space-between;gap:8px;display:flex}.bell-when{font-size:var(--t-small);color:var(--text-light);white-space:nowrap}.bell-item-text{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.bell-where{font-size:var(--t-small);color:var(--text-light)}.mention-confirm{background:var(--bg-sidebar);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;font-size:var(--t-small);color:var(--text-secondary);margin:0 0 8px;padding:6px 10px}.mention-box{position:relative}.mention-list{z-index:40;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);max-height:14rem;padding:4px;position:absolute;top:calc(100% - 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 22px #00000024}.mention-option{cursor:pointer;text-align:left;width:100%;font-size:var(--t-body);background:0 0;border:none;border-radius:5px;align-items:baseline;gap:8px;padding:7px 9px;display:flex}.mention-option.active{background:var(--bg-sidebar)}.mention-name{font-weight:600}.mention-email{font-size:var(--t-small);color:var(--text-light)}.requests-view{gap:4px;margin-left:auto;display:inline-flex}.requests-view .docs-chip{align-items:center;gap:5px;display:inline-flex}.requests-confirm{border:1px solid var(--accent);background:var(--bg-card);border-radius:8px;margin:10px 0;padding:12px 14px}.requests-confirm p{margin:0 0 6px}.requests-confirm .customers-note-controls{margin-top:10px}.modal-save-top{border:1px solid var(--primary);background:var(--primary);color:#fff;font-size:var(--t-body);cursor:pointer;border-radius:6px;margin-left:auto;margin-right:8px;padding:5px 14px;font-weight:600}.modal-save-top:hover{filter:brightness(1.05)}.week-cell.weekend,.month-cell.weekend{background:var(--bg-hour-alt)}.week-cell.weekend:hover,.month-cell.weekend:hover{background:var(--cell-hover)}.dispatch-grid.weekend .grid-cell{background:var(--bg-hour-alt);opacity:.55}.dispatch-grid.weekend .grid-cell:hover{opacity:1;background:var(--cell-hover)}.dispatch-grid.weekend .job-block{opacity:1}.dispatch-grid.weekend .tech-label{opacity:.7}.time-needed-box{border-left:3px solid var(--accent)}.time-needed-picker{flex-wrap:wrap;margin-top:8px}.crew-colors{flex-direction:column;gap:6px;display:flex}.crew-color-row{border-radius:6px;justify-content:space-between;align-items:center;gap:16px;padding:6px 8px;display:flex}.crew-color-row:hover{background:var(--bg)}.crew-color-who{font-size:var(--t-body);align-items:center;gap:8px;font-weight:600;display:flex}.crew-color-name{font-weight:400;font-size:var(--t-small);color:var(--text-light);font-style:normal}.crew-color-swatches{flex-wrap:wrap;gap:4px;display:flex}.crew-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;padding:0}.crew-swatch.active{box-shadow:0 0 0 2px var(--bg-card), 0 0 0 4px var(--text)}.crew-swatch:hover{transform:scale(1.12)}.crew-swatch-clear{background:var(--bg-card);border:1px dashed var(--border);color:var(--text-light);font-size:var(--t-body);line-height:1}.crew-swatch-clear:disabled{opacity:.35;cursor:default;transform:none}.contact-row{border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;display:flex}.contact-row-name{font-size:var(--t-body);font-weight:600}.contact-row-actions{gap:4px;display:flex}.contact-act{border:1px solid var(--border);background:var(--bg-card);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.contact-act:hover{border-color:var(--accent);color:var(--accent)}.service-note{border-bottom:1px solid var(--border);font-size:var(--t-body);background:#fffbeb;align-items:flex-start;gap:8px;padding:9px 20px;line-height:1.45;display:flex}.service-note-text{white-space:pre-wrap}.service-note-locked{background:var(--bg);color:var(--text-light)}.service-note-masked{letter-spacing:2px;color:var(--text-light);-webkit-user-select:none;user-select:none}.service-note-eye{border:1px solid var(--border);background:var(--bg-card);width:30px;height:30px;color:var(--text-light);cursor:pointer;border-radius:6px;flex:none;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.service-note-eye:hover{color:var(--text);border-color:var(--accent)}.service-note-editing{align-items:flex-start}.service-note-input{font:inherit;border:1px solid var(--border);resize:vertical;border-radius:6px;flex:1;padding:6px 8px}.service-note-controls{align-items:flex-start;gap:6px;display:flex}.service-note-addbtn{color:var(--text-light);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.service-note-addbtn:hover{color:var(--accent);text-decoration:underline}.more-menu{display:inline-flex;position:relative}.more-menu-trigger{padding:6px 9px}.more-menu-list{background:var(--bg-card);border:1px solid var(--border);min-width:176px;box-shadow:var(--shadow-lg);z-index:70;border-radius:8px;padding:4px;position:absolute;bottom:calc(100% + 6px);right:0}.more-menu-item{width:100%;font:inherit;color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;display:flex}.more-menu-item:hover{background:var(--bg)}.more-menu-item.danger{color:var(--danger,#dc2626)}.more-menu-item.danger:hover{background:#fef2f2}.secret-warning{font-size:var(--t-small);color:var(--text);background:#fffbeb;border:1px solid #fde68a;border-radius:6px;align-items:flex-start;gap:7px;margin:6px 0 0;padding:8px 10px;line-height:1.45;display:flex}.place-overlay{z-index:100;position:fixed;inset:0}.place-ticket{box-shadow:var(--shadow-lg);border:1px solid var(--border)}.month-cell{flex-direction:column;gap:3px;height:108px;min-height:108px;display:flex;overflow:hidden}.month-chips{flex-wrap:wrap;gap:3px;min-height:0;display:flex;overflow:hidden}.month-chip{font-size:var(--t-small);letter-spacing:.02em;color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:2px 5px;font-weight:700;line-height:1.35}.month-chip:hover{filter:brightness(1.08);box-shadow:0 1px 4px #0f172a40}.month-more{font-size:var(--t-small);color:var(--text-light);flex:none;align-self:flex-start;margin-top:auto;padding:1px 4px;font-weight:600}.ticket-description{font-size:var(--t-body);white-space:pre-wrap;margin:0 0 12px;line-height:1.5}.ticket-meta{border-bottom:1px solid var(--border);font-size:var(--t-small);color:var(--text-secondary);flex-wrap:wrap;gap:4px 16px;margin:0 0 16px;padding-bottom:14px;display:flex}.ticket-meta strong{color:var(--text-light);font-weight:600;font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;margin-right:3px}.ticket-quick{border-color:var(--border);color:var(--text-secondary)}.ticket-quick:hover{border-color:var(--accent);color:var(--accent)}.modal-footer .ticket-quick-group{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.modal-footer .btn-group-actions{flex-wrap:wrap}.crew-color-pick{border:1px solid var(--border);min-width:12rem;font-size:var(--t-body);background:#fff;border-radius:6px;padding:5px 8px}.crew-color-row{align-items:center}.text-panel{border:1px solid var(--border);background:var(--bg-hour-alt);border-radius:8px;margin:0 0 10px;overflow:hidden}.text-panel-head{border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.text-thread{flex-direction:column;gap:6px;max-height:14rem;padding:8px 10px;display:flex;overflow-y:auto}.text-bubble{max-width:82%;font-size:var(--t-body);border-radius:10px;flex-direction:column;padding:6px 9px;line-height:1.35;display:flex}.text-bubble.in{border:1px solid var(--border);background:#fff;border-bottom-left-radius:3px;align-self:flex-start}.text-bubble.out{background:var(--accent);color:#fff;border-bottom-right-radius:3px;align-self:flex-end}.text-bubble-body{white-space:pre-wrap;overflow-wrap:anywhere}.text-bubble-when{font-size:var(--t-small);opacity:.7;margin-top:3px}.text-compose{border-top:1px solid var(--border);background:#fff;padding:8px 10px}.text-compose textarea{resize:vertical;width:100%;font:inherit;border:1px solid var(--border);border-radius:6px;padding:6px 8px}.text-compose-row{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.texting-test{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.texting-test .row-inline{align-items:center;gap:8px;display:flex}.texting-test input{border:1px solid var(--border);font:inherit;border-radius:6px;padding:5px 8px}.texting-raw{font-size:var(--t-small);margin-top:8px}.texting-raw pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg-sidebar);font-size:var(--t-small);border-radius:6px;margin:6px 0 0;padding:8px}.contact-actions{margin:6px 0 10px}.contact-actions-row{flex-wrap:wrap;gap:8px;display:flex}.contact-action{border:1px solid var(--border);min-height:40px;color:var(--text);font-size:var(--t-body);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:7px;padding:0 14px;font-weight:600;text-decoration:none;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.contact-action:hover{border-color:var(--accent);color:var(--accent);background:#fff}.contact-action svg{flex:none}.contact-address{font-size:var(--t-body);color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:8px 0 0;display:flex}.contact-number{color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;-webkit-user-select:text;user-select:text}.contact-number-label{color:var(--text-secondary);font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;margin-right:5px}.contact-email-text{color:var(--text-primary);-webkit-user-select:text;user-select:text;overflow-wrap:anywhere}.contact-acting{margin:4px 0 0}.contact-actions-none{margin:6px 0 10px}.customer-sub{font-size:var(--t-body);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 0;display:flex}.customer-sub .pill{font-size:var(--t-small)}.customer-sub .quiet-note{margin:0}.customer-details-tab{flex-direction:column;gap:18px;display:flex}.customer-person-row .contact-star{min-width:28px;min-height:28px;font-size:var(--t-strong);cursor:pointer;color:var(--text-light);background:0 0;border:none;line-height:1}.customer-person-row .contact-star.on,.customer-person-row .contact-star:hover{color:#f59e0b}.drive-selftest{font-size:var(--t-small);margin:6px 0 0}.drive-selftest p{margin:2px 0}.ok-note,.warn-note{font-size:var(--t-body);border-left:3px solid;border-radius:6px;margin:6px 0;padding:7px 10px}.ok-note{color:#14532d;background:#f0fdf4;border-left-color:#16a34a}.warn-note{color:#78350f;background:#fffbeb;border-left-color:#d97706;font-weight:600}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:disabled{color:var(--text-light);cursor:default;text-decoration:none}.crew-phone{border:1px solid var(--border);width:11rem;font:inherit;font-size:var(--t-body);border-radius:6px;padding:5px 8px}.crew-color-row{gap:8px}.crew-login{align-items:center;gap:6px;display:flex}.crew-login-pick{border:1px solid var(--border);max-width:18rem;font:inherit;font-size:var(--t-body);border-radius:6px;padding:5px 8px}.crew-login .saved-note{font-size:var(--t-small);color:var(--success);font-weight:600;animation:3s forwards saved-fade}@keyframes saved-fade{0%,70%{opacity:1}to{opacity:0}}.troubleshoot-item{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:10px 0;display:flex}.troubleshoot-item:first-child{border-top:none}.troubleshoot-item>div{flex:1;min-width:0}.troubleshoot-item .quiet-note{margin:2px 0 0}.troubleshoot-item .btn{flex:none}.troubleshoot-json{white-space:pre-wrap;overflow-wrap:anywhere;max-height:16rem;font-size:var(--t-small);background:#fff;border-radius:6px;margin:6px 0 0;padding:8px;overflow:auto}.scheduled-texts h3{font-size:var(--t-body);margin:14px 0 4px}.scheduled-list{margin:0;padding:0;list-style:none}.scheduled-list li{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 0;display:flex}.scheduled-list li>div{flex:1;min-width:0}.scheduled-list .btn{flex:none}.scheduled-list.quiet li{color:var(--text-secondary)}.scheduled-text{font-size:var(--t-body);overflow-wrap:anywhere;margin:3px 0 0}.ticket-quick-note{font-size:var(--t-small);align-self:center;margin:0}.assoc-saved{font-size:var(--t-small);color:#16a34a;margin:4px 0 0;font-weight:600}.assoc-note-btn{font:inherit;cursor:pointer;text-align:left;border:none;border-bottom:1px dashed var(--border);background:0 0;padding:0}.assoc-note-btn:hover{color:var(--accent);border-bottom-color:var(--accent)}.assoc-note-btn em{color:var(--text-light)}.assoc-note-edit{font:inherit;font-size:var(--t-small);border:1px solid var(--accent);border-radius:5px;min-width:10rem;padding:2px 6px}.rail-group.pinned{border-bottom:1px solid #ffffff1f;margin-bottom:10px;padding-bottom:10px}.customer-matches{border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;margin-top:4px;display:flex;overflow:hidden}.customer-match{border:none;border-top:1px solid var(--border);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.customer-match:first-child{border-top:none}.customer-match:hover{background:var(--bg-hour-alt)}.customer-match-name{font-weight:600;font-size:var(--t-body)}.customer-match-where{font-size:var(--t-small);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.customer-linked{border:1px solid var(--border);background:var(--bg-hour-alt);font-size:var(--t-body);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.customer-linked .link-button{font-size:var(--t-small);margin-left:auto}.rail-menu{z-index:70;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card,#fff);width:36px;height:36px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;padding:0;display:none;position:fixed;top:8px;left:8px;box-shadow:0 1px 3px #0000002e}.rail-scrim{z-index:65;cursor:pointer;background:#00000073;border:none;padding:0;display:none;position:fixed;inset:0}@media (width<=900px){.rail-menu{display:inline-flex}.rail-scrim{display:block}.rail{z-index:68;width:232px;min-width:232px;transition:transform .18s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:2px 0 12px #00000059}.rail.open{transform:translate(0)}.rail-collapse{display:none}.main{padding-top:44px}}@media (prefers-reduced-motion:reduce){.rail{transition:none}}@media (width<=900px){.task-row,.tasks-headers{grid-template-columns:minmax(0,1fr) 9rem 6.5rem}.task-owner,.tasks-headers .col-owner,.task-details,.tasks-headers .col-details{display:none}}@media (width<=640px){.task-row,.tasks-headers{grid-template-columns:minmax(0,1fr) 4.5rem}.task-row .task-about,.tasks-headers .col-about{display:none}.task-due{white-space:nowrap}}.customer-edit-hint{font-size:var(--t-small);vertical-align:middle;margin-left:10px}.cleanup-page{flex:1;min-height:0;padding:20px 24px 48px;overflow-y:auto}.cleanup-page>*{max-width:900px}.cleanup-head h1{font-size:var(--t-title);color:var(--text);margin:0 0 4px}.cleanup-note{font-size:var(--t-body);color:var(--text-secondary);margin:0 0 16px}.cleanup-check h2{font-size:var(--t-strong);color:var(--text);margin:20px 0 4px}.cleanup-why{font-size:var(--t-body);color:var(--text-secondary);margin:0 0 4px;line-height:1.55}.cleanup-why code{font:12.5px var(--mono,ui-monospace, monospace)}.cleanup-count{font-size:var(--t-body);color:var(--text-secondary);margin:12px 0}.cleanup-clear{font-size:var(--t-body);border:1px solid var(--border);border-left:3px solid var(--success);border-radius:var(--radius);background:var(--bg-card);color:var(--text);margin:12px 0;padding:12px 14px}.cleanup-saved{font-size:var(--t-body);border-left:3px solid var(--success);background:var(--bg-card);color:var(--text);margin:0 0 12px;padding:8px 12px;font-weight:600}.cleanup-problem{font-size:var(--t-body);border-left:3px solid var(--danger);background:var(--bg-card);color:var(--text);margin:0 0 12px;padding:8px 12px;font-weight:600}.cleanup-list{gap:20px;margin:0;padding:0;list-style:none;display:grid}.cleanup-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow);padding:16px 18px}.cleanup-row-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:2px;padding-bottom:8px;display:flex}.cleanup-ref{font-weight:600;font-size:var(--t-body);color:var(--text-secondary)}.cleanup-title{font-size:var(--t-body);color:var(--text);font-weight:600}.cleanup-facts{font-size:var(--t-body);color:var(--text);flex-wrap:wrap;gap:6px 20px;margin:10px 0 0;display:flex}.cleanup-label{color:var(--text-secondary);margin-right:4px}.cleanup-actions{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.cleanup-suggests{font-size:var(--t-body);color:var(--text);margin:0 0 8px;line-height:1.5}.cleanup-weak{color:var(--text-secondary)}.cleanup-choices{flex-wrap:wrap;gap:6px;display:flex}.cleanup-pick{font:inherit;font-size:var(--t-body);cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);padding:6px 10px}.cleanup-pick:hover:not(:disabled){border-color:var(--accent)}.cleanup-pick:disabled{opacity:.5;cursor:default}.cleanup-pick.strong{border-color:var(--accent);font-weight:600}.cleanup-pick-title{color:var(--text-secondary)}.cleanup-dup-reason{font-size:var(--t-small);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:2px 8px;font-weight:600}.cleanup-dup-pair{grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;display:grid}.cleanup-dup-cust{min-width:0;font-size:var(--t-body);color:var(--text);overflow-wrap:anywhere;flex-direction:column;gap:4px;display:flex}.cleanup-dup-name{font:inherit;text-align:left;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}strong.cleanup-dup-name{color:var(--text);cursor:default}@media (width<=640px){.cleanup-dup-pair{grid-template-columns:1fr}.cleanup-dup-cust+.cleanup-dup-cust{border-top:1px dashed var(--border);padding-top:12px}}.cleanup-search{margin-top:10px}.cleanup-search input{font:inherit;font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);width:100%;max-width:380px;color:var(--text);padding:6px 10px}.cleanup-found{gap:4px;max-width:380px;margin:6px 0 0;padding:0;list-style:none;display:grid}.cleanup-found button{font:inherit;font-size:var(--t-body);text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);width:100%;color:var(--text);cursor:pointer;padding:6px 10px}.cleanup-found button:hover:not(:disabled){border-color:var(--accent)}.cleanup-new{gap:6px;max-width:420px;margin-top:10px;display:grid}.cleanup-new label{font-size:var(--t-body);color:var(--text-secondary)}.cleanup-new input{font:inherit;font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);padding:6px 10px}.cleanup-new-actions{gap:6px;display:flex}.cleanup-also{border-top:1px dashed var(--border);margin-top:12px;padding-top:10px}.cleanup-jobno{color:var(--text);font-weight:600}.cleanup-state{border:0;gap:4px;margin:2px 0 0;padding:0;display:grid}.cleanup-state legend{font-size:var(--t-body);color:var(--text-secondary);padding:0}.cleanup-state label{font-size:var(--t-body);color:var(--text);align-items:center;gap:6px;display:flex}.cleanup-add{margin-top:10px}.customer-add{justify-items:start;gap:4px;margin-top:8px;display:grid}.customers-add{font-size:var(--t-body);align-self:flex-start}.customer-add-form{padding:16px 18px}.notice{z-index:210;border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:var(--t-body);align-items:center;gap:12px;max-width:min(560px,100vw - 32px);padding:12px 16px;font-weight:600;display:flex;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}.notice-problem{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5}.notice button{color:inherit;font-size:var(--t-section);cursor:pointer;background:0 0;border:none;line-height:1}.changes-filters{flex-wrap:wrap;align-items:flex-start;gap:8px;margin:8px 0 12px;display:flex}.changes-filters select{border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px}.changes-filters .customer-search{flex:1;min-width:220px;position:relative}.changes-filters .customer-search input{border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:6px 10px}.changes-filter-chip{border:1px solid var(--border);font-size:var(--t-body);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.changes-filter-chip button{cursor:pointer;font-size:var(--t-strong);background:0 0;border:none;line-height:1}.customer-history-tab{padding:4px 0}.filter-select{font-size:var(--t-small);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;display:flex}.filter-select select{color:var(--text);background:var(--bg-card)}@media (width<=640px){.filter-select{flex-direction:column;flex:45%;align-items:stretch;gap:2px}.filter-select select{min-height:44px}}.add-button,.topbar .add-button{background:var(--primary);color:#fff;width:34px;height:34px;font-size:var(--t-title);cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-weight:500;line-height:1;display:inline-flex}.add-button:hover,.topbar .add-button:hover{background:var(--primary);filter:brightness(1.08)}.add-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width<=640px){.add-button,.topbar .add-button{width:44px;height:44px}}.btn-primary:disabled,.modal-save-top:disabled{opacity:.45;cursor:not-allowed;filter:none}.still-loading{text-align:center;font-size:var(--t-body);color:var(--text-secondary);padding:48px 16px}.still-loading-inline{text-align:left;font-size:var(--t-body);padding:10px 0}.topbar-quick{align-items:center;gap:6px;display:flex}.topbar .add-button-icon,.add-button-icon{font-size:0}.add-button-icon svg{display:block}.quick-add{width:min(460px,100vw - 32px)}.quick-add-body{padding:16px 20px 20px}.quick-add .task-add{flex-wrap:wrap}.update-banner{z-index:2000;left:50%;top:calc(env(safe-area-inset-top) + 8px);background:var(--fa-navy);color:#fff;width:max-content;max-width:calc(100vw - 32px);font-size:var(--t-strong);border-radius:14px;align-items:center;gap:12px;padding:10px 12px 10px 16px;font-weight:600;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #00000040}.update-banner .update-banner-reload{min-height:40px;color:var(--fa-navy);font:inherit;font-size:var(--t-strong);cursor:pointer;background:#fff;border:none;border-radius:10px;padding:0 16px;font-weight:800}.notice-saved{color:#065f46;background:#ecfdf5;border:1px solid #6ee7b7}.kind-choice{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px;display:grid}.kind-choice-ask{font-size:var(--t-strong);color:var(--text);grid-column:1/-1;margin:0;font-weight:600}.kind-card{text-align:left;cursor:pointer;border:1.5px solid var(--border);background:var(--bg-card);min-height:96px;color:var(--text);border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;display:flex}.kind-card svg{color:var(--accent);margin-bottom:4px}.kind-card:hover,.kind-card:focus-visible{border-color:var(--accent);background:#eff6ff;outline:none}.kind-card-name{font-size:var(--t-strong);font-weight:700}.kind-card-note{font-size:var(--t-body);color:var(--text-secondary)}@media (width<=480px){.kind-choice{grid-template-columns:1fr}}.home-date{font-size:var(--t-section);margin:0 0 10px;font-weight:700}.home-section{margin-top:22px;scroll-margin-top:16px}.home-subhead{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:10px 0 6px;font-weight:700}.home-quiet{text-align:left;margin:4px 0}.home-task-list{flex-direction:column;gap:6px;display:flex}.home-task{text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.home-task:hover{border-color:var(--accent)}.home-task-subject{font-size:var(--t-body)}.home-task-due{font-size:var(--t-small);color:var(--text-secondary);white-space:nowrap}.loading-bar{vertical-align:middle;background:linear-gradient(90deg, var(--bg-sidebar) 20%, var(--border) 50%, var(--bg-sidebar) 80%);background-size:300% 100%;border-radius:6px;width:2.2em;height:.8em;animation:1.3s ease-in-out infinite loading-shimmer;display:inline-block}@keyframes loading-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.loading-spin{vertical-align:-2px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite day-spin;display:inline-block}@media (prefers-reduced-motion:reduce){.loading-bar,.loading-spin{opacity:.55;animation:none}}.tickets-col-head .tickets-count{margin-left:auto}.tickets-col-collapse{cursor:pointer;color:var(--text-light);font-size:var(--t-strong);background:0 0;border:none;margin-left:6px;padding:0 2px;line-height:1}.tickets-col-collapse:hover{color:var(--accent)}.tickets-col-collapsed{cursor:pointer;font:inherit;color:var(--text);border:none;flex:0 0 2.6rem;align-items:center;gap:8px;padding:12px 0}.tickets-col-collapsed:hover{background:var(--row-hover)}.tickets-col-strip-label{writing-mode:vertical-rl;font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-weight:700}.tickets-card-line1{font-size:var(--t-small);color:var(--text);font-weight:600}.tickets-card-town{color:var(--text-secondary);font-weight:400}.tickets-card-next{font-size:var(--t-small);color:var(--text)}.tickets-card-next.none,.tickets-card-age.stale{color:#b45309;font-weight:600}.tickets-card-age{font-size:var(--t-small);color:var(--text-secondary)}.tickets-card-flags{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.tickets-flag{font-size:var(--t-small);background:var(--bg-sidebar);color:var(--text-secondary);border-radius:999px;padding:1px 6px;font-weight:600}.tickets-flag.warn{color:#92400e;background:#fef3c7}.ticket-history{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.main-row{flex:1;min-height:0;display:flex;overflow:hidden}.main-body{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.note-log-fields{flex-direction:column;gap:8px;margin:8px 0;display:flex}.note-log-row{flex-wrap:wrap;gap:12px;display:flex}.note-log-row label{font-size:var(--t-small);color:var(--text-secondary);flex-direction:column;gap:3px;display:flex}.note-log-row input,.note-log-row select{font-size:var(--t-body);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);padding:6px 8px}.customers-note-log{font-size:var(--t-small);color:var(--accent);text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px;font-weight:700;display:block}.global-search-add{font-size:var(--t-body);margin-top:6px;font-weight:600;display:block}.date-nav .date-display{text-align:left;margin-left:4px}.date-pick{display:inline-flex;position:relative}.date-pick>button{border:1px solid var(--border);background:var(--bg-card);border-radius:var(--radius);cursor:pointer;color:var(--text);align-items:center;padding:6px 10px;display:inline-flex}.date-pick>button:hover{background:var(--bg)}.date-pick-input{opacity:0;pointer-events:none;width:100%;position:absolute;inset:0}.new-ticket-photos{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.new-ticket-photo{border:1px solid var(--border);background:var(--bg);border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;position:relative;overflow:hidden}.new-ticket-photo img{object-fit:cover;width:100%;height:100%}.new-ticket-photo-name{font-size:var(--t-small);text-overflow:ellipsis;white-space:nowrap;max-width:38px;padding:2px;overflow:hidden}.new-ticket-photo button{color:#fff;width:16px;height:16px;line-height:14px;font-size:var(--t-small);cursor:pointer;background:#0009;border:none;border-radius:0 0 0 6px;padding:0;position:absolute;top:0;right:0}.home-section-toggle{cursor:pointer;color:inherit;font:inherit;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}.home-section-toggle h2{margin:0}.home-section-caret{font-size:var(--t-small);color:var(--text-light);width:12px}.customer-edit-grid .address-heading{font-size:var(--t-small);grid-column:1/-1;margin:10px 0 0;font-weight:600}.customer-edit-grid .address-separate{flex-direction:row;grid-column:1/-1;align-items:center;gap:8px;display:flex}.customer-edit-grid .address-separate input{width:auto}.global-search-history{font-size:var(--t-small);order:99;margin:4px 9px 6px;display:block}.search-history{max-width:720px}.search-history-day{font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;color:var(--text-light);margin:16px 0 6px}.search-history-row{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;font:inherit;background:0 0;align-items:center;gap:10px;padding:8px 10px;display:flex}.search-history-row:hover{background:var(--bg-sidebar)}.search-history-name{flex:1}.search-history-kind,.search-history-time{color:var(--text-light);font-size:var(--t-small)}.email-compose{width:100%;max-width:640px}.email-field{font-size:var(--t-body);grid-template-columns:70px 1fr;align-items:center;gap:8px;margin-bottom:8px;display:grid}.email-field span{color:var(--text-secondary)}.email-body{width:100%;font:inherit;border:1px solid var(--border);box-sizing:border-box;border-radius:6px;margin-top:6px;padding:8px}.email-signature-preview{border:1px dashed var(--border);background:#fff;border-radius:6px;margin-top:10px;padding:10px}.email-settings .ok-note,.email-settings .warn-note{margin-bottom:12px}.email-signature-editor h3{margin:12px 0 2px}.email-choices{font-size:var(--t-small);color:var(--text-secondary);flex-wrap:wrap;gap:4px 10px;margin:-2px 0 8px 78px;display:flex}.customer-nomatch{flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:6px;display:flex}.customer-nomatch-actions{gap:12px;display:inline-flex}.no-customer-ask{flex-direction:column;gap:6px;width:100%;margin-bottom:8px;display:flex}.no-customer-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.home-no-customer{margin:12px 0}.home-no-customer-list{flex-wrap:wrap;gap:4px 14px;margin-top:6px;display:flex}.task-add-full{flex-direction:column;align-items:stretch;gap:8px;display:flex}.task-add-full>input,.task-add-full textarea{box-sizing:border-box;width:100%}.task-add.task-add-full>input{flex:none}.task-add-full textarea,.task-add-full select{font:inherit}.task-add-photos{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-add-row{flex-wrap:wrap;gap:12px;display:flex}.task-add-row label{font-size:var(--t-small);color:var(--text-secondary);flex-direction:column;gap:2px;display:flex}.task-add-customer{font-size:var(--t-body);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-add-label{font-size:var(--t-small);color:var(--text-secondary)}.task-add-chip{align-items:center;gap:8px;font-weight:600;display:inline-flex}.task-add-ticket{font-size:var(--t-small);color:var(--text-secondary)}.task-add-actions{align-items:center;gap:12px;display:flex}.save-split{display:inline-flex;position:relative}.save-split>.btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.save-split-arrow{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:1px;padding:0 10px}.save-split-menu{z-index:20;border:1px solid var(--border);box-shadow:var(--shadow-lg);background:#fff;border-radius:8px;flex-direction:column;min-width:230px;padding:4px;display:flex;position:absolute;bottom:calc(100% + 6px);right:0}.save-split-menu button{text-align:left;cursor:pointer;font:inherit;color:var(--text);background:0 0;border:none;border-radius:6px;padding:8px 10px}.save-split-menu button:hover{background:var(--bg-sidebar)}.open-tasks{border:1px solid var(--border);background:var(--bg);border-radius:8px;margin:14px 0;padding:10px 12px}.open-tasks-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.open-tasks-none{text-align:left;margin:0}.open-task{font-size:var(--t-body);cursor:pointer;align-items:center;gap:8px;padding:4px 0;display:flex}.open-task-subject{flex:1}.open-task-due,.open-task-owner{font-size:var(--t-small);color:var(--text-secondary)}.phone-head,.phone-bar{display:none}.add-button-icon{position:relative}.add-plus{background:var(--bg-card);width:15px;height:15px;color:var(--accent);border:1.5px solid var(--accent);font-size:var(--t-body);text-align:center;border-radius:50%;font-weight:700;line-height:11px;position:absolute;bottom:-2px;right:-2px}@media (width<=900px){.phone-head{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.topbar .phone-menu{border:1px solid var(--border);background:var(--bg-card);width:40px;height:40px;color:var(--text);border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.phone-logo{border-radius:8px;flex:none}.topbar .phone-logo-home{background:0 0;border:none;flex:none;align-items:center;min-height:40px;padding:0;display:inline-flex}.phone-hello{flex-direction:column;min-width:0;line-height:1.2;display:flex}.phone-hello strong{font-size:var(--t-strong)}.phone-hello span{font-size:var(--t-small);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar h1,.topbar-quick,.rail-menu{display:none}.main{padding-top:0;padding-bottom:calc(68px + env(safe-area-inset-bottom))}.topbar{gap:6px 8px;padding:10px}.topbar-right{gap:6px}.phone-head{gap:8px}.topbar-left{flex:100%;order:3}.topbar-left .global-search{flex:1}.phone-bar{z-index:60;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:var(--bg-card);border-top:1px solid var(--border);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -1px 4px #0000000f}.phone-bar-item{min-width:56px;min-height:44px;color:var(--text-secondary);font:inherit;font-size:var(--t-small);background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;padding:2px 4px;display:flex}.phone-bar-item.on{color:var(--accent);font-weight:700}.phone-bar-plus{background:var(--primary);color:#fff;width:48px;height:48px;font-size:var(--t-big);border:none;border-radius:50%;justify-content:center;align-items:center;font-weight:400;line-height:1;display:inline-flex}.phone-sheet-wrap{z-index:80;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.phone-sheet-scrim{background:#0006;border:none;padding:0;position:absolute;inset:0}.phone-sheet{background:var(--bg-card);padding:8px 12px calc(12px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;flex-direction:column;display:flex;position:relative}.phone-sheet-item{border:none;border-bottom:1px solid var(--border);min-height:52px;font:inherit;font-size:var(--t-strong);color:var(--text);text-align:left;background:0 0;align-items:center;gap:14px;padding:0 8px;display:flex}.phone-sheet-cancel{border:1px solid var(--border);background:var(--bg-card);min-height:48px;font:inherit;font-size:var(--t-strong);border-radius:10px;margin-top:8px}}.phone-search,.phone-search-done{display:none}@media (width<=900px){.topbar .phone-search{border:1px solid var(--border);background:var(--bg-card);width:34px;height:34px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.topbar.phone-searching .phone-head,.topbar.phone-searching .phone-search,.topbar.phone-searching .bell,.topbar.phone-searching .account-menu{display:none}.topbar.phone-searching .topbar-left{flex:auto;order:0}.topbar.phone-searching .global-search{flex:1;min-width:0;margin-left:0;display:block}.topbar.phone-searching .global-search input{width:100%;min-height:40px;font-size:var(--t-strong)}.topbar.phone-searching .phone-search-done{min-height:40px;color:var(--accent);font:inherit;font-size:var(--t-strong);background:0 0;border:none;align-items:center;padding:0 4px;display:inline-flex}}.mobile-date-nav{flex-wrap:nowrap;gap:8px}.mobile-date-nav .mobile-date{white-space:nowrap}.mobile-date-pick{cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex;position:relative}.mobile-date-pick:hover{background:var(--bg-sidebar)}.mobile-date-pick input[type=date]{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.mobile-date-nav .mobile-today{color:var(--accent);border-color:var(--accent);font-size:var(--t-body);font-weight:600}@media (width<=900px){.home-date{display:none}}.home .mobile-header{top:-20px}.mobile-repeat-rule{font-size:var(--t-body);color:var(--text-secondary);flex:100%}.repeat-until{flex-direction:column;gap:6px;margin-top:8px;display:flex}.repeat-until input[type=date]{margin-left:6px}.connections-add{align-items:stretch}.connections-add .customer-search,.connections-add .customer-search input{box-sizing:border-box;width:100%;max-width:32rem}.connections-add .customer-search input{min-height:38px;font-size:var(--t-body);padding:6px 10px}.form-group .repeat-until .standby-check{color:var(--text);flex-direction:row;align-items:center;gap:8px;margin:0;font-weight:500;display:flex}.form-group .repeat-until input[type=radio]{flex:none;width:auto;margin:0;padding:0}.form-group .repeat-until input[type=date]{width:auto;margin-left:4px;padding:5px 8px}.split-button{display:inline-flex}.split-button .split-main{border-top-right-radius:0;border-bottom-right-radius:0}.split-button .split-arrow{border-left:1px solid #ffffff73;border-top-left-radius:0;border-bottom-left-radius:0;min-width:40px;padding:0 12px}.split-menu{border:1px solid var(--border);background:var(--bg-card);border-radius:8px;flex-direction:column;flex:100%;display:flex}.split-menu button{text-align:left;min-height:44px;font:inherit;font-size:var(--t-strong);color:var(--text);background:0 0;border:none;padding:0 12px}.mobile-job-open-hint{font-size:var(--t-title);color:var(--text-light);margin-left:auto;line-height:1}.mobile-visit-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mobile-visit-actions .split-button{flex:auto;display:flex}.mobile-visit-actions .split-main{flex:auto}.split-button .split-arrow{flex:0 0 40px;width:40px;padding:0}@media (width<=900px){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:var(--t-strong)!important}}.notice-info{color:#92400e;background:#fffbeb;border:1px solid #fcd34d}.tech-label.tech-off .tech-name{color:var(--text-light)}.tech-off-note{font-size:var(--t-small);color:var(--text-secondary);font-weight:600;display:block}.grid-cell.tech-off-cell{background:repeating-linear-gradient(135deg, var(--bg-sidebar) 0 6px, transparent 6px 12px)}.time-off-rules{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.time-off-rules label{font-size:var(--t-body);color:var(--text-secondary);flex-direction:column;gap:4px;display:flex}.time-off-rules input{border:1px solid var(--border);border-radius:6px;width:7rem;padding:6px 8px}.mobile-off{background:var(--bg-sidebar);text-align:center;color:var(--text-secondary);border-radius:10px;margin:12px 16px;padding:14px;font-weight:700}.time-off-log{margin-top:18px}.time-off-log h3{font-size:var(--t-body);margin:0 0 6px}.time-off-totals{font-size:var(--t-body);color:var(--text-secondary);margin:0 0 8px}.time-off-table{border-collapse:collapse;width:100%;font-size:var(--t-body)}.time-off-table th{text-align:left;font-size:var(--t-small);text-transform:uppercase;letter-spacing:.04em;color:var(--text-light);border-bottom:1px solid var(--border);padding:6px 8px}.time-off-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:8px}.time-off-table tr.req-pending td:nth-child(4){color:#92400e;font-weight:600}@media (width<=640px){.time-off-table thead{display:none}.time-off-table tr{border-bottom:1px solid var(--border);padding:8px 0;display:block}.time-off-table td{border:none;padding:1px 0;display:block}}.myday-request-remove,.req-remove{font-size:var(--t-body);margin-left:auto}body.board-dragging .sidebar{outline:2px dashed var(--accent);outline-offset:-4px;position:relative}body.board-dragging .sidebar:after{content:"Drop here to unschedule";color:var(--accent);font-weight:700;font-size:var(--t-strong);pointer-events:none;z-index:5;background:#fffc;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.file-drop-active{outline:2px dashed var(--accent);outline-offset:-4px}.attachments{position:relative}.attachments-dropping{outline:2px dashed var(--accent);outline-offset:4px;border-radius:8px}.attachments-drop-hint{z-index:2;background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent);pointer-events:none;border-radius:8px;justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}@media (pointer:coarse){:root{--text-secondary:#475569;--text-light:#64748b}.btn,.btn-icon,.link-button,.mobile-btn,select,input:not([type=checkbox]):not([type=radio]){min-height:44px}.modal-close{min-width:44px;min-height:44px}}@media (width<=900px){.main:before{content:"";height:env(safe-area-inset-top);background:var(--bg-card);flex:none;display:block}.mobile-view{min-height:100dvh}}.mobile-date-nav button{min-width:44px;min-height:44px;font-size:var(--t-section);padding:0 12px}.mobile-date{font-size:var(--t-section)}.mobile-job-card.opens{cursor:pointer}.mobile-job-card.opens:active{transform:scale(.995)}.mobile-job-card.is-current{box-shadow:0 0 0 2px var(--accent), var(--shadow)}.mobile-job-top{gap:8px}.mobile-job-time{font-size:var(--t-strong);color:var(--text)}.mobile-job-status{font-size:var(--t-small);margin-left:auto}.mobile-now-tag{font-size:var(--t-small);color:#fff;background:var(--accent);text-transform:uppercase;letter-spacing:.04em;border-radius:10px;padding:2px 8px;font-weight:800}.mobile-now-tag.tag-now{background:var(--warning)}.mobile-job-title{font-size:var(--t-section);align-items:baseline;gap:6px;margin:2px 0;line-height:1.3;display:flex}.mobile-job-title .mobile-job-open-hint{font-size:var(--t-title);color:var(--text-light);margin-left:auto}.mobile-job-type{font-size:var(--t-body);margin-bottom:8px}.mobile-card-customer{font-size:var(--t-strong);font-weight:700}.mobile-card-address{font-size:var(--t-strong);color:var(--text-secondary);margin-top:2px}.mobile-card-note{font-size:var(--t-strong);color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:8px 0 0;line-height:1.4;display:-webkit-box;overflow:hidden}.mobile-card-crew{font-size:var(--t-body);color:var(--text-secondary);flex-wrap:wrap;gap:4px 12px;margin-top:8px;display:flex}.mobile-card-quick{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.mobile-quick-btn{border:1px solid var(--border);background:var(--bg-card);min-height:48px;color:var(--accent);font-weight:700;font-size:var(--t-strong);border-radius:10px;justify-content:center;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.mobile-quick-btn:active{background:var(--bg-sidebar)}.mobile-job-actions{margin-top:10px;padding-top:10px}.mobile-btn{min-height:48px;font-size:var(--t-strong);border-radius:10px}.split-button .split-arrow{flex:0 0 48px;width:48px}.split-menu button{min-height:48px;font-size:var(--t-strong)}.mobile-travel-gap{font-size:var(--t-body);color:var(--text-secondary);padding:3px 12px}@media (width<=600px){.modal-overlay{align-items:stretch}.modal.modal-framed{width:100%;max-width:none;height:100dvh;max-height:100dvh;padding-top:env(safe-area-inset-top);border-radius:0}.modal.modal-framed>.modal-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.modal.modal-framed>.modal-header h2{font-size:var(--t-section)}}@media (width>=601px){.mobile-view{max-width:none}.mobile-jobs{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start;gap:12px;display:grid}.mobile-jobs>.mobile-off,.mobile-jobs>.mobile-empty{grid-column:1/-1}.mobile-jobs .mobile-travel{display:none}}@media (width>=601px) and (width<=1199px) and (pointer:coarse){.modal.modal-framed{width:min(760px,94vw);max-height:94dvh}}.modal-ticket-ref,.ticket-ref{white-space:nowrap}@media (width<=900px){.topbar.phone-searching .phone-head,.topbar.phone-searching .bell,.topbar.phone-searching .account-menu{display:revert}.topbar.phone-searching .phone-head{display:flex}.topbar.phone-searching .topbar-left{order:revert;flex:revert}.topbar.phone-searching .global-search{z-index:120;left:12px;right:84px;bottom:max(calc(76px + env(safe-area-inset-bottom)), calc(var(--kb,0px) + 10px));margin:0;position:fixed}.topbar.phone-searching .global-search input{border-radius:12px;min-height:48px;box-shadow:0 6px 24px #0f172a2e}.topbar.phone-searching .phone-search-done{z-index:120;min-height:48px;right:8px;bottom:max(calc(76px + env(safe-area-inset-bottom)), calc(var(--kb,0px) + 10px));background:var(--bg-card);border-radius:12px;padding:0 10px;position:fixed;box-shadow:0 6px 24px #0f172a2e}.topbar.phone-searching .global-search-results{max-height:calc(100dvh - var(--kb,0px) - 220px);inset:auto -72px calc(100% + 8px) 0}}.tickets-customer .job-number{color:var(--text-secondary);margin-left:8px;font-weight:500}@media (width<=900px){.page-search{display:none!important}}.assoc-customer .assoc-who{font-weight:700}.assoc-role{font-size:var(--t-small);color:var(--accent);white-space:nowrap;margin-left:auto;font-weight:700}.assoc-phone{white-space:nowrap}.assoc-parent{font-size:var(--t-body);color:var(--text-secondary);align-items:center;gap:6px;margin:4px 0 8px;display:flex}.ticket-tap{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:flex-start;gap:10px;min-height:44px;margin:0 -8px;padding:6px 8px;display:flex}.ticket-tap:hover,.ticket-tap:active{background:var(--bg-sidebar)}.ticket-tap-body{flex:auto;min-width:0}.ticket-tap-body>p{margin:0}.ticket-tap-pen{color:var(--text-light);font-size:var(--t-strong);flex:none;line-height:1.4}.ticket-tap:hover .ticket-tap-pen{color:var(--accent)}@media (width<=900px){.topbar .phone-search{display:none}}.ticket-field{flex-direction:column;gap:3px;display:flex}.ticket-field-label{font-size:var(--t-small);color:var(--text-secondary);align-items:center;gap:6px;font-weight:600;display:inline-flex}.ticket-field-label svg{color:var(--text-light)}.ticket-field-value{font-size:var(--t-strong);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.ticket-field-value.empty{color:var(--text-light);font-style:italic}.ticket-fields-pair{grid-template-columns:1fr 1fr;gap:4px 16px;display:grid}.ticket-fields-rule{background:var(--border);height:1px;margin:6px 0}.ticket-tap{padding:8px}.ticket-inline{border:1px solid var(--accent);background:var(--bg-card);border-radius:10px;flex-direction:column;gap:8px;margin:4px -8px;padding:10px;display:flex}.ticket-inline textarea,.ticket-inline input,.ticket-inline select{box-sizing:border-box;width:100%;font:inherit;font-size:var(--t-strong);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.ticket-inline-grid{gap:8px;display:grid}.ticket-inline-grid label{font-size:var(--t-small);color:var(--text-secondary);flex-direction:column;gap:4px;display:flex}.ticket-inline-chips{flex-wrap:wrap;align-items:flex-start;gap:6px;display:flex}.ticket-inline-actions{gap:8px;display:flex}.ticket-inline-actions .btn{flex:1 1 0;min-height:44px}.ticket-meta{border-bottom:none;margin:0;padding-bottom:0}.modal-title-stack{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.modal-title-stack .modal-ticket-ref{font-size:var(--t-small);color:var(--text-secondary);letter-spacing:.02em;margin:0;font-weight:700}.modal-title-stack h2{margin:0;line-height:1.25}.modal-stage-chip{border:1px solid var(--border);background:var(--bg-sidebar);font:inherit;font-size:var(--t-small);color:var(--text-secondary);cursor:pointer;border-radius:999px;align-self:flex-start;align-items:center;gap:5px;min-height:28px;margin-top:4px;padding:3px 10px;font-weight:600;display:inline-flex}.customer-card{border:1px solid var(--border);background:var(--bg-card);border-radius:12px;flex-direction:column;gap:10px;margin:0 16px 8px;padding:12px;display:flex}.customer-card-name{font-size:var(--t-section);align-items:center;gap:8px;font-weight:700;display:flex}.customer-card-name svg{color:var(--text-light)}.customer-card-open{font:inherit;color:var(--accent);cursor:pointer;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;padding:0}.customer-card-open:hover{text-decoration:underline}.customer-kind{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-self:center;align-items:center;display:inline-flex}.customer-card-company{font-size:var(--t-body);color:var(--text-secondary);align-items:center;gap:6px;margin:-2px 0 6px 24px;display:flex}.customer-card-company svg{color:var(--text-light);flex:none}.customer-card-company .customer-card-open{font-weight:600}.customer-card-actions{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;display:grid}.customer-card-btn{border:1px solid var(--border);background:var(--bg-card);min-height:56px;color:var(--accent);font:inherit;font-size:var(--t-body);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-weight:700;display:flex}.customer-card-btn.on{background:var(--primary);color:#fff;border-color:var(--primary)}.customer-card-panel{background:var(--bg-sidebar);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.customer-card-panel .btn{justify-content:center;align-items:center;gap:6px;min-height:44px;text-decoration:none;display:inline-flex}.customer-card-address{font-size:var(--t-strong);-webkit-user-select:all;user-select:all;margin:0;font-weight:600}.customer-card-number{align-items:center;gap:10px;display:flex}.customer-card-number-label{font-size:var(--t-small);color:var(--text-secondary);min-width:3.5rem}.customer-card-number-value{font-size:var(--t-section);-webkit-user-select:all;user-select:all;flex:auto;font-weight:700}.customer-card-email{font-size:var(--t-strong);overflow-wrap:anywhere;min-width:0}.ticket-top{grid-template-columns:1fr;gap:8px;margin:0 16px 8px;display:grid}.ticket-top .customer-card{margin:0}@media (width>=601px){.modal.modal-ticket{width:min(760px,94vw)}}.ticket-end .ticket-fields-pair{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr))}.ticket-end{margin-top:8px}.modal-body>.ticket-top{margin:0 0 12px}.customers-back{display:none}@media (width<=700px){.customers-page{display:block}.customers-page .customers-list{border-right:none;width:auto;max-height:none}.customers-page.has-picked .customers-list,.customers-page:not(.has-picked) .customers-detail{display:none}.customers-back{min-height:44px;color:var(--accent);font:inherit;font-size:var(--t-strong);cursor:pointer;background:0 0;border:none;align-items:center;margin-bottom:6px;padding:0 4px;font-weight:600;display:inline-flex}}.customer-quick-wrap{flex-direction:column;align-items:flex-end;gap:8px;margin-left:auto;display:flex}.customer-quick{gap:10px;display:flex}.customer-quick-btn{background:var(--primary);color:#fff;width:58px;height:58px;font:inherit;font-size:var(--t-small);cursor:pointer;border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-weight:700;text-decoration:none;display:flex}.customer-quick-btn.on{background:#1d4ed8}.customer-quick-panel{align-self:stretch;min-width:16rem}.customer-lines{font-size:var(--t-strong);flex-direction:column;gap:4px;margin:6px 0 10px;display:flex}.customer-line{color:var(--text)}.customer-adds{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.customer-add-btn{border:1px solid var(--border);background:var(--bg-card);min-height:52px;color:var(--text);font:inherit;font-size:var(--t-body);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-weight:700;display:flex}@media (width<=700px){.customer-head{flex-wrap:wrap}.customer-quick-wrap{align-items:stretch;width:100%;margin-left:0}.customer-quick{justify-content:flex-start}.customers-page{-webkit-overflow-scrolling:touch;overflow-y:auto}.customers-page .customers-detail,.customers-page .customers-list{height:auto;overflow:visible}}.customer-quick-btn{border-radius:14px;width:72px;height:58px}.phone-sheet-title{font-size:var(--t-body);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;padding:4px 6px 8px;font-weight:700;overflow:hidden}.phone-sheet-grid{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;padding:0 2px 4px;display:grid}.phone-sheet-tile{border:1px solid var(--border);background:var(--bg-card);min-height:68px;color:var(--accent);font:inherit;font-size:var(--t-body);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-weight:700;display:flex}.phone-sheet-rule{background:var(--border);height:1px;margin:8px 0}@media (width<=900px){.phone-bar{z-index:130}.phone-sheet-wrap{z-index:140}}@media (width<=600px){.modal-overlay:has(.modal-ticket){bottom:calc(64px + env(safe-area-inset-bottom))}.modal.modal-framed.modal-ticket{height:100%;max-height:100%}.modal-ticket .ticket-quick{display:none}}@media (width<=900px){.customer-adds{display:none}}.customer-event-order{display:none}@media (width<=700px){.customer-event-headers,.customer-work-headers{display:none}.customer-event-order{border:1px solid var(--border);background:var(--bg-card);min-height:40px;font:inherit;font-size:var(--t-body);color:var(--text-secondary);cursor:pointer;border-radius:999px;align-items:center;margin:0 0 6px;padding:0 12px;font-weight:600;display:inline-flex}}:root{--fa-navy:#1f3c73;--primary:var(--fa-navy);--t-small:.75rem;--t-body:.875rem;--t-strong:1rem;--t-section:1.125rem;--t-title:1.375rem;--t-big:1.75rem;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r-small:6px;--r:10px;--r-round:999px;--sh-card:0 1px 3px #0f172a1a;--sh-raised:0 8px 24px #0f172a2e}.phone-sheet-tile{color:var(--text);min-height:64px}.phone-sheet-tile-icon{display:inline-flex;position:relative}.phone-sheet-tile-plus{background:var(--fa-navy);color:#fff;width:17px;height:17px;font-size:var(--t-body);text-align:center;box-shadow:0 0 0 2px var(--bg-card);border-radius:50%;font-weight:800;line-height:17px;position:absolute;bottom:-6px;right:-9px}.attachments-select{font-size:var(--t-body);margin-left:8px}.attachments-selectbar{background:var(--bg-sidebar);font-size:var(--t-body);border-radius:10px;align-items:center;gap:12px;margin:6px 0 10px;padding:8px 10px;display:flex}.attachments-selectbar .btn{min-height:40px;margin-left:auto}.attachment{position:relative}.attachment.selecting a{cursor:pointer}.attachment.chosen{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.attachment-check{z-index:2;width:22px;height:22px;position:absolute;top:6px;left:6px}.move-files{width:min(520px,94vw)}.move-files-list{flex-direction:column;max-height:50dvh;margin-top:8px;display:flex;overflow-y:auto}.move-files-row{border:none;border-bottom:1px solid var(--border);text-align:left;min-height:48px;font:inherit;cursor:pointer;background:0 0;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:6px 8px;display:grid}.move-files-row:hover{background:var(--bg-sidebar)}.move-files-row svg{color:var(--text-light);grid-row:1/span 2}.move-files-label{font-weight:600}.move-files-sub{font-size:var(--t-small);color:var(--text-secondary)}.customer-open-chips{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin:0 0 12px;display:grid}.customer-open-chip{border:1px solid var(--border);background:var(--bg-card);min-height:52px;font:inherit;font-size:var(--t-body);color:var(--text);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:flex}.customer-open-chip svg{color:var(--text-light)}.customer-open-chip strong{font-size:var(--t-title);margin-left:auto}.customer-open-tickets{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:10px;margin:12px 0;padding:12px 16px;scroll-margin-top:12px}#cust-open-tasks{scroll-margin-top:12px}.customer-open-ticket{border:none;border-top:1px solid var(--border);text-align:left;width:100%;min-height:52px;font:inherit;cursor:pointer;background:0 0;grid-template-columns:auto 1fr auto;grid-template-areas:"ref what go""ref stage go""ref when go";align-items:center;column-gap:10px;padding:8px 0;display:grid}.customer-open-ticket:first-of-type{border-top:none}.customer-open-ticket-ref{color:var(--text-secondary);white-space:nowrap;grid-area:ref;font-weight:700}.customer-open-ticket-what{grid-area:what;font-weight:600}.customer-open-ticket-stage{font-size:var(--t-small);color:var(--text-secondary);grid-area:stage}.customer-open-ticket-when{font-size:var(--t-small);color:var(--text-secondary);grid-area:when}.customer-open-ticket-go{font-size:var(--t-title);color:var(--text-light);grid-area:go}.control-bar-open,.control-bar-sheet-head,.control-bar-summary,.control-bar-scrim,.add-button-label{display:none}@media (width<=900px){.control-bar:not(.is-open){display:none}.control-bar.is-open{left:0;right:0;bottom:calc(68px + env(safe-area-inset-bottom));z-index:75;background:var(--bg-card);border-radius:16px 16px 0 0;flex-flow:column;align-items:stretch;gap:14px;max-height:calc(80dvh - 68px);margin:0;padding:16px;display:flex;position:fixed;overflow-y:auto;box-shadow:0 -8px 30px #0000002e}.control-bar.is-open .control-bar-sheet-head{font-size:var(--t-section);justify-content:space-between;align-items:center;display:flex}.control-bar.is-open .control-bar-end{justify-content:flex-start;gap:12px;margin-left:0}.control-bar.is-open .filter-select{width:100%}.control-bar.is-open select{width:100%;min-height:48px;font-size:var(--t-strong)}.control-bar-scrim{z-index:74;background:#00000059;border:none;padding:0;display:block;position:fixed;inset:0}.control-bar-open{right:16px;bottom:calc(68px + 12px + env(safe-area-inset-bottom));z-index:55;background:var(--bg-card);min-height:48px;color:var(--text);border:1px solid var(--border);font:inherit;font-size:var(--t-strong);cursor:pointer;border-radius:24px;align-items:center;gap:8px;padding:0 18px;font-weight:600;display:inline-flex;position:fixed;box-shadow:0 4px 14px #00000026}body:has(.topbar.phone-searching) .control-bar-open{display:none}.control-bar-summary{font-size:var(--t-body);color:var(--text-secondary);padding:2px 0 8px;display:block}.control-bar-summary~.tickets-summary{display:none}.main:has(.control-bar-open){padding-bottom:calc(68px + 72px + env(safe-area-inset-bottom))}.control-bar.is-open .add-button{border-radius:24px;align-self:flex-start;align-items:center;gap:8px;width:auto;min-height:48px;padding:0 18px;display:inline-flex}.control-bar.is-open .add-button-label{font-size:var(--t-strong);font-weight:600;display:inline}.control-bar.is-open .owner-filter-button{width:100%;min-height:48px;font-size:var(--t-strong);justify-content:space-between;padding:0 14px}.control-bar.is-open .owner-menu{width:100%;max-height:none;margin-top:8px;position:relative;top:auto;left:auto}.control-bar.is-open .owner-menu-row,.control-bar.is-open .owner-menu-all{min-height:44px;font-size:var(--t-strong)}.control-bar.is-open .menu-backdrop{display:none}}.segmented.tabs-strip{border-bottom:1px solid var(--border);background:0 0;border-radius:0;gap:2px;padding:0}.segmented.tabs-strip button{box-shadow:none;color:var(--text);font-weight:500;font-size:var(--t-body);background:0 0;border-bottom:3px solid #0000;border-radius:0;margin-bottom:-1px;padding:10px 12px}.segmented.tabs-strip button:hover{color:var(--fa-navy);border-bottom-color:var(--border)}.segmented.tabs-strip button.active{box-shadow:none;color:var(--fa-navy);border-bottom-color:var(--fa-navy);background:0 0;font-weight:700}@media (width<=900px){.segmented.tabs-strip{padding-right:28px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000)}.segmented.tabs-strip button{font-size:var(--t-strong)}.segmented.tabs-strip{scrollbar-width:none}.segmented.tabs-strip::-webkit-scrollbar{display:none}}.add-button.add-button-quiet{width:44px;height:44px;color:var(--fa-navy);border:1px solid var(--border);background:0 0;border-radius:12px}.add-button.add-button-quiet:hover{background:var(--bg-sidebar);filter:none}.add-button.add-button-quiet svg{width:22px;height:22px}.add-button.add-button-quiet .add-plus{background:var(--fa-navy);color:#fff;width:15px;height:15px;font-size:var(--t-body);box-shadow:0 0 0 2px var(--bg-card);border:none;font-weight:800;line-height:15px;bottom:4px;right:4px}.customer-line-link{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.customer-line-link:hover,.customer-line-link:focus-visible{color:var(--fa-navy);text-decoration:underline}@media (pointer:coarse){.customer-line-link{text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px}}.section-toggle[aria-expanded=true] svg:first-child{transform:rotate(90deg)}.open-tasks-head .section-toggle{min-height:44px;font:inherit}.segmented.tabs-strip button:focus:not(:focus-visible){outline:none}.section-toggle svg+svg{color:var(--fa-navy);transform:none}.ticket-summary-line{flex-wrap:wrap;align-items:center;gap:6px 14px;margin:4px 0 8px;display:flex}.ticket-schedule-text{font-size:var(--t-strong);color:var(--text);align-items:center;gap:8px;font-weight:600;display:inline-flex}.ticket-schedule-text.empty{color:var(--text-secondary);font-weight:500}.ticket-schedule-text svg{color:var(--fa-navy);flex:none}.ticket-crew-bubbles{align-items:center;gap:4px;display:inline-flex}.ticket-crew-bubble{color:#fff;width:30px;height:30px;font-size:var(--t-small);letter-spacing:.02em;border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:inline-flex;position:relative}.ticket-crew-lead{font-size:var(--t-small);color:var(--fa-navy);background:var(--bg-card);border-radius:50%;padding:1px;line-height:1;position:absolute;top:-5px;right:-4px}.ticket-equipment h3,.attachments-head h3,.assoc-head h3{align-items:center;gap:8px;display:inline-flex}.ticket-equipment h3 svg,.attachments-head h3 svg,.assoc-head h3 svg{color:var(--fa-navy);flex:none}.ticket-notes-empty{justify-content:space-between;align-items:center;margin:4px 0;display:flex}.ticket-summary-line{flex-wrap:nowrap;justify-content:space-between}.ticket-summary-line .ticket-tap{flex:0 auto;width:auto;min-width:0}.ticket-summary-line .ticket-tap-pen{display:none}.ticket-summary-line .ticket-schedule-text{white-space:nowrap}.modal-header .ticket-inline{margin-top:8px}.modal-header:has(.ticket-inline){align-items:flex-start}.details-card{border:1px solid var(--border);background:var(--bg-card);border-radius:12px;margin-top:8px;padding:12px 14px}.details-card-head{font-size:var(--t-strong);justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.details-row{border-top:1px solid var(--border);grid-template-columns:1fr auto;grid-template-areas:"label copy""value copy";align-items:center;column-gap:12px;padding:10px 0;display:grid}.details-row:first-of-type{border-top:none}.details-label{font-size:var(--t-body);color:var(--text-secondary);grid-area:label}.details-value{font-size:var(--t-strong);color:var(--text);-webkit-user-select:text;user-select:text;overflow-wrap:anywhere;grid-area:value}.details-row .copy-button{grid-area:copy;align-items:center;gap:6px;min-height:44px;display:inline-flex}.copy-button{align-items:center;gap:6px;display:inline-flex}.equip-add-icon{margin-top:10px}.customer-section-head>.add-button-quiet,.open-tasks-head>.add-button-quiet,.assoc-head>.add-button-quiet,.attachments-head>.add-button-quiet{margin-left:auto}.customer-section-head{align-items:center;gap:8px;display:flex}.work-controls>.work-add{margin-left:auto}.customers-searchbar{align-items:center;gap:8px;display:flex}.customers-searchbar .page-search{flex:auto;min-width:0}.customers-searchbar .customers-order{flex:none}@media (width<=900px){.customers-page .customers-searchbar .page-search{min-height:48px;font-size:var(--t-strong);border:1px solid var(--border);background:var(--bg-card);border-radius:12px;padding:0 14px;display:block!important}.customers-page .customers-searchbar{left:0;right:0;bottom:calc(68px + env(safe-area-inset-bottom));z-index:55;background:var(--bg);border-top:1px solid var(--border);padding:8px 16px;position:fixed}.customers-page .customers-searchbar .customers-order{min-height:48px;font-size:var(--t-strong);border-radius:12px;padding:0 10px}.customers-page .customers-list{padding-bottom:76px}body:has(.topbar.phone-searching) .customers-searchbar{display:none}}.customers-more{justify-content:center;padding:14px 0;display:flex}.customers-more .btn{min-height:44px}.customers-searchbar .page-search{width:auto}.customers-searchbar .customers-order{max-width:42%;width:auto!important;margin:0!important}.customers-filter-open{display:none}@media (width<=900px){.customers-page .customers-filter-open{border:1px solid var(--border);background:var(--bg-card);min-height:48px;color:var(--text);font:inherit;font-size:var(--t-strong);cursor:pointer;border-radius:12px;flex:none;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex}.customers-page .customers-searchbar .customers-order{max-width:34%}}.details-row{grid-template-columns:1fr auto;grid-template-areas:"tap copy"}.details-tap{font:inherit;color:inherit;text-align:left;background:0 0;border:none;grid-area:tap;gap:2px;min-width:0;padding:0;display:grid}button.details-tap{cursor:pointer}button.details-tap:hover .details-value{text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.copy-button.copy-quiet{min-width:44px;min-height:44px;color:var(--text-secondary);cursor:pointer;font:inherit;font-size:var(--t-body);background:0 0;border:none;grid-area:copy;justify-content:center;align-items:center;gap:6px;padding:0 6px;display:inline-flex}.copy-button.copy-quiet:hover{color:var(--fa-navy)}.details-row-editing{grid-template-columns:1fr;grid-template-areas:none;gap:8px}.details-input{width:100%;min-height:44px;font-size:var(--t-strong);border:1px solid var(--border);border-radius:10px;padding:0 12px}.details-actions{gap:8px;display:flex}.details-actions .btn{flex:1;min-height:44px}.details-tap{justify-items:start}.details-tap .details-label,.details-tap .details-value{text-align:left;grid-area:auto}.details-row.details-row-editing{flex-direction:column;align-items:stretch;gap:8px;display:flex}.details-row-editing>*{grid-area:auto}.customers-other{border-top:2px solid var(--border);margin-top:14px;padding-top:8px}.customers-other-head{font-size:var(--t-body);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:4px 0 6px;font-weight:700}.customers-other-row{border:none;border-top:1px solid var(--border);width:100%;min-height:52px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:auto 1fr;grid-template-areas:"icon label""icon sub";align-items:center;column-gap:10px;padding:8px 0;display:grid}.customers-other-row svg{color:var(--fa-navy);grid-area:icon}.customers-other-label{grid-area:label;font-weight:600}.customers-other-sub{font-size:var(--t-body);color:var(--text-secondary);grid-area:sub}.main-body>.search-history{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;height:100%;overflow-y:auto}@media (width<=900px){.main-body>.search-history{padding-bottom:calc(150px + env(safe-area-inset-bottom))}}.main-body>.tasks-page,.main-body>.jobs,.main-body>.docs{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;height:100%;overflow-y:auto}@media (width<=900px){.main-body>.tasks-page,.main-body>.jobs,.main-body>.docs{padding-bottom:calc(150px + env(safe-area-inset-bottom))}.main-body>.docs>.docs-list{flex:none;overflow-y:visible}}.fix-report-open,.topbar .fix-report-open,.modal-header .fix-report-open{border:1px solid var(--border);background:var(--bg-card);width:34px;height:34px;min-height:0;color:var(--text-secondary);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-right:6px;padding:0;display:inline-flex}.fix-report-open:hover{color:var(--fa-navy);border-color:var(--fa-navy)}.fix-report-wrap{z-index:90;justify-content:center;align-items:flex-start;padding:70px 16px 16px;display:flex;position:fixed;inset:0}.fix-report-scrim{background:#00000059;border:none;padding:0;position:absolute;inset:0}.fix-report{background:var(--bg-card);border-radius:14px;flex-direction:column;gap:8px;width:100%;max-width:480px;padding:16px;display:flex;position:relative;box-shadow:0 10px 30px #00000040}.fix-report textarea{width:100%;font:inherit;font-size:var(--t-strong);border:1px solid var(--border);border-radius:10px;padding:10px}.fix-report-actions{gap:8px;display:flex}.fix-report-actions .btn{flex:1;min-height:44px}.fix-flag{align-items:center;gap:8px;margin:8px 0 12px;font-weight:600;display:flex}.fix-row{border-top:1px solid var(--border);gap:10px;padding:10px 0;display:flex}.fix-row.done .fix-row-note{color:var(--text-secondary);text-decoration:line-through}.fix-row-note{white-space:pre-wrap;font-size:var(--t-strong)}.void-banner{border:2px dashed var(--text-secondary);background:var(--bg-sidebar);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;padding:10px 12px;display:flex}.void-banner strong{font-size:var(--t-strong);letter-spacing:.06em;text-transform:uppercase}.void-banner .btn{min-height:40px;margin-left:auto}.void-form{border:1px solid var(--border);background:var(--bg-card);border-radius:12px;flex-direction:column;gap:8px;margin:0 0 14px;padding:12px;display:flex}.void-choice{align-items:center;gap:8px;min-height:40px;font-weight:600;display:flex}.void-dup,.void-form>input{flex-direction:column;gap:6px;margin-left:26px;display:flex}.void-dup input,.void-form>input{min-height:44px;font-size:var(--t-strong);border:1px solid var(--border);border-radius:10px;padding:0 12px}.void-dup-picks{flex-wrap:wrap;gap:6px;display:flex}.void-actions{gap:8px;display:flex}.void-actions .btn{flex:1;min-height:44px}.void-dup-results{border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.void-dup-result{border:none;border-top:1px solid var(--border);background:var(--bg-card);min-height:48px;font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;display:flex}.void-dup-result:first-child{border-top:none}.void-dup-result span{font-size:var(--t-body);color:var(--text-secondary)}.void-dup-chosen{border:1px solid var(--fa-navy);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:0 12px;display:flex}.add-button.add-button-quiet.add-button-small{border-radius:10px;width:36px;height:36px}.add-button.add-button-quiet.add-button-small svg{width:18px;height:18px}.chev{vertical-align:middle;transition:transform .12s;display:inline-flex}.chev.open{transform:rotate(90deg)}.customers-more .btn{align-items:center;gap:6px;display:inline-flex}.customers-more .btn svg{transform:rotate(90deg)}.fold-card{border:1px solid var(--border);background:var(--bg-card);border-radius:12px;margin:12px 0;padding:4px 12px 10px}.fold-card.shut{padding-bottom:4px}.assoc.fold-card{border-bottom:1px solid var(--border);padding-bottom:10px}.assoc.fold-card.shut{padding-bottom:4px}.ticket-history.fold-card{border-top:1px solid var(--border);margin-top:12px;padding-top:4px}.fold-card>.fold-head{align-items:center;gap:8px;min-height:48px;margin:0;display:flex}.fold-card.shut>.fold-head{margin-bottom:0}.fold-card>.fold-head>.section-toggle{min-width:0;min-height:44px;font:inherit;font-size:var(--t-strong);flex:auto}.fold-card>.fold-head>.section-toggle strong{font-weight:700}.fold-card>.fold-head>.add-button-quiet{flex:none;margin-left:auto}.fold-card>.fold-head>.attachments-select{flex:none}.fold-card>.fold-body>:first-child{margin-top:2px}.fold-card .quiet-note{margin-left:0;margin-right:0}@media (width<=900px){.topbar{gap:8px 10px;padding:14px 14px 12px}.phone-head{gap:10px}.topbar .phone-menu{border-radius:12px;width:44px;height:44px}.topbar .phone-menu svg{width:22px;height:22px}.phone-logo{width:36px;height:36px}.topbar .phone-logo-home{min-height:44px}.phone-hello{gap:1px;line-height:1.25}.phone-hello strong{font-size:var(--t-title);letter-spacing:-.01em}.phone-hello span{font-size:var(--t-body)}.topbar-right{gap:8px}.phone-hello .phone-subline{white-space:normal;flex-wrap:wrap;column-gap:4px;display:flex;overflow:visible}.phone-hello .phone-subline-part{white-space:nowrap;font-size:inherit;color:inherit}}.sidebar-title{align-items:center}.sidebar-hide{width:40px;height:40px;font-size:var(--t-title);color:var(--text-secondary);border:1px solid var(--border);background:var(--bg-card);border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.sidebar-collapse-row{justify-content:flex-end;padding:2px 12px 6px;display:flex}.sidebar-collapse-all{min-height:36px;font-size:var(--t-body);align-items:center;gap:5px;padding:4px 8px;display:inline-flex}.sidebar-rail{min-height:44px}.undo-open,.topbar .undo-open,.modal-header .undo-open{border:1px solid var(--fa-navy);background:var(--bg-card);width:34px;height:34px;min-height:0;color:var(--fa-navy);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-right:6px;padding:0;display:inline-flex}.undo-open:hover{background:var(--fa-navy);color:#fff}.customer-card-attach{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.customer-card-attach:hover{color:var(--fa-navy);text-decoration:underline}.customer-card-name>.add-button-quiet{margin-left:auto}.home-no-customer-toggle{min-height:36px;font:inherit;color:inherit}.home-no-customer.shut{padding-top:6px;padding-bottom:6px}.text-panel-close{border:1px solid var(--border);background:var(--bg-card);width:40px;height:40px;min-height:40px;color:var(--text);cursor:pointer;border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.text-panel-close:hover{border-color:var(--fa-navy);color:var(--fa-navy)}.text-panel-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.details-card-head{align-items:center;gap:8px;display:flex}.details-card-head .details-copy-all{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.details-card-head .details-copy-all+.add-button-quiet{margin-left:0}.customer-card-name .customer-card-copy{margin-left:auto}#cust-open-tasks.open-tasks,.customer-open-tickets{border-radius:10px;margin:8px 0;padding:2px 12px}#cust-open-tasks .open-tasks-head,.customer-open-tickets .open-tasks-head{margin-bottom:0}#cust-open-tasks .open-tasks-head .section-toggle,.customer-open-tickets .open-tasks-head .section-toggle{min-height:44px;font-size:var(--t-strong)}#cust-open-tasks .open-tasks-head .section-toggle svg+svg,.customer-open-tickets .open-tasks-head .section-toggle svg+svg{width:16px;height:16px}#cust-open-tasks:not(.shut),.customer-open-tickets:not(.shut){padding-bottom:8px}@media (width<=900px){.rail{z-index:140;padding-bottom:env(safe-area-inset-bottom)}.rail-scrim{z-index:139}:is(body:has(.modal-ticket-form) .phone-bar,body:has(.modal-overlay>.modal:not(.modal-ticket)) .phone-bar,body:has(.modal-overlay>.modal-narrow) .phone-bar){display:none}.modal-overlay:has(.modal-ticket-form){bottom:0}}@media (width<=600px){.modal-ticket .modal-save-top{display:none}}.draft-bar{border:1px solid var(--fa-navy);background:var(--bg-card);font-size:var(--t-body);color:var(--text);border-left-width:4px;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:0 0 12px;padding:10px 12px;font-weight:600;display:flex}.draft-bar-actions{gap:8px;display:inline-flex}.draft-bar-actions .btn{min-height:40px}.my-drafts{border:1px solid var(--fa-navy);background:var(--bg-card);border-left-width:4px;border-radius:10px;margin:12px 0;padding:10px 12px}.my-drafts-head{font-size:var(--t-strong);color:var(--fa-navy);align-items:center;gap:8px;margin:0;display:flex}.my-drafts .quiet-note{margin:2px 0 8px}.my-draft{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;padding:8px 0;display:flex}.my-draft-what{font-size:var(--t-body);min-width:0}.my-draft-when{font-size:var(--t-small);color:var(--text-secondary);display:block}.my-draft-actions{gap:8px;display:inline-flex}.my-draft-actions .btn{min-height:40px}.form-readonly{font-size:var(--t-strong);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.45}.service-note-earlier{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:8px;padding-top:6px;display:flex}.service-note-earlier-row{white-space:pre-wrap;overflow-wrap:anywhere;flex-direction:column;display:flex}.service-note-earlier-row small{color:var(--text-secondary);font-size:var(--t-small)}.job-block.proposed,.daygrid-job.proposed,.week-job.proposed,.month-chip.proposed,.mobile-job-card.proposed,.proposed-swatch{background-image:repeating-linear-gradient(135deg,#ffffff52 0 6px,#0000 6px 12px)!important}.week-job.proposed,.mobile-job-card.proposed{background-image:repeating-linear-gradient(135deg,#1f3c7317 0 6px,#0000 6px 12px)!important}.confirm-badge.proposed-badge,.mobile-job-status.proposed-badge{color:#1f3c73;background:#fff;border:1px dashed #1f3c73}.proposed-swatch{vertical-align:-2px;background-color:#1f3c73;border-radius:3px;width:14px;height:14px;margin-right:6px;display:inline-block}.proposals-bar{flex-wrap:wrap;align-items:center;gap:8px 12px;padding:6px 16px;display:flex}.proposing-switch{min-height:44px;font-size:var(--t-body);cursor:pointer;align-items:center;gap:8px;display:inline-flex}.proposing-switch input{opacity:0;width:1px;height:1px;position:absolute}.proposing-track{background:var(--border);border-radius:12px;flex:none;width:40px;height:24px;transition:background .15s;position:relative}.proposing-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:3px;left:3px}.proposing-switch.on .proposing-track{background:#1f3c73}.proposing-switch.on .proposing-knob{left:19px}.proposing-switch input:focus-visible+.proposing-track{outline-offset:2px;outline:2px solid #1f3c73}.proposals-open,.proposals-bar .btn{min-height:44px}.proposals-modal{max-width:560px}.proposals-note{max-width:none;margin:0 0 10px}.proposals-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.proposal-row{border:1px solid var(--border);background-image:repeating-linear-gradient(135deg,#1f3c730f 0 6px,#0000 6px 12px);border-radius:10px;padding:10px 12px}.proposal-what{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;flex-direction:column;gap:2px;padding:0;display:flex}.proposal-what span{font-size:var(--t-body)}.proposal-by{color:var(--text-secondary);font-size:var(--t-body)!important}.proposal-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.proposal-actions .btn{flex:auto;min-height:44px}.proposal-decline{flex-direction:column;gap:8px;margin-top:8px;display:flex}.proposal-decline input{min-height:44px;font-size:var(--t-strong);padding:0 10px}.proposed-banner{color:#1f3c73;background:#eef2f9;border-color:#1f3c73}.global-search-addline,.customer-notthem{font-size:var(--t-body);color:var(--text-secondary);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;display:flex}.connections-justadded{flex-basis:100%;margin:0 0 6px}.connections-connect{min-height:44px}.phone-schedule{flex-direction:column;flex:1;min-height:0;padding:0 12px 16px;display:flex;overflow-y:auto}.ps-head{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;padding:8px 0;display:grid}.ps-arrow{border:1px solid var(--border);background:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.ps-arrow:not(.ps-next) svg{transform:rotate(180deg)}.ps-date{height:48px;font-size:var(--t-strong);white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;display:flex;overflow:hidden}.ps-date strong{line-height:22px}.ps-today,.ps-date .link-button{height:22px;min-height:0;line-height:22px;font-size:var(--t-body);padding:0}.ps-today{color:var(--text-secondary)}.ps-bar{justify-content:space-between;align-items:center;gap:8px;padding:4px 0 8px;display:flex}.ps-views button{min-width:64px;min-height:40px;font-size:var(--t-body)}.ps-needs{min-height:40px;font-size:var(--t-body);align-items:center;gap:6px;display:inline-flex}.ps-people{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:6px;padding:4px 0 10px;display:flex;overflow-x:auto}.ps-people::-webkit-scrollbar{display:none}.ps-pill{flex:none}.ps-who .ps-people{flex-wrap:wrap;overflow:visible}.ps-pill{border:1px solid var(--border);min-height:40px;color:var(--text);font-size:var(--t-body);background:#fff;border-radius:20px;padding:0 14px}.ps-pill.on{color:#fff;font-weight:600}.ps-placing{color:#1f3c73;font-size:var(--t-body);z-index:3;background:#eef2f9;border:1px solid #1f3c73;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding:8px 10px;display:flex;position:sticky;top:0}.ps-placing .btn{min-height:40px}.ps-day{border-top:1px solid var(--border);flex:none;position:relative}.ps-hour{border-bottom:1px solid var(--border);flex-direction:column;display:flex;position:absolute;left:0;right:0}.ps-hour-label{width:48px;font-size:var(--t-small);color:var(--text-secondary);pointer-events:none;position:absolute;top:4px;left:0}.ps-slot{cursor:pointer;background:linear-gradient(#0000 calc(50% - .5px),#e2e8f0 calc(50% - .5px) calc(50% + .5px),#0000 calc(50% + .5px));border:0;flex:1;margin-left:52px;padding:0}.ps-slot:active{background:#1f3c7314}.ps-visit{z-index:2;color:#fff;text-align:left;font-size:var(--t-body);border:0;border-radius:8px;flex-direction:column;gap:1px;padding:4px 8px;line-height:1.3;display:flex;position:absolute;overflow:hidden}.ps-visit.done{opacity:.6}.ps-visit-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.ps-visit-sub{font-size:var(--t-small);opacity:.95}.ps-visit-tag{color:#1f3c73;font-size:var(--t-small);background:#fff;border:1px dashed #1f3c73;border-radius:4px;align-self:flex-start;margin-top:2px;padding:0 6px;font-weight:600}.ps-visit.proposed{background-image:repeating-linear-gradient(135deg,#ffffff52 0 6px,#0000 6px 12px)!important}.ps-empty{font-size:var(--t-body);color:var(--text-secondary);pointer-events:none;margin:0;position:absolute;top:8px;left:56px;right:8px}.ps-week{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ps-week-head{width:100%;min-height:44px;font-size:var(--t-strong);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0;font-weight:600;display:flex}.ps-week-head.today{color:#1f3c73}.ps-week-head span{font-weight:400;font-size:var(--t-body);color:var(--text-secondary)}.ps-week-none{font-size:var(--t-body);color:var(--text-secondary);margin:0 0 4px}.ps-week-visit{text-align:left;border:1px solid var(--border);width:100%;min-height:48px;font-size:var(--t-body);background:#fff;border-left:5px solid;border-radius:0 8px 8px 0;grid-template-columns:96px 1fr;gap:2px 8px;margin-bottom:6px;padding:8px 10px;display:grid}.ps-week-visit.proposed{background-image:repeating-linear-gradient(135deg,#1f3c7314 0 6px,#0000 6px 12px)}.ps-week-time{color:var(--text-secondary);font-size:var(--t-body)}.ps-week-title{font-weight:600}.ps-week-who{font-size:var(--t-body);color:var(--text-secondary);grid-column:2}.ps-who h2{font-size:var(--t-section);margin:0 0 10px}.ps-who .btn{width:100%;min-height:44px}.ps-needs-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ps-needs-row{text-align:left;border:1px solid var(--border);width:100%;min-height:48px;font-size:var(--t-body);background:#fff;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.ps-needs-row span{font-size:var(--t-body);color:var(--text-secondary)}.ps-note{max-width:none;margin:0 0 8px}.phone-schedule>*{flex:none}@media (width<=700px){.place-overlay .place-ticket{max-width:none;max-height:calc(100dvh - 120px);margin:0;position:fixed;top:12px;left:12px;right:12px;overflow-y:auto;width:auto!important}}.ps-who{flex-direction:column;gap:12px;height:auto;padding:16px;display:flex}.ps-who .ps-people{padding:0}.phone-schedule{position:relative}.ps-top{z-index:4;background:var(--bg,#f1f5f9);border-bottom:1px solid var(--border);margin:0 -12px;padding:0 12px;position:sticky;top:0}.ps-top .ps-head{padding:4px 0}.ps-top .ps-bar{padding:0 0 6px}.ps-top .ps-people{padding:0 0 8px}.ps-placing{position:static}.place-hint{font-size:var(--t-body);color:var(--text-secondary);margin:0 0 8px}@media (width<=700px){.place-ticket .place-actions{flex-direction:column;gap:8px;display:flex}.place-ticket .place-new{justify-content:center;gap:8px;width:100%;min-height:48px}.place-ticket .place-new .add-button-label{font-size:var(--t-strong);font-weight:600;display:inline}.place-ticket .place-cancel{min-height:44px}}.ps-views button{min-width:0;padding:0 12px}.ps-month{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding-top:6px;display:grid}.ps-month-dow{text-align:center;font-size:var(--t-small);color:var(--text-secondary);padding-bottom:2px}.ps-month-day{border:1px solid var(--border);min-height:56px;font-size:var(--t-body);background:#fff;border-radius:8px;flex-direction:column;align-items:flex-start;padding:4px 4px 12px;display:flex;position:relative}.ps-month-day.weekend{background:#f8fafc}.ps-month-day.out{opacity:.45}.ps-month-day.today{border:2px solid #1f3c73}.ps-month-num{font-weight:600}.ps-month-full{font-size:var(--t-small);color:#b91c1c;font-weight:600}.ps-month-bar{background:#e2e8f0;border-radius:3px;height:5px;position:absolute;bottom:5px;left:4px;right:4px;overflow:hidden}.ps-month-bar span{background:#378add;border-radius:3px;height:100%;display:block}.ps-month-bar span.busy{background:#ef9f27}.ps-month-bar span.full{background:#e24b4a}.customer-confirmed{min-height:44px;font-size:var(--t-strong);cursor:pointer;background:#f8fafc;border:1px dashed #94a3b8;border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:6px 0;padding:6px 10px;display:flex}.customer-confirmed input{accent-color:#1f3c73;width:22px;height:22px}.customer-confirmed.on{color:#1f3c73;background:#eef2f9;border-style:solid;border-color:#1f3c73;font-weight:600}.customer-confirmed-hint{font-size:var(--t-body);color:var(--text-secondary);flex-basis:100%;font-weight:400}.ps-visit.unconfirmed{color:var(--text);border:1.5px dashed}.ps-visit.unconfirmed .ps-visit-sub{opacity:1}.ps-week-visit.unconfirmed{background:#f8fafc;border-style:dashed dashed dashed solid}.week-job.unconfirmed{opacity:.6;border-style:dashed}.month-chip.unconfirmed{opacity:.55}.mobile-job-card.unconfirmed{background:#f8fafc;border-style:dashed}.my-calendar{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:8px;max-width:300px;margin:10px 0;padding:10px 0;display:flex}.my-calendar-head{font-weight:600;font-size:var(--t-body);align-items:center;gap:6px;display:flex}.my-calendar-note{font-size:var(--t-body);color:var(--text-secondary);margin:0;line-height:1.45}.my-calendar-add,.my-calendar-copy,.my-calendar-confirm .btn{text-align:center;justify-content:center;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.my-calendar-reset{text-align:left;min-height:44px;font-size:var(--t-body)}.my-calendar-confirm{flex-direction:column;gap:8px;display:flex}.doc-row:has(>.req-photos-panel){flex-wrap:wrap}.req-photos-panel{flex:0 0 100%;min-width:0}.req-photos{align-self:flex-start;margin-top:4px}.customer-match-heading{font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);padding:8px 9px 3px;font-weight:700}.customers-close{margin-top:8px}.ticket-visits-list{margin:0;padding:0 0 4px;list-style:none}.ticket-visit{border:none;border-top:1px solid var(--row-hover);text-align:left;width:100%;min-height:44px;font:inherit;color:var(--text);background:0 0;flex-direction:column;gap:2px;padding:8px 12px;display:flex}button.ticket-visit{cursor:pointer}button.ticket-visit:hover{background:var(--row-hover)}.ticket-visit-when{font-size:var(--t-body);font-weight:600}.ticket-visit-who{font-size:var(--t-small);color:var(--text-secondary)}.crew-off-note{font-size:var(--t-body);color:var(--text-secondary);margin:4px 0 8px}.crew-off-schedule{cursor:pointer;width:20px;height:20px;accent-color:var(--fa-navy);flex:none;margin:0 4px 0 0}.part-for{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);margin-bottom:10px;padding:8px 12px}.part-for-line{flex-wrap:wrap;align-items:center;gap:8px;min-height:32px;display:flex}.part-for-label{font-weight:700;font-size:var(--t-body)}.part-for-what{font-size:var(--t-body)}.part-for-none{font-size:var(--t-body);color:var(--warning);font-weight:600}.part-for-edit{margin-left:auto}.part-for-picker{margin-top:8px}.part-for-picker input{width:100%;min-height:44px}.ticket-field-value.folded{-webkit-line-clamp:6;line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ticket-field-more{font-size:var(--t-body);align-self:flex-start;min-height:44px;padding:0}.changes-field{overflow-wrap:anywhere;display:block}.changes-value-more,.changes-row .changes-value-more{font-size:var(--t-small);min-height:0;color:var(--accent);background:0 0;border:0;padding:0 2px;text-decoration:underline;display:inline}.changes-more{font-size:var(--t-body);min-height:44px;margin:8px 0;display:block}@media (width<=700px){.changes-row{flex-wrap:wrap;gap:2px 10px}.changes-when{width:100%;min-width:0}.changes-what{flex:1 1 0;min-width:0}.changes-fields{font-size:var(--t-small)}}.home-task-due.overdue{color:var(--danger);font-weight:700}.customers-job.opens{cursor:pointer}.customers-job.opens:hover{background:var(--row-hover)}.combine-what{font-size:var(--t-body);color:var(--text-secondary);margin:6px 0;padding-left:18px}.combine-what li{margin:2px 0}.when-picker{flex-direction:column;gap:8px;display:flex}.when-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.when-field{font-size:var(--t-body);color:var(--text-secondary);flex-direction:column;gap:4px;display:flex}.when-field input,.when-field select{min-height:44px;font-size:var(--t-strong)}.when-lengths{flex-wrap:wrap;gap:6px;display:flex}.when-lengths .duration-chip{min-height:40px}.when-other{cursor:default}.when-summary{font-size:var(--t-body);color:var(--text-secondary);margin:0}.when-exact{font-size:var(--t-body);margin-top:6px}.split-btn{align-items:stretch;display:inline-flex}.split-btn>.btn-complete{border-top-right-radius:0;border-bottom-right-radius:0}.split-btn .more-menu{display:inline-flex}.split-btn .split-btn-arrow{border-left-width:0;border-top-left-radius:0;border-bottom-left-radius:0;justify-content:center;min-width:40px;padding:0 10px}.split-btn .split-btn-arrow svg{transform:rotate(90deg)}.modal-footer{container-type:inline-size}.ticket-quick-add{min-width:44px;min-height:44px}@container (width>=560px){.add-button.add-button-quiet.ticket-quick-add{justify-content:flex-start;gap:13px;width:auto;padding:0 12px 0 10px}.add-button.add-button-quiet.ticket-quick-add .add-button-label{font-size:var(--t-body);color:var(--text);font-weight:600;display:inline}.add-button.add-button-quiet.ticket-quick-add .add-plus{left:25px;right:auto}}.split-btn .more-menu{position:relative}.split-btn .more-menu-list{left:0;right:auto}.ticket-done{min-width:96px;min-height:44px}.ticket-saved{color:var(--success);border-color:var(--success);font-weight:700}.crew-status{flex:none;align-items:center;gap:6px;display:inline-flex;position:relative}.crew-status-chip{white-space:nowrap;background:var(--bg-card);min-height:32px;font-size:var(--t-small);cursor:pointer;border:1px solid;border-radius:999px;padding:0 12px;font-weight:700}.crew-status-chip:disabled{cursor:default}.crew-status-chip.s-active{color:var(--success);border-color:var(--success)}.crew-status-chip.s-suspended{color:var(--warning);border-color:var(--warning)}.crew-status-chip.s-left{color:var(--text-secondary);border-color:var(--border)}.crew-status-since{font-size:var(--t-small);color:var(--text-secondary)}.crew-status-menu{z-index:30;background:var(--bg-card);border:1px solid var(--border);width:290px;box-shadow:var(--shadow-lg);border-radius:10px;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.crew-status-opt{text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-direction:column;gap:2px;padding:10px;display:flex}.crew-status-opt:hover,.crew-status-opt.cur{background:var(--row-hover)}.crew-status-opt span{font-size:var(--t-small);color:var(--text-secondary)}.crew-status-confirm{z-index:30;width:320px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);border:2px solid var(--warning);font-size:var(--t-body);background:#fffbeb;border-radius:10px;flex-direction:column;gap:6px;padding:12px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.crew-status-confirm ul{margin:0;padding-left:18px}.crew-status-actions{gap:8px;display:flex}.btn-warn{background:var(--warning);border-color:var(--warning);color:#fff}.crew-color-row.crew-left{opacity:.6}@media (width<=700px){.btn{min-height:44px}}.sidebar-search{align-items:center;gap:6px;padding:0 12px 8px;display:flex}.sidebar-search-input{border:1px solid var(--border);border-radius:var(--r);min-width:0;min-height:36px;font-size:var(--t-body);background:var(--bg-card);flex:1;padding:0 10px}.still-loading-bar{border-radius:var(--r-round);background:var(--row-hover);width:min(320px,70%);height:6px;margin:14px auto 0;display:block;position:relative;overflow:hidden}.still-loading-bar:after{content:"";border-radius:inherit;background:var(--primary);width:40%;animation:1.1s ease-in-out infinite still-loading-run;position:absolute;inset:0}@keyframes still-loading-run{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){.still-loading-bar:after{animation:none;transform:translate(75%)}}.list-search{align-items:center;gap:var(--s2);min-height:40px;padding:0 var(--s3);margin:0 0 var(--s3);border:1px solid var(--border);border-radius:var(--r);background:var(--bg-card);color:var(--text-secondary);display:flex}.list-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #1f3c731f}.list-search input{min-width:0;min-height:38px;font:inherit;font-size:var(--t-body);color:var(--text);background:0 0;border:0;outline:0;flex:1}.list-search input::-webkit-search-cancel-button{display:none}.list-search-clear{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;min-height:32px;padding:0 4px;font-size:20px;line-height:1}.customers-searchbar .list-search{flex:1;margin:0}.sidebar-list-search{margin:0 12px 8px}@media (width<=900px){.main-body .list-search:not(.sidebar-list-search){left:0;right:0;bottom:calc(68px + env(safe-area-inset-bottom));z-index:55;background:var(--bg);min-height:64px;box-shadow:none;border-width:1px 0 0;border-radius:0;margin:0;padding:8px 16px;position:fixed}.main-body .list-search:not(.sidebar-list-search) input{border:1px solid var(--border);background:var(--bg-card);min-height:48px;font-size:var(--t-strong);border-radius:12px;padding:0 14px}.customers-page .customers-searchbar .list-search{background:0 0;border:0;min-height:0;padding:0;position:static}body:has(.topbar.phone-searching) .main-body .list-search{display:none}.main-body:has(.control-bar-open) .list-search:not(.sidebar-list-search){padding-right:132px}.control-bar-open{z-index:56;bottom:calc(68px + 8px + env(safe-area-inset-bottom))}}.photo-viewer{z-index:2000;padding:calc(env(safe-area-inset-top) + 56px) var(--s3,12px) calc(env(safe-area-inset-bottom) + 24px);background:#0a0e16f0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.photo-viewer-top{top:env(safe-area-inset-top);color:#fff;align-items:center;gap:12px;padding:8px 12px;display:flex;position:absolute;left:0;right:0}.photo-viewer-name{min-width:0;font-size:var(--t-small);overflow-wrap:anywhere;flex:1}.photo-viewer-drive{color:#fff}.photo-viewer-close{color:#fff;background:0 0;border:1px solid #fff6;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.photo-viewer-media{object-fit:contain;background:#000;border-radius:4px;max-width:100%;max-height:100%}.photo-viewer-what{color:#fff;font-size:var(--t-small);text-align:center;margin:10px 0 0}.photo-viewer-arrow{color:#fff;background:#ffffff2e;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.photo-viewer-arrow.prev{left:8px}.photo-viewer-arrow.prev svg{transform:rotate(180deg)}.photo-viewer-arrow.next{right:8px}.customer-card-addr{margin-top:var(--s2,8px);flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.customer-card-addr-pin{color:var(--text-light);order:0;display:inline-flex}.customer-card-addr .service-note-inline-eye{order:1;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.customer-card-addr .service-note-inline-eye.locked{opacity:.55}.customer-card-addr-text{overflow-wrap:anywhere;min-width:0;font-size:var(--t-body);color:var(--text);flex:1 1 0;order:2}a.customer-card-addr-text{color:var(--primary);text-decoration:none}a.customer-card-addr-text:hover{text-decoration:underline}.customer-card-addr-text.incomplete{color:var(--text-light)}.customer-card-addr .customer-card-addr-add,.customer-card-addr .service-note-inline-add{order:3}.customer-card-addr .service-note-open{border-radius:var(--radius);border:none;flex-wrap:wrap;flex-basis:100%;order:4;padding:8px 10px}.customer-card-addr .service-note-editing .service-note-input{flex:1 1 0;min-width:0}.customer-card-addr .service-note-editing .service-note-controls{flex-basis:100%;justify-content:flex-end;gap:8px}.customer-card-addr .service-note-editing .service-note-controls button{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);min-height:44px;color:var(--text);font-size:var(--t-body);padding:0 16px}.customer-card-addr .service-note-editing .service-note-controls button:last-child{background:var(--primary);border-color:var(--primary);color:#fff}.customer-card-addr .service-note-editing .warn-note,.customer-card-addr .service-note-editing .quiet-note{flex-basis:100%;margin:0}.info-button{width:32px;height:32px;color:var(--text-light);cursor:pointer;vertical-align:middle;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;margin:-6px 0;padding:0;display:inline-flex}.info-button:hover,.info-button.on{color:var(--accent)}.info-note{border-left:3px solid var(--accent);background:var(--bg-card);width:100%;font-size:var(--t-small);color:var(--text-secondary);text-transform:none;letter-spacing:0;border-radius:4px;flex-basis:100%;margin:4px 0 6px;padding:8px 10px;font-weight:400;line-height:1.45;display:block}
