:root{color-scheme:light;--surface: #ffffff;--surface-subtle: #f7fafc;--surface-sunken: #edf2f7;--border: #e2e8f0;--border-strong: #cbd5e0;--text-strong: #1a202c;--text: #2d3748;--text-secondary: #4a5568;--text-muted: #718096;--text-faint: #a0aec0;--on-accent: #ffffff;--primary: #3182ce;--primary-hover: #2c5aa0;--primary-strong: #2b6cb0;--primary-deep: #2c5282;--primary-deepest: #2a4365;--primary-soft: #ebf8ff;--primary-soft-border: #bee3f8;--primary-soft-strong: #90cdf4;--focus-ring: rgba(49, 130, 206, .25);--success-bright: #48bb78;--success: #38a169;--success-hover: #2f855a;--success-deep: #276749;--success-deepest: #22543d;--success-soft: #f0fff4;--success-soft-border: #c6f6d5;--success-soft-strong: #9ae6b4;--danger: #e53e3e;--danger-bright: #fc8181;--danger-hover: #c53030;--danger-deep: #9b2c2c;--danger-deepest: #742a2a;--danger-soft: #fff5f5;--danger-soft-border: #fed7d7;--danger-soft-strong: #feb2b2;--warning: #d69e2e;--warning-bright: #fbbf24;--warning-soft: #fef3c7;--warning-soft-subtle: #fffbeb;--warning-text: #92400e;--warning-text-strong: #975a16;--warning-text-deep: #744210;--accent-orange: #dd6b20;--accent-orange-hover: #c05621;--accent-orange-bright: #f6ad55;--accent-orange-soft: #fffaf0;--accent-orange-soft-border: #feebc8;--accent-orange-soft-strong: #fbd38d;--accent-purple: #805ad5;--accent-purple-hover: #6b46c1;--accent-purple-soft: #faf5ff;--accent-purple-soft-border: #e9d8fd;--accent-purple-soft-strong: #d6bcfa;--accent-teal: #2c7a7b;--accent-teal-soft: #e6fffa;--highlight-bg: #fefcbf;--highlight-border: #faf089;--highlight-soft: #fffff0;--sidebar-bg: #1a2e1a;--sidebar-hover: #2d4a2d;--sidebar-active: #2f855a;--sidebar-border: #2d4a2d;--sidebar-text: #cbd5e0;--sidebar-text-bright: #e2e8f0;--sidebar-text-muted: #a0aec0;--sidebar-accent: #9ae6b4;--sidebar-input-border: #4a5568}[data-theme=dark]{color-scheme:dark;--surface: #1b2432;--surface-subtle: #141b26;--surface-sunken: #232e40;--border: #2d3a4f;--border-strong: #405071;--text-strong: #f2f6fb;--text: #dbe4f0;--text-secondary: #aebccf;--text-muted: #7f8ea6;--text-faint: #5c6a82;--on-accent: #ffffff;--primary: #4ba0e8;--primary-hover: #6cb2ee;--primary-strong: #7dbdf2;--primary-deep: #a8d3f7;--primary-deepest: #c4e1fa;--primary-soft: #16283e;--primary-soft-border: #244a70;--primary-soft-strong: #2d5c8c;--focus-ring: rgba(75, 160, 232, .35);--success-bright: #4fc584;--success: #46b878;--success-hover: #5ac98a;--success-deep: #8ee0b1;--success-deepest: #b5edcc;--success-soft: #12291c;--success-soft-border: #1e4230;--success-soft-strong: #2c5f45;--danger: #f16060;--danger-bright: #f38181;--danger-hover: #f38181;--danger-deep: #f8a5a5;--danger-deepest: #fbc4c4;--danger-soft: #321a1c;--danger-soft-border: #4e2528;--danger-soft-strong: #6e3338;--warning: #e2ae3c;--warning-bright: #f0c050;--warning-soft: #322913;--warning-soft-subtle: #282211;--warning-text: #ecc069;--warning-text-strong: #f2cd85;--warning-text-deep: #f7dba6;--accent-orange: #ef8443;--accent-orange-hover: #f49a63;--accent-orange-bright: #f6ad55;--accent-orange-soft: #2f2415;--accent-orange-soft-border: #4d3a1f;--accent-orange-soft-strong: #6f5327;--accent-purple: #9f7aea;--accent-purple-hover: #b794f4;--accent-purple-soft: #251b3a;--accent-purple-soft-border: #3b2b5c;--accent-purple-soft-strong: #533f80;--accent-teal: #4fd1c5;--accent-teal-soft: #12302e;--highlight-bg: #3b3517;--highlight-border: #56491c;--highlight-soft: #2b2713}::selection{background:var(--primary-soft-strong);color:var(--text-strong)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text-strong);background:var(--surface-subtle)}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--sidebar-bg);color:var(--sidebar-text-bright);padding:1rem;flex-shrink:0;display:flex;flex-direction:column}.logo{font-size:1.1rem;margin-bottom:1.5rem;color:var(--sidebar-accent)}.sidebar nav{display:flex;flex-direction:column;gap:.25rem}.nav-link{color:var(--sidebar-text);text-decoration:none;padding:.5rem .75rem;border-radius:6px;font-size:.9rem}.nav-link:hover{background:var(--sidebar-hover)}.nav-link.active{background:var(--sidebar-active);color:var(--on-accent)}.view-as-toggle{margin-top:auto;padding-top:1rem;border-top:1px solid var(--sidebar-border)}.view-as-label{font-size:.75rem;color:var(--sidebar-text-muted);display:block;margin-bottom:.25rem}.view-as-select{width:100%;padding:.3rem .4rem;border-radius:4px;border:1px solid var(--sidebar-input-border);background:var(--sidebar-bg);color:var(--sidebar-text-bright);font-size:.8rem;cursor:pointer}.view-as-select:focus{outline:none;border-color:var(--sidebar-accent)}.role-preview-banner{font-size:.8rem;padding:.25rem .6rem;border-radius:4px;background:var(--warning-soft);color:var(--warning-text);font-weight:500}.main{flex:1;display:flex;flex-direction:column}.header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border)}.content{padding:1.5rem}.muted{color:var(--text-muted);font-size:.9rem}.config-banner{background:var(--warning-soft);color:var(--warning-text);padding:.5rem 1rem;font-size:.85rem;text-align:center}h2{font-size:1.5rem;margin-bottom:1rem}h3{font-size:1.1rem;margin-bottom:.5rem}.error-text{color:var(--danger);font-size:.9rem}.dispatch-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.dispatch-actions{display:flex;align-items:center;gap:.75rem}.stage-filter,.sync-btn{padding:.4rem .75rem;border:1px solid var(--border-strong);border-radius:6px;font-size:.85rem;background:var(--surface)}.sync-btn{cursor:pointer;background:var(--primary);color:var(--on-accent);border-color:var(--primary)}.sync-btn:hover{background:var(--primary-hover)}.sync-btn:disabled{opacity:.6;cursor:not-allowed}.sync-success{color:var(--success);font-size:.85rem}.sync-error{color:var(--danger);font-size:.85rem}.kanban-board{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:1rem}.kanban-column{flex:1;min-width:240px;background:var(--surface);border-radius:8px;border:1px solid var(--border);display:flex;flex-direction:column}.kanban-column-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-top:3px solid var(--text-muted);border-bottom:1px solid var(--border)}.kanban-column-title{font-weight:600;font-size:.9rem;color:var(--text)}.kanban-column-count{font-size:.75rem;font-weight:700;color:var(--on-accent);padding:2px 8px;border-radius:10px}.kanban-column-body{padding:.5rem;display:flex;flex-direction:column;gap:.5rem;max-height:70vh;overflow-y:auto}.kanban-empty{color:var(--text-faint);font-size:.85rem;text-align:center;padding:1rem}.stop-card{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;padding:.6rem .75rem;cursor:pointer;transition:border-color .15s}.stop-card:hover{border-color:var(--primary)}.stop-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.25rem}.stop-customer{font-weight:600;font-size:.85rem;color:var(--text-strong)}.stop-priority-badge{font-size:.7rem;color:var(--on-accent);padding:1px 6px;border-radius:4px;font-weight:600}.stop-address{font-size:.78rem;color:var(--text-muted);margin:0}.stop-services{font-size:.75rem;color:var(--text-secondary);margin:.25rem 0 0}.stop-card-footer{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.stop-flag{font-size:.72rem;color:var(--danger)}.stop-date{font-size:.72rem;color:var(--text-muted)}.stop-checked-in{font-size:.72rem;color:var(--success)}.stop-checked-out{font-size:.72rem;color:var(--success);font-weight:600}.route-builder h2{margin-bottom:.75rem}.rb-controls{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.rb-controls label{display:flex;flex-direction:column;font-size:.8rem;color:var(--text-secondary);gap:.25rem}.rb-controls input,.rb-controls select{padding:.4rem .6rem;border:1px solid var(--border-strong);border-radius:6px;font-size:.9rem;min-width:160px}.rb-existing-route{background:var(--primary-soft);border:1px solid var(--primary-soft-border);border-radius:6px;padding:.5rem .75rem;font-size:.85rem;align-self:flex-end}.rb-header{display:flex;align-items:flex-start;gap:1.5rem;flex-wrap:wrap;margin-bottom:.75rem}.rb-header h2{margin:0}.rb-layout{display:flex;gap:0;height:calc(100vh - 150px);min-height:500px}.rb-filter-panel{width:320px;min-width:320px;background:var(--surface);border-right:2px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease,min-width .2s ease}.rb-filter-panel.collapsed{width:44px;min-width:44px}.rb-filter-panel-content{flex:1;overflow-y:auto;padding:.5rem}.rb-route-panel{width:360px;min-width:360px;background:var(--surface);border-left:2px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease,min-width .2s ease}.rb-route-panel.collapsed{width:44px;min-width:44px}.rb-route-panel.open .rb-assigned{flex:1;overflow-y:auto;padding:.5rem .75rem}.rb-panel-toggle{display:flex;align-items:center;gap:.4rem;padding:.6rem .75rem;background:var(--surface-subtle);border:none;border-bottom:1px solid var(--border);cursor:pointer;font-size:.85rem;font-weight:600;color:var(--text);width:100%;justify-content:flex-start}.rb-panel-toggle:hover{background:var(--surface-sunken)}.rb-panel-toggle-right{justify-content:flex-end;border-bottom:1px solid var(--border);border-top:none}.rb-filter-panel.collapsed .rb-panel-toggle,.rb-route-panel.collapsed .rb-panel-toggle{justify-content:center;padding:.6rem 0}.rb-filter-count{margin-left:auto;font-size:.75rem;color:var(--primary);background:var(--primary-soft);padding:.1rem .4rem;border-radius:4px}.rb-saved-filters{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.rb-saved-filters h4{font-size:.8rem;margin-bottom:.5rem;color:var(--text-secondary)}.rb-saved-filter-item{display:flex;align-items:center;justify-content:space-between;padding:.35rem .25rem;font-size:.82rem;border-radius:4px}.rb-saved-filter-item:hover{background:var(--surface-subtle)}.rb-saved-filter-label{display:flex;align-items:center;gap:.4rem;cursor:pointer;flex:1}.rb-saved-filter-label input{cursor:pointer}.rb-saved-filter-edit{background:none;border:none;padding:.2rem;cursor:pointer;color:var(--text-faint);display:flex;align-items:center;border-radius:4px}.rb-saved-filter-edit:hover{color:var(--primary);background:var(--primary-soft)}.rb-filter-summary{display:flex;gap:.5rem;padding:.5rem;margin-top:.5rem;background:var(--surface-subtle);border-radius:6px;font-size:.8rem}.rb-filter-match{font-weight:600;color:var(--success)}.rb-filter-excluded{color:var(--danger)}.rb-filter-done{display:block;width:100%;margin-top:.75rem;padding:.5rem;background:var(--primary);color:var(--on-accent);border:none;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer}.rb-filter-panel-content .filter-bar{flex-direction:column;gap:.4rem;border-bottom:none;padding:0}.rb-filter-panel-content .filter-chips{flex-wrap:wrap;gap:.3rem}.rb-map{flex:1;min-width:50%;position:relative}.rb-assigned h3{font-size:1rem;margin-bottom:.5rem}.stop-map-container{display:flex;flex-direction:column;height:100%;min-height:400px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}.stop-map-filters{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--surface-subtle);border-bottom:1px solid var(--border);flex-shrink:0}.map-priority-filter{padding:4px 8px;border:1px solid var(--border-strong);border-radius:4px;font-size:.8rem;background:var(--surface)}.map-paused-toggle{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--text-secondary);cursor:pointer}.map-paused-toggle input{cursor:pointer}.map-stop-count{margin-left:auto;font-size:.75rem;color:var(--text-muted);font-weight:600}.map-cluster-info{color:var(--primary);font-weight:500}.map-lasso-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--primary);border-radius:4px;background:var(--surface);color:var(--primary);font-size:.8rem;font-weight:600;cursor:pointer}.map-lasso-btn:hover{background:var(--primary-soft)}.map-lasso-active{background:var(--primary);color:var(--on-accent)}.map-lasso-active:hover{background:var(--primary-hover)}.map-lasso-hint{font-size:.75rem;color:var(--primary);font-style:italic}.map-lasso-result{font-size:.78rem;font-weight:600;color:var(--success-deep);background:var(--success-soft);border:1px solid var(--success-soft-strong);border-radius:4px;padding:2px 8px}.stop-map-canvas{flex:1;position:relative}.stop-map-placeholder{display:flex;align-items:center;justify-content:center;height:70vh;min-height:400px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle)}.map-info-window{font-family:-apple-system,sans-serif;font-size:.85rem;max-width:260px;max-height:300px;overflow-y:auto;padding:0;margin:0;line-height:1.3}.gm-style .gm-style-iw-c{padding:8px 12px 6px!important;max-width:280px!important}.gm-style .gm-style-iw-d{overflow-y:auto!important;max-height:320px!important}.map-info-multi{font-weight:700;color:var(--primary-strong);border-bottom:1px solid var(--border);padding-bottom:4px;margin-bottom:4px}.map-info-stop{padding:2px 0 4px}.map-info-stop+.map-info-stop{border-top:1px solid var(--surface-sunken)}.map-info-add-all{width:100%;margin-top:6px;background:var(--success-hover)}.map-info-add-all:hover{background:var(--success-deep)}.map-info-window strong{font-size:.9rem;font-weight:700;display:block;margin-bottom:1px}.map-info-window p{margin:1px 0;color:var(--text-secondary)}.map-info-services{font-size:.78rem}.map-info-paused{color:var(--danger);font-weight:600}.map-info-actions{margin-top:6px}.map-info-btn{padding:4px 12px;border:none;border-radius:4px;font-size:.8rem;font-weight:600;cursor:pointer;color:var(--on-accent)}.map-info-add{background:var(--primary)}.map-info-add:hover{background:var(--primary-hover)}.map-info-remove{background:var(--danger)}.map-info-remove:hover{background:var(--danger-hover)}.stop-map-toolbar{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.map-search-wrapper{position:relative;display:flex;align-items:center}.map-search-icon{position:absolute;left:8px;color:var(--text-muted);pointer-events:none}.map-search-input{padding:4px 8px 4px 28px;border:1px solid var(--border-strong);border-radius:4px;font-size:.8rem;width:180px;background:var(--surface)}.map-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring)}.map-search-clear{position:absolute;right:4px;background:none;border:none;cursor:pointer;color:var(--text-muted);padding:2px}.map-search-clear:hover{color:var(--danger)}.map-search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:4px;box-shadow:0 4px 12px #0000001a;z-index:1000;max-height:240px;overflow-y:auto}.map-search-result{display:flex;flex-direction:column;width:100%;padding:6px 10px;border:none;background:none;cursor:pointer;text-align:left}.map-search-result:hover{background:var(--primary-soft)}.map-search-name{font-size:.82rem;font-weight:600;color:var(--text-strong)}.map-search-addr{font-size:.75rem;color:var(--text-muted)}.map-control-wrapper{position:relative}.map-control-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);font-size:.78rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.map-control-btn:hover{background:var(--surface-sunken)}.map-control-btn.active{background:var(--primary);color:var(--on-accent);border-color:var(--primary)}.map-popover{position:absolute;top:100%;left:0;margin-top:4px;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #0000001f;z-index:1000;min-width:200px}.map-layers-popover,.map-pin-popover{padding:10px 12px;display:flex;flex-direction:column;gap:6px}.map-popover-row{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary)}.map-popover-row select{padding:2px 6px;border:1px solid var(--border-strong);border-radius:4px;font-size:.78rem;background:var(--surface)}.map-popover-row input[type=checkbox]{cursor:pointer}.map-info-popover{padding:10px 12px;display:flex;gap:16px;max-height:320px;overflow-y:auto;min-width:360px}.map-info-settings-group{flex:1;display:flex;flex-direction:column;gap:2px}.map-info-settings-title{font-size:.78rem;font-weight:700;color:var(--primary-strong);margin-bottom:4px;border-bottom:1px solid var(--border);padding-bottom:2px}.map-info-settings-check{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-secondary);cursor:pointer}.map-info-settings-check input{cursor:pointer}.map-legend{display:flex;align-items:center;gap:.5rem;padding:4px .75rem;border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap;background:var(--surface-subtle)}.map-legend-chip{display:flex;align-items:center;gap:4px;font-size:.72rem;color:var(--text-secondary);font-weight:600}.map-legend-dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--surface);box-shadow:0 0 0 1px var(--border-strong)}.map-hover-tooltip-overlay{position:absolute;background:var(--surface);border-radius:8px;box-shadow:0 2px 12px #0000002e;padding:8px 10px;font-family:-apple-system,sans-serif;font-size:.78rem;min-width:500px;max-width:500px;pointer-events:auto;z-index:1000}.map-hover-count{font-weight:700;color:var(--primary-strong);margin-bottom:4px}.map-hover-stop{padding:2px 0}.map-hover-stop+.map-hover-stop{border-top:1px solid var(--surface-sunken)}.map-hover-title{font-size:.82rem;display:block;margin-bottom:2px;color:var(--text-strong)}.map-hover-field{margin:1px 0;color:var(--text-secondary)}.map-hover-field-label{font-weight:600;color:var(--text-muted)}.map-hover-field-value{color:var(--text-strong)}.map-hover-more{font-size:.72rem;color:var(--text-faint);font-style:italic}.map-info-field{margin:1px 0;color:var(--text-secondary);font-size:.8rem}.map-info-field-label{font-weight:600;color:var(--text-muted)}.map-info-field-value{color:var(--text-strong)}.map-info-field-highlighted{background:var(--highlight-bg);padding:1px 4px;border-radius:3px;border-left:3px solid var(--warning)}.map-info-field-highlighted .map-info-field-label{color:var(--warning-text-strong)}.map-info-field-highlighted .map-info-field-value{font-weight:600}.map-hover-field-highlighted{background:var(--highlight-bg);padding:1px 4px;border-radius:3px;border-left:3px solid var(--warning)}.map-hover-field-highlighted .map-hover-field-label{color:var(--warning-text-strong)}.map-hover-field-highlighted .map-hover-field-value{font-weight:600}.map-tech-label{background:#ffffffe6;padding:1px 4px;border-radius:3px}.rb-pool-list{display:flex;flex-direction:column;gap:.4rem;max-height:60vh;overflow-y:auto}.rb-pool-item{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem}.rb-pool-info{display:flex;flex-direction:column;gap:.1rem}.rb-stop-name{font-weight:600;font-size:.85rem}.rb-stop-address{font-size:.78rem;color:var(--text-muted)}.rb-priority{font-size:.7rem;padding:1px 6px;border-radius:4px;font-weight:600;color:var(--on-accent);align-self:flex-start;margin-top:.2rem}.rb-priority-high{background:var(--danger)}.rb-priority-medium{background:var(--warning)}.rb-priority-low{background:var(--text-muted)}.rb-assign-btn{background:var(--success);border:none;border-radius:4px;padding:.3rem;cursor:pointer;color:var(--on-accent);display:flex;align-items:center}.rb-assign-btn:hover{background:var(--success-hover)}.rb-capacity{display:flex;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.rb-cap-item{display:flex;flex-direction:column;background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;padding:.4rem .75rem;min-width:80px}.rb-cap-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase}.rb-cap-value{font-size:1rem;font-weight:700;color:var(--text)}.rb-cap-over{background:var(--danger-soft);border-color:var(--danger-soft-strong)}.rb-cap-over .rb-cap-value{color:var(--danger-hover)}.rb-cap-breakdown{background:transparent;border:1px dashed var(--border-strong);min-width:60px}.rb-cap-breakdown .rb-cap-label{font-size:.65rem;color:var(--text-faint)}.rb-cap-breakdown .rb-cap-value{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.rb-capacity-alert{background:var(--danger-soft);border:1px solid var(--danger-soft-strong);border-radius:6px;padding:.5rem .75rem;font-size:.8rem;color:var(--danger-hover);font-weight:600;margin-bottom:.75rem}.rb-move-check{cursor:pointer}.rb-item-selected{border-color:var(--accent-orange-bright);background:var(--accent-orange-soft)}.rb-move-bar{margin-top:.75rem}.rb-move-btn{display:flex;align-items:center;gap:.3rem;padding:.5rem 1rem;border:none;border-radius:6px;background:var(--accent-orange);color:var(--on-accent);font-size:.85rem;font-weight:600;cursor:pointer}.rb-move-btn:hover{background:var(--accent-orange-hover)}.rb-move-btn:disabled{opacity:.6;cursor:not-allowed}.rb-move-panel{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:wrap;background:var(--accent-orange-soft);border:1px solid var(--accent-orange-bright);border-radius:6px;padding:.6rem .75rem}.rb-move-panel label{display:flex;flex-direction:column;font-size:.75rem;color:var(--text-secondary);gap:.2rem}.rb-move-panel input,.rb-move-panel select{padding:.35rem .5rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.85rem}.rb-move-cancel{background:none;border:1px solid var(--border-strong);border-radius:6px;padding:.5rem .75rem;font-size:.85rem;cursor:pointer;color:var(--text-secondary)}.rb-move-error{font-size:.78rem;color:var(--danger-hover);font-weight:600;width:100%}.rb-assigned-list{display:flex;flex-direction:column;gap:.4rem;min-height:200px}.rb-sortable-item{display:flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem}.rb-sort-handle{cursor:grab;color:var(--border-strong);display:flex}.rb-sort-handle:active{cursor:grabbing}.rb-sequence{font-weight:700;font-size:.9rem;color:var(--primary);min-width:24px;text-align:center}.rb-sort-info{display:flex;flex-direction:column;flex:1}.rb-duration{font-size:.75rem;color:var(--text-muted)}.rb-remove-btn{background:none;border:none;color:var(--danger);cursor:pointer;padding:.2rem;display:flex;align-items:center}.rb-remove-btn:hover{color:var(--danger-hover)}.rb-save-bar{display:flex;gap:.5rem;margin-top:.75rem}.rb-save-btn,.rb-publish-btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.3rem}.rb-save-btn{background:var(--primary);color:var(--on-accent)}.rb-save-btn:hover{background:var(--primary-hover)}.rb-save-btn:disabled{opacity:.6;cursor:not-allowed}.rb-publish-btn{background:var(--success);color:var(--on-accent)}.rb-publish-btn:hover{background:var(--success-hover)}.rb-publish-btn:disabled{opacity:.6;cursor:not-allowed}.rb-optimize-btn{background:var(--accent-purple);color:var(--on-accent)}.rb-optimize-btn:hover{background:var(--accent-purple-hover)}.rb-optimize-btn:disabled{opacity:.6;cursor:not-allowed}.rb-cap-drive{border-color:var(--accent-purple-soft-strong);background:var(--accent-purple-soft)}.rb-cap-drive .rb-cap-label{color:var(--accent-purple-hover)}.rb-proximity-alert{background:var(--warning-soft);border:1px solid var(--warning-bright);border-radius:6px;padding:.5rem .75rem;font-size:.82rem;color:var(--warning-text);margin-bottom:.75rem}.admin-table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.85rem}.admin-table th{text-align:left;padding:.5rem .75rem;background:var(--surface-sunken);border-bottom:2px solid var(--border-strong);font-weight:600;color:var(--text)}.admin-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border);color:var(--text-secondary)}.admin-table tr:hover{background:var(--surface-subtle)}.admin-table code{font-size:.8rem;background:var(--surface-sunken);padding:1px 4px;border-radius:3px}.preset-form{background:var(--surface-subtle);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-top:1rem}.preset-form-row{display:flex;gap:.5rem;flex-wrap:wrap}.preset-form-row input{padding:.4rem .6rem;border:1px solid var(--border-strong);border-radius:6px;font-size:.85rem;min-width:80px}.preset-form-row button{padding:.4rem 1rem;background:var(--primary);color:var(--on-accent);border:none;border-radius:6px;cursor:pointer;font-size:.85rem}.preset-form-row button:hover{background:var(--primary-hover)}.preset-form-row button:disabled{opacity:.6;cursor:not-allowed}.default-toggle{background:none;border:1px solid var(--border-strong);border-radius:4px;padding:.2rem .5rem;cursor:pointer;font-size:.78rem;color:var(--text-muted)}.default-toggle.active{background:var(--warning-soft);border-color:var(--warning);color:var(--warning-text);font-weight:600}.live-tracking h2{margin-bottom:.5rem}.tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;margin-top:1rem}.tech-card{border-radius:8px;border:1px solid var(--border);padding:.75rem 1rem;transition:border-color .15s}.tech-card-online{background:var(--success-soft);border-color:var(--success-soft-strong)}.tech-card-offline{background:var(--surface-subtle);display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem}.tech-card-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem}.tech-nav-icon{color:var(--success)}.tech-name{font-weight:600;font-size:.9rem;color:var(--text-strong);flex:1}.tech-status-dot{width:8px;height:8px;border-radius:50%}.tech-status-dot.online{background:var(--success);box-shadow:0 0 4px var(--success)}.tech-status-dot.offline{background:var(--border-strong)}.tech-card-body{display:flex;flex-direction:column;gap:.3rem}.tech-coords,.tech-last-seen{display:flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--text-muted)}.tech-route-info{display:flex;justify-content:space-between;align-items:center;margin-top:.3rem;padding-top:.3rem;border-top:1px solid var(--border)}.tech-route-name{font-size:.82rem;font-weight:600;color:var(--text)}.tech-route-status{font-size:.72rem;padding:1px 6px;border-radius:4px;font-weight:600;text-transform:uppercase}.status-published{background:var(--primary-soft-border);color:var(--primary-deep)}.status-draft{background:var(--surface-sunken);color:var(--text-secondary)}.status-in_progress{background:var(--success-soft-border);color:var(--success-deepest)}.status-completed{background:var(--border);color:var(--text-muted)}.tech-action-btn{display:flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border:none;border-radius:4px;font-size:.78rem;font-weight:600;cursor:pointer;margin-top:.4rem}.tech-action-btn.start{background:var(--primary);color:var(--on-accent)}.tech-action-btn.start:hover{background:var(--primary-hover)}.tech-action-btn.complete{background:var(--success);color:var(--on-accent)}.tech-action-btn.complete:hover{background:var(--success-hover)}.tech-action-btn:disabled{opacity:.6;cursor:not-allowed}.tech-offline-section{margin-top:1.5rem}.tech-offline-section h3{font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.tech-offline-list{display:flex;flex-direction:column;gap:.3rem}.tech-offline-list .tech-name{font-size:.85rem}.tech-offline-list .tech-last-seen{font-size:.78rem}.dashboard h2{margin-bottom:.5rem}.dashboard-controls{margin-bottom:1rem}.dashboard-controls label{font-size:.85rem;color:var(--text-muted)}.dashboard-controls input{margin-left:.5rem;padding:.25rem .5rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.85rem}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:1.5rem}.metric-card{border-radius:8px;padding:1rem;text-align:center;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:.25rem}.metric-completed{background:var(--success-soft);border-color:var(--success-soft-strong);color:var(--success-hover)}.metric-incomplete{background:var(--danger-soft);border-color:var(--danger-soft-strong);color:var(--danger-hover)}.metric-progress{background:var(--primary-soft);border-color:var(--primary-soft-strong);color:var(--primary-deep)}.metric-value{font-size:2rem;font-weight:700}.metric-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.dashboard-section{margin-bottom:1.5rem}.dashboard-section h3{font-size:.95rem;margin-bottom:.5rem;color:var(--text)}.sync-queue-bar,.hs-sync-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;background:var(--surface-subtle);border-radius:6px;border:1px solid var(--border)}.sq-item,.hs-sync-item{font-size:.82rem;color:var(--text-secondary)}.sq-pending strong{color:var(--warning)}.sq-processing strong{color:var(--primary)}.sq-completed strong{color:var(--success)}.sq-failed strong{color:var(--danger-hover)}.sq-age{color:var(--text-muted)}.hs-warning{color:var(--danger-hover);font-weight:600}.sq-action-btn,.hs-sync-btn{display:flex;align-items:center;gap:.3rem;padding:.35rem .7rem;border:none;border-radius:4px;font-size:.8rem;font-weight:600;cursor:pointer;margin-left:auto}.sq-action-btn{background:var(--accent-purple);color:var(--on-accent)}.sq-action-btn:hover{background:var(--accent-purple-hover)}.sq-action-btn:disabled{opacity:.5;cursor:not-allowed}.hs-sync-btn{background:var(--primary);color:var(--on-accent)}.hs-sync-btn:hover{background:var(--primary-hover)}.hs-sync-btn:disabled{opacity:.5;cursor:not-allowed}.sync-warning{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;padding:.4rem .75rem;background:var(--danger-soft);border:1px solid var(--danger-soft-strong);border-radius:4px;font-size:.8rem;color:var(--danger-hover)}.completion-bar{position:relative;width:100px;height:18px;background:var(--border);border-radius:9px;overflow:hidden}.completion-fill{position:absolute;top:0;left:0;height:100%;background:var(--success);transition:width .3s}.completion-bar span{position:relative;z-index:1;font-size:.72rem;font-weight:600;color:var(--text);display:flex;align-items:center;justify-content:center;height:100%}.filter-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:.5rem 1rem;position:relative;z-index:10}.filter-chips{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.filter-chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--primary-soft);border:1px solid var(--primary-soft-border);color:var(--primary-strong);border-radius:16px;padding:.2rem .6rem;font-size:.8rem;font-weight:500}.filter-chip-locked{background:var(--accent-orange-soft);border-color:var(--accent-orange-soft-strong);color:var(--accent-orange-hover)}.filter-chip-remove{background:none;border:none;color:inherit;cursor:pointer;padding:0;display:flex;align-items:center;opacity:.6}.filter-chip-remove:hover{opacity:1}.filter-add-btn{display:inline-flex;align-items:center;gap:.3rem;background:var(--text);color:var(--on-accent);border:none;border-radius:6px;padding:.3rem .7rem;font-size:.8rem;cursor:pointer;font-weight:500}.filter-add-btn:hover{background:var(--text-secondary)}.filter-match-count{font-size:.8rem;color:var(--text-muted);font-weight:600;margin-left:.5rem}.filter-save-btn{display:inline-flex;align-items:center;gap:.3rem;background:var(--surface-subtle);border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:6px;padding:.3rem .6rem;font-size:.8rem;cursor:pointer}.filter-save-btn:hover{background:var(--surface-sunken)}.filter-saved-dropdown{position:relative;display:inline-block}.filter-saved-btn{background:var(--surface-subtle);border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:6px;padding:.3rem .6rem;font-size:.8rem;cursor:pointer}.filter-saved-btn:hover{background:var(--surface-sunken)}.filter-dropdown-menu{position:absolute;top:100%;left:0;margin-top:.25rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #0000001a;min-width:180px;z-index:100}.filter-dropdown-item{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;font-size:.8rem;cursor:pointer;text-align:left;color:var(--text)}.filter-dropdown-item:hover{background:var(--surface-subtle)}.filter-dropdown-load{flex:1;background:none;border:none;padding:.5rem .75rem;font-size:.8rem;cursor:pointer;text-align:left;color:var(--text)}.filter-dropdown-load:hover{background:var(--surface-sunken)}.filter-dropdown-edit{background:none;border:none;padding:.5rem;cursor:pointer;color:var(--text-muted);display:flex;align-items:center}.filter-dropdown-edit:hover{color:var(--primary)}.filter-shared-tag{font-size:.65rem;background:var(--surface-sunken);color:var(--text-muted);border-radius:4px;margin-left:.5rem;padding:.1rem .3rem}.filter-excluded-count{color:var(--danger);font-weight:400}.filter-save-actions{display:flex;gap:.5rem}.filter-update-btn{background:var(--primary);color:var(--on-accent);border:none;padding:.4rem .8rem;border-radius:4px;font-size:.8rem;cursor:pointer}.filter-update-btn:hover{background:var(--primary-deep)}.filter-update-btn:disabled{opacity:.5;cursor:not-allowed}.filter-builder{margin-top:.5rem;background:var(--surface-subtle);border:1px solid var(--border);border-radius:8px;padding:.75rem}.filter-builder-row{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.filter-builder-row label{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:var(--text-muted);font-weight:600}.filter-builder-row select,.filter-builder-row input{padding:.3rem .5rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.85rem;min-width:140px}.filter-builder-add{display:inline-flex;align-items:center;gap:.3rem;background:var(--success);color:var(--on-accent);border:none;border-radius:6px;padding:.35rem .7rem;font-size:.8rem;cursor:pointer;font-weight:500}.filter-builder-add:disabled{opacity:.5;cursor:not-allowed}.filter-builder-add:not(:disabled):hover{background:var(--success-bright)}.filter-save-panel{margin-top:.5rem;background:var(--surface-subtle);border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.filter-save-panel input[type=text]{padding:.3rem .5rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.85rem;flex:1;min-width:150px}.filter-save-shared{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--text-secondary)}.filter-save-panel button{background:var(--success);color:var(--on-accent);border:none;border-radius:6px;padding:.3rem .8rem;font-size:.8rem;cursor:pointer;font-weight:500}.filter-save-panel button:disabled{opacity:.5}.filter-save-panel button:not(:disabled):hover{background:var(--success-bright)}.admin-page{padding:1rem}.admin-header{margin-bottom:1.5rem}.admin-header h2{margin-bottom:.25rem}.admin-header .muted{font-size:.85rem;color:var(--text-muted);margin-bottom:1rem}.admin-add-btn{display:inline-flex;align-items:center;gap:.3rem;background:var(--text);color:var(--on-accent);border:none;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;cursor:pointer;font-weight:500}.admin-add-btn:hover{background:var(--text-secondary)}.admin-create-panel{background:var(--surface-subtle);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1.5rem;display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.admin-create-panel h3{width:100%;margin-bottom:.5rem;font-size:.95rem}.admin-create-panel label{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:var(--text-muted);font-weight:600}.admin-create-panel input,.admin-create-panel select{padding:.35rem .5rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.85rem;min-width:130px}.admin-create-panel button{background:var(--success);color:var(--on-accent);border:none;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;cursor:pointer;font-weight:500}.admin-create-panel button:disabled{opacity:.5}.admin-create-panel button:not(:disabled):hover{background:var(--success-bright)}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--border);color:var(--text-secondary);font-weight:600}.admin-table td{padding:.6rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle}.admin-toggle{display:inline-flex;align-items:center;gap:.25rem;border:1px solid;border-radius:16px;padding:.2rem .6rem;font-size:.78rem;cursor:pointer;font-weight:500}.admin-toggle.on{background:var(--success-soft-border);border-color:var(--success-soft-strong);color:var(--success-deepest)}.admin-toggle.off{background:var(--danger-soft-border);border-color:var(--danger-soft-strong);color:var(--danger-deepest)}.admin-delete-btn{background:none;border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;cursor:pointer;color:var(--danger);display:inline-flex;align-items:center}.admin-delete-btn:hover{background:var(--danger-soft);border-color:var(--danger-soft-strong)}.admin-row-actions{display:flex;gap:.3rem}.admin-edit-btn{background:none;border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;cursor:pointer;color:var(--text-muted);display:inline-flex;align-items:center}.admin-edit-btn:hover{background:var(--primary-soft);border-color:var(--primary-soft-strong);color:var(--primary)}.admin-create-actions{display:flex;gap:.5rem}.fb-form-group{margin-bottom:1.5rem;padding:1rem;background:var(--surface);border-radius:8px;border:1px solid var(--border)}.fb-form-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.fb-form-group-header h3{margin:0}.fb-form-group-actions{display:flex;gap:.5rem}.fb-def-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-radius:6px;margin-bottom:.25rem}.fb-def-published{background:var(--success-soft);border:1px solid var(--success-soft-border)}.fb-def-draft{background:var(--accent-orange-soft);border:1px solid var(--accent-orange-soft-border)}.fb-def-info{display:flex;align-items:center;gap:.5rem}.fb-def-status{font-weight:600;font-size:.85rem}.fb-def-version{font-size:.8rem;color:var(--text-muted)}.fb-def-actions{display:flex;gap:.5rem}.fb-empty{padding:.5rem 0}.fb-edit-btn,.fb-publish-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .6rem;border-radius:6px;font-size:.85rem;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer}.fb-edit-btn:hover{background:var(--surface-sunken)}.fb-publish-btn{border-color:var(--success);color:var(--success);font-weight:600}.fb-publish-btn:hover{background:var(--success-soft)}.fb-publish-btn:disabled{opacity:.5;cursor:default}.fb-editor-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.fb-back-btn{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;cursor:pointer;color:var(--primary);font-size:.9rem}.fb-back-btn:hover{text-decoration:underline}.fb-editor-meta{display:flex;align-items:center;gap:.75rem;flex:1}.fb-status-badge{padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase}.fb-status-published{background:var(--success-soft-border);color:var(--success-deepest)}.fb-status-draft{background:var(--accent-orange-soft-border);color:var(--warning-text-deep)}.fb-status-archived{background:var(--border);color:var(--text-secondary)}.fb-json-toggle{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .6rem;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;font-size:.85rem}.fb-json-toggle:hover{background:var(--surface-sunken)}.fb-three-pane{display:grid;grid-template-columns:180px 1fr 320px;gap:1rem;min-height:600px}.fb-palette{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem}.fb-palette h4{font-size:.8rem;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.fb-palette-item{display:flex;align-items:center;gap:.25rem;width:100%;padding:.4rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;font-size:.85rem;margin-bottom:.25rem}.fb-palette-item:hover{background:var(--surface-sunken);border-color:var(--primary)}.fb-palette-divider{border:none;border-top:1px solid var(--border);margin:.75rem 0}.fb-canvas{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow-y:auto}.fb-canvas-section{margin-bottom:1rem}.fb-canvas-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.fb-section-title-input{font-size:1rem;font-weight:600;border:1px solid transparent;background:transparent;padding:.25rem;border-radius:4px;flex:1}.fb-section-title-input:focus{border-color:var(--primary);outline:none;background:var(--surface)}.fb-canvas-subtitle{font-size:.85rem;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.fb-canvas-field{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;margin-bottom:.25rem;cursor:pointer}.fb-canvas-field:hover{background:var(--surface-subtle)}.fb-canvas-field.selected{border-color:var(--primary);background:var(--primary-soft)}.fb-canvas-field-info{flex:1;display:flex;align-items:center;gap:.5rem}.fb-canvas-field-label{font-weight:500;font-size:.9rem}.fb-canvas-field-kind{font-size:.75rem;padding:.1rem .4rem;border-radius:4px;background:var(--surface-sunken);color:var(--text-secondary)}.fb-canvas-field-type{font-size:.75rem;color:var(--text-muted)}.fb-canvas-empty{padding:.5rem;font-size:.85rem}.fb-delete-btn{background:none;border:none;cursor:pointer;color:var(--danger);padding:.2rem;opacity:.5}.fb-delete-btn:hover{opacity:1}.fb-delete-btn:disabled{opacity:.3;cursor:default}.fb-inspector{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow-y:auto}.fb-inspector-empty{padding:1rem;text-align:center}.fb-inspector-content h4{margin-bottom:.75rem;font-size:.9rem}.fb-inspector-field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.fb-inspector-label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.fb-inspector-input,.fb-inspector select,.fb-inspector input[type=text],.fb-inspector input[type=number]{padding:.4rem .5rem;border:1px solid var(--border-strong);border-radius:6px;font-size:.85rem}.fb-inspector-input:focus,.fb-inspector select:focus{border-color:var(--primary);outline:none}.fb-inspector-textarea{padding:.4rem .5rem;border:1px solid var(--border-strong);border-radius:6px;font-size:.85rem;min-height:60px;resize:vertical;font-family:inherit}.fb-expr-error{border-color:var(--danger)!important}.fb-expr-error-msg{font-size:.75rem;color:var(--danger)}.fb-json-editor{width:100%;min-height:600px;padding:1rem;border:1px solid var(--border-strong);border-radius:8px;font-family:SF Mono,Fira Code,monospace;font-size:.85rem;line-height:1.5;resize:vertical}.fb-save-json-btn{padding:.4rem 1rem;border-radius:6px;border:1px solid var(--success);background:var(--success);color:var(--on-accent);cursor:pointer;font-weight:600}.fb-save-json-btn:hover{background:var(--success-hover)}.fb-editor-actions{display:flex;gap:.5rem;align-items:center}.fb-save-as-btn{display:flex;align-items:center;gap:.3rem;padding:.35rem .7rem;border-radius:6px;border:1px solid var(--primary);background:var(--surface);color:var(--primary);cursor:pointer;font-size:.85rem;font-weight:600}.fb-save-as-btn:hover{background:var(--primary-soft)}.fb-save-as-btn:disabled{opacity:.5;cursor:not-allowed}.fb-clone-edit-btn{display:flex;align-items:center;gap:.3rem;padding:.35rem .7rem;border-radius:6px;border:1px solid var(--accent-purple);background:var(--accent-purple-soft);color:var(--accent-purple);cursor:pointer;font-size:.85rem;font-weight:600}.fb-clone-edit-btn:hover{background:var(--accent-purple-soft-border)}.fb-clone-edit-btn:disabled{opacity:.5;cursor:not-allowed}.fb-test-tab{padding:0}.fb-test-layout{display:grid;grid-template-columns:260px 1fr;gap:1rem;min-height:700px}.fb-test-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow-y:auto;max-height:750px}.fb-test-sidebar h4{font-size:.85rem;margin-bottom:.5rem;color:var(--text-secondary)}.fb-test-scenario-desc{font-size:.8rem;line-height:1.4;margin-bottom:.75rem}.fb-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.fb-modal{background:var(--surface);border-radius:12px;padding:1.5rem;width:420px;max-width:90vw;box-shadow:0 8px 30px #00000026}.fb-modal h3{margin:0 0 .5rem}.fb-modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.fb-ds-warning-banner{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;background:var(--accent-orange-soft);border:1px solid var(--warning);border-radius:8px;margin-bottom:1rem}.fb-ds-warning-banner ul{margin:.25rem 0 0;padding-left:1.2rem;font-size:.85rem;color:var(--warning-text-deep)}.fb-ds-warning-banner strong{color:var(--warning-text-deep)}.fb-warning-dismiss{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--warning);margin-left:auto}.fb-header-actions{margin-left:auto}.fb-mini-btn{font-size:.75rem;padding:.2rem .5rem}.fb-form-table{display:flex;flex-direction:column;gap:0}.fb-form-table-header{display:grid;grid-template-columns:1fr 140px 100px 100px 160px;gap:.5rem;padding:.5rem .75rem;font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--text-muted);border-bottom:2px solid var(--border)}.fb-form-table-group{border-bottom:1px solid var(--border)}.fb-form-table-group-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--surface-subtle)}.fb-form-name{font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:.4rem}.fb-required-badge{font-size:.6rem;padding:.1rem .3rem;border-radius:3px;background:var(--danger-soft-border);color:var(--danger-hover);text-transform:uppercase;font-weight:700}.fb-form-table-row{display:grid;grid-template-columns:1fr 140px 100px 100px 160px;gap:.5rem;padding:.4rem .75rem;align-items:center;font-size:.85rem}.fb-row-published{background:var(--success-soft)}.fb-row-draft{background:var(--warning-soft-subtle)}.fb-row-status{display:flex;align-items:center;gap:.3rem}.fb-row-dest{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--text-secondary)}.fb-row-edited{font-size:.8rem}.fb-row-actions{display:flex;gap:.25rem}.fb-icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-strong);border-radius:5px;background:var(--surface);cursor:pointer;color:var(--text-secondary)}.fb-icon-btn:hover{background:var(--surface-sunken)}.fb-icon-btn:disabled{opacity:.4;cursor:not-allowed}.fb-icon-publish{border-color:var(--primary);color:var(--primary)}.fb-icon-publish:hover{background:var(--primary-soft)}.fb-icon-danger{border-color:var(--danger);color:var(--danger)}.fb-icon-danger:hover{background:var(--danger-soft)}.fb-archived-section{border-top:1px dashed var(--border-strong);margin-top:2px}.fb-row-archived{background:var(--surface-subtle);opacity:.75}.fb-icon-restore{border-color:var(--accent-purple);color:var(--accent-purple)}.fb-icon-restore:hover{background:var(--accent-purple-soft)}.fb-readonly-badge{font-size:.75rem;padding:.15rem .4rem;border-radius:4px;background:var(--surface-sunken);color:var(--text-secondary);font-weight:600}.fb-readonly-notice{font-size:.75rem;padding:.4rem .5rem;background:var(--surface-sunken);border-radius:5px;color:var(--text-secondary);margin-bottom:.5rem;text-align:center}.form-tester-page{padding:0}.ft-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.ft-badge{padding:.2rem .6rem;border-radius:4px;background:var(--warning-soft);color:var(--warning-text);font-size:.75rem;font-weight:700;text-transform:uppercase}.ft-layout{display:grid;grid-template-columns:220px 400px 1fr;gap:1rem;min-height:700px}.ft-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem}.ft-sidebar h3{font-size:1rem;margin-bottom:.5rem}.ft-sidebar-desc{font-size:.8rem;color:var(--text-muted);margin-bottom:.75rem;line-height:1.4}.ft-scenario-btn{display:block;width:100%;text-align:left;padding:.5rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;margin-bottom:.25rem}.ft-scenario-btn:hover{background:var(--surface-sunken);border-color:var(--primary)}.ft-scenario-btn.active{border-color:var(--primary);background:var(--primary-soft)}.ft-scenario-label{font-weight:600;font-size:.85rem}.ft-scenario-form{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.ft-phone-wrapper{display:flex;justify-content:center;align-items:flex-start}.ft-phone-frame{width:375px;height:750px;background:var(--text-strong);border-radius:40px;padding:12px;box-shadow:0 8px 32px #0003;position:relative;overflow:hidden}.ft-phone-notch{position:absolute;top:0;left:50%;transform:translate(-50%);width:150px;height:24px;background:var(--text-strong);border-radius:0 0 16px 16px;z-index:10}.ft-phone-screen{width:100%;height:100%;background:var(--surface-subtle);border-radius:28px;overflow:hidden;display:flex;flex-direction:column}.ft-phone-statusbar{display:flex;justify-content:space-between;align-items:center;padding:14px 20px 4px;font-size:.75rem;color:var(--text);background:var(--surface)}.ft-phone-appbar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.ft-phone-back{font-size:1.5rem;color:var(--primary);cursor:pointer}.ft-phone-title{font-size:1rem;font-weight:600;color:var(--text-strong)}.ft-inspector{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow-y:auto;max-height:750px}.ft-inspector h3{font-size:1rem;margin-bottom:.5rem}.ft-inspector h4{font-size:.85rem;margin-top:.75rem;margin-bottom:.4rem;color:var(--text-secondary)}.ft-scenario-info{margin-bottom:.75rem}.ft-info-row{font-size:.85rem;margin-bottom:.25rem}.ft-info-row strong{color:var(--text)}.ft-expected-list{list-style:disc;padding-left:1.2rem;font-size:.85rem;line-height:1.5}.ft-expected-list li{margin-bottom:.2rem}.ft-context-json,.ft-submit-json{font-family:SF Mono,Fira Code,monospace;font-size:.75rem;line-height:1.4;background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;padding:.5rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.ft-submit-json{border-color:var(--success-soft-border);background:var(--success-soft)}.wdf-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.wdf-scroll{flex:1;overflow-y:auto;padding:0}.wdf-section{margin-bottom:8px}.wdf-section-header{font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--text-muted);padding:12px 16px 4px;background:var(--surface-subtle)}.wdf-display-field{padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--surface-sunken)}.wdf-display-label{font-size:.7rem;font-weight:600;color:var(--text-faint);text-transform:uppercase;margin-bottom:2px}.wdf-display-value{font-size:.9rem;font-weight:500}.wdf-input-field{padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--surface-sunken)}.wdf-field-label{display:block;font-size:.9rem;font-weight:700;color:var(--text-strong);margin-bottom:6px}.wdf-required{color:var(--danger);margin-left:2px}.wdf-text-input,.wdf-select{width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:8px;font-size:16px;color:var(--text-strong);background:var(--surface);box-sizing:border-box}.wdf-text-input:focus,.wdf-select:focus{border-color:var(--primary);outline:none}.wdf-text-input.error{border-color:var(--danger)}.wdf-textarea{width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:8px;font-size:16px;color:var(--text-strong);background:var(--surface);min-height:80px;resize:vertical;font-family:inherit;box-sizing:border-box}.wdf-textarea.error{border-color:var(--danger)}.wdf-char-count{font-size:.7rem;color:var(--text-faint);text-align:right;margin-top:2px}.wdf-field-error{font-size:.8rem;color:var(--danger);margin-top:4px}.wdf-field-hint{font-size:.75rem;color:var(--warning);margin-top:4px;font-style:italic}.wdf-segmented-row{display:flex;gap:8px}.wdf-segmented-option{flex:1;padding:12px;border-radius:8px;border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;font-size:.9rem;font-weight:600;color:var(--text-muted);text-align:center}.wdf-segmented-option.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.wdf-checkbox-group{display:flex;flex-direction:column;gap:6px}.wdf-checkbox-row{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer}.wdf-checkbox-row input{width:20px;height:20px;accent-color:var(--primary)}.wdf-quick-values{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.wdf-quick-value-chip{padding:4px 12px;border:1px solid var(--border-strong);border-radius:16px;background:var(--surface-sunken);cursor:pointer;font-size:.8rem;color:var(--primary)}.wdf-quick-value-chip:hover{background:var(--primary-soft);border-color:var(--primary)}.wdf-computed-field{padding:10px 16px;background:var(--surface-subtle);border-bottom:1px solid var(--surface-sunken)}.wdf-photo-placeholder{border:2px dashed var(--border-strong);border-radius:8px;padding:24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.wdf-photo-icon{font-size:2rem}.wdf-photo-contexts{font-size:.75rem;color:var(--text-muted)}.wdf-note-field{padding:12px 16px;font-size:.85rem;color:var(--text-secondary);background:var(--accent-orange-soft);border-bottom:1px solid var(--surface-sunken)}.wdf-divider{border:none;border-top:1px solid var(--border);margin:8px 16px}.wdf-submit-bar{padding:12px 16px;background:var(--surface);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.wdf-error-summary{font-size:.8rem;color:var(--danger);text-align:center}.wdf-submit-btn{padding:14px;border-radius:12px;border:none;background:var(--success);color:var(--on-accent);font-size:1.1rem;font-weight:700;cursor:pointer}.wdf-submit-btn:hover{background:var(--success-hover)}.wdf-submit-btn:disabled{opacity:.6;cursor:default}.wdf-popup-toast{position:absolute;bottom:80px;left:16px;right:16px;display:flex;align-items:flex-start;gap:8px;padding:12px;border-radius:8px;border-left:4px solid;z-index:100;animation:wdf-slide-up .3s ease}@keyframes wdf-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.wdf-popup-icon{font-size:1.2rem;flex-shrink:0}.wdf-popup-content{flex:1}.wdf-popup-title{font-weight:700;font-size:.9rem;margin-bottom:2px}.wdf-popup-message{font-size:.8rem;line-height:1.4}.wdf-popup-dismiss{background:none;border:none;font-size:1.2rem;cursor:pointer;opacity:.6;padding:0}.wdf-popup-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}.wdf-popup-modal{background:var(--surface);border-radius:12px;border-top:4px solid;max-width:320px;width:100%;overflow:hidden}.wdf-popup-modal-header{display:flex;align-items:center;gap:8px;padding:12px 16px}.wdf-popup-modal-body{padding:16px}.wdf-popup-modal-body p{font-size:.85rem;line-height:1.5;color:var(--text);margin:0}.wdf-popup-blocking{font-size:.8rem;color:var(--danger);margin-top:8px;font-weight:600}.wdf-popup-modal-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}.wdf-popup-btn{padding:8px 20px;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;font-size:.9rem;font-weight:600}.wdf-popup-btn:hover{background:var(--surface-sunken)}.setup-back-btn{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--text-secondary);background:none;border:none;cursor:pointer;padding:.25rem 0;margin-bottom:.5rem;transition:color .1s}.setup-back-btn:hover{color:var(--success-hover)}.setup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:1rem}.setup-card{display:flex;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.setup-card:hover{border-color:var(--success-soft-strong);box-shadow:0 2px 8px #0000000f}.setup-card-icon{color:var(--success-hover);flex-shrink:0}.setup-card-label{font-weight:600;font-size:.95rem;margin-bottom:.25rem}.setup-card-desc{font-size:.8rem;color:var(--text-muted);line-height:1.4}.perm-table-wrapper{overflow-x:auto;margin-top:1rem;background:var(--surface);border:1px solid var(--border);border-radius:8px}.perm-table{width:100%;border-collapse:collapse}.perm-table th{text-align:left;padding:.6rem .75rem;border-bottom:2px solid var(--border);font-size:.85rem;color:var(--text-secondary)}.perm-role-header{text-align:center;width:100px}.perm-table td{padding:.5rem .75rem;border-bottom:1px solid var(--surface-sunken)}.perm-group-row td{background:var(--surface-subtle);font-weight:600;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:.4rem .75rem}.perm-module-label{font-size:.9rem}.perm-cell{text-align:center}.perm-cell input[type=checkbox]{width:18px;height:18px;cursor:pointer}.perm-cell input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.perm-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1rem}.logs-page{display:flex;flex-direction:column;gap:1rem}.logs-stats-row{display:flex;gap:.75rem;flex-wrap:wrap}.logs-stat-card{flex:1;min-width:180px;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;transition:border-color .15s}.logs-stat-card:hover{border-color:var(--border-strong)}.logs-stat-card.active{border-color:var(--primary);background:var(--primary-soft)}.logs-stat-label{font-weight:600;font-size:.85rem;margin-bottom:.3rem}.logs-stat-counts{display:flex;gap:.75rem;font-size:.75rem}.logs-stat-error{color:var(--danger)}.logs-stat-warn{color:var(--warning)}.logs-stat-info{color:var(--primary)}.logs-filters{display:flex;gap:.5rem;flex-wrap:wrap}.logs-filters select,.logs-filters input{padding:.35rem .5rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.85rem}.logs-filters input{flex:1;min-width:120px}.logs-layout{display:grid;grid-template-columns:1fr 400px;gap:1rem;min-height:500px}.logs-list{display:flex;flex-direction:column;gap:.25rem;max-height:700px;overflow-y:auto}.log-entry{display:flex;gap:.5rem;padding:.6rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;transition:border-color .1s}.log-entry:hover{border-color:var(--border-strong)}.log-entry.selected{border-color:var(--primary);background:var(--primary-soft)}.log-entry-level{flex-shrink:0;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center}.log-entry-body{flex:1;min-width:0}.log-entry-header{display:flex;gap:.5rem;align-items:center;margin-bottom:.15rem}.log-entry-category{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.log-entry-event{font-size:.75rem;color:var(--text-muted)}.log-entry-resolved{font-size:.7rem;color:var(--success);display:flex;align-items:center;gap:.15rem}.log-entry-message{font-size:.85rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-entry-meta{font-size:.7rem;color:var(--text-faint);display:flex;gap:.4rem;margin-top:.15rem}.logs-detail{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem;overflow-y:auto;max-height:700px}.logs-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.logs-detail-header h3{margin:0;font-size:1rem}.log-level-badge{font-size:.7rem;padding:.15rem .5rem;border-radius:4px;font-weight:600;text-transform:uppercase}.log-level-info{background:var(--primary-soft);color:var(--primary)}.log-level-warn{background:var(--accent-orange-soft);color:var(--warning)}.log-level-error{background:var(--danger-soft);color:var(--danger)}.logs-detail-event{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.logs-detail-message{font-size:.9rem;line-height:1.5;margin-bottom:1rem}.logs-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem}.logs-detail-field{font-size:.8rem;color:var(--text-secondary)}.logs-detail-field strong{color:var(--text)}.logs-metadata-json{background:var(--surface-subtle);border:1px solid var(--border);border-radius:4px;padding:.75rem;font-size:.75rem;overflow-x:auto;max-height:300px}.logs-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;padding:.75rem}.logs-pagination button{padding:.3rem .8rem;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);cursor:pointer;font-size:.85rem}.logs-pagination button:disabled{opacity:.5;cursor:not-allowed}.training-page{display:flex;flex-direction:column;gap:1rem}.training-upload-form{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.6rem}.training-upload-form h3{margin:0 0 .25rem;font-size:.95rem}.training-form-row{display:flex;gap:.5rem}.training-input{flex:1;padding:.4rem .6rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.9rem}.training-folder-input{max-width:200px}.training-textarea{width:100%;padding:.4rem .6rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.9rem;resize:vertical;font-family:inherit}.training-file-input{font-size:.85rem}.training-form-actions{display:flex;gap:.5rem;align-items:center}.training-cancel-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .75rem;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);cursor:pointer;font-size:.85rem;color:var(--text-secondary)}.training-cancel-btn:hover{background:var(--surface-sunken)}.training-folders{display:flex;flex-direction:column;gap:.5rem}.training-folder{border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden}.training-folder-header{display:flex;align-items:center;gap:.4rem;padding:.6rem .75rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;font-size:.9rem;color:var(--text)}.training-folder-header:hover{background:var(--surface-subtle)}.training-folder-name{flex:1}.training-folder-count{font-size:.75rem;color:var(--text-faint);font-weight:400}.training-folder-body{border-top:1px solid var(--surface-sunken);padding:.5rem;display:flex;flex-direction:column;gap:.4rem}.training-doc-group{border:1px solid var(--surface-sunken);border-radius:6px;padding:.6rem}.training-doc-header{display:flex;align-items:center;gap:.4rem;cursor:pointer;-webkit-user-select:none;user-select:none}.training-doc-title{font-weight:600;font-size:.9rem;flex:1}.training-doc-version{font-size:.7rem;padding:.1rem .4rem;border-radius:3px;background:var(--accent-teal-soft);color:var(--accent-teal);font-weight:600}.training-doc-date{font-size:.7rem;color:var(--text-faint)}.training-doc-actions{display:flex;gap:.5rem;margin-top:.4rem;padding-left:1.4rem;flex-wrap:wrap}.training-action-btn{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:4px;padding:.2rem .5rem;cursor:pointer;text-decoration:none}.training-action-btn:hover{background:var(--surface-sunken)}.training-archive-btn:hover{color:var(--danger);border-color:var(--danger-soft-border)}.training-doc-desc{font-size:.8rem;color:var(--text-muted);margin-top:.4rem;padding-left:1.4rem;line-height:1.4}.training-edit-form,.training-version-upload{margin-top:.5rem;padding:.6rem;background:var(--surface-subtle);border-radius:6px;display:flex;flex-direction:column;gap:.4rem}.training-version-history{margin-top:.5rem;padding-left:1.4rem}.training-version-table{width:100%;font-size:.8rem;border-collapse:collapse}.training-version-table th{text-align:left;padding:.3rem .5rem;border-bottom:1px solid var(--border);color:var(--text-muted);font-weight:600}.training-version-table td{padding:.3rem .5rem;border-bottom:1px solid var(--surface-sunken)}.training-version-filename{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-status-badge{font-size:.65rem;padding:.1rem .35rem;border-radius:3px;font-weight:600;text-transform:uppercase}.training-status-active{background:var(--accent-teal-soft);color:var(--accent-teal)}.training-status-archived{background:var(--accent-orange-soft);color:var(--warning)}.training-meta-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.4rem;padding-left:1.4rem}.training-meta-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;color:var(--text-secondary);background:var(--surface-sunken);border-radius:3px;padding:.1rem .4rem}.training-meta-parsed{color:var(--text-muted);background:var(--surface-subtle)}.training-text-preview{font-size:.75rem;color:var(--text-faint);margin-top:.3rem;padding-left:1.4rem;line-height:1.4;font-style:italic;max-height:3rem;overflow:hidden}.sync-stats-section{margin-top:1rem;margin-bottom:1.5rem}.sync-stats-title{font-size:.95rem;font-weight:600;color:var(--text);margin:0 0 .6rem}.sync-stats-row{display:flex;gap:.75rem;flex-wrap:wrap}.sync-stat-card{display:flex;gap:.6rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);min-width:220px}.sync-stat-icon{color:var(--success-hover);flex-shrink:0;display:flex;align-items:center}.sync-stat-label{font-weight:600;font-size:.85rem;color:var(--text)}.sync-stat-total{font-size:1.1rem;font-weight:700;color:var(--success-hover);margin:.1rem 0}.sync-stat-synced{font-size:.7rem;color:var(--text-faint)}.sync-queue-section{margin-top:.75rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface-subtle)}.sync-queue-title{font-size:.8rem;font-weight:600;color:var(--text-secondary);margin:0 0 .4rem}.sync-queue-stats{display:flex;gap:.6rem;flex-wrap:wrap}.sync-queue-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;padding:.15rem .5rem;border-radius:4px;font-weight:600}.sync-queue-pending{background:var(--accent-orange-soft);color:var(--warning)}.sync-queue-completed{background:var(--accent-teal-soft);color:var(--accent-teal)}.sync-queue-failed{background:var(--danger-soft);color:var(--danger)}.field-map-sources{margin-top:1.5rem}.field-map-group{margin-top:.75rem;border:1px solid var(--border);border-radius:6px;overflow:hidden}.field-map-group-header{display:flex;align-items:center;width:100%;padding:.6rem .8rem;background:var(--surface-subtle);border:none;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--text);text-align:left;transition:background .1s}.field-map-group-header:hover{background:var(--surface-sunken)}.field-map-group-chevron{display:inline-flex;margin-right:.3rem;color:var(--text-muted)}.field-map-group-title{text-transform:capitalize}.field-map-group-counts{margin-left:auto;display:flex;gap:.5rem}.field-map-count-mapped{font-size:.75rem;font-weight:500;color:var(--success-hover);background:var(--success-soft);padding:.1rem .4rem;border-radius:3px}.field-map-count-unmapped{font-size:.75rem;font-weight:500;color:var(--accent-orange-hover);background:var(--accent-orange-soft);padding:.1rem .4rem;border-radius:3px}.field-map-group-body{padding:0;border-top:1px solid var(--border)}.field-map-group-body .admin-table{margin:0}.unmapped-row{background:var(--surface-subtle)}.unmapped-row td{color:var(--text-faint)}.field-map-tabs{display:flex;align-items:center;gap:.5rem;margin-top:1.5rem;border-bottom:2px solid var(--border);padding-bottom:0}.field-map-tab{padding:.5rem 1rem;font-size:.85rem;font-weight:600;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .1s,border-color .1s}.field-map-tab:hover{color:var(--text)}.field-map-tab.active{color:var(--primary-strong);border-bottom-color:var(--primary-strong)}.field-map-tab-refresh{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;padding:.3rem .7rem;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface-subtle);color:var(--text-secondary);cursor:pointer;transition:background .1s}.field-map-tab-refresh:hover:not(:disabled){background:var(--surface-sunken)}.field-map-tab-refresh:disabled{opacity:.6;cursor:not-allowed}.property-browser-section{margin-top:1rem}.property-object-selector{display:flex;gap:.5rem;margin-bottom:1rem}.property-object-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .9rem;font-size:.85rem;font-weight:500;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .1s}.property-object-btn:hover{background:var(--surface-subtle)}.property-object-btn.active{background:var(--primary-soft);border-color:var(--primary-strong);color:var(--primary-strong)}.property-browser{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1rem}.property-browser-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.property-search{display:flex;align-items:center;gap:.3rem}.property-search input{padding:.3rem .6rem;font-size:.85rem;border:1px solid var(--border-strong);border-radius:4px;width:220px}.property-filter-toggle{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--text-secondary);cursor:pointer}.property-actions{display:flex;gap:.3rem}.btn-sm{font-size:.75rem;padding:.2rem .6rem;border:1px solid var(--border-strong);border-radius:3px;background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .1s}.btn-sm:hover:not(:disabled){background:var(--surface-sunken)}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.btn-sm.btn-primary{background:var(--primary-strong);color:var(--on-accent);border-color:var(--primary-strong)}.btn-sm.btn-primary:hover:not(:disabled){background:var(--primary-deep)}.btn-sm.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--danger-bright)}.btn-sm.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.sync-trigger-btn{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;padding:.25rem .6rem;border:1px solid var(--success-hover);border-radius:4px;background:var(--success-soft);color:var(--success-hover);cursor:pointer;margin-top:.3rem;transition:background .1s}.sync-trigger-btn:hover:not(:disabled){background:var(--success-soft-border)}.sync-trigger-btn:disabled{opacity:.6;cursor:not-allowed}.sync-stat-result{font-size:.7rem;color:var(--accent-teal);margin-top:.2rem}.sync-stat-error{font-size:.7rem;color:var(--danger);margin-top:.2rem;word-break:break-word}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.info-fields-layout-section{margin-top:1rem}.info-fields-layout{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1.5rem}.info-fields-list{display:flex;flex-direction:column;gap:.5rem}.info-field-row{display:flex;align-items:center;gap:1rem;padding:.6rem .8rem;border:1px solid var(--border);border-radius:4px;background:var(--surface);transition:border-color .1s,background .1s}.info-field-row:hover{border-color:var(--border-strong)}.info-field-row.info-field-title{border-color:var(--primary-strong);background:var(--primary-soft)}.info-field-row.info-field-highlighted{border-color:var(--warning);background:var(--highlight-bg)}.info-field-row.info-field-title.info-field-highlighted{border-color:var(--primary-strong);background:var(--primary-soft)}.info-field-order{display:flex;align-items:center;gap:.3rem;min-width:80px}.info-field-position{font-size:.75rem;font-weight:600;color:var(--text-muted);min-width:20px;text-align:center}.info-field-name{display:flex;flex-direction:column;gap:.1rem;flex:1}.info-field-name code{font-size:.8rem;color:var(--text)}.info-field-label{font-size:.75rem;color:var(--text-muted)}.info-field-controls{display:flex;gap:1rem}.info-field-control{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.info-field-control input{cursor:pointer}.title-row,.title-row:hover{background:var(--primary-soft)}.highlight-row,.highlight-row:hover{background:var(--warning-soft-subtle)}.users-section{margin-top:1.5rem}.users-section-title{font-size:.9rem;font-weight:600;color:var(--text);margin:0 0 .4rem}.users-action-btn{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;padding:.2rem .5rem;border:1px solid var(--primary);border-radius:4px;background:var(--primary-soft);color:var(--primary);cursor:pointer;transition:background .1s}.users-action-btn:hover:not(:disabled){background:var(--primary-soft-border)}.users-action-btn:disabled{opacity:.5;cursor:not-allowed}.users-delete-btn{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.users-delete-btn:hover:not(:disabled){background:var(--danger-soft-border)}.users-delete-confirm{border-color:var(--danger);background:var(--danger);color:var(--on-accent)}.users-delete-confirm:hover:not(:disabled){background:var(--danger-hover)}.role-select{font-size:.75rem;padding:.15rem .35rem;border:1px solid var(--border-strong);border-radius:3px;background:var(--surface);cursor:pointer}.role-select:disabled{opacity:.6}.routes-table-page{padding:1rem}.routes-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.routes-table-header h2{font-size:1.5rem}.routes-table-filters{display:flex;gap:1rem;align-items:center}.routes-table-filters label{display:flex;align-items:center;gap:.25rem;font-size:.85rem;color:var(--text-secondary)}.routes-table-filters input,.routes-table-filters select{padding:.25rem .5rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.85rem}.routes-result-banner{background:var(--primary-soft);border:1px solid var(--primary);border-radius:6px;padding:.5rem 1rem;margin-bottom:1rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.routes-result-dismiss{color:var(--text-muted);font-size:.85rem}.routes-table{width:100%;border-collapse:collapse}.routes-table th{text-align:left;padding:.5rem;border-bottom:2px solid var(--border);font-size:.75rem;text-transform:uppercase;color:var(--text-muted)}.routes-table td{padding:.5rem;border-bottom:1px solid var(--border);font-size:.85rem}.routes-table tr.selected{background:var(--primary-soft)}.routes-status-chip{display:inline-block;padding:.15rem .5rem;border-radius:4px;border:1px solid;font-size:.72rem;font-weight:600;text-transform:capitalize}.routes-cap-mini{display:flex;flex-direction:column;gap:.25rem;min-width:120px}.routes-cap-bar{display:flex;align-items:center;gap:.25rem;font-size:.7rem}.routes-cap-label{color:var(--text-muted);width:28px}.routes-cap-track{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.routes-cap-fill{height:100%;border-radius:3px}.routes-cap-value{color:var(--text-secondary);min-width:40px;text-align:right}.routes-cap-value.over{color:var(--danger);font-weight:700}.routes-row-actions{display:flex;gap:.25rem;align-items:center}.routes-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;width:28px;height:28px;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);cursor:pointer;color:var(--text-secondary)}.routes-action-btn:hover{background:var(--surface-sunken)}.routes-action-btn.schedule{color:var(--primary);border-color:var(--primary)}.routes-action-btn.cancel{color:var(--danger);border-color:var(--danger);width:auto;padding:0 .5rem;font-size:.78rem;font-weight:600}.routes-action-btn.delete{color:var(--danger);border-color:var(--danger)}.routes-bulk-bar{position:sticky;bottom:0;background:var(--sidebar-bg);color:var(--on-accent);padding:.5rem 1rem;display:flex;align-items:center;gap:1rem;border-radius:6px;margin-top:1rem}.routes-bulk-bar button{padding:.35rem .75rem;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.routes-bulk-bar button:first-of-type{background:var(--primary);color:var(--on-accent)}.routes-bulk-bar button:last-of-type{background:transparent;color:var(--text-faint);border:1px solid var(--text-secondary)}.recipe-prompt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.recipe-prompt-dialog{background:var(--surface);border-radius:12px;padding:2rem;max-width:400px;width:90%;text-align:center}.recipe-prompt-dialog h3{font-size:1.1rem;margin-bottom:1.5rem}.recipe-prompt-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.recipe-prompt-option{padding:.75rem 1rem;border:2px solid var(--primary);border-radius:8px;background:var(--primary-soft);color:var(--primary);font-weight:600;cursor:pointer;font-size:.95rem}.recipe-prompt-option:hover{background:var(--primary-soft-border)}.recipe-prompt-cancel{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem}.admin-recipes{padding:1rem}.admin-recipes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.admin-recipe-new{padding:.5rem 1rem;background:var(--primary);color:var(--on-accent);border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.25rem}.admin-recipes-layout{display:flex;gap:1rem;margin-top:1rem}.admin-recipes-list{width:250px;display:flex;flex-direction:column;gap:.5rem}.admin-recipe-item{padding:.75rem;border:1px solid var(--border);border-radius:6px;cursor:pointer;background:var(--surface)}.admin-recipe-item.active{border-color:var(--primary);background:var(--primary-soft)}.admin-recipe-item-header{display:flex;justify-content:space-between;align-items:center}.admin-recipe-key{font-size:.75rem;color:var(--text-muted);font-family:monospace}.admin-recipe-name{font-size:.9rem;font-weight:600}.admin-recipe-editor{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.admin-recipe-editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.admin-recipe-name-input{font-size:1.1rem;font-weight:600;border:1px solid var(--border-strong);border-radius:4px;padding:.25rem .5rem;flex:1}.admin-recipe-active-toggle{display:flex;align-items:center;gap:.25rem;font-size:.85rem}.admin-recipe-summary{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.85rem}.admin-recipe-summary h4{margin:.5rem 0 .25rem;font-size:.8rem;text-transform:uppercase;color:var(--text-muted)}.admin-recipe-summary h4:first-child{margin-top:0}.admin-recipe-summary ul{margin:0;padding-left:1.25rem}.admin-recipe-summary li{margin-bottom:.15rem}.admin-recipe-summary-note{color:var(--text-muted);font-style:italic;margin:.5rem 0 0}.admin-recipe-def-label{font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}.admin-recipe-def-editor{width:100%;font-family:monospace;font-size:.8rem;border:1px solid var(--border-strong);border-radius:4px;padding:.5rem;resize:vertical}.admin-recipe-error{background:var(--danger-soft);border:1px solid var(--danger);border-radius:4px;padding:.5rem;color:var(--danger);font-size:.85rem;margin-top:.5rem}.admin-recipe-actions{display:flex;gap:1rem;align-items:center;margin-top:1rem;flex-wrap:wrap}.admin-recipe-save{padding:.5rem 1rem;background:var(--success);color:var(--on-accent);border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.25rem}.admin-recipe-dryrun{display:flex;gap:.25rem;align-items:center}.admin-recipe-dryrun input{padding:.25rem .5rem;border:1px solid var(--border-strong);border-radius:4px;font-size:.8rem;width:200px}.admin-recipe-dryrun-btn{padding:.35rem .75rem;background:var(--warning);color:var(--on-accent);border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:.25rem;font-size:.85rem}.admin-recipe-dryrun-btn:disabled{opacity:.5}.admin-recipe-dryrun-result{background:var(--highlight-soft);border:1px solid var(--warning);border-radius:4px;padding:.5rem;font-size:.85rem;width:100%}.rb-route-tabs{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.rb-route-tab{display:flex;flex-direction:column;align-items:flex-start;padding:.4rem .75rem;border:1px solid var(--border);border-radius:6px 6px 0 0;background:var(--surface);cursor:pointer;gap:.1rem;transition:background .1s}.rb-route-tab:hover{background:var(--surface-sunken)}.rb-route-tab.active{background:var(--sidebar-bg);color:var(--on-accent);border-color:var(--sidebar-bg)}.rb-route-tab.active .rb-route-tab-status{color:var(--success-soft-strong)}.rb-route-tab-name{font-size:.85rem;font-weight:600}.rb-route-tab-status{font-size:.65rem;text-transform:uppercase;color:var(--text-muted)}.rb-route-tab-new{flex-direction:row;align-items:center;gap:.25rem;color:var(--primary);border-style:dashed;border-color:var(--primary)}.rb-route-tab-new:hover{background:var(--primary-soft)}.rb-session-restore-banner{display:flex;align-items:center;gap:.5rem;padding:6px 12px;background:var(--warning-soft);border:1px solid var(--warning-bright);border-radius:6px;margin:.5rem 0;font-size:.82rem;color:var(--warning-text)}.rb-session-discard-btn{display:flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--warning-bright);border-radius:4px;background:var(--surface);font-size:.78rem;color:var(--warning-text);cursor:pointer}.rb-session-discard-btn:hover{background:var(--warning-soft)}.rb-autosave-banner{display:flex;align-items:center;gap:.4rem;padding:4px 12px;border-radius:6px;margin:.5rem 0;font-size:.78rem}.rb-autosave-ok{background:var(--success-soft);border:1px solid var(--success-soft-strong);color:var(--success-deep)}.rb-autosave-error{background:var(--danger-soft);border:1px solid var(--danger-soft-strong);color:var(--danger-hover)}.rb-item-changed{border-color:var(--warning-bright);background:var(--warning-soft-subtle)}.rb-changed-badge{display:inline-block;font-size:.65rem;font-weight:700;color:var(--warning-text);background:var(--warning-soft);padding:1px 6px;border-radius:3px;margin-left:4px}.rb-optimize-wrapper{position:relative;display:inline-block}.rb-optimize-popover{position:absolute;top:100%;left:0;margin-top:.25rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #0000001f;z-index:10;min-width:220px;padding:.5rem}.rb-optimize-option{display:block;width:100%;text-align:left;padding:.5rem .75rem;border:none;background:var(--surface);border-radius:6px;cursor:pointer;font-size:.85rem;transition:background .1s}.rb-optimize-option:hover{background:var(--surface-sunken)}.rb-optimize-advanced{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;font-size:.8rem;color:var(--text-muted)}.rb-optimize-advanced input{width:50px;padding:.15rem .3rem;border:1px solid var(--border);border-radius:4px;font-size:.8rem}.rb-cotreat-list{margin-top:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle)}.rb-cotreat-title{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;margin:0 0 .5rem;color:var(--text)}.rb-cotreat-pair{display:flex;justify-content:space-between;align-items:center;padding:.5rem .6rem;border:1px solid var(--border);border-radius:6px;margin-bottom:.35rem;background:var(--surface);transition:border-color .15s}.rb-cotreat-pair.confirmed{border-color:var(--success-soft-strong);background:var(--success-soft)}.rb-cotreat-pair.declined{border-color:var(--danger-soft-border);background:var(--danger-soft);opacity:.6}.rb-cotreat-pair-info{display:flex;flex-direction:column;gap:.1rem}.rb-cotreat-customers{font-size:.85rem;font-weight:600}.rb-cotreat-detail{font-size:.72rem;color:var(--text-muted)}.rb-cotreat-status{font-size:.65rem;text-transform:uppercase;font-weight:600;padding:.1rem .35rem;border-radius:3px}.rb-cotreat-status-confirmed{background:var(--success-soft-border);color:var(--success-deepest)}.rb-cotreat-status-declined{background:var(--danger-soft-border);color:var(--danger-deepest)}.rb-cotreat-actions{display:flex;gap:.25rem}.rb-cotreat-confirm{display:flex;align-items:center;gap:.2rem;padding:.3rem .6rem;border:1px solid var(--success-soft-strong);border-radius:6px;background:var(--success-soft-border);color:var(--success-deepest);cursor:pointer;font-size:.78rem;transition:background .1s}.rb-cotreat-confirm:hover{background:var(--success-soft-strong)}.rb-cotreat-confirm:disabled{opacity:.5;cursor:not-allowed}.rb-cotreat-decline{display:flex;align-items:center;gap:.2rem;padding:.3rem .6rem;border:1px solid var(--danger-soft-border);border-radius:6px;background:var(--danger-soft);color:var(--danger-deepest);cursor:pointer;font-size:.78rem;transition:background .1s}.rb-cotreat-decline:hover{background:var(--danger-soft-border)}.rb-cotreat-decline:disabled{opacity:.5;cursor:not-allowed}.cancel-route-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.cancel-route-modal{background:var(--surface);border-radius:12px;padding:0;max-width:560px;width:90%;max-height:85vh;overflow-y:auto}.cancel-route-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.cancel-route-title{display:flex;align-items:center;gap:.5rem;font-size:1.2rem;font-weight:700;color:var(--danger-hover)}.cancel-route-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:.25rem}.cancel-route-close:hover{color:var(--text)}.cancel-route-route-info{padding:.75rem 1.5rem;background:var(--surface-subtle);font-size:.9rem;color:var(--text-secondary);border-bottom:1px solid var(--border)}.cancel-route-route-info strong{color:var(--text)}.cancel-route-steps{display:flex;gap:0;padding:.75rem 1.5rem;border-bottom:1px solid var(--border)}.cancel-route-steps span{font-size:.8rem;color:var(--text-faint);padding:.25rem .75rem;position:relative}.cancel-route-steps span:not(:last-child):after{content:"→";margin-left:.75rem;color:var(--border-strong)}.cancel-route-steps span.active{color:var(--danger-hover);font-weight:600}.cancel-route-steps span.done{color:var(--success)}.cancel-route-step{padding:1.25rem 1.5rem}.cancel-route-question{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text)}.cancel-route-scope-options{display:flex;gap:1rem}.cancel-route-scope-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.25rem;border:2px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;transition:all .15s}.cancel-route-scope-btn:hover{border-color:var(--danger-hover);background:var(--danger-soft)}.cancel-route-scope-btn span{font-size:.95rem;font-weight:600;color:var(--text)}.cancel-route-scope-btn small{font-size:.78rem;color:var(--text-muted)}.cancel-route-stop-list{max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;margin-bottom:1rem}.cancel-route-stop-item{display:flex;align-items:center;gap:.6rem;padding:.6rem .85rem;border-bottom:1px solid var(--surface-sunken);cursor:pointer;transition:background .1s}.cancel-route-stop-item:last-child{border-bottom:none}.cancel-route-stop-item:hover{background:var(--surface-subtle)}.cancel-route-stop-item.selected{background:var(--danger-soft)}.cancel-route-stop-item input[type=checkbox]{flex-shrink:0}.cancel-route-stop-seq{width:28px;height:28px;border-radius:50%;background:var(--surface-sunken);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--text-secondary);flex-shrink:0}.cancel-route-stop-info{flex:1;display:flex;flex-direction:column;min-width:0}.cancel-route-stop-name{font-size:.88rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cancel-route-stop-addr{font-size:.78rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cancel-route-stop-stage{font-size:.7rem;font-weight:600;text-transform:capitalize;padding:.15rem .5rem;border:1px solid;border-radius:4px;flex-shrink:0}.cancel-route-select-actions{display:flex;justify-content:space-between;gap:.75rem}.cancel-route-form{display:flex;flex-direction:column;gap:.85rem}.cancel-route-form-label{font-size:.9rem;font-weight:600;color:var(--text)}.cancel-route-form-label .req{color:var(--danger-hover)}.cancel-route-select{padding:.6rem .85rem;border:1px solid var(--border-strong);border-radius:6px;font-size:.9rem;background:var(--surface)}.cancel-route-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.cancel-route-reminder{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:var(--warning-soft);border:1px solid var(--warning-bright);border-radius:8px;font-size:.85rem;color:var(--warning-text-deep);line-height:1.4}.cancel-route-reminder svg{flex-shrink:0;margin-top:1px}.cancel-route-new-route-info{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:var(--primary-soft);border:1px solid var(--primary-soft-strong);border-radius:8px;font-size:.85rem;color:var(--primary-deepest);line-height:1.4}.cancel-route-new-route-info strong{display:block;margin-top:.25rem}.cancel-route-form-actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:.5rem}.cancel-route-btn-secondary{padding:.6rem 1.25rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text-secondary);font-weight:600;cursor:pointer;font-size:.9rem}.cancel-route-btn-secondary:hover{background:var(--surface-sunken)}.cancel-route-btn-primary{padding:.6rem 1.25rem;border:none;border-radius:6px;background:var(--primary);color:var(--on-accent);font-weight:600;cursor:pointer;font-size:.9rem}.cancel-route-btn-primary:hover{background:var(--primary-deep)}.cancel-route-btn-primary:disabled{opacity:.5;cursor:not-allowed}.cancel-route-btn-submit{padding:.6rem 1.25rem;border:none;border-radius:6px;background:var(--danger-hover);color:var(--on-accent);font-weight:600;cursor:pointer;font-size:.9rem}.cancel-route-btn-submit:hover{background:var(--danger-deep)}.cancel-route-btn-submit:disabled{opacity:.5;cursor:not-allowed}.cancel-route-error{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;margin:0 1.5rem;background:var(--danger-soft);border:1px solid var(--danger-soft-strong);border-radius:6px;color:var(--danger-hover);font-size:.85rem}.cancel-route-skip-option{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;font-size:.9rem;color:var(--text);cursor:pointer}.cancel-route-skip-option input{margin:0}.cancel-route-warning{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:var(--danger-soft);border:1px solid var(--danger-bright);border-radius:8px;font-size:.85rem;color:var(--danger-deep);line-height:1.4;margin:.5rem 0}.cancel-route-warning svg{flex-shrink:0;margin-top:1px}.rb-view-edit-banner{display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;background:var(--primary-soft);border:1px solid var(--primary-soft-strong);border-radius:6px}.rb-view-edit-info{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.rb-view-edit-mode{font-size:.72rem;font-weight:700;text-transform:uppercase;padding:.15rem .5rem;border-radius:4px}.rb-view-edit-mode-view{background:var(--primary-soft-border);color:var(--primary-deepest)}.rb-view-edit-mode-edit{background:var(--highlight-bg);color:var(--warning-text-deep)}.rb-lock-icon{color:var(--text-muted)}.rb-view-edit-actions{display:flex;gap:.5rem;margin-left:auto}.rb-edit-toggle-btn{display:flex;align-items:center;gap:.3rem;padding:.35rem .75rem;border:1px solid var(--warning);border-radius:6px;background:var(--highlight-bg);color:var(--warning-text-deep);font-size:.82rem;font-weight:600;cursor:pointer}.rb-edit-toggle-btn:hover{background:var(--highlight-border)}.rb-edit-toggle-btn.rb-view-btn{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-deepest)}.rb-edit-toggle-btn.rb-view-btn:hover{background:var(--primary-soft-border)}.rb-back-builder-btn{display:flex;align-items:center;gap:.3rem;padding:.35rem .75rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text-secondary);font-size:.82rem;font-weight:600;cursor:pointer}.rb-back-builder-btn:hover{background:var(--surface-sunken)}.rb-assigned-locked{background:var(--surface-subtle)}.rb-assigned-locked .rb-sort-handle,.rb-assigned-locked .rb-move-check{opacity:.3;pointer-events:none}.rb-assigned-locked .rb-remove-btn{display:none}.rb-revert-btn{display:flex;align-items:center;gap:.3rem;padding:.5rem 1rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text-secondary);font-weight:600;cursor:pointer;font-size:.85rem}.rb-revert-btn:hover{background:var(--surface-sunken)}.map-info-locked{font-size:.78rem;color:var(--text-muted);font-style:italic}.rb-routes-drawer{position:absolute;bottom:0;left:0;right:0;background:var(--surface);border-top:2px solid var(--border);box-shadow:0 -4px 12px #00000014;z-index:100;transition:transform .25s ease;border-radius:0 0 8px 8px}.rb-routes-drawer-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem 1.5rem;background:none;border:none;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--text)}.rb-routes-drawer-toggle:hover{background:var(--surface-subtle)}.rb-routes-drawer-toggle span{flex:1;text-align:left}.rb-routes-drawer-content{padding:0 1.5rem 1rem;max-height:280px;overflow-y:auto}.rb-routes-filter-bar{display:flex;gap:.5rem;margin-bottom:.5rem}.rb-routes-filter{flex:1;width:100%;padding:.5rem .75rem;border:1px solid var(--border-strong);border-radius:6px;font-size:.85rem}.rb-routes-filter:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.rb-routes-tech-filter{padding:.5rem .75rem;border:1px solid var(--border-strong);border-radius:6px;font-size:.85rem;background:var(--surface);color:var(--text)}.rb-routes-table{width:100%;border-collapse:collapse;font-size:.85rem}.rb-routes-table th{text-align:left;padding:.4rem .5rem;border-bottom:2px solid var(--border);color:var(--text-muted);font-weight:600;font-size:.78rem;text-transform:uppercase}.rb-routes-table th.rb-routes-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;display:table-cell}.rb-routes-table th.rb-routes-sortable:hover{color:var(--text)}.rb-routes-table th.rb-routes-sortable svg{vertical-align:middle;margin-left:.2rem}.rb-routes-table td{padding:.5rem;border-bottom:1px solid var(--surface-sunken)}.rb-routes-table tr.active{background:var(--primary-soft)}.rb-routes-table tr:hover{background:var(--surface-subtle)}.rb-route-status-chip{font-size:.72rem;font-weight:600;text-transform:capitalize;padding:.15rem .5rem;border:1px solid;border-radius:4px}.rb-routes-row-actions{display:flex;gap:.4rem}.rb-routes-action-btn{display:flex;align-items:center;gap:.25rem;padding:.25rem .6rem;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);color:var(--text-secondary);font-size:.78rem;cursor:pointer}.rb-routes-action-btn:hover{background:var(--surface-sunken);border-color:var(--text-faint)}.rb-routes-action-btn.rb-routes-action-cancel{color:var(--danger);border-color:var(--danger-soft-strong)}.rb-routes-action-btn.rb-routes-action-cancel:hover{background:var(--danger-soft)}.rb-routes-action-btn.rb-routes-action-delete{color:var(--danger);border-color:var(--danger)}.rb-routes-action-btn.rb-routes-action-delete:hover{background:var(--danger-soft)}.rb-routes-action-btn:disabled{opacity:.5;cursor:not-allowed}.rb-schedule-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.rb-schedule-dialog{background:var(--surface);border-radius:12px;padding:1.75rem;max-width:400px;width:90%;text-align:center}.rb-schedule-dialog h3{font-size:1.15rem;margin-bottom:.75rem}.rb-schedule-dialog p{font-size:.9rem;color:var(--text-secondary);margin-bottom:1.25rem;line-height:1.4}.rb-schedule-actions{display:flex;gap:.75rem;justify-content:center}.rb-schedule-confirm{padding:.6rem 1.25rem;border:none;border-radius:6px;background:var(--primary);color:var(--on-accent);font-weight:600;cursor:pointer;font-size:.9rem}.rb-schedule-confirm:hover{background:var(--primary-deep)}.rb-schedule-confirm:disabled{opacity:.5;cursor:not-allowed}.rb-schedule-skip{padding:.6rem 1.25rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text-secondary);font-weight:600;cursor:pointer;font-size:.9rem}.rb-schedule-skip:hover{background:var(--surface-sunken)}.map-info-window{color:#2d3748}.map-info-window strong{color:#1a202c}.map-info-window p{color:#4a5568}.map-info-multi{color:#2b6cb0;border-bottom-color:#e2e8f0}.map-info-stop+.map-info-stop{border-top-color:#edf2f7}.map-info-field{color:#4a5568}.map-info-field-label{color:#718096}.map-info-field-value{color:#1a202c}.map-info-field-highlighted{background:#fefcbf;border-left-color:#d69e2e}.map-info-field-highlighted .map-info-field-label{color:#975a16}.map-info-paused{color:#e53e3e}.map-info-locked{color:#718096}.header-right{display:flex;align-items:center;gap:.75rem}.theme-toggle{display:flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text-secondary);font-size:.78rem;cursor:pointer;text-transform:capitalize}.theme-toggle:hover{background:var(--surface-sunken);color:var(--text)}.theme-toggle-label{min-width:44px;text-align:left}.unauthorized-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:2rem}.unauthorized-title{font-size:1.75rem;font-weight:700;color:var(--text-strong);margin-bottom:1rem}.unauthorized-message{color:var(--text-secondary);font-size:1rem;max-width:400px;margin-bottom:2rem;line-height:1.5}.unauthorized-button{background:var(--primary);color:var(--on-accent);border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;cursor:pointer}.unauthorized-button:hover{background:var(--primary-hover)}.filter-tree-container{width:100%;margin-bottom:.75rem}.filter-tree{border:1px solid var(--border);border-radius:6px;padding:.75rem;background:var(--surface)}.filter-tree-root{border:none;padding:0}.filter-tree-group{position:relative}.filter-tree-group-header{display:flex;align-items:center;gap:.25rem;margin-bottom:.4rem}.filter-tree-bracket{font-size:1.2rem;font-weight:700;color:var(--text-muted)}.filter-tree-conj-select{font-size:.8rem;padding:.15rem .4rem;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);cursor:pointer}.filter-tree-children{display:flex;flex-direction:column;gap:.3rem}.filter-tree-child-wrapper{display:flex;flex-direction:column}.filter-tree-conjunction-label{font-size:.7rem;font-weight:700;color:var(--text-muted);padding-left:.5rem;text-transform:uppercase}.filter-tree-child{display:flex;align-items:flex-start;gap:.3rem;flex-wrap:wrap;padding:.3rem;border-radius:4px;background:var(--surface-subtle)}.filter-tree-condition{display:flex;align-items:center;gap:.25rem;flex:1;flex-wrap:wrap}.filter-tree-field,.filter-tree-op,.filter-tree-value{font-size:.8rem;padding:.2rem .4rem;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface)}.filter-tree-field{min-width:130px}.filter-tree-op{min-width:70px}.filter-tree-value{min-width:100px}.filter-tree-add-buttons{display:flex;gap:.2rem}.filter-tree-add-after{margin-left:.25rem}.filter-tree-add-btn{font-size:.7rem;padding:.15rem .4rem;border:1px dashed var(--border-strong);border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:.15rem;white-space:nowrap}.filter-tree-add-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.filter-tree-remove-btn{background:none;border:none;color:var(--danger);cursor:pointer;padding:.2rem;display:flex;align-items:center;border-radius:4px}.filter-tree-remove-btn:hover{background:var(--danger-soft-border)}.filter-tree-group-footer{display:flex;align-items:center;gap:.25rem;margin-top:.2rem}.filter-tree-remove-group-btn{font-size:.7rem;padding:.15rem .4rem;border:1px solid var(--danger-soft-border);border-radius:4px;background:transparent;color:var(--danger);cursor:pointer;display:inline-flex;align-items:center;gap:.15rem}.filter-tree-remove-group-btn:hover{background:var(--danger-soft-border)}.filter-tree-root-actions{display:flex;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.filter-tree-root-actions .filter-tree-add-btn{font-size:.75rem;padding:.25rem .6rem;border-style:solid}
