:root{--bg: #ffffff;--text: #1c1c1e;--hint: #8e8e93;--button-bg: #2481cc;--button-text: #ffffff;--secondary-bg: #f2f3f5;--border: #e5e6eb;--card: #ffffff;--card-shadow: 0 1px 2px rgba(0, 0, 0, .04);--status-yes: #2dbf4d;--status-no: #e8453c;--status-mixed: #f0a500;--status-unknown: #9ea3ad;--header-h: 56px;--nav-h: 64px;--page-bg: #e6e8eb}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font-family:inherit;-webkit-tap-highlight-color:transparent}#app-shell{position:relative;width:100%;height:100%;background:var(--bg);overflow:hidden;isolation:isolate}@media (min-width: 640px){body{display:flex;align-items:center;justify-content:center;background:var(--page-bg)}#app-shell{width:420px;height:min(100vh - 48px,880px);border-radius:28px;box-shadow:0 24px 60px #0000002e,0 0 0 1px #0000000a}}#app-header{position:absolute;top:0;left:0;right:0;height:var(--header-h);background:var(--bg);z-index:70;display:flex;align-items:center;padding:0 16px;padding-top:env(safe-area-inset-top,0);border-bottom:1px solid var(--border)}.app-header-inner{display:flex;flex-direction:column;justify-content:center;line-height:1.15}.app-header-title{font-size:17px;font-weight:600;color:var(--text)}.app-header-sub{font-size:12px;color:var(--hint);margin-top:1px}#tabs{position:absolute;top:var(--header-h);left:0;right:0;bottom:var(--nav-h);z-index:1}.tab{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--secondary-bg);visibility:hidden;pointer-events:none;z-index:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.tab.tab-active{visibility:visible;pointer-events:auto;z-index:2}.tab-map{overflow:hidden;background:var(--bg)}#map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1}#bottom-nav{position:absolute;left:0;right:0;bottom:0;height:var(--nav-h);z-index:80;display:grid;grid-template-columns:repeat(3,1fr);background:var(--bg);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0)}.nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;border:none;color:var(--hint);font-size:11px;font-weight:500;cursor:pointer;padding:6px 0 8px;transition:color .15s ease}.nav-btn.nav-active{color:var(--button-bg)}.nav-btn:active{opacity:.6}.loader{position:absolute;top:calc(var(--header-h) + 12px);left:50%;transform:translate(-50%);z-index:100;padding:8px 14px;border-radius:20px;background:var(--bg);color:var(--text);font-size:13px;box-shadow:0 2px 8px #00000026;pointer-events:none;transition:opacity .2s ease}.loader.hidden{opacity:0}#add-station-btn{position:absolute;right:16px;bottom:16px;z-index:90;width:52px;height:52px;border-radius:26px;border:none;background:var(--button-bg);color:var(--button-text);cursor:pointer;box-shadow:0 6px 14px #2481cc59;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .1s ease}#add-station-btn:active{transform:scale(.94)}#add-station-btn.active{background:var(--status-no);box-shadow:0 6px 14px #e8453c59}#filter-btn{position:absolute;top:12px;left:12px;z-index:90;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--bg);color:var(--button-bg);border:none;border-radius:22px;padding:10px 16px;min-height:44px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:0 4px 14px #0000002e;transition:transform .1s ease}#filter-btn:active{transform:scale(.96)}#filter-btn .filter-dot{display:none;position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:4px;background:var(--status-no);box-shadow:0 0 0 2px var(--bg)}#filter-btn.filters-active .filter-dot{display:block}#locate-me-btn{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:90;display:flex;align-items:center;gap:8px;background:var(--bg);color:var(--button-bg);border:none;border-radius:22px;padding:10px 18px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:0 4px 14px #0000002e;transition:transform .1s ease}#locate-me-btn:active{transform:translate(-50%) scale(.96)}#locate-me-btn.loading .locate-icon{animation:locate-spin 1s linear infinite}#locate-me-btn.attention{animation:locate-pulse 1.6s ease-out .4s 3}@keyframes locate-pulse{0%{box-shadow:0 4px 14px #0000002e,0 0 #2481cc73}70%{box-shadow:0 4px 14px #0000002e,0 0 0 16px #2481cc00}to{box-shadow:0 4px 14px #0000002e,0 0 #2481cc00}}@keyframes locate-spin{to{transform:rotate(360deg)}}#toast{position:absolute;top:calc(var(--header-h) + 12px);left:50%;transform:translate(-50%,-12px);z-index:200;padding:10px 16px;border-radius:12px;background:var(--text);color:var(--bg);font-size:14px;font-weight:500;box-shadow:0 6px 20px #00000040;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;max-width:calc(100% - 32px)}#toast.toast-visible{opacity:.96;transform:translate(-50%)}#toast.toast-error{background:var(--status-no);color:#fff}.sheet{position:absolute;left:0;right:0;bottom:var(--nav-h);z-index:85;max-height:60%;background:var(--bg);border-radius:18px 18px 0 0;box-shadow:0 -8px 24px #0000002e;transform:translateY(105%);transition:transform .28s cubic-bezier(.32,.72,0,1);overflow-y:auto}.sheet.sheet-open{transform:translateY(0)}.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border);margin:8px auto 4px}.sheet-inner{padding:8px 16px 24px}.sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:4px}.sheet-title{font-size:19px;font-weight:600;margin:0;flex:1;line-height:1.2}.sheet-brand{color:var(--hint);font-size:14px;margin-bottom:4px}.sheet-meta{color:var(--hint);font-size:13px;margin:4px 0 12px}.sheet-subtitle{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--hint);margin:12px 0 8px}.sheet-empty,.sheet-loading,.sheet-error{color:var(--hint);font-size:14px;margin:8px 0}.sheet-error{color:var(--status-no)}.sheet-actions{display:flex;gap:8px;margin-top:16px}.filter-sheet .sheet-actions{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--border);padding:12px 0 8px;margin-top:16px;z-index:1}.filter-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:84;background:#0000;opacity:0;pointer-events:none;transition:opacity .2s ease}.filter-backdrop.filter-backdrop-open{opacity:1;pointer-events:auto;background:#00000040}.filter-sheet{z-index:86}.status-pill{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap}.status-pill.status-yes{background:var(--status-yes)}.status-pill.status-no{background:var(--status-no)}.status-pill.status-mixed{background:var(--status-mixed)}.status-pill.status-unknown{background:var(--status-unknown)}.reports-list{list-style:none;padding:0;margin:0}.report-item{padding:10px 0;border-bottom:1px solid var(--border)}.report-item:last-child{border-bottom:none}.report-head{display:flex;align-items:center;gap:8px;margin-bottom:2px}.report-status{font-weight:600;font-size:12px;padding:2px 8px;border-radius:8px;color:#fff}.report-status.has{background:var(--status-yes)}.report-status.no{background:var(--status-no)}.report-meta{color:var(--hint);font-size:13px}.report-details{font-size:13px;color:var(--text);margin-top:2px}.report-comment{font-size:14px;color:var(--text);margin-top:4px;font-style:italic}.btn{display:inline-flex;align-items:center;justify-content:center;flex:1;padding:13px 16px;border-radius:12px;border:none;font-size:16px;font-weight:600;cursor:pointer;font-family:inherit;transition:transform .08s ease,opacity .15s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--button-bg);color:var(--button-text)}.btn-secondary{background:var(--secondary-bg);color:var(--text)}.modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:110;background:#00000080;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.modal-overlay.modal-open{opacity:1;pointer-events:auto}.modal{width:100%;background:var(--bg);border-radius:18px 18px 0 0;padding:8px 16px 24px;max-height:92%;overflow-y:auto;transform:translateY(100%);transition:transform .28s cubic-bezier(.32,.72,0,1)}.modal-overlay.modal-open .modal{transform:translateY(0)}.modal-title{font-size:18px;font-weight:600;margin:8px 0 16px}.form-label{font-size:13px;font-weight:600;margin:14px 0 8px;color:var(--text);text-transform:uppercase;letter-spacing:.4px}.fuel-toggle{display:flex;gap:8px;margin-bottom:4px}.toggle-btn{flex:1;padding:14px;border-radius:12px;border:2px solid var(--border);background:var(--secondary-bg);color:var(--text);font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease}.toggle-btn.toggle-yes.active{background:var(--status-yes);color:#fff;border-color:var(--status-yes)}.toggle-btn.toggle-no.active{background:var(--status-no);color:#fff;border-color:var(--status-no)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:8px 14px;border-radius:18px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:14px;min-height:36px;line-height:1.2;cursor:pointer;font-family:inherit;transition:all .12s ease}.chip.active{background:var(--button-bg);color:var(--button-text);border-color:var(--button-bg)}.chip-brand{max-width:calc(50% - 8px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 360px){.chip-brand{max-width:100%;flex-basis:100%}}.chip-status.chip-status-yes{border-color:var(--status-yes);color:var(--status-yes)}.chip-status.chip-status-no{border-color:var(--status-no);color:var(--status-no)}.chip-status.chip-status-mixed{border-color:var(--status-mixed);color:var(--status-mixed)}.chip-status.chip-status-unknown{border-color:var(--status-unknown);color:var(--status-unknown)}.chip-status.active.chip-status-yes{background:var(--status-yes);border-color:var(--status-yes);color:#fff}.chip-status.active.chip-status-no{background:var(--status-no);border-color:var(--status-no);color:#fff}.chip-status.active.chip-status-mixed{background:var(--status-mixed);border-color:var(--status-mixed);color:#fff}.chip-status.active.chip-status-unknown{background:var(--status-unknown);border-color:var(--status-unknown);color:#fff}button:focus-visible,.chip:focus-visible,.toggle-btn:focus-visible,.queue-btn:focus-visible,.nav-btn:focus-visible{outline:2px solid var(--button-bg);outline-offset:2px}input:focus-visible,textarea:focus-visible{outline:2px solid var(--button-bg);outline-offset:1px}.filter-sheet .form-label{text-transform:uppercase;letter-spacing:.4px}.filter-sheet .chips{margin-bottom:4px}.queue-options{display:flex;gap:8px}.queue-btn{flex:1;padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:14px;cursor:pointer;font-family:inherit;transition:all .12s ease}.queue-btn.active{background:var(--button-bg);color:var(--button-text);border-color:var(--button-bg)}.comment-input{width:100%;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--secondary-bg);color:var(--text);font-size:15px;font-family:inherit;resize:vertical;min-height:64px}.form-error{color:var(--status-no);font-size:13px;min-height:18px;margin:8px 0}.modal-actions{display:flex;gap:8px;margin-top:14px}.add-banner{position:absolute;top:calc(var(--header-h) + 12px);left:12px;right:12px;z-index:95;padding:10px 14px;border-radius:12px;background:var(--button-bg);color:var(--button-text);font-size:14px;font-weight:500;text-align:center;box-shadow:0 6px 14px #2481cc4d}#list-view{padding:0 0 24px}.list-search-bar{position:sticky;top:0;background:var(--secondary-bg);padding:10px 12px 6px;z-index:3}.list-search{width:100%;padding:11px 14px;border-radius:12px;border:none;background:var(--bg);color:var(--text);font-size:15px;font-family:inherit;outline:none;box-shadow:var(--card-shadow)}.list-search:focus{box-shadow:0 0 0 2px #2481cc59,var(--card-shadow)}.list-section-title{padding:12px 16px 6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--hint)}.list-empty{text-align:center;padding:32px 16px;color:var(--hint);font-size:14px}.list-cards{display:flex;flex-direction:column;gap:8px;padding:0 12px}.list-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--card);border-radius:14px;cursor:pointer;box-shadow:var(--card-shadow);transition:transform .08s ease,background .12s ease}.list-item:active{transform:scale(.99);background:var(--secondary-bg)}.list-dot{width:12px;height:12px;border-radius:6px;flex-shrink:0}.list-dot.dot-yes{background:var(--status-yes)}.list-dot.dot-no{background:var(--status-no)}.list-dot.dot-mixed{background:var(--status-mixed)}.list-dot.dot-unknown{background:var(--status-unknown)}.list-body{flex:1;min-width:0}.list-title{font-size:15px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-sub{font-size:13px;color:var(--hint);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-meta{font-size:12px;color:var(--hint);text-align:right;white-space:nowrap;flex-shrink:0}#profile-view{padding:16px 16px 24px}.profile-card{display:flex;align-items:center;gap:14px;padding:16px;border-radius:16px;background:var(--card);box-shadow:var(--card-shadow);margin-bottom:12px}.profile-avatar{width:56px;height:56px;border-radius:28px;background:linear-gradient(135deg,#5fa8e3,#2481cc);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:22px;flex-shrink:0;box-shadow:0 4px 12px #2481cc40}.profile-name{font-size:17px;font-weight:600;color:var(--text)}.profile-sub{font-size:13px;color:var(--hint);margin-top:2px}.profile-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.profile-stat{background:var(--card);padding:14px;border-radius:14px;text-align:center;box-shadow:var(--card-shadow)}.profile-stat-value{font-size:24px;font-weight:700;color:var(--button-bg);line-height:1.1}.profile-stat-label{font-size:12px;color:var(--hint);margin-top:4px}.profile-info{padding:14px;border-radius:14px;background:var(--card);color:var(--text);font-size:14px;line-height:1.5;margin-bottom:12px;box-shadow:var(--card-shadow)}.profile-points-card{background:var(--card);border-radius:16px;padding:18px 16px 16px;text-align:center;box-shadow:var(--card-shadow);margin-bottom:12px;position:relative;overflow:hidden}.profile-points{font-size:32px;font-weight:800;color:var(--button-bg);line-height:1;letter-spacing:-.5px}.profile-points-label{font-size:13px;color:var(--hint);margin-top:4px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.profile-rank{display:inline-block;margin-top:12px;padding:6px 14px;border-radius:14px;background:var(--secondary-bg);color:var(--button-bg);font-size:13px;font-weight:600}.profile-actions{display:flex;gap:8px;margin-bottom:12px}.profile-action-btn{flex:1;padding:12px 14px;font-size:14px}.profile-action-btn:disabled{opacity:.55;cursor:not-allowed}.profile-prize-note{padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,#2481cc14,#2481cc0a);border:1px dashed rgba(36,129,204,.3);color:var(--text);font-size:13px;line-height:1.45;text-align:center;margin-bottom:12px}.leaderboard-panel{max-height:0;overflow:hidden;transition:max-height .3s ease;margin-bottom:12px}.leaderboard-panel.open{max-height:2000px}.leaderboard-header{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--hint);padding:4px 4px 8px}.leaderboard-list{display:flex;flex-direction:column;gap:6px;background:var(--card);border-radius:14px;padding:8px;box-shadow:var(--card-shadow)}.leaderboard-entry{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;background:transparent;transition:background .15s ease}.leaderboard-entry.me{background:#2481cc1a}.leaderboard-rank{flex-shrink:0;width:38px;text-align:center;font-size:13px;font-weight:700;color:var(--hint)}.leaderboard-rank.gold{color:#d4a017}.leaderboard-rank.silver{color:#8a8d92}.leaderboard-rank.bronze{color:#b87333}.leaderboard-info{flex:1;min-width:0}.leaderboard-name{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-sub{font-size:12px;color:var(--hint);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-points{flex-shrink:0;font-size:16px;font-weight:700;color:var(--button-bg);min-width:42px;text-align:right}.leaderboard-me-footer{margin-top:10px;padding:10px 12px;border-radius:10px;background:#2481cc1a;color:var(--text);font-size:13px;font-weight:600;text-align:center}
