*{margin:0;padding:0;box-sizing:border-box}:root{--color-black: #000000;--color-dark: #0a0a0a;--color-dark-grey: #333333;--color-mid-grey: #666666;--color-light-grey: #999999;--color-warm-grey: #f1eeee;--color-off-white: #f8f7f7;--color-white: #ffffff;--color-ok: #22c55e;--color-ok-bg: rgba(34, 197, 94, .1);--color-warn: #f59e0b;--color-warn-bg: rgba(245, 158, 11, .1);--color-danger: #ef4444;--color-danger-bg: rgba(239, 68, 68, .1);--color-info: #3b82f6;--color-info-bg: rgba(59, 130, 246, .1);--bg-primary: var(--color-dark);--bg-secondary: #111111;--bg-card: #141414;--bg-card-hover: #1a1a1a;--bg-input: #1a1a1a;--border-color: #262626;--border-light: #1f1f1f;--text-primary: var(--color-white);--text-secondary: #a3a3a3;--text-muted: #737373;--text-inverse: var(--color-black);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--sidebar-width: 240px;--sidebar-collapsed: 64px;--header-height: 56px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", "Fira Code", "Fira Mono", Menlo, monospace}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow:hidden}#root{width:100%;height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-dark-grey);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-mid-grey)}.app-layout{display:flex;height:100vh;width:100%}.sidebar{width:var(--sidebar-width);height:100vh;background:var(--color-black);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:width .2s ease;flex-shrink:0;overflow:hidden;z-index:100}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar-logo{height:var(--header-height);display:flex;align-items:center;padding:0 var(--space-md);border-bottom:1px solid var(--border-color);gap:var(--space-sm);flex-shrink:0}.sidebar-logo img{height:28px;width:auto;object-fit:contain}.sidebar-logo span{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden}.sidebar-nav{flex:1;padding:var(--space-sm) var(--space-sm);overflow-y:auto;display:flex;flex-direction:column;gap:2px}.sidebar-section-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:var(--space-md) var(--space-sm) var(--space-xs);white-space:nowrap;overflow:hidden}.sidebar-link{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem .625rem;border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;font-size:.8125rem;font-weight:450;cursor:pointer;transition:all .15s;white-space:nowrap;overflow:hidden;border:none;background:none;width:100%;text-align:left}.sidebar-link:hover,.sidebar-link.active{background:var(--bg-card);color:var(--text-primary)}.sidebar-link svg{flex-shrink:0;width:18px;height:18px}.sidebar-footer{padding:var(--space-sm);border-top:1px solid var(--border-color);flex-shrink:0}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.top-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-xl);border-bottom:1px solid var(--border-color);background:var(--color-black);flex-shrink:0;gap:var(--space-md)}.top-header-left{display:flex;align-items:center;gap:var(--space-md)}.top-header-left h2{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.top-header-right{display:flex;align-items:center;gap:var(--space-md)}.site-selector{display:flex;align-items:center;gap:var(--space-sm);padding:.375rem .75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.8125rem;cursor:pointer;font-family:var(--font-sans)}.site-selector:hover{border-color:var(--color-dark-grey)}.header-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s;position:relative}.header-icon-btn:hover{background:var(--bg-card);color:var(--text-primary)}.alert-badge{position:absolute;top:2px;right:2px;width:8px;height:8px;background:var(--color-danger);border-radius:50%;border:2px solid var(--color-black)}.user-avatar{width:28px;height:28px;border-radius:50%;background:var(--color-dark-grey);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:var(--text-primary);cursor:pointer}.page-content{flex:1;overflow-y:auto;padding:var(--space-xl)}.page-header{margin-bottom:var(--space-xl)}.page-header h1{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;color:var(--text-primary)}.page-header p{margin-top:var(--space-xs);font-size:.8125rem;color:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.card-title{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.card-subtitle{font-size:.75rem;color:var(--text-muted)}.card-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-sm)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;gap:var(--space-md)}.span-2{grid-column:span 2}.span-3{grid-column:span 3}@media(max-width:1200px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}.span-3{grid-column:span 2}}@media(max-width:768px){.dashboard-grid,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.span-2,.span-3{grid-column:span 1}}.stat-value{font-size:2rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2;color:var(--text-primary)}.stat-value.small{font-size:1.5rem}.stat-unit{font-size:.875rem;font-weight:400;color:var(--text-muted);margin-left:var(--space-xs)}.stat-change{display:inline-flex;align-items:center;gap:2px;font-size:.75rem;font-weight:500;padding:2px 6px;border-radius:var(--radius-sm)}.stat-change.up{color:var(--color-ok);background:var(--color-ok-bg)}.stat-change.down{color:var(--color-danger);background:var(--color-danger-bg)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:100px;font-size:.75rem;font-weight:500}.status-badge .dot{width:6px;height:6px;border-radius:50%}.status-badge.ok{background:var(--color-ok-bg);color:var(--color-ok)}.status-badge.ok .dot{background:var(--color-ok)}.status-badge.warn{background:var(--color-warn-bg);color:var(--color-warn)}.status-badge.warn .dot{background:var(--color-warn)}.status-badge.danger{background:var(--color-danger-bg);color:var(--color-danger)}.status-badge.danger .dot{background:var(--color-danger)}.status-badge.info{background:var(--color-info-bg);color:var(--color-info)}.status-badge.info .dot{background:var(--color-info)}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.625rem .75rem;text-align:left;font-size:.8125rem;border-bottom:1px solid var(--border-color)}.data-table th{font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.data-table td{color:var(--text-secondary)}.data-table tr:hover td{background:var(--bg-card-hover)}.data-table tr:last-child td{border-bottom:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.5rem 1rem;font-size:.8125rem;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;transition:all .15s;border:none;text-decoration:none}.btn-primary{background:var(--color-white);color:var(--color-black)}.btn-primary:hover{opacity:.9}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--color-dark-grey)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-card);color:var(--text-primary)}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger)}.btn-danger:hover{background:#ef444433}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.input-group{display:flex;flex-direction:column;gap:var(--space-xs)}.input-group label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.input{padding:.5rem .75rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;font-family:var(--font-sans);transition:border-color .15s;outline:none;width:100%}.input:focus{border-color:var(--color-mid-grey)}.input::placeholder{color:var(--text-muted)}select.input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-primary)}.login-card{width:100%;max-width:440px;padding:var(--space-2xl)}.login-logo{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);margin-bottom:var(--space-2xl)}.login-logo img{height:40px;width:auto}.login-logo h1{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.login-logo p{font-size:.8125rem;color:var(--text-muted);text-align:center}.login-form{display:flex;flex-direction:column;gap:var(--space-md)}.login-form .btn-primary{margin-top:var(--space-sm);padding:.625rem}.login-error{padding:.5rem .75rem;background:var(--color-danger-bg);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);color:var(--color-danger);font-size:.8125rem}.demo-accounts{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border-color)}.demo-accounts-title{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm);text-align:center}.demo-accounts-list{display:flex;flex-direction:column;gap:6px}.demo-account-btn{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:0 var(--space-sm);align-items:baseline;width:100%;padding:.5rem .625rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.demo-account-btn:hover{border-color:var(--text-muted);background:var(--bg-secondary)}.demo-account-btn.active{border-color:var(--text-primary);background:var(--bg-secondary)}.demo-account-role{grid-row:1;grid-column:1;font-size:.75rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.demo-account-email{grid-row:1;grid-column:2;font-size:.6875rem;color:var(--text-muted);font-family:var(--font-mono, monospace);text-align:right}.demo-account-desc{grid-row:2;grid-column:1 / -1;font-size:.6875rem;color:var(--text-muted);margin-top:1px}.user-mgmt-table td{vertical-align:middle}.user-mgmt-table .row-disabled{opacity:.5}.you-badge{display:inline-block;font-size:.5625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:1px 5px;border-radius:3px;background:var(--border-color);color:var(--text-muted);vertical-align:middle}.status-badge.editable{cursor:pointer;transition:opacity .15s}.status-badge.editable:hover{opacity:.75}.inline-select{font-size:.75rem;padding:4px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);outline:none;cursor:pointer;min-width:120px}.inline-select:focus{border-color:var(--text-primary)}.inline-input{font-size:.75rem;padding:4px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);outline:none;width:100%;min-width:100px}.inline-input:focus{border-color:var(--text-primary)}.inline-input::placeholder{color:var(--text-muted)}.inline-editable-text{cursor:pointer;padding:2px 4px;border-radius:var(--radius-sm);transition:background .15s}.inline-editable-text:hover{background:var(--bg-primary)}.site-checkbox-group{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.site-checkbox{display:flex;align-items:center;gap:3px;font-size:.6875rem;cursor:pointer;white-space:nowrap}.site-checkbox input[type=checkbox]{width:13px;height:13px;margin:0;accent-color:var(--text-primary);cursor:pointer}.inline-done-btn{display:inline-flex;align-items:center;gap:2px;font-size:.625rem;padding:2px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;transition:border-color .15s}.inline-done-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.status-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.6875rem;padding:3px 8px;border:1px solid var(--border-color);border-radius:20px;background:var(--bg-primary);cursor:pointer;transition:border-color .15s,opacity .15s;white-space:nowrap}.status-toggle:not(:disabled):hover{border-color:var(--text-muted)}.status-toggle:disabled{cursor:not-allowed;opacity:.6}.status-toggle-dot{display:inline-block;width:7px;height:7px;border-radius:50%;transition:background .15s}.status-toggle.active .status-toggle-dot{background:var(--color-ok)}.status-toggle.disabled .status-toggle-dot{background:var(--color-danger)}.create-user-row{background:var(--bg-primary)}.create-user-row td{padding-top:8px;padding-bottom:8px}.create-user-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.btn-sm{font-size:.6875rem;padding:3px 8px;display:inline-flex;align-items:center;gap:3px}.btn-ghost{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:border-color .15s,color .15s}.btn-ghost:hover{border-color:var(--text-primary);color:var(--text-primary)}.inline-error{font-size:.625rem;color:var(--color-danger);max-width:150px}.gauge{position:relative;display:inline-flex;align-items:center;justify-content:center}.gauge-value{position:absolute;font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary)}.alert-item{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-color)}.alert-item:last-child{border-bottom:none}.alert-icon{flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.alert-icon.critical{background:var(--color-danger-bg);color:var(--color-danger)}.alert-icon.warning{background:var(--color-warn-bg);color:var(--color-warn)}.alert-icon.info{background:var(--color-info-bg);color:var(--color-info)}.alert-content{flex:1;min-width:0}.alert-title{font-size:.8125rem;font-weight:500;color:var(--text-primary)}.alert-time{font-size:.6875rem;color:var(--text-muted);margin-top:2px}.cctv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.cctv-feed{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;position:relative}.cctv-feed-video{width:100%;aspect-ratio:16/9;background:var(--color-black);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.8125rem}.cctv-feed-info{padding:var(--space-sm) var(--space-md);display:flex;align-items:center;justify-content:space-between}.cctv-feed-name{font-size:.8125rem;font-weight:500;color:var(--text-primary)}.weather-current{display:flex;align-items:center;gap:var(--space-xl)}.weather-temp{font-size:3rem;font-weight:300;font-variant-numeric:tabular-nums;color:var(--text-primary);line-height:1}.weather-details{display:flex;flex-direction:column;gap:var(--space-xs)}.weather-detail{font-size:.8125rem;color:var(--text-secondary);display:flex;align-items:center;gap:var(--space-sm)}.weather-warning{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;background:var(--color-warn-bg);color:var(--color-warn);border:1px solid rgba(245,158,11,.2)}.weather-warning.danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:#ef444433}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);text-align:center;color:var(--text-muted)}.empty-state svg{margin-bottom:var(--space-md);opacity:.5}.empty-state p{font-size:.8125rem}.recharts-cartesian-axis-tick-value{fill:var(--text-muted)!important;font-size:.6875rem!important}.recharts-cartesian-grid line{stroke:var(--border-color)!important}.recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--bg-card)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-md)!important;box-shadow:0 4px 12px #0006!important}.recharts-tooltip-label{color:var(--text-primary)!important;font-weight:600!important;font-size:.8125rem!important}.recharts-tooltip-item{color:var(--text-secondary)!important;font-size:.75rem!important}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.text-muted{color:var(--text-muted)}.text-sm{font-size:.8125rem}.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.permission-matrix{border-collapse:collapse;font-size:.75rem;width:100%}.permission-matrix th{text-align:center;padding:8px 12px;font-weight:600;font-size:.6875rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.permission-matrix th:first-child{text-align:left}.permission-matrix th.admin-col{background:var(--bg-primary);color:var(--text-muted)}.permission-matrix th .lock-icon{display:inline-block;margin-left:4px;font-size:.625rem}.permission-matrix .section-row td{padding:10px 12px 6px;font-weight:600;font-size:.625rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.permission-matrix .row-label{font-weight:500;padding:6px 12px;white-space:nowrap}.permission-matrix .perm-cell{text-align:center;padding:6px 12px}.permission-matrix .perm-cell.admin-col{background:#00000005}.permission-matrix .perm-cell.locked{opacity:.5}.perm-checkbox{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.perm-checkbox input{position:absolute;opacity:0;width:0;height:0}.perm-check{display:inline-block;width:18px;height:18px;border:2px solid var(--border-color);border-radius:3px;background:var(--bg-secondary);transition:all .15s ease;position:relative}.perm-checkbox input:checked+.perm-check{background:var(--text-primary);border-color:var(--text-primary)}.perm-checkbox input:checked+.perm-check:after{content:"";position:absolute;top:2px;left:5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.perm-checkbox input:disabled+.perm-check{cursor:not-allowed;opacity:.6}.perm-checkbox input:disabled:checked+.perm-check{background:var(--text-muted);border-color:var(--text-muted)}.perm-check.saving{opacity:.4;animation:perm-pulse .6s ease infinite}@keyframes perm-pulse{0%,to{opacity:.4}50%{opacity:.8}}.truck-route-map-container{display:flex;flex-direction:column;gap:var(--space-sm)}.deposit-selector{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.deposit-selector-label{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-muted);white-space:nowrap}.deposit-selector-buttons{display:flex;gap:var(--space-xs);flex-wrap:wrap}.deposit-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;font-family:inherit}.deposit-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--text-muted)}.deposit-btn.active{background:var(--text-primary);color:var(--text-inverse);border-color:var(--text-primary)}.map-wrapper{position:relative;height:400px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color)}.route-info-panel{position:absolute;bottom:12px;left:12px;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);color:var(--text-primary);min-width:200px;z-index:10}.route-info-loading{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--text-secondary)}.route-info-destination{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--color-danger);margin-bottom:var(--space-xs);font-weight:600}.route-info-stats{display:flex;gap:var(--space-lg)}.route-info-stat{display:flex;align-items:flex-start;gap:6px;color:var(--text-muted)}.route-info-stat>svg{margin-top:2px;flex-shrink:0}.route-info-value{font-size:1rem;font-weight:700;color:var(--text-primary);line-height:1.2}.route-info-label{font-size:.625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.route-info-summary{margin-top:var(--space-xs);font-size:.625rem;color:var(--text-muted);font-style:italic}.map-hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:6px 16px;border-radius:20px;font-size:.7rem;color:var(--text-muted);white-space:nowrap;pointer-events:none;z-index:10}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.traffic-map-container{height:350px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color)}
