:root{--text:#d1d5db;--text-h:#f3f4f6;--bg:#111218;--border:#2e303a;--input-bg:#1a1b23;--accent:#6366f1;--grid:#ffffff59;--grid-label:#ffffffb3;--tooltip-bg:#141428eb;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}[data-theme=light]{--text:#374151;--text-h:#111827;--bg:#f9fafb;--border:#d1d5db;--input-bg:#fff;--accent:#4f46e5;--grid:#0003;--grid-label:#0009;--tooltip-bg:#ffffffeb;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{margin:0}h1,h2,h3{color:var(--text-h);font-weight:600}.landing{text-align:center;background:linear-gradient(#0f1328 0%,#141a3a 35%,#0e1a3a 60%,#0a1520 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:2rem;display:flex}.landing-hero{flex-direction:column;align-items:center;gap:4px;max-width:560px;display:flex}.landing-icon{border-radius:40px;width:180px;height:180px;margin-bottom:1.5rem;box-shadow:0 16px 48px #00000059}.landing h1{letter-spacing:-.02em;margin:0;font-size:2.5rem}.landing-tagline{color:#fff9;margin:.25rem 0 1rem;font-size:1.1rem}.landing-description{color:#ffffff8c;margin:0 0 1.5rem;font-size:1rem;line-height:1.6}.landing-actions{margin-bottom:1.5rem}.landing-cta{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 32px;font-family:inherit;font-size:16px;font-weight:500;transition:opacity .2s}.landing-cta:hover{opacity:.9}.landing-stores{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.store-badge{transition:transform .2s;display:inline-block}.store-badge:hover{transform:scale(1.05)}.store-badge img{height:42px}.landing-video-link{color:var(--accent);margin-top:1.25rem;font-size:.95rem;text-decoration:none;display:block}.landing-video-link:hover{text-decoration:underline}.landing-footer{color:#ffffff59;margin-top:2.5rem;font-size:.8rem}.landing-footer a{color:#ffffff59;text-decoration:none}.landing-footer a:hover{text-decoration:underline}.landing-sep{margin:0 .5rem}.app-shell{flex-direction:column;min-height:100svh;display:flex}.top-nav{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 20px;display:flex}.nav-left{align-items:center;gap:24px;display:flex}.nav-logo{color:var(--accent);letter-spacing:-.5px;margin-right:8px;font-size:18px;font-weight:700}.nav-link{color:var(--text);cursor:pointer;background:0 0;border-bottom:2px solid #0000;padding:4px 0;font-family:inherit;font-size:14px;text-decoration:none;transition:color .2s,border-color .2s}.nav-link:hover{color:var(--text-h)}.nav-link.active{color:var(--text-h);border-bottom-color:var(--accent)}.nav-right{align-items:center;gap:16px;display:flex}.theme-toggle{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:border-color .2s,color .2s;display:flex}.theme-toggle:hover{border-color:var(--text);color:var(--text-h)}.nav-user{color:var(--text);font-size:13px}.nav-logout{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:4px 12px;font-family:inherit;font-size:13px;transition:border-color .2s,color .2s}.nav-logout:hover{border-color:var(--text);color:var(--text-h)}.app-main{flex:1;padding:20px}.login-container{justify-content:center;align-items:center;min-height:100svh;padding:20px;display:flex}.login-form{flex-direction:column;gap:16px;width:100%;max-width:360px;display:flex}.login-form h1{letter-spacing:-.5px;margin:0;font-size:32px}.login-form .subtitle{color:var(--text);margin:-8px 0 8px}.login-form label{color:var(--text);flex-direction:column;gap:6px;font-size:14px;display:flex}.login-form input{border:1px solid var(--border);background:var(--input-bg);color:var(--text-h);border-radius:6px;outline:none;padding:10px 12px;font-family:inherit;font-size:16px;transition:border-color .2s}.login-form input:focus{border-color:var(--accent)}.login-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:4px;padding:10px;font-family:inherit;font-size:16px;font-weight:500;transition:opacity .2s}.login-form button:hover{opacity:.9}.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#ef4444;background:#ef444426;border-radius:6px;padding:10px 12px;font-size:14px}.upgrade-prompt{text-align:center;flex-direction:column;gap:16px;width:100%;max-width:400px;display:flex}.upgrade-prompt h1{margin:0;font-size:28px}.upgrade-prompt p{color:var(--text);margin:0;line-height:1.6}.upgrade-prompt button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;padding:10px;font-family:inherit;font-size:14px;transition:border-color .2s}.upgrade-prompt button:hover{border-color:var(--text)}.dashboard{gap:20px;height:calc(100svh - 92px);display:flex}.sidebar{flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow:hidden}.sidebar-filter{border:1px solid var(--border);background:var(--input-bg);color:var(--text-h);box-sizing:border-box;border-radius:6px;outline:none;width:100%;margin-bottom:6px;padding:6px 10px;font-family:inherit;font-size:13px;transition:border-color .2s}.sidebar-filter:focus{border-color:var(--accent)}.sidebar-heading{text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;margin:0 0 8px;padding:0 4px;font-size:13px;display:flex}.sidebar-count{color:var(--text);font-size:12px;font-weight:400}.sidebar-status{color:var(--text);padding:20px 4px;font-size:14px}.sidebar-error{color:#ef4444}.track-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.track-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;gap:2px;padding:10px 12px;font-family:inherit;font-size:14px;transition:background .15s;display:flex}.track-item:hover{background:var(--input-bg)}.track-item.selected{background:var(--input-bg);outline:1px solid var(--accent)}.track-date{color:var(--text-h);font-size:14px}.track-exit{color:var(--text);font-size:12px}.sidebar-divider{background:var(--border);flex-shrink:0;height:1px;margin:12px 4px}.profile-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.profile-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;gap:2px;padding:10px 12px;font-family:inherit;font-size:14px;transition:background .15s;display:flex}.profile-item:hover{background:var(--input-bg)}.profile-item.selected{background:var(--input-bg);outline:1px solid var(--accent)}.profile-name{color:var(--text-h);font-size:14px}.profile-exit{color:var(--text);font-size:12px}.dashboard-main{flex:1;justify-content:center;align-items:flex-start;min-width:0;display:flex;overflow-y:auto}.dashboard-toolbar{align-items:center;gap:12px;margin-bottom:4px;display:flex}.track-stats{flex-wrap:wrap;flex:1;gap:8px;display:flex}.community-toggle{color:var(--text);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:6px;font-size:12px;display:flex}.community-toggle input[type=checkbox]{accent-color:var(--accent)}.info-icon{opacity:.5;font-size:15px}.info-icon:hover{opacity:1}.unit-toggle{background:var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:600}.unit-toggle:hover{background:var(--accent);color:#fff}.stat-badge{background:var(--input-bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;padding:8px 14px;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);align-items:center;gap:4px;font-size:11px;display:flex}.stat-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.stat-value{color:var(--text-h);font-size:16px;font-weight:600;font-family:var(--mono)}.track-detail{width:100%;height:100%;color:var(--text);flex-direction:column;display:flex}.track-detail-title{color:var(--text-h);align-items:center;gap:8px;margin:0 0 12px;display:flex}.track-delete-btn{color:var(--text);opacity:.4;cursor:pointer;background:0 0;border:none;padding:4px;line-height:1;transition:opacity .2s,color .2s}.track-delete-btn:hover{opacity:1;color:#f44336}.track-detail-subtitle{color:var(--text);font-weight:400}.track-meta{color:var(--text);gap:16px;margin-bottom:8px;font-size:13px;display:flex}.track-meta-coords{cursor:pointer;font-family:var(--mono);opacity:.8}.track-meta-coords:hover{color:var(--accent);opacity:1}.chart-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.chart-grid .chart-card.chart-wide,.track-notes{grid-column:1/-1}.track-notes-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.track-notes-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);font-size:12px}.track-notes-saved{color:var(--accent);opacity:.8;font-size:11px}.track-notes-input{box-sizing:border-box;background:var(--input-bg);border:1px solid var(--border);width:100%;color:var(--text-h);resize:vertical;border-radius:6px;min-height:60px;padding:10px 12px;font-family:inherit;font-size:14px}.track-notes-input::placeholder{color:var(--text);opacity:.5}.track-notes-input:focus{border-color:var(--accent);outline:none}.chart-card{border:1px solid var(--border);background:var(--input-bg);border-radius:8px;flex-direction:column;display:flex;overflow:visible}.chart-card.chart-square .chart-body{aspect-ratio:1;flex:none;width:100%;overflow:hidden}.chart-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text);border-bottom:1px solid var(--border);flex-shrink:0;padding:8px 12px;font-size:12px}.chart-body{flex:1;min-height:0;position:relative}.chart-wide .chart-body{flex:none;height:320px}.stats-card-body{flex-direction:column;flex:1;gap:16px;padding:12px;display:flex;overflow-y:auto}.stats-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.legend-section{flex-direction:column;gap:6px;display:flex}.legend-item{color:var(--text-h);align-items:center;gap:8px;font-size:13px;display:flex}.legend-item.legend-muted{color:var(--text)}.legend-swatch{border-radius:2px;flex-shrink:0;width:12px;height:3px}.legend-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=1024px){.chart-grid{grid-template-rows:auto;grid-template-columns:1fr}}@media (width<=768px){.dashboard{flex-direction:column;height:auto}.sidebar{width:100%;max-height:40vh}}.compare-page{flex-direction:column;gap:12px;height:calc(100svh - 92px);padding:16px 24px;display:flex}.compare-panels{flex-shrink:0;gap:16px;display:flex}.compare-panel{flex-direction:column;flex:1;min-width:0;max-height:240px;display:flex}.compare-filter{border:1px solid var(--border);background:var(--input-bg);color:var(--text-h);border-radius:6px;outline:none;margin-bottom:6px;padding:6px 10px;font-family:inherit;font-size:13px;transition:border-color .2s}.compare-filter:focus{border-color:var(--accent)}.compare-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.compare-item{cursor:pointer;width:100%;color:var(--text);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;transition:background .15s;display:flex}.compare-item:hover,.compare-item.selected{background:var(--input-bg)}.compare-item input[type=checkbox]{accent-color:var(--accent);flex-shrink:0}.compare-item-label{flex-direction:column;gap:1px;min-width:0;display:flex}.compare-item-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.compare-item-sub{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.compare-chips{flex-wrap:wrap;flex-shrink:0;gap:6px;display:flex}.compare-chip{background:var(--input-bg);border:1px solid var(--border);color:var(--text-h);border-radius:14px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:flex}.compare-chip-swatch{border-radius:50%;flex-shrink:0;width:10px;height:10px}.compare-chip-remove{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.compare-chip-remove:hover{color:var(--text-h)}.compare-chart-area{flex:1;justify-content:center;min-height:0;display:flex}@media (width<=768px){.compare-panels{flex-direction:column}.compare-panel{max-height:200px}}.state-message{color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;padding:40px 20px;display:flex}.state-message.inline{text-align:left;align-items:flex-start;padding:20px}.state-message p{margin:0;font-size:14px;line-height:1.5}.state-message.error p{color:#ef4444}.spinner{border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=480px){.top-nav{gap:8px;padding:0 12px}.nav-left{gap:12px}.nav-user{display:none}.nav-logo{margin-right:0;font-size:16px}.app-main{padding:12px}.stat-badge{padding:6px 10px}.stat-value{font-size:14px}.dashboard-toolbar{flex-wrap:wrap}.chart-card{min-height:240px}}.modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.import-modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:520px;max-width:90vw;max-height:80vh;display:flex}.import-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.import-header h2{margin:0;font-size:16px;font-weight:600}.import-close{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.import-dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:8px;margin:16px 20px;padding:32px 16px;transition:border-color .2s,background .2s}.import-dropzone:hover,.import-dropzone.drag-over{border-color:var(--accent);background:#6366f10f}.dropzone-content{color:var(--text);opacity:.7;flex-direction:column;align-items:center;gap:8px;display:flex}.dropzone-content p{margin:0;font-size:14px}.import-file-list{flex-direction:column;gap:4px;max-height:300px;padding:0 20px;display:flex;overflow-y:auto}.import-file-row{background:var(--input-bg);border-radius:6px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.import-file-row.done{border-left:3px solid #00e676}.import-file-row.error{border-left:3px solid #f44336}.import-file-row.processing{border-left:3px solid var(--accent)}.import-file-name{color:var(--text-h);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;max-width:60%;overflow:hidden}.import-file-status{color:var(--text);text-align:right;font-size:12px}.import-file-row.error .import-file-status{color:#f44336}.import-file-row.done .import-file-status{color:#00e676}.import-footer{border-top:1px solid var(--border);justify-content:flex-end;padding:16px 20px;display:flex}.import-summary{color:var(--text);align-items:center;gap:12px;font-size:13px;display:flex}.import-errors{color:#f44336}.import-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 20px;font-family:inherit;font-size:14px;font-weight:500;transition:opacity .2s}.import-btn:hover{opacity:.9}.import-btn:disabled{opacity:.4;cursor:not-allowed}
