:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-sidebar:#1e293b;--bg-hover:#f1f5f9;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#5f6b7e;--text-sidebar:#e2e8f0;--text-sidebar-muted:#94a3b8;--accent:#2563eb;--accent-hover:#1d4ed8;--success:#15803d;--warning:#b45309;--danger:#b91c1c;--border:#e2e8f0;--shadow:0 1px 3px #0000001a;--sidebar-width:240px;--header-height:60px;--font-primary:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.skip-link{z-index:2000;background:var(--bg-secondary);color:var(--accent);box-shadow:var(--shadow);border-radius:6px;padding:8px 16px;font-weight:600;position:absolute;top:8px;left:-9999px}.skip-link:focus{left:8px}.main-content:focus{outline:none}body{font-family:var(--font-primary);background:var(--bg-primary);color:var(--text-primary);line-height:1.5}.admin-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{border-bottom:1px solid #ffffff1a;padding:20px}.sidebar-brand{color:#fff;font-size:1.25rem;font-weight:700}.sidebar-nav{flex:1;padding:16px 0}.sidebar-nav a{color:var(--text-sidebar-muted);align-items:center;gap:12px;padding:12px 20px;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.sidebar-nav a:hover{color:var(--text-sidebar);background:#ffffff0d}.sidebar-nav a.active{color:var(--text-sidebar);background:#3b82f633;border-left:3px solid #60a5fa}.nav-icon{font-size:1.125rem}.sidebar-footer{border-top:1px solid #ffffff1a;padding:16px 20px}.user-info{margin-bottom:12px}.user-name{color:var(--text-sidebar);font-size:.875rem;font-weight:500;display:block}.user-role{color:var(--text-sidebar-muted);font-size:.75rem}.logout-btn{width:100%;color:var(--text-sidebar-muted);cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:6px;align-items:center;gap:12px;padding:8px 12px;font-size:.875rem;transition:all .2s;display:flex}.logout-btn:hover{color:var(--text-sidebar);background:#ffffff1a}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;padding:24px}.page{max-width:1200px;margin:0 auto}.page h1{color:var(--text-primary);margin-bottom:24px;font-size:1.5rem;font-weight:700}.page h2{color:var(--text-secondary);margin-bottom:16px;font-size:1rem;font-weight:600}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;align-items:flex-start;gap:16px;padding:20px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.stat-card h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;font-size:.75rem;font-weight:600}.stat-value{color:var(--text-primary);font-size:2rem;font-weight:700;font-family:var(--font-mono)}.stat-details{color:var(--text-secondary);flex-wrap:wrap;gap:8px 16px;margin-top:8px;font-size:.75rem;display:flex}.dashboard-page{max-width:1400px}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.dashboard-header h1{margin:0}.stats-section{margin-bottom:32px}.section-title{color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:8px;font-size:1rem;font-weight:600}.stat-card-link{cursor:pointer;text-decoration:none}.stat-card-link:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stat-icon{background:var(--bg-hover);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:2rem;display:flex}.stat-content{flex:1;min-width:0}.stat-content h3{margin-bottom:4px}.stat-content .stat-value{font-size:1.75rem;line-height:1.2}.stat-highlight{color:var(--success);font-weight:500}.users-icon{background:#6366f126}.parks-icon{background:#a855f726}.attractions-icon{background:#ec489926}.favorites-icon{background:#ef444426}.rides-icon{background:#22c55e26}.active-users-icon{background:#06b6d426}.wait-icon{background:#f59e0b26}.coverage-icon{background:#3b82f626}.imports-icon{background:#8b5cf626}.weather-icon{background:#0ea5e926}.routing-icon{background:#14b8a626}.charts-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.chart-card{background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;padding:20px}.chart-card h3{color:var(--text-primary);margin-bottom:16px;font-size:.875rem;font-weight:600}.chart-card-wide{grid-column:span 2}.chart-container{width:100%;min-height:250px}.recharts-tooltip-wrapper{outline:none}.recharts-default-tooltip{background:var(--bg-secondary)!important;border:1px solid var(--border)!important;border-radius:8px!important;padding:8px 12px!important}.recharts-tooltip-label{margin-bottom:4px;font-weight:600;color:var(--text-primary)!important}.recharts-tooltip-item{font-size:13px;color:var(--text-secondary)!important}@media (width<=1024px){.charts-grid{grid-template-columns:1fr}.chart-card-wide{grid-column:span 1}}.data-table{background:var(--bg-secondary);border:1px solid var(--border);border-collapse:collapse;width:100%;box-shadow:var(--shadow);border-radius:8px;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:12px 16px}.data-table th{background:var(--bg-primary);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem;font-weight:600}.data-table td{font-size:.875rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background:var(--bg-hover)}.data-table tr.current-user{background:#3b82f60d}.badge{border:none;border-radius:4px;padding:4px 8px;font-size:.75rem;font-weight:500;display:inline-block}.badge:is(button){cursor:pointer}.badge-admin{color:var(--accent);background:#3b82f61a}.badge-user{color:var(--text-secondary);background:#64748b1a}.badge-banned{color:var(--danger);background:#ef444426}.badge-ok{color:var(--success);background:#22c55e1a}.badge-warning{color:#92400e;background:#f59e0b26}.badge:is(button):hover{opacity:.8}button{font-family:inherit}.btn-view{color:var(--accent);border:1px solid var(--accent);cursor:pointer;background:0 0;border-radius:4px;margin-right:4px;padding:6px 12px;font-size:.75rem}.btn-view:hover{background:var(--accent);color:#fff}.btn-edit,.btn-save{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;margin-right:4px;padding:6px 12px;font-size:.75rem}.btn-edit:hover,.btn-save:hover{background:var(--accent-hover)}.btn-delete{color:var(--danger);border:1px solid var(--danger);cursor:pointer;background:0 0;border-radius:4px;padding:6px 12px;font-size:.75rem}.btn-delete:hover{background:var(--danger);color:#fff}.btn-delete:disabled,.btn-edit:disabled{opacity:.5;cursor:not-allowed}.modal-subtitle{color:var(--text-secondary);margin-top:-8px;margin-bottom:16px;font-size:.875rem}.btn-cancel{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:6px 12px;font-size:.75rem}.search-form{gap:8px;margin-bottom:16px;display:flex}.search-form input{border:1px solid var(--border);border-radius:6px;flex:1;padding:10px 12px;font-size:.875rem}.search-form input:focus{border-color:var(--accent)}.search-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:.875rem}.search-form button:hover{background:var(--accent-hover)}.toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.toolbar button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:.875rem}.toolbar button:disabled{opacity:.6;cursor:not-allowed}.toolbar button.btn-secondary{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border);padding:10px 20px}.filter-input{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;width:250px;padding:8px 12px;font-size:.875rem}.count{color:var(--text-muted);font-size:.875rem}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:16px;display:flex}.pagination button{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:.875rem}.pagination button:hover:not(:disabled){background:var(--bg-hover)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{color:var(--text-secondary);font-size:.875rem}.page-jump{border:1px solid var(--border);background:var(--bg-secondary);width:3.5rem;color:var(--text-primary);text-align:center;appearance:textfield;border-radius:6px;padding:4px 6px;font-size:.875rem}.page-jump::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.page-jump::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.page-size-select{border:1px solid var(--border);background:var(--bg-secondary);cursor:pointer;border-radius:6px;padding:6px 10px;font-size:.875rem}.th-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;display:inline-flex}.th-sort:hover{color:var(--text-primary)}.th-sort-arrow{color:var(--text-muted);font-size:.625rem;line-height:1}.th-sort-active .th-sort-arrow{color:var(--accent)}.select-cell{width:36px}.data-table th.select-cell,.data-table td.select-cell{text-align:center;padding-left:8px;padding-right:8px}.bulk-bar{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;padding:8px 12px;font-size:.875rem;display:flex}.analytics-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px;display:grid}.analytics-card{background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;padding:20px}.analytics-card h2{margin-bottom:16px;font-size:.875rem;font-weight:600}.favorite-count{color:var(--danger)}.weather-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.weather-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:16px}.weather-card.stale{border-color:var(--danger);background:#ef44440d}.weather-card.old{border-color:var(--warning);background:#f59e0b0d}.weather-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.weather-icon{font-size:1.5rem}.weather-card .park-name{font-size:.875rem;font-weight:500}.weather-temp{font-size:2rem;font-weight:700;font-family:var(--font-mono);margin-bottom:4px}.weather-details{color:var(--text-secondary);gap:12px;margin-bottom:8px;font-size:.75rem;display:flex}.weather-updated{color:var(--text-muted);font-size:.75rem}.destination-group{margin-bottom:24px}.destination-group h2{margin-bottom:12px}.logs-table .file-path{text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-family:var(--font-mono);font-size:.75rem;overflow:hidden}.logs-table .warning{color:var(--warning)}.loading,.error,.no-data{text-align:center;color:var(--text-secondary);padding:40px}.error{color:var(--danger)}.loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.chart-data-summary{margin-top:12px}.chart-data-summary summary{cursor:pointer;color:var(--text-secondary);font-size:.75rem}.chart-data-summary[open] summary{margin-bottom:8px}.login-page{background:var(--bg-sidebar);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-container{width:100%;max-width:400px;padding:24px}.login-header{text-align:center;margin-bottom:32px}.login-header h1{color:#fff;margin-bottom:8px;font-size:1.5rem}.login-header p{color:var(--text-sidebar-muted);font-size:.875rem}.login-form{background:var(--bg-secondary);border-radius:8px;padding:24px}.form-group{margin-bottom:16px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:.875rem;font-weight:500;display:block}.form-group input{border:1px solid var(--border);border-radius:6px;width:100%;padding:10px 12px;font-size:.875rem}.form-group input:focus{border-color:var(--accent)}.form-hint{color:var(--text-muted);margin-top:4px;font-size:.75rem;display:block}.error-message{color:var(--danger);text-align:center;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin-bottom:16px;padding:20px;font-size:.875rem}.submit-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:12px;font-size:.875rem;font-weight:500}.submit-btn:hover:not(:disabled){background:var(--accent-hover)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.status-actions{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.profile-verify-btn{border-radius:4px;padding:5px 14px;font-size:.75rem}.actions{white-space:nowrap}.data-table input{border:1px solid var(--accent);border-radius:4px;width:150px;padding:4px 8px;font-size:.875rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-subtitle{color:var(--text-secondary);font-size:.875rem}.filters-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.filter-select{border:1px solid var(--border);background:var(--bg-secondary);cursor:pointer;border-radius:6px;padding:8px 12px;font-size:.875rem}.filter-select:focus{border-color:var(--accent)}.section{margin-bottom:24px}.section h3{color:var(--text-primary);margin-bottom:12px;font-size:1rem;font-weight:600}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-top:4px;font-size:.75rem;font-weight:500}.stat-card.primary{border-color:var(--accent);border-width:2px}.stat-card.highlight{border-color:var(--accent);background:linear-gradient(135deg,#3b82f61a,#3b82f60d)}.stat-value.positive{color:var(--success)}.stat-value.negative{color:var(--danger)}.accuracy-breakdown{background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;margin-bottom:24px;padding:20px}.accuracy-breakdown h3{margin-bottom:16px;font-size:.875rem;font-weight:600}.breakdown-bars{flex-direction:column;gap:12px;display:flex}.breakdown-item{align-items:center;gap:12px;display:flex}.breakdown-label{width:180px;color:var(--text-secondary);align-items:center;gap:8px;font-size:.875rem;display:flex}.dot{border-radius:50%;width:10px;height:10px}.dot.faster{background:var(--success)}.dot.accurate{background:var(--accent)}.dot.slower{background:var(--danger)}.breakdown-bar{background:var(--bg-primary);border-radius:4px;flex:1;height:24px;overflow:hidden}.bar-fill{border-radius:4px;height:100%;transition:width .3s}.bar-fill.faster{background:var(--success)}.bar-fill.accurate{background:var(--accent)}.bar-fill.slower{background:var(--danger)}.breakdown-value{text-align:right;width:60px;font-family:var(--font-mono);color:var(--text-primary);font-size:.875rem}.table-container{overflow-x:auto}.data-table .attraction-name{text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-weight:500;overflow:hidden}.data-table .park-name{color:var(--text-secondary);font-size:.8125rem}.data-table .diff{font-family:var(--font-mono);font-weight:500}.data-table .diff.positive{color:var(--success)}.data-table .diff.negative{color:var(--danger)}.data-table .faster-count{color:var(--success)}.data-table .slower-count{color:var(--danger)}.data-table .count{font-family:var(--font-mono);font-weight:500}.data-table .rating{color:var(--warning)}.data-table .user-name{font-weight:500}.data-table.compact th,.data-table.compact td{padding:8px 12px;font-size:.8125rem}.two-column{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px;margin-bottom:24px;display:grid}.empty-state{text-align:center;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:40px}.error-state{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:16px 20px;display:flex}.error-state .btn-secondary{flex-shrink:0}.alert{border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:.875rem}.alert-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.alert-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.password-input{gap:8px;display:flex}.password-input input{flex:1}.field-error{color:#b91c1c;margin-top:4px;font-size:.75rem}.refreshing{color:var(--text-secondary);margin-bottom:8px;font-size:.75rem}.filter-error{color:#b91c1c;margin:4px 0 8px;font-size:.75rem}.btn-link{color:var(--accent);font-size:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.btn-link:hover{color:var(--accent-hover)}.nav-section{text-transform:uppercase;letter-spacing:.1em;color:var(--text-sidebar-muted);opacity:.6;padding:16px 20px 8px;font-size:.625rem;font-weight:600}.page-header h1{margin-bottom:0}.header-actions{gap:8px;display:flex}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border-radius:12px;width:100%;max-width:500px;max-height:90vh;padding:24px;overflow-y:auto;box-shadow:0 20px 60px #0003}.modal.modal-large{max-width:700px}.modal h2{color:var(--text-primary);margin-bottom:20px;font-size:1.25rem}.modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;margin-top:24px;padding-top:16px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;display:grid}.form-group select{border:1px solid var(--border);background:var(--bg-secondary);border-radius:6px;width:100%;padding:10px 12px;font-size:.875rem}.form-group select:focus{border-color:var(--accent)}.form-group textarea{border:1px solid var(--border);resize:vertical;border-radius:6px;width:100%;padding:10px 12px;font-family:inherit;font-size:.875rem}.form-group textarea:focus{border-color:var(--accent)}.required{color:var(--danger)}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:.875rem;font-weight:500;transition:background .2s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:10px 20px;font-size:.875rem;font-weight:500;transition:all .2s}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-icon{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px;font-size:1rem;transition:background .2s}.btn-icon:hover{background:var(--bg-hover)}.btn-icon.btn-danger:hover{background:#ef44441a}.action-buttons{gap:4px;display:flex}.cell-title{font-weight:500}.cell-subtitle{color:var(--text-muted);font-size:.75rem;font-family:var(--font-mono)}.cell-link{color:var(--accent);font-size:.75rem;text-decoration:none}.cell-link:hover{text-decoration:underline}.badge-attraction{color:var(--accent);background:#3b82f61a}.badge-ride{color:var(--success);background:#22c55e1a}.badge-show{color:#6b21a8;background:#a855f71a}.badge-restaurant{color:var(--warning);background:#f59e0b1a}.badge-party{color:#6b21a8;background:#a855f726;font-weight:500}.badge-solo{color:var(--text-secondary);background:#64748b1a}.badge-defunct{color:var(--danger);background:#ef444426}.badge-active{color:var(--success);background:#22c55e1a}.row-defunct{opacity:.7;background:#ef444408}.row-defunct:hover{opacity:.85}.filter-checkbox{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;padding:0 12px;font-size:.875rem;display:flex}.filter-checkbox input[type=checkbox]{cursor:pointer;width:16px;height:16px}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.filters-form{margin-bottom:24px}.filter-input:focus{border-color:var(--accent)}.filter-input::placeholder{color:var(--text-muted)}.filter-date{width:150px}.results-summary{color:var(--text-secondary);margin-bottom:16px;font-size:.875rem}.link-btn{color:var(--accent);cursor:pointer;font-size:inherit;text-align:left;background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}.datetime-cell{white-space:nowrap;font-size:.8125rem}.attraction-cell{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.park-cell{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.wait-cell{text-align:center;white-space:nowrap}.rating-cell{color:var(--warning);letter-spacing:-1px;font-size:.75rem}.party-cell{text-align:center}.users-cell{max-width:200px}.users-list{flex-direction:column;gap:2px;display:flex}.users-list .link-btn{font-size:.8125rem}.more-users{color:var(--text-muted);font-size:.75rem;font-style:italic}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.search-bar{max-width:400px;margin-bottom:16px;position:relative}.search-bar .search-input{border:1px solid var(--border);background:var(--bg-secondary);width:100%;color:var(--text-primary);border-radius:6px;padding:10px 36px 10px 12px;font-size:14px}.search-bar .search-input:focus{border-color:var(--accent)}.search-bar .search-clear{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:18px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-bar .search-clear:hover{color:var(--text-primary)}.tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:12px 20px;font-size:.875rem;font-weight:500;transition:color .2s;position:relative}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent)}.tab.active:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-1px;left:0;right:0}.toolbar .search-form{margin-bottom:0}.status-badge{border-radius:12px;align-items:center;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.status-badge.success{color:var(--success);background:#22c55e1a}.status-badge.warning{color:#92400e;background:#f59e0b1a}.status-badge.danger{color:var(--danger);background:#ef44441a}.status-badge.neutral{background:var(--bg-hover);color:var(--text-secondary)}.routing-status{align-items:center;gap:8px;display:flex}.routing-status .status-detail{color:var(--success);font-size:12px}.btn-icon.btn-warning{color:var(--warning)}.btn-icon.btn-warning:hover{background:#f59e0b1a}.modal.modal-wide{max-width:600px}.bbox-map-container{border:1px solid var(--border);border-radius:8px;margin-bottom:20px;overflow:hidden}.bbox-details{gap:24px;margin-bottom:20px;display:flex}.bbox-coords{flex:1;grid-template-columns:1fr 1fr;gap:12px;display:grid}.coord-group{flex-direction:column;gap:4px;display:flex}.coord-group label{color:var(--text-secondary);text-transform:uppercase;font-size:11px}.coord-value{font-family:var(--font-mono);color:var(--text-primary);font-size:13px}.bbox-stats{flex-direction:column;gap:12px;min-width:180px;display:flex}.stat-item{flex-direction:column;gap:4px;display:flex}.stat-item label{color:var(--text-secondary);text-transform:uppercase;font-size:11px}.bbox-stats .stat-value{font-family:var(--font-mono);color:var(--text-primary);font-size:13px}.btn-link.bbox-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-left:8px;padding:5px 8px;font-size:12px}.btn-link.bbox-toggle:hover{text-decoration:underline}.bbox-editor-map{margin-bottom:16px}.bbox-corner-marker{cursor:grab;background:#e63946;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0000004d}.bbox-corner-marker:hover{transform:scale(1.2)}.bbox-corner-marker:active{cursor:grabbing}@media (width<=768px){.sidebar{width:60px}.sidebar-brand,.nav-section,.user-info,.sidebar-nav a .nav-label,.logout-btn .nav-label{display:none}.sidebar-nav a{justify-content:center;padding:16px 4px}.sidebar-footer{padding:12px 8px}.logout-btn{justify-content:center;width:44px;min-height:44px;margin:0 auto;padding:0;font-size:1.125rem}.main-content{margin-left:60px}.filters-row,.toolbar{flex-direction:column;align-items:stretch}.two-column{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.header-actions{width:100%}.header-actions .btn-primary{flex:1}.modal{margin:16px}}.user-profile-page .btn-back{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-bottom:16px;padding:8px 0;font-size:.875rem}.user-profile-page .btn-back:hover{text-decoration:underline}.profile-header{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:20px;margin-bottom:24px;padding:24px;display:flex}.profile-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;font-size:2rem;font-weight:600;display:flex}.profile-info h1{margin-bottom:4px;font-size:1.5rem}.profile-email{color:var(--text-secondary);margin-bottom:8px}.profile-badges{flex-wrap:wrap;gap:8px;display:flex}.profile-meta{border:1px solid var(--border);background:#fff;border-radius:8px;flex-wrap:wrap;gap:24px;margin-bottom:24px;padding:16px 24px;display:flex}.meta-item{flex-direction:column;gap:4px;display:flex}.meta-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.meta-value{font-weight:500}.meta-value.code{font-family:var(--font-mono);background:var(--bg-hover);border-radius:4px;padding:2px 8px}.meta-value.code.clickable{cursor:pointer;border:1px solid var(--border);transition:all .2s}.meta-value.code.clickable:hover{background:var(--border)}.meta-value.code.hidden-code{color:var(--text-muted);letter-spacing:2px}.stats-cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:16px;display:grid}.user-profile-page .stat-card{border:1px solid var(--border);text-align:center;background:#fff;border-radius:8px;padding:16px}.user-profile-page .stat-value{color:var(--text-primary);font-size:1.5rem;font-weight:700}.user-profile-page .stat-label{color:var(--text-secondary);margin-top:4px;font-size:.75rem}.activity-period{text-align:center;color:var(--text-secondary);margin-bottom:24px;font-size:.875rem}.profile-tabs{gap:8px;margin-bottom:16px;display:flex}.tab-btn{border:1px solid var(--border);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:6px;padding:10px 20px;font-weight:500;transition:all .2s}.tab-btn:hover{background:var(--bg-hover)}.tab-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.rides-section,.favorites-section{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden}.rides-section .data-table{border:none;border-radius:0;margin:0}.posted-wait{color:var(--text-muted);font-size:.75rem}.favorites-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;padding:16px;display:grid}.favorite-card{background:var(--bg-hover);border-radius:6px;align-items:center;gap:12px;padding:12px;display:flex}.favorite-type{font-size:1.5rem}.favorite-info{flex:1;min-width:0}.favorite-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.favorite-park{color:var(--text-secondary);font-size:.75rem}.favorite-date{color:var(--text-muted);font-size:.75rem}.devices-section{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden}.devices-header{border-bottom:1px solid var(--border);justify-content:flex-end;gap:8px;padding:16px;display:flex}.devices-section .data-table{border:none;border-radius:0;margin:0}.device-token{font-family:var(--font-mono);background:var(--bg-hover);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:300px;padding:4px 8px;font-size:.75rem;transition:filter .2s;display:inline-block;overflow:hidden}.device-token.blurred{filter:blur(4px);-webkit-user-select:none;user-select:none}.device-token:hover{filter:none}.topic-tags{flex-wrap:wrap;gap:4px;display:flex}.topic-tag{background:var(--accent);color:#fff;white-space:nowrap;border-radius:12px;padding:2px 8px;font-size:.7rem}.badge-ios{color:#fff;background:#333}.badge-android{color:#333;background:#3ddc84}.badge-web{background:var(--accent);color:#fff}.text-muted{color:var(--text-muted);font-style:italic}.notifications-page .status-banner{border-radius:8px;align-items:center;gap:12px;margin-bottom:24px;padding:16px;display:flex}.notifications-page .status-ok{color:#166534;background:#dcfce7}.notifications-page .status-warning{color:#92400e;background:#fef3c7}.notifications-page .status-icon{font-size:1.25rem}.notifications-page .stats-row{gap:16px;margin-bottom:24px;display:flex}.notifications-page .stat-card{border:1px solid var(--border);text-align:center;background:#fff;border-radius:8px;flex:1;padding:20px}.notifications-page .stat-value{color:var(--accent);font-size:2rem;font-weight:600}.notifications-page .stat-label{color:var(--text-secondary);margin-top:4px;font-size:.875rem}.notifications-page .card{border:1px solid var(--border);background:#fff;border-radius:8px;margin-bottom:24px;padding:24px}.notifications-page .card h2{margin:0 0 20px;font-size:1.25rem;font-weight:600}.notifications-page .form-row{gap:16px;margin-bottom:16px;display:flex}.notifications-page .form-row .form-group{flex:1}.notifications-page .radio-group{gap:24px;display:flex}.notifications-page .radio-label{cursor:pointer;align-items:center;gap:8px;display:flex}.notifications-page .radio-label input[type=radio]{cursor:pointer;width:16px;height:16px}.notifications-page .alert{border-radius:6px;margin-bottom:16px;padding:12px 16px}.notifications-page .alert-success{color:#166534;background:#dcfce7}.notifications-page .alert-error{color:#b91c1c;background:#fef2f2}.notifications-page .topic-name{font-family:var(--font-mono);background:var(--bg-hover);border-radius:4px;padding:4px 8px;font-size:.875rem}.notifications-page .data-table{margin:0}.notifications-page .actions{gap:8px;display:flex}.threshold-distribution{flex-direction:column;gap:12px;display:flex}.threshold-bar-container{align-items:center;gap:12px;display:flex}.threshold-label{min-width:80px;color:var(--text-secondary);font-size:13px}.threshold-bar-bg{background:#f0f0f0;border-radius:4px;flex:1;height:24px;overflow:hidden}.threshold-bar-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:4px;min-width:4px;height:100%;transition:width .3s}.threshold-count{text-align:right;color:#333;min-width:40px;font-weight:600}.notifications-page .filters-row{flex-wrap:wrap;gap:16px;margin-bottom:20px;display:flex}.notifications-page .search-box{flex:1;gap:8px;min-width:300px;display:flex}.notifications-page .search-box input{border:1px solid #ddd;border-radius:6px;flex:1;padding:8px 12px;font-size:14px}.notifications-page .filter-group{gap:8px;display:flex}.notifications-page .filter-group select{background:#fff;border:1px solid #ddd;border-radius:6px;min-width:150px;padding:8px 12px;font-size:14px}.notifications-page .text-muted{color:var(--text-secondary);font-size:12px}.btn-small{padding:4px 8px;font-size:12px}.participants-list{flex-wrap:wrap;gap:4px;display:flex}.participant-tag{color:#0369a1;white-space:nowrap;background:#e0f2fe;border-radius:12px;padding:2px 8px;font-size:12px;display:inline-block}.ride-note-chip{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);cursor:help;border-radius:12px;margin-left:6px;padding:4px 10px;font-size:.6875rem}.ride-note-chip:hover{color:var(--text-primary);border-color:var(--accent)}.actions-cell{white-space:nowrap;gap:6px;display:flex}.participants-selector{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;flex-wrap:wrap;gap:8px;max-height:200px;padding:8px;display:flex;overflow-y:auto}.participant-checkbox{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:20px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;transition:all .15s;display:flex}.participant-checkbox:hover{background:#f0f7ff;border-color:#3b82f6}.participant-checkbox.selected{color:#0369a1;background:#e0f2fe;border-color:#3b82f6}.participant-checkbox.owner,.participant-checkbox.owner.selected{background:#fef3c7;border-color:#f59e0b}.participant-checkbox input[type=checkbox]{cursor:pointer;margin:0}.participant-checkbox input[type=checkbox]:disabled{cursor:not-allowed}.owner-badge{color:#92400e;background:#f59e0b26;border-radius:10px;margin-left:4px;padding:2px 6px;font-size:12px}.party-indicator{color:var(--accent);font-size:11px;font-weight:500}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}.loading-spinner{animation-duration:2s}}.image-preview{object-fit:cover;border:1px solid var(--border);border-radius:6px;max-width:100%;max-height:96px;margin-top:8px;display:block}.image-field{gap:8px;display:flex}.image-field input{flex:1}.visually-hidden-file{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.social-grid{grid-template-columns:minmax(0,1fr) 420px;align-items:start;gap:1.5rem;display:grid}@media (width<=900px){.social-grid{grid-template-columns:1fr}.social-grid>div{min-width:0}.social-grid .data-table{display:block;overflow-x:auto}.social-grid .data-table th,.social-grid .data-table td{white-space:nowrap}.social-form{flex-wrap:wrap}.social-form input{flex:100%;width:100%;min-width:0}}.social-card-frame{border:1px solid var(--border);background:#14151f;border-radius:12px;overflow:hidden}.social-card-frame svg{width:100%;height:auto;display:block}.social-card-caption{color:var(--text-secondary);margin:.5rem 0;font-size:.85rem}.btn-primary-action{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:.875rem;font-weight:500}.btn-primary-action:disabled{opacity:.6;cursor:not-allowed}.select-input{border:1px solid var(--border);font:inherit;background:#fff;border-radius:6px;padding:8px 12px}.empty-row{text-align:center;color:var(--text-secondary);padding:2rem 1rem}
