@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);:root{--accent:#fc5f21;--accent-hover:#fd7d4a;--accent-muted:#fc5f2126;--accent-text:#ff8c5a;--danger:#f85149;--danger-muted:#f8514926;--warning:#d29922;--warning-muted:#d2992226;--info:#58a6ff;--info-muted:#58a6ff26;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"Cascadia Code","Fira Code","JetBrains Mono","Courier New",monospace;--nav-width:224px;--transition:0.15s ease}:root,[data-theme=dark]{--bg-base:#0d1117;--bg-surface:#161b22;--bg-elevated:#1c2129;--bg-hover:#21262d;--bg-input:#0d1117;--bg-overlay:#0009;--border:#30363d;--border-subtle:#21262d;--border-muted:#1a1e24;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#6e7681;--text-inverse:#0d1117;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 3px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-xl:0 12px 40px #0009;color-scheme:dark}[data-theme=light]{--bg-base:#fff;--bg-surface:#f6f8fa;--bg-elevated:#fff;--bg-hover:#eaeef2;--bg-input:#fff;--bg-overlay:#0000004d;--border:#d0d7de;--border-subtle:#e1e4e8;--border-muted:#eaeef2;--text-primary:#1f2328;--text-secondary:#656d76;--text-muted:#8b949e;--text-inverse:#fff;--accent-text:#c43d00;--shadow-sm:0 1px 2px #00000014;--shadow-md:0 3px 12px #0000001f;--shadow-lg:0 8px 24px #00000029;--shadow-xl:0 12px 40px #0003;color-scheme:light}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;background:var(--bg-base);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:14px;line-height:1.5;overscroll-behavior:none}#root{height:100vh;height:100dvh;overflow:hidden;width:100vw}a{color:#58a6ff;color:var(--info);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:Cascadia Code,Fira Code,JetBrains Mono,Courier New,monospace;font-family:var(--font-mono)}::selection{background:#fc5f21;background:var(--accent);color:#fff}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#484f58}@media (max-width:768px){.subtab,.tab-button,button,input[type=checkbox],select{min-height:44px}a,button,input,select,textarea{touch-action:manipulation}}.auth-loading{align-items:center;background:var(--bg-base);color:var(--text-secondary);display:flex;flex-direction:column;font-size:14px;gap:16px;height:100vh;justify-content:center}.auth-spinner{animation:spin .7s linear infinite;border:2.5px solid var(--border);border-radius:50%;border-top-color:var(--accent);height:28px;width:28px}.app-shell{background:var(--bg-base);color:var(--text-primary);display:flex;height:100vh;height:100dvh}.app-nav{background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;transition:width .2s ease;width:var(--nav-width);z-index:100}.app-nav.collapsed{width:56px}.nav-brand{border-bottom:1px solid var(--border-subtle);cursor:pointer;gap:10px;padding:16px 14px;-webkit-user-select:none;user-select:none}.nav-brand,.nav-logo{align-items:center;display:flex}.nav-logo{background:var(--accent);border-radius:var(--radius-md);flex-shrink:0;height:28px;justify-content:center;width:28px}.nav-wordmark{color:var(--text-primary);font-size:15px;font-weight:600;letter-spacing:-.3px;white-space:nowrap}.nav-items{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow-x:hidden;overflow-y:auto;padding:8px}.nav-section{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.6px;padding:16px 8px 6px;text-transform:uppercase;white-space:nowrap}.nav-item{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:13px;font-weight:500;gap:10px;padding:8px 10px;text-align:left;transition:background var(--transition),color var(--transition);white-space:nowrap;width:100%}.nav-item:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-muted);color:var(--accent-text)}.nav-item:disabled{cursor:not-allowed;opacity:.35}.nav-item-icon{align-items:center;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.nav-item-label{flex:1 1;min-width:0}.nav-item-badge{background:var(--bg-hover);border-radius:10px;color:var(--text-secondary);font-size:11px;font-weight:600;min-width:18px;padding:1px 6px;text-align:center}.nav-item.active .nav-item-badge{background:var(--accent-muted);color:var(--accent-text)}.nav-footer{border-top:1px solid var(--border-subtle);padding:12px}.theme-toggle{align-items:center;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:12px;font-weight:500;gap:8px;margin-bottom:10px;padding:7px 10px;transition:all var(--transition);width:100%}.theme-toggle:hover{background:var(--bg-elevated);border-color:var(--accent);color:var(--text-primary)}.app-nav.collapsed .theme-toggle{justify-content:center;padding:7px}.nav-user{gap:10px}.nav-avatar,.nav-user{align-items:center;display:flex}.nav-avatar{background:var(--bg-hover);border:1px solid var(--border);border-radius:50%;color:var(--text-secondary);flex-shrink:0;font-size:12px;font-weight:600;height:30px;justify-content:center;width:30px}.nav-user-info{display:flex;flex-direction:column;min-width:0}.nav-user-name{color:var(--text-secondary);font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-signout{background:none;border:none;color:var(--text-muted);cursor:pointer;font-family:var(--font-sans);font-size:11px;padding:0;text-align:left}.nav-signout:hover{color:var(--danger)}.nav-user-collapsed{display:flex;justify-content:center}.app-main{display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.page{flex:1 1;min-height:0;overflow:hidden}.page-full,.page-sidebar{flex-direction:column}.page-sidebar{background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-shrink:0;overflow:hidden;width:300px}.page-sidebar-header{border-bottom:1px solid var(--border-subtle);padding:16px 16px 12px}.page-sidebar-header h2{color:var(--text-primary);font-size:14px;font-weight:600;margin:0}.header-meta{color:var(--text-muted);display:block;font-size:11px;margin-top:2px}.page-sidebar-body{display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:12px}.page-content{flex:1 1;min-width:0;overflow:auto;position:relative}.map-content{overflow:hidden}.map-container{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.empty-state{align-items:center;color:var(--text-muted);display:flex;flex:1 1;flex-direction:column;gap:12px;justify-content:center;padding:40px;text-align:center}.empty-state h3{color:var(--text-secondary);font-size:16px;font-weight:600;margin:0}.empty-state p{font-size:13px;margin:0;max-width:300px}.msg{border-radius:var(--radius-md);font-size:13px;padding:10px 12px}.msg-error{background:var(--danger-muted);border:1px solid #f851494d;color:var(--danger)}.query-stats{background:var(--bg-elevated);border-radius:var(--radius-md);color:var(--text-secondary);display:flex;font-size:12px;gap:12px;padding:10px 12px}.query-stats strong{font-weight:600}.btn,.query-stats strong{color:var(--text-primary)}.btn{align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:13px;font-weight:500;gap:6px;justify-content:center;padding:8px 16px;transition:all var(--transition)}.btn:hover{background:var(--bg-hover);border-color:var(--border)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.loading-overlay{align-items:center;background:var(--bg-overlay);display:flex;inset:0;justify-content:center;position:fixed;z-index:10000}.loading-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:15px;font-weight:500;padding:24px 40px}@media (max-width:900px){.app-nav{width:56px}.app-nav .nav-item-badge,.app-nav .nav-item-label,.app-nav .nav-section,.app-nav .nav-user-info,.app-nav .nav-wordmark{display:none}.app-nav .nav-user-collapsed{display:flex}.app-nav .nav-user{display:none}.page-sidebar{width:260px}}@media (max-width:768px){.app-shell{flex-direction:column}.app-nav{border-bottom:1px solid var(--border);border-right:none;flex-direction:row;height:48px;padding:0;width:100%!important}.app-nav .nav-brand{border-bottom:none;padding:0 12px}.app-nav .nav-items{align-items:center;flex-direction:row;gap:0;overflow-x:auto;overflow-y:hidden;padding:0 4px}.app-nav .nav-section{display:none}.app-nav .nav-item{gap:6px;padding:6px 10px}.app-nav .nav-item-label{display:inline;font-size:12px}.app-nav .nav-footer,.app-nav .nav-item-badge{display:none}.page{flex-direction:column}.page-sidebar{border-bottom:1px solid var(--border);border-right:none;max-height:35vh;width:100%}}.login-page{align-items:center;background:var(--bg-base);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:380px;padding:40px 36px;width:100%}.login-brand{margin-bottom:32px;text-align:center}.login-logo{align-items:center;background:var(--accent);border-radius:var(--radius-lg);display:flex;height:48px;justify-content:center;margin:0 auto 16px;width:48px}.login-brand h1{color:var(--text-primary);font-size:22px;font-weight:700;letter-spacing:-.5px;margin:0 0 4px}.login-subtitle{color:var(--text-muted);font-size:13px;margin:0}.login-form{gap:16px}.field,.login-form{display:flex;flex-direction:column}.field{gap:5px}.field label{color:var(--text-secondary);font-size:12px;font-weight:500}.field input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;padding:10px 12px;transition:border-color var(--transition),box-shadow var(--transition)}.field input::placeholder{color:var(--text-muted)}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);outline:none}.field input:disabled{cursor:not-allowed;opacity:.5}.login-error{background:var(--danger-muted);border:1px solid #f851494d;border-radius:var(--radius-md);color:var(--danger);font-size:13px;padding:10px 12px}.login-btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:11px 20px;transition:all var(--transition)}.login-btn.primary{background:var(--accent);color:#fff}.login-btn.primary:hover:not(:disabled){background:var(--accent-hover)}.login-btn.secondary{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary)}.login-btn.secondary:hover{background:var(--bg-hover)}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-denied{align-items:center;display:flex;flex-direction:column;gap:12px;text-align:center}.denied-badge{background:var(--danger-muted);border:1px solid #f851494d;border-radius:20px;color:var(--danger);display:inline-flex;font-size:12px;font-weight:600;padding:4px 12px}.login-denied p{color:var(--text-secondary);font-size:13px;line-height:1.5;margin:0}.denied-hint{color:var(--text-muted)!important;font-size:12px!important;font-style:italic}@media (max-width:768px){.login-card{padding:32px 24px}.field input{font-size:16px;min-height:48px;padding:12px 14px}.login-btn{min-height:48px;padding:14px 20px}}@media (max-width:480px){.login-card{padding:24px 20px}.login-brand h1{font-size:20px}}.activity-selector{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px}.selector-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.selector-header h2{align-items:center;color:var(--text-primary);display:flex;font-size:13px;font-weight:600;gap:6px;margin:0}.mode-tabs{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);display:flex;gap:2px;padding:2px}.mode-tab{background:#0000;border:none;border-radius:3px;color:var(--text-muted);cursor:pointer;font-family:var(--font-sans);font-size:11px;font-weight:500;padding:4px 10px;transition:all var(--transition)}.mode-tab:hover{color:var(--text-primary)}.mode-tab.active{background:var(--accent);color:#fff}.query-filters{margin-bottom:10px}.filter-section,.query-filters{display:flex;flex-direction:column;gap:8px}.filter-row{display:flex;gap:8px}.form-group{display:flex;flex-direction:column;gap:3px}.form-group.flex-1{flex:1 1;min-width:0}.form-group.limit-group{flex-shrink:0;width:70px}.form-group label{color:var(--text-muted);font-size:10px;font-weight:500;letter-spacing:.4px;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:12px;padding:6px 8px;transition:border-color var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted);outline:none}.form-group textarea{font-family:var(--font-mono);font-size:11px;resize:vertical}.clear-filters-btn{align-items:center;align-self:flex-start;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:11px;gap:4px;padding:3px 8px;transition:color var(--transition)}.clear-filters-btn:hover{color:var(--danger)}.query-actions,.query-button{display:flex;gap:6px}.query-button{align-items:center;background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;flex:1 1;font-family:var(--font-sans);font-size:13px;font-weight:600;justify-content:center;padding:8px 12px;transition:background var(--transition)}.query-button:hover:not(:disabled){background:var(--accent-hover)}.query-button:disabled{cursor:not-allowed;opacity:.4}.clear-results-btn{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);font-size:12px;padding:8px 12px;transition:all var(--transition)}.clear-results-btn:hover:not(:disabled){background:var(--danger-muted);border-color:#f851494d;color:var(--danger)}.clear-results-btn:disabled{cursor:not-allowed;opacity:.4}.bookmarked-riders{border-top:1px solid var(--border-subtle);margin-top:12px;padding-top:10px}.bookmarked-riders h3{color:var(--text-muted);font-size:10px;letter-spacing:.4px;margin:0 0 6px;text-transform:uppercase}.rider-chips{display:flex;flex-wrap:wrap;gap:4px}.rider-chip{align-items:center;background:var(--info-muted);border:1px solid #58a6ff33;border-radius:12px;color:var(--info);cursor:pointer;display:inline-flex;font-size:11px;gap:4px;padding:3px 8px;transition:all var(--transition)}.rider-chip:hover:not(:disabled){background:#58a6ff40}.rider-chip:disabled{cursor:not-allowed;opacity:.4}.rider-chip.rider-chip-active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent-text)}.rider-chip.rider-chip-flagged{background:var(--warning-muted);border-color:#d299224d;color:var(--warning)}.rider-chip.rider-chip-flagged:hover:not(:disabled){background:#d2992240}.rider-chip-flag{color:var(--warning);font-size:10px}@media (max-width:768px){.activity-selector{padding:12px}.form-group input,.form-group select,.form-group textarea{font-size:16px;min-height:44px;padding:10px}.query-button{min-height:44px;padding:12px}.clear-results-btn{min-height:44px;padding:10px}.filter-row{flex-direction:column}.form-group.limit-group{width:100%}}.activity-selection-list{display:flex;flex:1 1;flex-direction:column;gap:12px;height:100%;overflow:auto;padding:16px}.list-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.list-header h2{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.list-controls{display:flex;flex-wrap:wrap;gap:12px}.control-group{align-items:center;display:flex;gap:6px}.control-group label{color:var(--text-muted);font-size:11px;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.control-group select{color:var(--text-primary);font-family:var(--font-mono);font-size:12px;min-width:160px;padding:5px 8px}.control-group select,.sort-direction-btn{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.sort-direction-btn{color:var(--text-secondary);font-size:14px;padding:5px 10px;transition:all var(--transition)}.sort-direction-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.selection-actions{align-items:center;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:flex;gap:8px;padding:10px 12px}.action-btn{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);font-size:12px;padding:6px 12px;transition:all var(--transition)}.action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.selected-count{color:var(--accent-text);font-size:12px;font-weight:600;margin-left:auto}.plot-btn{background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:600;padding:8px 18px;transition:all var(--transition)}.plot-btn:hover:not(:disabled){background:var(--accent-hover)}.plot-btn:disabled{cursor:not-allowed;opacity:.4}.activities-table-container{border:1px solid var(--border);border-radius:var(--radius-md);flex:1 1;overflow:auto}.activities-table{border-collapse:collapse;font-size:12px;width:100%}.activities-table thead{background:var(--bg-surface);position:-webkit-sticky;position:sticky;top:0;z-index:10}.activities-table th{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.3px;padding:10px 8px;text-align:left;text-transform:uppercase}.activities-table tbody tr{border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background var(--transition)}.activities-table tbody tr:hover{background:var(--bg-hover)}.activities-table tbody tr.selected{background:var(--accent-muted)}.activities-table tbody tr.selected:hover{background:#4caf5033}.activities-table td{color:var(--text-secondary);padding:8px}.col-checkbox{text-align:center;width:36px}.col-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer;height:14px;width:14px}.col-activity-id{color:var(--text-primary);max-width:300px;min-width:140px;width:25%}.col-activity-id,.col-user{font-family:var(--font-mono);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-user{max-width:250px;min-width:100px;width:20%}.col-date{min-width:100px;width:100px}.col-time{font-family:var(--font-mono);font-size:11px}.col-points,.col-time{min-width:70px;width:70px}.col-duration,.col-points{text-align:right}.col-duration{min-width:60px;width:60px}.col-flag,.col-notes{min-width:32px;padding:0 2px!important;text-align:center;width:32px}.flag-btn{background:none;border:none;border-radius:3px;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px 4px;transition:color var(--transition)}.flag-btn.flag-btn-on,.flag-btn:hover{color:var(--warning)}.note-btn{background:none;border:none;border-radius:3px;color:var(--text-muted);cursor:pointer;font-size:13px;padding:2px 4px;transition:color var(--transition)}.note-btn.note-btn-has,.note-btn:hover{color:var(--info)}.activities-table tbody tr.row-flagged{background:var(--warning-muted)}.activities-table tbody tr.row-flagged.selected{background:var(--accent-muted)}.rider-name{align-items:center;cursor:pointer;display:inline-flex;gap:4px}.rider-name:hover{text-decoration:underline}.rider-alias{color:var(--text-primary);font-family:var(--font-sans);font-size:12px;font-weight:600}.rider-id{color:var(--text-muted);font-family:var(--font-mono);font-size:10px}.rider-flag-dot{font-size:10px}.rider-flag-dot,.rider-flagged .rider-alias,.rider-flagged .rider-id{color:var(--warning)}.note-modal-overlay{align-items:center;background:var(--bg-overlay);display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.note-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);gap:10px;max-width:95vw;padding:20px;width:420px}.note-modal,.note-modal-header{display:flex;flex-direction:column}.note-modal-header{color:var(--text-primary);font-size:13px;font-weight:700;gap:2px}.note-modal-id{color:var(--text-muted);font-family:var(--font-mono);font-size:11px;font-weight:400}.note-modal-label{color:var(--text-secondary);font-size:11px;font-weight:500}.note-modal-input,.note-modal-textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:13px;padding:8px 10px;width:100%}.note-modal-textarea{resize:vertical}.note-modal-actions{display:flex;gap:8px;justify-content:flex-end}.action-btn-flagged{border-color:#d2992266;color:var(--warning)}.activity-selection-list .empty-state{color:var(--text-muted);padding:60px 20px;text-align:center}.activity-selection-list .empty-state p{font-size:14px;margin:0}.pagination-controls{align-items:center;background:var(--bg-surface);border-radius:0 0 var(--radius-md) var(--radius-md);border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:10px 12px}.pagination-info{color:var(--text-muted);font-size:12px}.pagination-buttons{align-items:center;display:flex;gap:6px}.pagination-btn{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);font-size:12px;padding:5px 10px;transition:all var(--transition)}.pagination-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.pagination-btn:disabled{cursor:not-allowed;opacity:.35}.page-indicator{color:var(--text-primary);font-size:12px;font-weight:600;padding:0 6px}.items-per-page{align-items:center;display:flex;gap:6px}.items-per-page label{color:var(--text-muted);font-size:11px;font-weight:500}.items-per-page select{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:12px;padding:5px 8px}@media (max-width:768px){.activity-selection-list{gap:10px;padding:10px}.list-header{gap:10px}.control-group,.list-controls,.list-header{align-items:stretch;flex-direction:column}.control-group{gap:4px}.control-group select{font-size:16px;min-width:0;min-width:auto;padding:10px}.control-group select,.sort-direction-btn{min-height:44px;width:100%}.selection-actions{flex-direction:column;gap:8px;padding:8px}.action-btn{flex:1 1;min-height:44px}.selected-count{margin-left:0;order:-1;text-align:center;width:100%}.plot-btn{min-height:44px;order:1;width:100%}.activities-table{font-size:10px;min-width:600px}.pagination-controls{align-items:stretch;flex-direction:column}.pagination-buttons{justify-content:center}.pagination-btn{min-height:44px;padding:8px 14px}.items-per-page{justify-content:center}.items-per-page select{font-size:16px;min-height:44px;padding:8px}}@media (max-width:480px){.list-header h2{font-size:14px}.activities-table{font-size:10px;min-width:500px}.col-activity-id{max-width:120px}.col-user{max-width:80px}.col-duration{display:none}}.activity-legend{display:flex;flex-direction:column;height:100%;overflow:hidden}.activity-legend h2{color:var(--text-primary);font-size:14px;font-weight:600;margin:0 0 12px}.activity-legend .empty-state{color:var(--text-muted);font-size:13px;padding:30px 16px;text-align:center}.legend-controls{margin-bottom:10px}.toggle-all-btn{background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:var(--font-sans);font-size:12px;font-weight:600;padding:7px;transition:background var(--transition);width:100%}.toggle-all-btn:hover{background:var(--accent-hover)}.legend-items{display:flex;flex:1 1;flex-direction:column;gap:6px;overflow-y:auto}.legend-item{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:8px;padding:10px 10px 10px 8px;position:relative;transition:all var(--transition)}.legend-item:hover{background:var(--bg-hover);border-color:var(--border)}.legend-item.hidden{opacity:.4}.legend-color-swatch{align-items:center;cursor:pointer;display:flex;flex-shrink:0;position:relative}.legend-color-swatch .color-preview{border:2px solid #ffffff26;border-radius:var(--radius-sm);display:block;height:20px;transition:border-color var(--transition),box-shadow var(--transition);width:20px}.legend-color-swatch:hover .color-preview{border-color:#ffffff59;box-shadow:0 0 0 2px #ffffff1a}.legend-color-swatch .color-input-hidden{border:none;height:0;opacity:0;padding:0;pointer-events:none;position:absolute;width:0}.legend-checkbox{flex-shrink:0}.legend-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer;height:14px;width:14px}.legend-info{flex:1 1;min-width:0}.activity-id-short{color:var(--text-primary);font-family:var(--font-mono);font-size:11px;font-weight:600;margin-bottom:6px;word-break:break-all}.activity-meta{display:flex;flex-direction:column;gap:3px}.meta-row{display:flex;font-size:10px;gap:6px}.meta-label{color:var(--text-muted);font-weight:600;min-width:50px}.meta-value{color:var(--text-secondary);flex:1 1;font-family:var(--font-mono);word-break:break-all}@media (max-width:768px){.toggle-all-btn{min-height:44px;padding:10px}.legend-item{padding:8px}.legend-checkbox input[type=checkbox]{height:20px;width:20px}}.accuracy-legend{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);bottom:80px;box-shadow:var(--shadow-lg);min-width:180px;padding:10px;position:absolute;right:10px;z-index:1000}.accuracy-legend.collapsed{min-width:0;min-width:auto}.accuracy-legend.collapsed .legend-header{border-bottom:none;margin-bottom:0;padding-bottom:0}.legend-header{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;margin-bottom:8px;padding-bottom:6px}.legend-header h4{color:var(--text-primary);font-size:12px;font-weight:600;margin:0}.legend-title-toggle{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;gap:5px;-webkit-user-select:none;user-select:none}.edit-button,.legend-title-toggle:hover{color:var(--text-secondary)}.edit-button{background:#0000;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;padding:3px 7px;transition:all var(--transition)}.edit-button:hover{background:var(--bg-hover);border-color:var(--border);color:var(--text-primary)}.accuracy-legend .legend-items{display:flex;flex-direction:column;gap:4px}.accuracy-legend .legend-item{align-items:center;background:#0000;border:none;cursor:default;display:flex;font-size:11px;gap:6px;padding:0}.legend-color{border:1px solid #fff3;border-radius:50%;display:inline-block;flex-shrink:0;height:14px;width:14px}.legend-label{color:var(--text-secondary);flex:1 1;font-size:11px;font-weight:500;min-width:60px}.legend-value{color:var(--text-muted);font-family:var(--font-mono);font-size:10px;white-space:nowrap}.legend-note{border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:9px;margin-top:8px;padding-top:6px;text-align:center}.accuracy-editor{gap:8px}.accuracy-editor,.editor-row{display:flex;flex-direction:column}.editor-row{gap:3px}.editor-row label{color:var(--text-muted);font-size:10px;font-weight:500}.editor-row input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:12px;padding:5px 7px}.editor-row input:focus{border-color:var(--accent);outline:none}.editor-actions{display:flex;gap:5px;margin-top:4px}.apply-button,.reset-button{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex:1 1;font-family:var(--font-sans);font-size:11px;padding:5px 7px;transition:all var(--transition)}.apply-button{background:var(--accent);border-color:var(--accent);color:#fff}.apply-button:hover{background:var(--accent-hover)}.reset-button{background:var(--bg-elevated);color:var(--text-secondary)}.reset-button:hover{background:var(--bg-hover)}.reset-button:before{content:"Default "}@media (max-width:768px){.accuracy-legend{bottom:auto;min-width:150px;padding:8px;right:10px;top:10px}.editor-row input{font-size:16px;min-height:44px;padding:8px}.apply-button,.reset-button{min-height:36px}}.map-viewer{display:flex;flex:1 1;flex-direction:column;height:100%;position:relative;width:100%}.leaflet-container{flex:1 1;height:100%;width:100%;z-index:1}.star-marker{background:#0000;border:none}.leaflet-tooltip{font-size:12px;line-height:1.4}.leaflet-top.leaflet-right{top:60px}.leaflet-control-layers{margin-top:10px}@media (max-width:768px){.leaflet-top.leaflet-right{top:40px}.leaflet-control-zoom{margin-right:8px!important}.leaflet-control-zoom a{font-size:18px!important;height:36px!important;line-height:36px!important;width:36px!important}}@media (max-width:480px){.leaflet-top.leaflet-right{top:30px}}.scrubber-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);bottom:16px;box-shadow:var(--shadow-lg);left:50%;max-width:80%;min-width:500px;padding:10px 14px;position:absolute;transform:translateX(-50%);z-index:1000}.scrubber-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.scrubber-title{color:var(--text-primary);font-size:12px;font-weight:600}.point-toggle-btn{align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:11px;gap:4px;padding:3px 8px;transition:all var(--transition)}.point-toggle-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.point-toggle-btn.active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent-text)}.scrubber-controls{display:flex;flex-direction:column;gap:6px}.slider-row{align-items:center;display:flex;gap:8px}.slider-row .time-label{color:var(--text-muted);font-family:var(--font-mono);font-size:10px;min-width:52px;text-align:center;white-space:nowrap}.dual-slider-container{flex:1 1;height:24px;position:relative}.dual-slider-track{background:var(--border);width:100%}.dual-slider-range,.dual-slider-track{border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%)}.dual-slider-range{background:var(--accent);pointer-events:none}.dual-slider-input{-webkit-appearance:none;appearance:none;background:#0000;height:100%;left:0;margin:0;outline:none;padding:0;pointer-events:none;position:absolute;top:0;width:100%}.dual-slider-tail::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--accent);border:2px solid var(--bg-surface);border-radius:50%;box-shadow:0 1px 3px #0006;cursor:pointer;height:12px;pointer-events:all;position:relative;width:12px;z-index:2}.dual-slider-tail::-moz-range-thumb{background:var(--accent);border:2px solid var(--bg-surface);border-radius:50%;box-shadow:0 1px 3px #0006;cursor:pointer;height:12px;pointer-events:all;width:12px}.dual-slider-head::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--accent-hover);border:2px solid var(--bg-surface);border-radius:50%;box-shadow:0 1px 4px #00000073;cursor:pointer;height:16px;pointer-events:all;position:relative;width:16px;z-index:3}.dual-slider-head::-moz-range-thumb{background:var(--accent-hover);border:2px solid var(--bg-surface);border-radius:50%;box-shadow:0 1px 4px #00000073;cursor:pointer;height:16px;pointer-events:all;width:16px}.scrubber-bottom-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.scrubber-actions{display:flex;gap:3px}.control-button{align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;min-height:28px;min-width:28px;padding:5px 7px;transition:all var(--transition)}.control-button:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.control-button:disabled{cursor:not-allowed;opacity:.3}.control-button.play-button{background:var(--accent);border-color:var(--accent);color:#fff}.control-button.play-button:hover:not(:disabled){background:var(--accent-hover)}.control-button.play-button.playing{background:var(--warning);border-color:var(--warning)}.control-button.play-button.playing:hover:not(:disabled){background:#c98600}.speed-dropdown{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-family:var(--font-sans);font-size:11px;min-width:54px;padding:4px 6px}.speed-dropdown:focus{border-color:var(--accent);outline:none}.time-display{font-family:var(--font-mono);font-size:11px;min-width:130px;text-align:right;white-space:nowrap}.time-current{color:var(--text-primary)}.time-all{color:var(--text-muted);font-style:italic}@media (max-width:768px){.scrubber-container{bottom:10px;left:10px;max-width:none;min-width:0;min-width:auto;padding:8px 10px;right:10px;transform:none;width:calc(100% - 20px)}.slider-row .time-label{display:none}.scrubber-bottom-row{flex-wrap:wrap;gap:6px}.scrubber-actions{flex:1 1;justify-content:center;order:1}.speed-dropdown{font-size:13px;min-height:32px;order:2;padding:6px}.time-display{font-size:10px;min-width:0;min-width:auto;order:3;text-align:center;width:100%}.control-button{min-height:32px;min-width:32px;padding:6px 8px}.dual-slider-tail::-webkit-slider-thumb{height:16px;width:16px}.dual-slider-head::-webkit-slider-thumb{height:20px;width:20px}}@media (max-width:480px){.scrubber-container{bottom:6px;left:6px;padding:6px;right:6px;width:calc(100% - 12px)}}.device-selector{align-items:center;border-right:1px solid var(--border);display:flex;flex-shrink:0;gap:8px;padding:6px 14px}.device-selector label{color:var(--text-muted);font-size:11px;font-weight:500;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap}.device-selector select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-family:var(--font-mono);font-size:12px;max-width:200px;min-width:120px;padding:5px 8px}.device-selector select:disabled{cursor:not-allowed;opacity:.5}.device-selector select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted);outline:none}@media (max-width:768px){.device-selector{border-bottom:1px solid var(--border-subtle);border-right:none;padding:6px 10px}.device-selector select{flex:1 1;font-size:14px;max-width:none;min-width:0;min-width:auto}}@media (max-width:480px){.device-selector label{display:none}}.device-status{margin-bottom:16px}.status-bar{align-items:center;background:var(--bg-elevated);border-left:3px solid var(--border);border-radius:var(--radius-md);display:flex;gap:10px;padding:10px 14px}.status-bar.active{background:var(--accent-muted);border-left-color:var(--accent)}.status-bar.stale{background:var(--warning-muted);border-left-color:var(--warning)}.device-status .status-indicator{animation:pulse 2s infinite;border-radius:50%;height:10px;width:10px}.device-status .status-indicator.active{background:var(--accent)}.device-status .status-indicator.stale{animation:none;background:var(--warning)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.status-text{color:var(--text-primary);flex:1 1;font-size:13px}.status-text strong{font-weight:600;margin-right:6px}.time-since{color:var(--text-muted);font-style:italic}.device-status .empty-state{color:var(--text-muted);padding:40px 20px;text-align:center}@media (max-width:768px){.status-bar{gap:8px;padding:8px 12px}.status-text{font-size:12px}.time-since{display:block;margin-top:2px}}@media (max-width:480px){.status-bar{align-items:flex-start;flex-direction:column;gap:6px;position:relative}.status-indicator{position:absolute;right:8px;top:8px}}.device-queue{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex:1 1;flex-direction:column;padding:16px}.queue-header{align-items:center;display:flex;gap:8px;margin-bottom:12px}.device-queue h3{color:var(--text-primary);flex:1 1;font-size:15px;font-weight:600;margin:0}.refresh-button{align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:flex;font-family:var(--font-sans);justify-content:center;padding:5px 10px;transition:all var(--transition)}.refresh-button:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.refresh-button:disabled{cursor:not-allowed;opacity:.5}.refresh-button .spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.queue-grid{grid-gap:12px;display:grid;flex:1 1;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.queue-section{background:var(--bg-elevated);border-left:3px solid var(--border);border-radius:var(--radius-md);display:flex;flex:1 1;flex-direction:column;min-height:140px;padding:12px}.queue-section .queue-list{flex:1 1}.queue-section.pending-section{border-left-color:var(--warning)}.queue-section.processing-section{border-left-color:var(--info)}.queue-section.completed-section{border-left-color:var(--accent)}.queue-section.failed-section{border-left-color:var(--danger)}.queue-section h4{color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.3px;margin:0 0 10px;text-transform:uppercase}.queue-list{display:flex;flex-direction:column;gap:4px;max-height:500px;overflow-y:auto}.queue-item{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);flex-shrink:0;font-size:12px;min-height:32px;overflow:hidden;transition:border-color var(--transition)}.queue-item.expanded{border-color:var(--accent)}.queue-item-header{align-items:center;cursor:pointer;display:flex;gap:8px;padding:7px 8px;transition:background var(--transition);-webkit-user-select:none;user-select:none}.queue-item-header:hover{background:var(--bg-hover)}.expand-icon{color:var(--text-muted);flex-shrink:0;font-size:10px}.item-summary{color:var(--text-primary);flex:1 1;font-family:var(--font-mono);font-size:10px;word-break:break-all}.item-details{background:var(--bg-elevated);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:5px;padding:10px}.detail-row{display:flex;font-size:11px;gap:8px;line-height:1.4}.detail-label{color:var(--text-muted);flex-shrink:0;font-weight:600;min-width:80px}.detail-value{color:var(--text-primary);flex:1 1;font-family:var(--font-mono);font-size:10px;word-break:break-all}.detail-value.error{color:var(--danger);font-weight:600}.video-link{color:var(--info);font-weight:600;text-decoration:none}.video-link:hover{text-decoration:underline}.item-detail-simple{background:var(--bg-elevated);border-top:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-mono);font-size:10px;padding:10px}.queue-empty{font-size:12px;font-style:italic;padding:16px}.device-queue .empty-state,.queue-empty{color:var(--text-muted);text-align:center}.device-queue .empty-state{padding:40px 20px}@media (max-width:768px){.device-queue{padding:12px}.device-queue h3{font-size:14px;width:100%}.refresh-button{min-height:44px;padding:8px 14px}.queue-grid{gap:10px;grid-template-columns:1fr}.queue-section{min-height:120px;padding:10px}.queue-list{max-height:300px}.queue-item-header{padding:8px}.detail-row{flex-direction:column;gap:2px}}@media (max-width:480px){.device-queue{padding:10px}.queue-section{min-height:100px;padding:8px}}.device-health-chart{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:flex;flex:1 1;flex-direction:column;height:100%;min-height:800px;overflow:hidden;padding:16px 16px 8px}.device-health-chart>div{flex:1 1;min-height:800px;overflow:visible}.device-health-chart .empty-state{align-items:center;color:var(--text-muted);display:flex;flex:1 1;font-size:14px;justify-content:center}@media (max-width:768px){.device-health-chart{min-height:400px;padding:10px}.device-health-chart>div{min-height:350px}}@media (max-width:480px){.device-health-chart{min-height:300px;padding:8px}.device-health-chart>div{min-height:280px}}.thermal-analysis{background:#1a1d20;display:flex;flex:1 1;min-height:0;overflow:hidden}.ta-sidebar{background:#1e2124;border-right:1px solid #2a2d30;display:flex;flex-direction:column;flex-shrink:0;min-width:220px;overflow:hidden;width:260px}.ta-section{border-bottom:1px solid #2a2d30;flex-shrink:0}.ta-panels-section{border-bottom:none;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.ta-section-hdr{align-items:center;background:#232629;cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;-webkit-user-select:none;user-select:none}.ta-section-hdr:hover{background:#282b2f}.ta-section-title{color:#777;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.ta-section-arrow{color:#555;font-size:10px}.ta-section-body{padding:8px 10px}.ta-ds-row{align-items:center;display:flex;gap:8px;padding:4px 0}.ta-ds-badge{border-radius:3px;color:#fff;font-family:Courier New,monospace;font-size:10px;font-weight:700;padding:2px 8px}.ta-ds-count{color:#666;flex:1 1;font-size:10px}.ta-x-btn{align-items:center;background:#0000;border:none;border-radius:3px;color:#555;cursor:pointer;display:flex;flex-shrink:0;font-size:14px;height:18px;justify-content:center;line-height:1;padding:0;width:18px}.ta-x-btn:hover{background:#3a2020;color:#f44336}.ta-add-form{background:#252830;border-radius:4px;display:flex;flex-direction:column;gap:6px;margin-top:6px;padding:8px}.ta-input,.ta-select{background:#1a1d20;border:1px solid #333;border-radius:3px;color:#ccc;font-family:Courier New,monospace;font-size:11px;padding:5px 8px;width:100%}.ta-input:focus,.ta-select:focus{border-color:var(--accent);outline:none}.ta-add-row{align-items:center;display:flex;gap:6px}.ta-add-label{color:#777;flex-shrink:0;font-size:10px;font-weight:600}.ta-add-actions{display:flex;gap:4px}.ta-btn{background:#0000;border:1px solid #444;border-radius:3px;color:#999;cursor:pointer;font-size:10px;font-weight:600;padding:4px 12px;transition:all .15s}.ta-btn:hover{background:#2a2d30;border-color:#555;color:#ccc}.ta-btn:disabled{cursor:not-allowed;opacity:.4}.ta-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.ta-btn-primary:hover{background:var(--accent-hover)}.ta-btn-sm{font-size:10px;padding:3px 8px}.ta-btn-active{background:#2196f3;border-color:#2196f3;color:#fff}.ta-btn-active:hover{background:#1976d2}.ta-text-btn{background:#0000;border:1px dashed #333;border-radius:4px;color:var(--accent);cursor:pointer;display:block;font-size:11px;font-weight:600;margin-top:6px;padding:6px 10px;text-align:center;transition:all .15s;width:100%}.ta-text-btn:hover{background:var(--accent-muted);border-color:var(--accent)}.ta-text-btn-sm{border:1px solid #333;border-radius:3px;color:#666;font-size:9px;margin:0;padding:2px 8px;width:auto}.ta-text-btn-sm:hover{background:#2a2d30;border-color:#555;color:#aaa}.ta-panels-list{flex:1 1;overflow-y:auto;padding:6px 10px 10px}.ta-panels-list::-webkit-scrollbar{width:4px}.ta-panels-list::-webkit-scrollbar-thumb{background:#444;border-radius:2px}.ta-panel-block{background:#232629;border:1px solid #2e3135;border-radius:5px;margin-bottom:6px;overflow:hidden}.ta-panel-hdr{background:#282b2f;gap:4px;padding:5px 6px}.ta-collapse-btn,.ta-panel-hdr{align-items:center;display:flex}.ta-collapse-btn{background:#0000;border:none;color:#555;cursor:pointer;flex-shrink:0;font-size:10px;height:16px;justify-content:center;padding:0;width:16px}.ta-panel-name{background:#0000;border:none;border-radius:3px;color:#ccc;flex:1 1;font-size:11px;font-weight:600;min-width:0;padding:2px 4px}.ta-panel-name:focus{background:#1a1d20;border:1px solid var(--accent);outline:none;padding:1px 3px}.ta-panel-btns{display:flex;flex-shrink:0;gap:1px}.ta-icon-btn{align-items:center;background:#0000;border:none;border-radius:3px;color:#555;cursor:pointer;display:flex;font-size:11px;height:20px;justify-content:center;padding:0;transition:all .1s;width:20px}.ta-icon-btn:hover{background:#333;color:#aaa}.ta-icon-btn:disabled{cursor:default;opacity:.3}.ta-icon-btn-danger:hover{background:#3a2020;color:#f44336}.ta-panel-body{padding:6px 8px 8px}.ta-chips{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:4px}.ta-chip{align-items:center;background:#1e2124;border:1px solid #333;border-radius:3px;color:#aaa;display:inline-flex;font-size:10px;gap:4px;max-width:100%;padding:2px 6px}.ta-chip-dot{border-radius:50%;flex-shrink:0;height:6px;width:6px}.ta-chip-label{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ta-chip-x{align-items:center;background:#0000;border:none;border-radius:2px;color:#555;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:14px;justify-content:center;line-height:1;padding:0;width:14px}.ta-chip-x:hover{background:#3a2020;color:#f44336}.ta-add-ch-select{background:#1a1d20;border:1px dashed #333;border-radius:3px;color:var(--accent);cursor:pointer;font-size:10px;padding:4px 6px;width:100%}.ta-add-ch-select:focus{border-color:var(--accent);border-style:solid;outline:none}.ta-add-ch-select option{background:#1e2124;color:#ccc}.ta-add-ch-select optgroup{color:#888;font-weight:700}.ta-main{background:#1a1d20;display:flex;flex:1 1;flex-direction:column;min-width:0}.ta-chart-toolbar{align-items:center;background:#1e2124;border-bottom:1px solid #2a2d30;display:flex;flex-shrink:0;gap:6px;padding:5px 10px}.ta-chart{flex:1 1;min-height:0;width:100%}.ta-empty{align-items:center;color:#555;display:flex;flex:1 1;font-size:14px;font-weight:500;justify-content:center}.ta-chart .modebar{background:#0000!important}.ta-chart .modebar-btn path{fill:#555!important}.ta-chart .modebar-btn:hover path{fill:#aaa!important}.ta-chart .modebar-btn.active path{fill:var(--accent)!important}@media (max-width:900px){.ta-sidebar{min-width:180px;width:200px}}@media (max-width:700px){.thermal-analysis{flex-direction:column}.ta-sidebar{border-bottom:1px solid #2a2d30;border-right:none;flex-direction:row;max-height:220px;min-width:0;min-width:auto;overflow-x:auto;width:100%}.ta-section{border-bottom:none;border-right:1px solid #2a2d30;min-width:200px}.ta-panels-section{flex:initial;min-width:300px}}.device-thermals{display:flex;flex-direction:column;height:100%;overflow:hidden}.device-thermals.empty-state{align-items:center;color:#888;justify-content:center;padding:40px;text-align:center}.device-thermals .hint{color:#666;font-size:12px;margin-top:4px}.thermal-status-bar{align-items:center;background:#1e2124;border-bottom:1px solid #333;display:flex;flex-shrink:0;flex-wrap:wrap;gap:14px;padding:7px 16px}.status-item{align-items:center;display:flex;gap:6px}.status-label{color:#999;font-size:10px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.status-badge{border-radius:10px;color:#fff;font-size:11px;font-weight:700;padding:2px 10px}.status-value{color:#eee;font-family:Courier New,monospace;font-size:12px;font-weight:600}.headroom-bar-wrapper{background:#333;border-radius:7px;height:14px;overflow:hidden;position:relative;width:80px}.headroom-bar-fill{border-radius:7px;height:100%;transition:width .3s,background .3s}.headroom-value{color:#fff;font-size:9px;font-weight:700;left:0;line-height:14px;position:absolute;right:0;text-align:center;text-shadow:0 0 3px #0009;top:0}.thermal-page-tabs{background:#2a2d30;border-radius:6px;display:flex;gap:2px;margin-left:auto;padding:2px}.thermal-page-btn{background:#0000;border:none;border-radius:5px;color:#888;cursor:pointer;font-size:11px;font-weight:600;padding:4px 14px;transition:all .15s}.thermal-page-btn:hover{color:#ccc}.thermal-page-btn.active{background:var(--accent);color:#fff}.thermals-body{display:flex;flex:1 1;min-height:0;overflow:hidden}.reference-photo-panel{align-items:center;background:#1a1d20;border-right:1px solid #333;display:flex;justify-content:center;max-width:300px;min-width:200px;overflow:hidden;padding:12px;width:240px}.reference-photo-img{border-radius:6px;max-height:100%;max-width:100%;object-fit:contain;opacity:.9}.photo-placeholder{color:#666;font-size:11px;line-height:1.6;text-align:center}.photo-placeholder code{background:#2a2d30;border-radius:4px;color:#aaa;display:block;font-size:10px;margin:6px 0;padding:4px 8px;word-break:break-all}.photo-toggle-btn{background:#2a2d30;border:1px solid #555;border-radius:5px;color:#888;cursor:pointer;flex-shrink:0;font-size:11px;font-weight:600;margin-bottom:6px;padding:4px 12px;transition:all .15s}.photo-toggle-btn:hover{border-color:#777;color:#ccc}.photo-toggle-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.phone-heatmap-container{align-items:center;background:#1a1d20;display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0;padding:6px 16px;position:relative}.phone-svg{filter:drop-shadow(0 4px 12px rgba(0,0,0,.4));flex:1 1;max-height:calc(100% - 44px);max-width:220px;width:auto}.phone-outline{fill:#2a2d30;stroke:#555;stroke-width:.4}.thermal-zone-rect{cursor:pointer;transition:opacity .15s,stroke .15s}.zone-label{font-size:3.2px;font-weight:700}.zone-label,.zone-temp{fill:#fff;pointer-events:none;text-shadow:0 0 3px #000000e6}.zone-temp{font-family:Courier New,monospace;font-size:3.4px;font-weight:600}.battery-gap-label{fill:#ffffff2e;font-size:3.5px;font-weight:600;letter-spacing:.5px;pointer-events:none}.color-scale{flex-shrink:0;margin-top:6px;width:180px}.scale-gradient{background:linear-gradient(90deg,#4fc3f7,#4caf50,#ffeb3b,#ff9800,#f44336);border-radius:4px;height:8px}.scale-labels{color:#888;display:flex;font-size:9px;justify-content:space-between;margin-top:2px}.zone-tooltip{background:#2a2d30;border:1px solid #555;border-radius:8px;bottom:50px;box-shadow:0 4px 12px #0006;left:50%;max-height:260px;min-width:180px;overflow-y:auto;padding:10px 14px;position:absolute;transform:translateX(-50%);z-index:10}.tooltip-title{border-bottom:1px solid #444;color:#eee;font-size:12px;font-weight:700;margin-bottom:6px;padding-bottom:4px}.tooltip-sensor{align-items:center;display:flex;gap:6px;padding:2px 0}.tooltip-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.tooltip-name{color:#bbb;flex:1 1}.tooltip-name,.tooltip-val{font-family:Courier New,monospace;font-size:10px}.tooltip-val{color:#eee;font-weight:600}.sensor-panel{background:#1e2124;border-left:1px solid #333;display:flex;flex-direction:column;min-width:220px;overflow:hidden;width:220px}.sensor-panel-header{align-items:center;background:#252830;border-bottom:1px solid #333;color:#ccc;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;font-weight:700;justify-content:space-between;padding:8px 12px;-webkit-user-select:none;user-select:none}.sensor-panel-header:hover{background:#2a2e32}.sensor-panel-body{flex:1 1;overflow-y:auto;padding:6px 0}.sensor-group{margin-bottom:8px;padding:0 10px}.sensor-group-title{border-bottom:1px solid #333;color:#777;font-size:10px;font-weight:700;letter-spacing:.4px;margin-bottom:3px;padding:4px 0 2px;text-transform:uppercase}.sensor-row{align-items:center;display:flex;gap:6px;padding:2px 0}.sensor-dot{border-radius:50%;flex-shrink:0;height:6px;width:6px}.sensor-name{color:#aaa;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensor-name,.sensor-val{font-family:Courier New,monospace;font-size:10px}.sensor-val{color:#eee;flex-shrink:0;font-weight:600}.sensor-panel-body::-webkit-scrollbar{width:4px}.sensor-panel-body::-webkit-scrollbar-thumb{background:#555;border-radius:2px}.thermal-scrubber{background:#1e2124;border-top:1px solid #333;gap:10px;padding:8px 16px}.scrub-controls,.thermal-scrubber{align-items:center;display:flex;flex-shrink:0}.scrub-controls{gap:4px}.scrub-btn{align-items:center;background:#2a2d30;border:1px solid #555;border-radius:6px;color:#ccc;cursor:pointer;display:flex;height:30px;justify-content:center;transition:all .15s;width:30px}.scrub-btn:hover{background:#3a3d40;border-color:#888;color:#fff}.scrub-btn.play{background:var(--accent);border-color:var(--accent);color:#fff}.scrub-btn.play:hover{background:var(--accent-hover)}.scrub-speed{background:#2a2d30;border:1px solid #555;border-radius:4px;color:#ccc;cursor:pointer;font-size:11px;padding:4px 6px}.scrub-slider{-webkit-appearance:none;appearance:none;background:#333;border-radius:3px;flex:1 1;height:6px;outline:none}.scrub-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:2px solid #1e2124;border-radius:50%;cursor:pointer;height:16px;width:16px}.scrub-slider::-moz-range-thumb{background:var(--accent);border:2px solid #1e2124;border-radius:50%;cursor:pointer;height:16px;width:16px}.scrub-timestamp{color:#aaa;flex-shrink:0;font-family:Courier New,monospace;font-size:11px;min-width:130px;text-align:right;white-space:nowrap}.heatmap-page{flex:1 1;flex-direction:column;min-height:0;overflow:hidden}@media (max-width:768px){.thermals-body{flex-direction:column}.reference-photo-panel{border-bottom:1px solid #333;border-right:none;max-width:none}.reference-photo-panel,.sensor-panel{max-height:200px;min-width:0;min-width:auto;width:100%}.sensor-panel{border-left:none;border-top:1px solid #333}.thermal-scrubber{flex-wrap:wrap}}.gate-map-picker-overlay{align-items:center;background:var(--bg-overlay);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.gate-map-picker{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:90vh;max-width:900px;overflow:hidden;width:100%}.picker-header{align-items:center;background:var(--bg-elevated);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:14px 18px}.picker-header h3{align-items:center;color:var(--text-primary);display:flex;font-size:15px;gap:8px;margin:0}.picker-header .close-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all var(--transition)}.picker-header .close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.picker-content{display:flex;flex:1 1;flex-direction:column;min-height:0}.gate-map-picker .map-container{flex:1 1;min-height:450px;position:relative}.picker-legend{background:var(--bg-elevated);border-top:1px solid var(--border);display:flex;gap:20px;padding:10px 18px}.picker-legend .legend-item{align-items:center;background:#0000;border:none;color:var(--text-secondary);cursor:default;display:flex;font-size:12px;gap:6px;padding:0}.legend-line{border-radius:2px;height:3px}.legend-line.available{background:var(--text-secondary)}.legend-line.selected{background:var(--info);height:3px}.legend-line.other-device{background:var(--warning)}.legend-line.current-device{background:repeating-linear-gradient(90deg,var(--text-muted),var(--text-muted) 4px,#0000 4px,#0000 8px)}.picker-footer{background:var(--bg-elevated);border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:14px 18px}.cancel-btn{background:#0000;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:500;padding:8px 18px;transition:all var(--transition)}.cancel-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.done-btn{align-items:center;background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;font-family:var(--font-sans);font-size:13px;font-weight:500;gap:6px;padding:8px 22px;transition:background var(--transition)}.done-btn:hover:not(:disabled){background:var(--accent-hover)}.done-btn:disabled{cursor:not-allowed;opacity:.5}.gate-tooltip{min-width:140px}.gate-tooltip strong{display:block;font-size:12px;margin-bottom:3px}.gate-tooltip .assigned-badge,.gate-tooltip .selected-badge{border-radius:3px;display:inline-block;font-size:9px;font-weight:500;margin-left:5px;padding:1px 5px}.gate-tooltip .assigned-badge{background:var(--bg-hover);color:var(--text-muted)}.gate-tooltip .assigned-badge.other{background:var(--warning-muted);color:var(--warning)}.gate-tooltip .selected-badge{background:var(--info-muted);color:var(--info)}.gate-tooltip .tooltip-row{color:var(--text-muted);font-size:10px;margin:2px 0}.gate-tooltip .tooltip-row.devices{color:var(--warning);font-size:9px;font-style:italic}.gate-tooltip .tooltip-hint{border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:9px;font-style:italic;margin-top:4px;padding-top:4px}@media (max-width:768px){.gate-map-picker-overlay{align-items:stretch;padding:0}.gate-map-picker{border-radius:0;height:100%;max-height:100%;max-width:100%}.gate-map-picker .map-container{min-height:300px}.picker-legend{flex-wrap:wrap;gap:8px;padding:8px 14px}.picker-footer{flex-direction:column;gap:8px;padding:10px 14px}.cancel-btn,.done-btn{justify-content:center;min-height:44px;width:100%}.done-btn{order:-1}}.device-settings{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px}.settings-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.settings-header h3{align-items:center;color:var(--text-primary);display:flex;font-size:15px;gap:8px;margin:0}.unsaved-indicator{background:var(--warning-muted);border-radius:10px;color:var(--warning);font-size:11px;font-weight:500;padding:3px 8px}.settings-section{margin-bottom:20px}.settings-section h4{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;margin:0 0 10px;text-transform:uppercase}.trigger-section{background:none;border:none;padding:0}.trigger-content{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.trigger-description{color:var(--text-secondary);flex:1 1;font-size:13px;margin:0;min-width:200px}.trigger-btn{align-items:center;background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;font-family:var(--font-sans);font-size:13px;font-weight:500;gap:8px;padding:9px 18px;transition:all var(--transition)}.trigger-btn:hover:not(:disabled){background:var(--accent-hover)}.trigger-btn:disabled{cursor:not-allowed;opacity:.5}.trigger-btn.loading{background:var(--text-muted)}.trigger-message{border-radius:var(--radius-sm);font-size:12px;padding:5px 10px}.trigger-message.success{background:var(--accent-muted);color:var(--accent-text)}.trigger-message.error{background:var(--danger-muted);color:var(--danger)}.settings-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.setting-field{display:flex;flex-direction:column;gap:5px}.setting-field label{color:var(--text-secondary);display:flex;flex-direction:column;font-size:12px;font-weight:500}.field-hint{color:var(--text-muted);font-size:10px;font-weight:400;margin-top:2px}.input-with-unit{align-items:center;display:flex;gap:8px}.input-with-unit input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);flex:1 1;font-family:var(--font-sans);font-size:13px;padding:7px 10px;transition:border-color var(--transition)}.input-with-unit input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted);outline:none}.input-with-unit .unit{color:var(--text-muted);font-size:11px;min-width:20px}.current-value{color:var(--text-muted);font-family:var(--font-mono);font-size:10px}.assigned-gates{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:12px;overflow:hidden}.gates-table-header{grid-gap:8px;background:var(--bg-hover);color:var(--text-muted);display:grid;font-size:10px;font-weight:600;gap:8px;grid-template-columns:1fr 80px 40px;letter-spacing:.4px;padding:8px 12px;text-transform:uppercase}.gates-table-header.sortable{grid-template-columns:1fr 80px 140px 40px}.gates-table-header .sort-btn{align-items:center;background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:10px;font-weight:600;gap:4px;letter-spacing:.4px;padding:0;text-transform:uppercase;transition:color var(--transition)}.gates-table-header .sort-btn:hover{color:var(--text-primary)}.gates-table-header .sort-btn.active{color:var(--accent-text)}.gates-table-body{max-height:200px;overflow-y:auto}.gates-table-body.picker{max-height:250px}.gate-row{grid-gap:8px;border-bottom:1px solid var(--border-subtle);display:grid;font-size:12px;gap:8px;grid-template-columns:1fr 80px 40px;padding:8px 12px;transition:background var(--transition)}.gate-row:last-child{border-bottom:none}.gate-row:hover{background:var(--bg-hover)}.gate-row.assigned{background:var(--accent-muted)}.gates-table-body.picker .gate-row{grid-template-columns:1fr 80px 140px 40px}.gate-row .col-gate{align-items:center;color:var(--text-primary);display:flex;font-family:var(--font-mono);font-size:11px;gap:6px}.gate-row .col-user{font-family:var(--font-mono)}.gate-row .col-created,.gate-row .col-user{color:var(--text-muted);font-size:10px}.add-gate-row-btn,.gate-row .col-actions,.remove-gate-btn{display:flex;justify-content:center}.add-gate-row-btn,.remove-gate-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:3px;transition:all var(--transition)}.remove-gate-btn:hover{background:var(--danger-muted);border-color:var(--danger);color:var(--danger)}.add-gate-row-btn:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.no-gates{color:var(--text-muted);font-size:12px;font-style:italic;padding:20px;text-align:center}.add-gate-actions{display:flex;gap:8px;margin-bottom:12px}.add-gate-btn{align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:12px;gap:6px;padding:7px 12px;transition:all var(--transition)}.add-gate-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.add-gate-btn.map-btn{border-color:var(--accent);color:var(--accent-text)}.add-gate-btn.map-btn:hover{background:var(--accent-muted)}.gate-picker{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin-top:12px;overflow:hidden}.gate-picker-header{align-items:center;background:var(--bg-elevated);border-bottom:1px solid var(--border);color:var(--text-secondary);display:flex;font-size:12px;font-weight:500;justify-content:space-between;padding:8px 12px}.close-picker{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;justify-content:center;padding:3px;transition:all var(--transition)}.close-picker:hover{background:var(--bg-hover);color:var(--text-primary)}.toggle-advanced{background:#0000;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-family:var(--font-sans);font-size:12px;padding:6px 10px;transition:all var(--transition)}.toggle-advanced:hover{background:var(--bg-hover);color:var(--text-primary)}.advanced-config{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-top:12px;max-height:300px;overflow-y:auto;padding:10px}.config-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.config-item{background:var(--bg-surface);border-radius:3px;display:flex;font-size:10px;gap:12px;justify-content:space-between;padding:5px 8px}.config-key{color:var(--text-muted)}.config-key,.config-value{font-family:var(--font-mono);word-break:break-all}.config-value{color:var(--text-primary);font-weight:500;text-align:right}.device-info{border-top:1px solid var(--border);padding-top:14px}.info-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.info-item{display:flex;flex-direction:column;gap:3px}.info-label{color:var(--text-muted);font-size:10px;letter-spacing:.4px;text-transform:uppercase}.info-value{color:var(--text-primary);font-size:12px}.info-value.status-online{color:var(--accent);font-weight:600}.info-value.status-offline{color:var(--danger);font-weight:600}.restart-reason{color:var(--warning);font-size:11px}.settings-actions{border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:14px}.reset-btn{background:#0000;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);font-size:13px;padding:8px 18px;transition:all var(--transition)}.reset-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.reset-btn:disabled{cursor:not-allowed;opacity:.4}.save-btn{background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:500;padding:8px 22px;transition:background var(--transition)}.save-btn:hover:not(:disabled){background:var(--accent-hover)}.save-btn:disabled{cursor:not-allowed;opacity:.5}.device-settings .empty-state{color:var(--text-muted);padding:40px 20px;text-align:center}@media (max-width:768px){.device-settings{padding:12px}.settings-header{align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:16px}.settings-grid{grid-template-columns:1fr}.input-with-unit input{font-size:16px;min-height:44px;padding:10px}.trigger-content{align-items:stretch;flex-direction:column}.trigger-btn{justify-content:center;min-height:44px;padding:12px;width:100%}.add-gate-actions{flex-direction:column}.add-gate-btn{justify-content:center;min-height:44px;padding:10px;width:100%}.config-grid,.info-grid{grid-template-columns:1fr}.settings-actions{flex-direction:column;gap:8px}.reset-btn,.save-btn{min-height:44px;width:100%}.save-btn{order:-1}.gates-table-body.picker .gate-row,.gates-table-header.sortable{grid-template-columns:1fr 60px 100px 36px}}@media (max-width:480px){.device-settings{padding:10px}.gates-table-body.picker .gate-row,.gates-table-header.sortable{grid-template-columns:1fr 50px 80px 32px}}.device-overview{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex:1 1;flex-direction:column;overflow:hidden}.overview-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:14px 16px}.overview-header h2{color:var(--text-primary);font-size:15px;font-weight:600;margin:0}.overview-header-controls{align-items:center;display:flex;gap:10px}.location-filter{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:12px;outline:none;padding:4px 8px;transition:border-color var(--transition)}.location-filter:hover{border-color:var(--text-muted)}.location-filter:focus{border-color:var(--accent)}.device-count{background:var(--bg-elevated);border-radius:10px;color:var(--text-muted);font-size:12px;padding:3px 8px;white-space:nowrap}.overview-table-container{flex:1 1;overflow:auto}.overview-table{border-collapse:collapse;font-size:13px;width:100%}.overview-table thead{background:var(--bg-elevated);position:-webkit-sticky;position:sticky;top:0;z-index:1}.overview-table th{border-bottom:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.3px;padding:10px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.overview-table th.sortable{cursor:pointer;transition:color var(--transition);-webkit-user-select:none;user-select:none}.overview-table th.sortable:hover{color:var(--text-primary)}.overview-table th.sortable.active{color:var(--accent-text)}.sort-indicator{font-size:10px;margin-left:4px}.overview-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:10px 14px;vertical-align:middle}.device-row{cursor:pointer;transition:background var(--transition)}.device-row:hover{background:var(--bg-hover)}.device-row:active{background:var(--accent-muted)}.col-status{text-align:center;width:44px}.device-overview .status-indicator{animation:none;background:var(--text-muted);border-radius:50%;display:inline-block;height:10px;width:10px}.device-overview .status-indicator.online{background:#4caf50;box-shadow:0 0 0 3px #4caf5033}.device-overview .status-indicator.offline{background:#9e3a3a}.col-device{min-width:100px}.device-name{color:var(--text-primary);font-family:var(--font-mono);font-size:12px;font-weight:500}.gate-badge{background:var(--bg-hover);border-radius:3px;color:var(--text-muted);font-size:10px;margin-left:6px;padding:2px 5px}.col-heartbeat{color:var(--text-secondary);min-width:100px}.col-location,.col-placement{min-width:120px}.not-assigned{color:var(--text-muted);font-style:italic}.device-overview .empty-state,.loading-state{align-items:center;color:var(--text-muted);display:flex;flex:1 1;font-size:14px;justify-content:center;padding:40px}.overview-hint{background:var(--bg-elevated);border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:11px;padding:8px 14px;text-align:center}@media (max-width:768px){.overview-header{align-items:flex-start;flex-direction:column;gap:6px;padding:10px 14px}.overview-table{font-size:12px;min-width:500px}.overview-table td,.overview-table th{padding:8px 10px}.col-location,.col-placement{display:none}}@media (max-width:480px){.overview-table{font-size:11px;min-width:400px}.overview-table td,.overview-table th{padding:6px 8px}.col-status{width:36px}.status-indicator{height:8px;width:8px}}.devices-page{background:var(--bg-base);display:flex;flex-direction:column;gap:0;height:100%;overflow:auto;padding:0}.device-toolbar{align-items:center;background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:0}.devices-page .error-message{background:var(--danger-muted);border:1px solid #f851494d;border-radius:var(--radius-md);color:var(--danger);font-size:13px;margin:12px 16px 0;padding:10px 14px}.devices-page .loading-overlay{align-items:center;display:flex;justify-content:center;padding:60px 20px}.devices-page .loading-spinner{color:var(--text-muted);font-size:14px;font-weight:500}.devices-page .empty-state{align-items:center;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.devices-page .empty-state .empty-icon{color:var(--text-muted);margin-bottom:16px}.devices-page .empty-state h3{color:var(--text-primary);font-size:16px;margin:0 0 8px}.devices-page .empty-state p{color:var(--text-muted);font-size:13px;margin:0}.device-content{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.device-subtabs{gap:2px;padding:0 8px}.device-subtabs,.subtab{align-items:center;display:flex}.subtab{background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:500;gap:6px;padding:10px 16px;position:relative;transition:all var(--transition)}.subtab:hover{background:var(--bg-hover);color:var(--text-primary)}.subtab.active{background:var(--accent-muted);color:var(--accent-text)}.queue-badge{align-items:center;background:var(--warning);border-radius:9px;color:var(--text-inverse);display:inline-flex;font-size:10px;font-weight:600;height:18px;justify-content:center;min-width:18px;padding:0 5px}.subtab-content{background:var(--bg-base);flex:1 1;min-height:0;overflow:auto}.overview-content{display:flex;flex-direction:column;gap:16px;padding:16px}.thermals-content{background:#1a1d20;overflow:hidden;padding:0}.queue-content,.thermals-content{display:flex;flex-direction:column}.queue-content{flex:1 1;padding:16px}.settings-content{padding:16px}.save-success-message{animation:fadeIn .3s ease;background:var(--accent-muted);border:1px solid #4caf504d;border-radius:var(--radius-md);color:var(--accent-text);font-size:13px;font-weight:500;margin-bottom:16px;padding:10px 14px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.device-toolbar{flex-wrap:wrap}.device-subtabs{-webkit-overflow-scrolling:touch;border-top:1px solid var(--border-subtle);flex-wrap:nowrap;gap:2px;overflow-x:auto;padding:4px 6px;scrollbar-width:none;width:100%}.device-subtabs::-webkit-scrollbar{display:none}.subtab{flex:0 0 auto;justify-content:center;padding:8px 12px;white-space:nowrap}.subtab span:not(.queue-badge){display:none}.subtab.active span:not(.queue-badge){display:inline}.overview-content,.queue-content,.settings-content{padding:12px}}@media (max-width:480px){.subtab{font-size:12px;padding:8px 10px}.overview-content,.queue-content,.settings-content{padding:10px}}.dev-page{display:flex;height:100%;overflow:hidden;width:100%}.dev-page-empty{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;height:100%;justify-content:center;padding:40px;text-align:center}.dev-page-empty h2{color:var(--text-primary);margin-bottom:12px}.dev-sidebar{background:#fafafa;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;gap:2px;height:100%;max-width:50vw;min-width:220px;overflow-x:hidden;overflow-y:auto;padding:14px;position:relative;resize:horizontal;width:310px}.dev-sidebar h2{color:#333;flex-shrink:0;font-size:17px;margin:0 0 10px}.dev-section{background:#fff;border:1px solid #e8e8e8;border-radius:6px;flex-shrink:0;margin-bottom:6px;overflow:visible}.section-header{align-items:center;cursor:pointer;display:flex;gap:6px;padding:8px 10px;transition:background .1s;-webkit-user-select:none;user-select:none}.section-header:hover{background:#f5f5f5}.section-title{color:#666;flex:1 1;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.section-badge{background:#f0f0f0;border-radius:10px;color:#999;font-size:10px;font-weight:600;padding:1px 7px}.section-body{padding:0 10px 10px}.activity-list{display:flex;flex-direction:column;gap:2px;margin-bottom:6px;max-height:200px;overflow-y:auto}.activity-row{align-items:center;border-radius:4px;display:flex;gap:6px;padding:4px 6px;transition:background .1s}.activity-row:hover{background:#f5f5f5}.activity-row.selected{background:#e8f5e9}.activity-cb{cursor:pointer;flex-shrink:0;height:14px;width:14px}.color-swatch-dev{cursor:pointer;flex-shrink:0;position:relative}.color-preview-dev{border:1px solid #00000026;border-radius:3px;display:block;height:16px;width:16px}.color-input-hidden-dev{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.activity-name{color:#444;flex:1 1;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-name,.activity-pts{font-family:Courier New,monospace}.activity-pts{color:#999;flex-shrink:0;font-size:10px}.activity-actions{display:flex;gap:4px}.mini-btn{background:#fff;border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;flex:1 1;font-size:10px;padding:4px;transition:all .15s}.mini-btn:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.display-settings{margin-bottom:8px}.setting-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:2px}.setting-label{color:#555;font-size:11px;font-weight:500}.setting-value{background:#f0f0f0;border-radius:3px;color:#333;font-family:Courier New,monospace;font-size:11px;font-weight:600;padding:1px 6px}.pipeline-insert-point{align-items:center;display:flex;gap:3px;opacity:.25;padding:2px 0;transition:opacity .15s}.pipeline-insert-point:hover{opacity:1}.insert-line{background:#ccc;flex:1 1;height:1px}.insert-btn{align-items:center;background:#fff;border:1px dashed #ccc;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;height:18px;justify-content:center;padding:0;transition:all .15s;width:18px}.insert-btn.outlier:hover{background:#fff3e0;border-color:#ff9800;border-style:solid;color:#ff9800}.insert-btn.smooth:hover{background:#e3f2fd;border-color:#2196f3;border-style:solid;color:#2196f3}.pipeline-empty{color:#aaa;font-size:11px;font-style:italic;padding:8px 0;text-align:center}.pipeline-stage{background:#fafafa;border:1px solid #e0e0e0;border-radius:6px;padding:8px;transition:border-color .15s}.pipeline-stage.outlier{border-left:3px solid #ff9800}.pipeline-stage.smooth{border-left:3px solid #2196f3}.stage-header{gap:4px;margin-bottom:4px}.stage-header,.stage-num{align-items:center;display:flex}.stage-num{background:#2196f3;border-radius:50%;color:#fff;flex-shrink:0;font-size:10px;font-weight:700;height:18px;justify-content:center;width:18px}.stage-num.outlier{background:#ff9800}.stage-algo-select{background:#fff;flex:1 1;font-size:11px;padding:4px 6px}.stage-algo-select,.stage-info{border:1px solid #ddd;border-radius:4px}.stage-info{align-items:center;background:#0000;color:#999;cursor:pointer;display:flex;padding:3px 5px;transition:all .15s}.stage-info.active,.stage-info:hover{background:#e3f2fd;border-color:#2196f3;color:#2196f3}.stage-remove{align-items:center;background:#0000;border:1px solid #ddd;border-radius:4px;color:#999;cursor:pointer;display:flex;padding:3px 5px;transition:all .15s}.stage-remove:hover{background:#fbe9e7;border-color:#e53935;color:#e53935}.stage-description{color:#888;font-size:10px;line-height:1.3;margin-bottom:6px}.help-panel{background:#f8f9ff;border:1px solid #d0d8f0;border-radius:4px;color:#444;font-size:10.5px;line-height:1.5;margin-bottom:8px;padding:8px 10px}.help-line{font-family:Courier New,monospace;font-size:10px;line-height:1.6;white-space:pre-wrap}.help-line.indent{color:#2962ff;font-weight:600}.stage-params{gap:6px}.param-row,.stage-params{display:flex;flex-direction:column}.param-row{gap:2px}.param-label-row{align-items:center;display:flex;justify-content:space-between}.param-name{color:#555;font-size:10px;font-weight:500}.param-value{background:#f0f0f0;border-radius:3px;color:#333;font-family:Courier New,monospace;font-size:10px;font-weight:600;padding:1px 5px}.param-slider{-webkit-appearance:none;appearance:none;background:#ddd;border-radius:2px;height:4px;outline:none;width:100%}.param-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border-radius:50%;cursor:pointer;height:14px;width:14px}.param-slider::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;cursor:pointer;height:14px;width:14px}.param-checkbox{align-items:center;color:#555;cursor:pointer;display:flex;font-size:10px;gap:6px}.param-checkbox input{cursor:pointer;height:14px;width:14px}.toggle-grid{grid-gap:4px;display:grid;gap:4px;grid-template-columns:1fr 1fr}.toggle-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;color:#999;cursor:pointer;display:flex;font-size:10px;gap:4px;padding:5px 8px;transition:all .15s}.toggle-btn.on{background:var(--accent-muted);border-color:var(--accent);color:var(--accent-text)}.toggle-btn.accuracy.on{background:#fff3e0;border-color:#ff9800;color:#e65100}.metrics-table{border-collapse:collapse;font-size:11px;width:100%}.metrics-table th{border-bottom:1px solid #e0e0e0;color:#888;font-size:10px;font-weight:600;padding:4px 6px;text-align:left}.metrics-table td{border-bottom:1px solid #f0f0f0;font-family:Courier New,monospace;font-size:10px;padding:3px 6px}.metrics-table td:first-child{color:#555;font-family:inherit;font-weight:500}.dev-right-panel{display:flex;flex:1 1;flex-direction:column;height:100%;overflow:hidden}.dev-map-area{flex:1 1;min-height:0;position:relative}.dev-map-area .leaflet-container{height:100%;width:100%}.dev-scrubber-wrapper{background:#fafafa;border-top:1px solid #e0e0e0;flex-shrink:0}.dev-map-legend{background:#fff;border-radius:6px;box-shadow:0 1px 6px #0003;display:flex;flex-direction:column;font-size:11px;gap:6px;left:10px;max-height:200px;overflow-y:auto;padding:8px 12px}.dev-accuracy-legend,.dev-map-legend{position:absolute;top:10px;z-index:1000}.dev-accuracy-legend{right:10px}.legend-activity-group{border-bottom:1px solid #eee;display:flex;flex-direction:column;gap:3px;padding-bottom:4px}.legend-activity-group:last-child{border-bottom:none;padding-bottom:0}.legend-activity-name{font-family:Courier New,monospace;font-size:10px;font-weight:700}.legend-row{align-items:center;color:#666;display:flex;font-size:10px;gap:6px}.legend-line{display:inline-block;height:0;width:20px}.legend-line.dashed{border-top:3px dashed;opacity:.5}.legend-line.solid{border-radius:2px;height:3px}.dev-sidebar::-webkit-scrollbar{width:5px}.dev-sidebar::-webkit-scrollbar-track{background:#0000}.dev-sidebar::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.dev-sidebar::-webkit-resizer{background:linear-gradient(135deg,#0000 40%,#bbb 0,#bbb 45%,#0000 0,#0000 60%,#bbb 0,#bbb 65%,#0000 0);border-radius:0 0 6px 0}.activity-list::-webkit-scrollbar{width:4px}.activity-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}@media (max-width:768px){.dev-page{flex-direction:column}.dev-sidebar{border-bottom:1px solid #e0e0e0;border-right:none;max-height:40vh;min-width:0;min-width:auto;width:100%}.dev-right-panel{flex:1 1;min-height:50vh}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:#0000;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:#0000;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#0000;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 0.5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;background-color:var(--xy-background-color-default);background-color:var(--xy-background-color,var(--xy-background-color-default));direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:#0000;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:#0000;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 0.5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-default);background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke-default);stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width-default);stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke-default);stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width-default);stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;pointer-events:none;position:absolute}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path,.react-flow__edge.selected .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected-default);stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke-default);stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke-default);fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{overflow:visible;position:absolute;z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:default;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background-color:var(--xy-handle-background-color-default);background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:0;left:50%;top:auto;transform:translate(-50%,50%)}.react-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.react-flow__handle-left{left:0;top:50%;transform:translate(-50%,-50%)}.react-flow__handle-right{right:0;top:50%;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.bottom.center,.react-flow__panel.top.center{left:50%;transform:translateX(-15px) translateX(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color-default);background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{pointer-events:none}.react-flow__edgelabel-renderer,.react-flow__viewport-portal{height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;user-select:none;width:100%}.react-flow__minimap{background:var(--xy-minimap-background-color-default);background:var(
    --xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default))
  )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-default);fill:var(
      --xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default))
    );stroke:var(--xy-minimap-mask-stroke-color-default);stroke:var(
      --xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default))
    );stroke-width:var(--xy-minimap-mask-stroke-width-default);stroke-width:var(
      --xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default))
    )}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-default);fill:var(
      --xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default))
    );stroke:var(--xy-minimap-node-stroke-color-default);stroke:var(
      --xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default))
    );stroke-width:var(--xy-minimap-node-stroke-width-default);stroke-width:var(
      --xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default))
    )}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-dots-color-default);fill:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default))
    )}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-lines-color-default);stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default))
    )}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-cross-color-default);stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default))
    )}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow-default);box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));display:flex;flex-direction:column}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{align-items:center;background:var(--xy-controls-button-background-color-default);background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      );color:var(--xy-controls-button-color-default);color:var(
      --xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default))
    );cursor:pointer;display:flex;height:26px;justify-content:center;padding:4px;-webkit-user-select:none;user-select:none;width:26px}.react-flow__controls-button svg{fill:currentColor;max-height:12px;max-width:12px;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:var(--xy-node-background-color-default);background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));border:var(--xy-node-border,var(--xy-node-border-default));border-radius:var(--xy-node-border-radius-default);border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));color:var(--xy-node-color-default);color:var(--xy-node-color,var(--xy-node-color-default));font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover-default);box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected-default);box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color-default);background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color-default);background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-default);background:var(
        --xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default))
      );color:var(--xy-controls-button-color-hover-default);color:var(
        --xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default))
      )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color-default);background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;height:5px;translate:-50% -50%;width:5px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color-default);fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color-default);fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.erd-page{display:flex;flex:1 1;flex-direction:column;height:100%;overflow:hidden}.erd-doc-list{flex:1 1;margin:0 auto;max-width:900px;overflow-y:auto;padding:32px;width:100%}.erd-doc-list-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.erd-doc-list-header h2{color:var(--text-primary);font-size:20px;font-weight:600;margin:0}.erd-doc-list-subtitle{color:var(--text-muted);font-size:13px;margin-top:2px}.erd-doc-list-actions{display:flex;gap:8px}.erd-doc-action-btn{align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:13px;gap:6px;padding:7px 14px;transition:all var(--transition)}.erd-doc-action-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.erd-doc-action-primary{background:var(--accent);border-color:var(--accent);color:#fff}.erd-doc-action-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.erd-doc-create-form{align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;gap:8px;margin-bottom:20px;padding:12px}.erd-doc-create-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);flex:1 1;font-size:13px;outline:none;padding:7px 10px;transition:border-color var(--transition)}.erd-doc-create-input:focus{border-color:var(--accent)}.erd-doc-empty{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:12px;justify-content:center;padding:60px 20px;text-align:center}.erd-doc-empty h3{color:var(--text-secondary);font-size:16px;margin:0}.erd-doc-empty p{font-size:13px;max-width:320px}.erd-doc-grid{display:flex;flex-direction:column;gap:8px}.erd-doc-card{align-items:center;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;display:flex;gap:14px;padding:14px 16px;transition:all var(--transition)}.erd-doc-card:hover{background:var(--bg-hover);border-color:var(--border)}.erd-doc-card-icon{color:var(--text-muted);flex-shrink:0}.erd-doc-card-info{flex:1 1;min-width:0}.erd-doc-card-name{color:var(--text-primary);font-size:14px;font-weight:500;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.erd-doc-card-meta{color:var(--text-muted);font-size:12px;margin-top:2px}.erd-doc-card-actions{flex-shrink:0}.erd-doc-card-delete{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;display:flex;height:28px;justify-content:center;transition:all var(--transition);width:28px}.erd-doc-card-delete:hover{background:var(--danger-muted);color:var(--danger)}.erd-doc-confirm-delete{align-items:center;color:var(--text-secondary);display:flex;font-size:12px;gap:6px}.erd-doc-confirm-no,.erd-doc-confirm-yes{border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:11px;padding:2px 8px}.erd-doc-confirm-yes{background:var(--danger);color:#fff}.erd-doc-confirm-no{background:var(--bg-hover);color:var(--text-secondary)}.erd-editor{flex-direction:column}.erd-editor,.erd-editor-body{display:flex;flex:1 1;overflow:hidden}.erd-editor-body{position:relative}.erd-canvas-container{background:var(--bg-base);flex:1 1;position:relative}.erd-topbar{background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.erd-topbar-file-row{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;gap:6px;padding:6px 10px}.erd-topbar-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:12px;gap:5px;padding:5px 8px;transition:all var(--transition);white-space:nowrap}.erd-topbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.erd-topbar-divider{background:var(--border-subtle);height:20px;margin:0 2px;width:1px}.erd-topbar-filename{align-items:center;display:flex;margin-right:6px}.erd-topbar-filename-input{background:var(--bg-input);border:1px solid var(--accent);border-radius:var(--radius-md);color:var(--text-primary);font-size:13px;outline:none;padding:3px 8px;width:200px}.erd-topbar-filename-btn{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;padding:2px 4px}.erd-topbar-filename-btn:hover{background:var(--bg-hover)}.erd-dirty-dot{color:var(--accent);font-size:18px;line-height:1}.erd-edit-icon{opacity:0;transition:opacity var(--transition)}.erd-topbar-filename-btn:hover .erd-edit-icon{opacity:.5}.erd-save-status{border-radius:10px;font-size:11px;padding:2px 8px;white-space:nowrap}.erd-save-status.saved{background:var(--bg-elevated);color:var(--text-muted)}.erd-save-status.unsaved{background:var(--warning-muted);color:var(--warning)}.erd-save-status.saving{background:var(--info-muted);color:var(--info)}.erd-save-status.error{background:var(--danger-muted);color:var(--danger)}.erd-topbar-spacer{flex:1 1}.erd-topbar-pages-row{align-items:center;display:flex;gap:3px;overflow-x:auto;padding:4px 8px}.erd-page-tab{align-items:center;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:12px;gap:4px;padding:5px 10px;transition:all var(--transition);white-space:nowrap}.erd-page-tab.active,.erd-page-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.erd-page-tab.active{font-weight:500}.erd-page-tab-input{background:var(--bg-input);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;outline:none;padding:2px 6px;width:100px}.erd-page-tab-confirm{background:none;border:none;color:#4caf50;cursor:pointer;display:flex;padding:0}.erd-page-tab-confirm:hover{color:#66bb6a}.erd-page-tab-delete{background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;margin-left:2px;opacity:0;padding:0;transition:all var(--transition)}.erd-page-tab:hover .erd-page-tab-delete{opacity:.6}.erd-page-tab-delete:hover{color:var(--danger);opacity:1!important}.erd-page-tab-name{white-space:nowrap}.erd-page-tab-add{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;display:flex;font-size:12px;gap:4px;padding:5px 8px;transition:all var(--transition)}.erd-page-tab-add:hover{background:var(--bg-hover);color:var(--text-primary)}.erd-sidebar{background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;gap:3px;padding:8px;-webkit-user-select:none;user-select:none;width:160px}.erd-sidebar-title{color:var(--text-muted);font-size:10px;letter-spacing:.5px;margin-bottom:2px;padding:4px 6px;text-transform:uppercase}.erd-sidebar-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:12px;gap:8px;padding:7px 8px;text-align:left;transition:all var(--transition)}.erd-sidebar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.erd-sidebar-swatch{border-radius:2px;flex-shrink:0;height:10px;width:10px}.erd-sidebar-help{border-top:1px solid var(--border-subtle);margin-top:auto;padding-top:8px}.erd-sidebar-help p{color:var(--text-muted);font-size:11px;line-height:1.4;padding:4px 6px}.erd-right-panel{background:var(--bg-surface);border-left:1px solid var(--border);flex-shrink:0;overflow-y:auto;width:220px}.erd-right-panel-empty{align-items:center;display:flex;justify-content:center;padding:16px}.erd-right-panel-empty p{color:var(--text-muted);font-size:12px;line-height:1.5;text-align:center}.erd-panel-content{padding:12px}.erd-panel-pill{border-radius:12px;display:inline-block;font-size:11px;font-weight:500;margin-bottom:12px;padding:2px 10px}.erd-label{color:var(--text-secondary);font-size:11px;margin-bottom:4px}.erd-mb{margin-bottom:12px}.erd-field-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;margin-bottom:10px;outline:none;padding:5px 8px;transition:border-color var(--transition);width:100%}.erd-field-input:focus{border-color:var(--accent)}.erd-textarea{resize:none}.erd-mono{font-family:var(--font-mono)}.erd-select-wrap{position:relative}.erd-select{-webkit-appearance:none;appearance:none;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:11px;outline:none;padding:5px 24px 5px 8px;transition:border-color var(--transition);width:100%}.erd-select:focus{border-color:var(--accent)}.erd-select-chevron{color:var(--text-muted);pointer-events:none;position:absolute;right:6px;top:50%;transform:translateY(-50%)}.erd-section{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.erd-section-title{color:var(--text-muted);font-size:10px;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.erd-fields-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.erd-field-row{position:relative}.erd-field-row-main{align-items:center;display:flex;gap:4px;margin-bottom:3px}.erd-grip{color:var(--text-muted);flex-shrink:0}.erd-field-name{flex:1 1;margin-bottom:0}.erd-field-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;flex-shrink:0;opacity:0;padding:2px;transition:all var(--transition)}.erd-field-row:hover .erd-field-remove{opacity:1}.erd-field-remove:hover{color:var(--danger)}.erd-field-row-meta{align-items:center;display:flex;gap:6px;margin-left:16px}.erd-field-req-label{align-items:center;color:var(--text-secondary);display:flex;font-size:11px;gap:3px;white-space:nowrap}.erd-field-req-label input{accent-color:var(--accent)}.erd-field-row-desc{margin-left:16px;margin-top:3px}.erd-field-desc{color:var(--text-secondary);font-size:11px}.erd-add-btn{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;display:flex;font-size:11px;gap:4px;padding:4px 6px;transition:all var(--transition)}.erd-add-btn:hover{background:var(--accent-muted)}.erd-subcollections-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.erd-subcollection-row{align-items:center;display:flex;gap:6px}.erd-subcollection-row .erd-field-input{flex:1 1;font-size:11px;margin-bottom:0}.erd-panel-delete-section{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.erd-delete-btn{align-items:center;background:#0000;border:1px solid var(--danger-muted);border-radius:var(--radius-md);color:var(--danger);cursor:pointer;display:flex;font-size:12px;gap:6px;justify-content:center;padding:6px;transition:all var(--transition);width:100%}.erd-delete-btn:hover{background:var(--danger-muted)}.erd-node-header{align-items:center;border-radius:6px 6px 0 0;display:flex;gap:8px;padding:8px 12px}.erd-node-type-badge{font-size:10px;font-weight:500;letter-spacing:.5px;opacity:.7;text-transform:uppercase;-webkit-user-select:none;user-select:none}.erd-node-label{color:#fff;flex:1 1;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.erd-node-description{border-bottom:1px solid #334155;color:#94a3b8;font-size:11px;font-style:italic;line-height:1.4;padding:6px 12px}.erd-node-note-body{color:#cbd5e1;font-size:13px;min-height:60px;padding:8px 12px;white-space:pre-wrap}.erd-node-placeholder{color:#64748b;font-style:italic}.erd-node-fields{border-top:1px solid #3341554d}.erd-node-field{align-items:center;border-bottom:1px solid #1e293b80;display:flex;gap:8px;padding:5px 12px}.erd-node-field-indicator{color:#64748b;font-size:10px;-webkit-user-select:none;user-select:none;width:10px}.erd-node-field-name{color:#e2e8f0;flex:1 1;font-family:var(--font-mono);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.erd-node-field-type{border-radius:3px;font-family:var(--font-mono);font-size:10px;padding:1px 6px;-webkit-user-select:none;user-select:none}.erd-node-subcollections{border-top:1px solid;padding:5px 12px}.erd-node-subcollection-item{align-items:center;color:#94a3b8;display:flex;font-size:11px;gap:6px;padding:2px 0}.erd-node-subcollection-name{font-family:var(--font-mono)}.erd-edge-label-group{align-items:center;display:flex;flex-direction:column;gap:2px}.erd-edge-label{font-size:11px;font-weight:500;padding:2px 6px}.erd-edge-label,.erd-edge-type{border-radius:3px;white-space:nowrap}.erd-edge-type{font-size:9px;opacity:.8;padding:1px 4px}.erd-revision-panel{background:var(--bg-surface);border-left:1px solid var(--border);bottom:0;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;position:absolute;right:0;top:0;width:280px;z-index:20}.erd-revision-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:12px 14px}.erd-revision-header h3{align-items:center;color:var(--text-primary);display:flex;font-size:13px;font-weight:600;gap:6px;margin:0}.erd-revision-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;padding:0 4px}.erd-revision-close:hover{color:var(--text-primary)}.erd-revision-body{flex:1 1;overflow-y:auto;padding:8px}.erd-revision-empty{color:var(--text-muted);font-size:12px;padding:20px;text-align:center}.erd-revision-item{align-items:center;border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:8px 10px;transition:background var(--transition)}.erd-revision-item:hover{background:var(--bg-hover)}.erd-revision-info{display:flex;flex-direction:column;gap:2px}.erd-revision-date{color:var(--text-primary);font-size:12px}.erd-revision-pages{color:var(--text-muted);font-size:11px}.erd-revision-restore{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;display:flex;font-size:11px;gap:4px;padding:4px 8px;transition:all var(--transition)}.erd-revision-restore:hover{background:var(--accent-muted)}.erd-editor .react-flow__handle{background:#3b82f6;border:2px solid #0f172a;height:10px;opacity:0;transition:opacity .15s ease;width:10px;z-index:10}.erd-editor .react-flow__node.selected .react-flow__handle,.erd-editor .react-flow__node:hover .react-flow__handle{opacity:1}.erd-editor .react-flow__edge.selected .react-flow__edge-path{stroke-width:2.5}.erd-editor .react-flow__attribution{display:none}.erd-editor .react-flow__controls button{background:var(--bg-elevated);border-color:var(--border);color:var(--text-secondary)}.erd-editor .react-flow__controls button:hover{background:var(--bg-hover);color:var(--text-primary)}.erd-editor .react-flow__controls button svg{fill:currentColor}.erd-field-handle{opacity:.7!important;transition:opacity .15s ease,transform .15s ease}.erd-field-handle:hover{opacity:1!important;transform:scale(1.4)}.erd-node-field.has-handles{position:relative}.erd-node-field.has-handles:after,.erd-node-field.has-handles:before{background:#94a3b833;content:"";height:1px;position:absolute;top:50%;width:6px}.erd-node-field.has-handles:before{left:0}.erd-node-field.has-handles:after{right:0}.erd-toggle-row{border-bottom:1px solid var(--border);margin-bottom:6px;padding:6px 0 10px}.erd-toggle-label{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:11px;gap:6px}.erd-toggle-label input{accent-color:var(--accent)}.erd-duplicate-btn{align-items:center;background:#0000;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:12px;gap:6px;justify-content:center;margin-bottom:6px;padding:6px;transition:all var(--transition);width:100%}.erd-duplicate-btn:hover{background:var(--bg-hover);border-color:var(--text-muted);color:var(--text-primary)}.erd-topbar-btn-active{background:var(--accent-muted)!important;color:var(--accent)!important}.erd-canvas-stats{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;bottom:8px;color:var(--text-muted);font-size:11px;left:50%;padding:3px 12px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:5}@media (max-width:768px){.erd-sidebar{padding:6px 4px;width:48px}.erd-sidebar-btn span,.erd-sidebar-help,.erd-sidebar-title{display:none}.erd-sidebar-btn{justify-content:center;padding:8px}.erd-right-panel{width:180px}.erd-topbar-btn span{display:none}.erd-doc-list{padding:16px}}
/*# sourceMappingURL=main.d04fa386.css.map*/