:root{color:#f5f7fb;background:#0b0d10;font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #0b0d10;--panel: #151922;--panel-2: #1b202a;--line: #2a303a;--text: #f5f7fb;--muted: #a4adbc;--accent: #ff6231 !important;--accent-strong: #f04438 !important;--safe: #32d583;--warning: #fdb022;--danger: #f04438;--tabbar: rgba(13, 16, 21, .96)}*{box-sizing:border-box}html{background:var(--bg);overscroll-behavior-x:contain;forced-color-adjust:none;-ms-high-contrast-adjust:none}body{margin:0;min-width:320px;min-height:100vh;background:#07090c;line-break:strict;overflow-wrap:break-word;word-break:keep-all;overscroll-behavior-x:contain;forced-color-adjust:none;-ms-high-contrast-adjust:none}html.recording-scroll-lock,body.recording-scroll-lock{overflow:hidden;overscroll-behavior:none}body.recording-scroll-lock{position:fixed;right:0;left:0;width:100%}body.recording-scroll-lock .app-shell,body.recording-scroll-lock .app-main{overflow:hidden}button,input,select,textarea{font:inherit}button,input,select,textarea,p,span,small,strong,label,h1,h2,h3,li,summary{line-break:strict;word-break:keep-all}code,pre,kbd,samp{overflow-wrap:anywhere;word-break:normal}button{color:inherit}a,a:visited{color:inherit;text-decoration-color:currentColor}button:disabled{cursor:not-allowed;opacity:.5}#root{min-height:100vh}.app-shell{width:100%;max-width:480px;min-height:100vh;margin:0 auto;background:var(--bg);position:relative;overflow-x:clip;overscroll-behavior-x:contain}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(14px + env(safe-area-inset-top)) 18px 12px;background:#0b0d10f5;border-bottom:1px solid rgba(255,255,255,.06);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-brand-logo{display:block;width:152px;height:42px;object-fit:contain;object-position:left center;flex:0 0 auto}.eyebrow{margin:0;color:var(--accent);font-size:12px;font-weight:800;letter-spacing:0}.app-main{--app-main-gutter: 14px;min-width:0;padding:16px var(--app-main-gutter) calc(112px + env(safe-area-inset-bottom))}.app-main:has(.drive-page.driving-mode){--app-main-gutter: 10px;padding:8px 10px calc(92px + env(safe-area-inset-bottom))}.app-main:has(>.swipe-workspace){padding-top:0}.page-stack{min-width:0;display:grid;gap:14px}.mobile-card,.route-card{min-width:0;background:var(--panel);border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:15px;box-shadow:0 14px 32px #0000003d}.card-heading{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.card-heading h2{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-heading>:not(h2){flex:0 0 auto}.card-heading h2,.mobile-card h2,.modal-panel h2{margin:0;font-size:18px;line-height:1.25;letter-spacing:0}.feed-sort-select{width:92px;min-width:0;min-height:44px;border:1px solid rgba(255,98,49,.32);border-radius:8px;background:#181d26;color:var(--text);padding:0 6px;font-size:12px;font-weight:900}.swipe-workspace{min-width:0;display:grid;gap:8px;overflow-x:hidden;padding-top:18px;touch-action:auto;-webkit-user-select:none;user-select:none;overscroll-behavior-x:contain}.swipe-workspace.swipe-disabled{touch-action:auto}.swipe-workspace.swipe-disabled .swipe-page-indicator,.swipe-workspace.swipe-disabled .swipe-edge-zone{display:none}.swipe-page-indicator{position:fixed;top:calc(51px + env(safe-area-inset-top));left:50%;z-index:12;width:min(100%,480px);height:44px;transform:translate(-50%);display:grid;grid-template-columns:repeat(2,1fr);gap:8px;align-items:center;margin:0;padding:0 var(--app-main-gutter);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none}.swipe-page-indicator button{width:100%;height:44px;min-height:44px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;background:linear-gradient(to bottom,transparent 19px,rgba(255,255,255,.22) 19px,rgba(255,255,255,.22) 25px,transparent 25px);padding:0;pointer-events:auto}body.recording-scroll-lock .swipe-page-indicator{pointer-events:none}.swipe-page-indicator button.active{background:linear-gradient(to bottom,transparent 19px,var(--accent) 19px,var(--accent) 25px,transparent 25px);filter:drop-shadow(0 0 5px rgba(255,98,49,.28))}.social-page-indicator{grid-template-columns:repeat(3,minmax(0,1fr))}.social-page-indicator>:nth-child(1){order:2}.social-page-indicator>:nth-child(2){order:3}.social-page-indicator>:nth-child(3){order:1}.swipe-edge-zone{position:fixed;top:calc(82px + env(safe-area-inset-top));bottom:calc(78px + env(safe-area-inset-bottom));z-index:11;width:96px;background:transparent;pointer-events:none;touch-action:auto}.swipe-edge-left{left:max(0px,calc(50% - 240px))}.swipe-edge-right{right:max(0px,calc(50% - 240px))}body.recording-scroll-lock .swipe-edge-zone{pointer-events:none}.swipe-panel{min-width:0;overflow-x:clip;will-change:transform,opacity}.swipe-panel-forward{animation:swipe-panel-in-forward .5s cubic-bezier(.2,.82,.2,1) both}.swipe-panel-back{animation:swipe-panel-in-back .5s cubic-bezier(.2,.82,.2,1) both}@keyframes swipe-panel-in-forward{0%{opacity:.65;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes swipe-panel-in-back{0%{opacity:.65;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}.disabled-feature-panel{min-height:240px;display:grid;place-items:center;align-content:center;gap:10px;border:1px dashed rgba(255,255,255,.16);border-radius:8px;background:#10141b;padding:20px;text-align:center}.disabled-feature-panel svg{color:var(--accent)}.disabled-feature-panel strong{font-size:17px}.disabled-feature-panel p{max-width:280px;margin:0}.mobile-card p,.route-card p{color:var(--muted);line-height:1.55}.button{min-width:0;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;padding:0 15px;font-weight:800;letter-spacing:0;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}.button:active{transform:scale(.98)}.button-full{width:100%}.button-primary{background:var(--accent);color:#140602}.button-secondary{background:#252c38;color:var(--text);border:1px solid var(--line)}.button-danger{background:var(--danger);color:#fff}.button-success{background:var(--safe);color:#032414}.button-ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:#202631}.bottom-tabbar{position:fixed;left:50%;bottom:0;z-index:30;width:100%;max-width:480px;transform:translate(-50%);display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:7px 8px calc(6px + env(safe-area-inset-bottom));background:var(--tabbar);border-top:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.tab-button{min-width:0;min-height:58px;display:grid;place-items:center;gap:4px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:12px;font-weight:700}.tab-button.active{background:#2a1712;color:#ffb199}.tab-button.disabled,.tab-button:disabled{opacity:.42;cursor:not-allowed}.ranger-network-page{gap:10px}.ranger-hero-card{border-color:#ff623133;background:radial-gradient(circle at 15% 8%,rgba(255,98,49,.2),transparent 34%),linear-gradient(180deg,#171b24,#11151d)}.ranger-hero,.ranger-friend-main,.ranger-history-row,.ranger-participant{min-width:0;display:flex;align-items:center;gap:10px}.ranger-hero{margin-bottom:12px}.ranger-tower{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border-radius:16px;background:transparent;color:#ffb199;box-shadow:none;overflow:hidden}.ranger-tower img{width:100%;height:100%;display:block;object-fit:cover}.ranger-hero strong,.ranger-hero span,.ranger-friend-row strong,.ranger-friend-row span,.ranger-history-row strong,.ranger-history-row span,.ranger-participant strong,.ranger-participant span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranger-hero span,.ranger-friend-row span,.ranger-history-row span,.ranger-participant span{color:var(--muted);font-size:12px;font-weight:800}.ranger-status-grid{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}.ranger-status-cell{min-width:0;min-height:70px;display:grid;gap:5px;align-content:center;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#080b1080;padding:10px}.ranger-status-cell span{color:var(--muted);font-size:11px;font-weight:900}.ranger-status-cell strong{min-width:0;display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:950}.ranger-status-cell strong.safe{color:#86efac}.ranger-status-cell strong.warn{color:#ffd78a}.ranger-permission-note{min-width:0;min-height:44px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid rgba(253,176,34,.2);border-radius:8px;background:#fdb02217;color:#ffd78a;padding:8px 10px;margin-bottom:10px;font-size:12px;font-weight:850}.ranger-permission-note button{min-height:44px;border:1px solid rgba(253,176,34,.28);border-radius:999px;background:#0a0c10b3;color:#ffd78a;padding:0 10px;font-size:11px;font-weight:950}.ranger-start-button{min-height:54px;font-size:15px}.ranger-join-code-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:10px}.ranger-join-code-row input{width:100%;min-width:0;min-height:44px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0f131a;color:var(--text);padding:0 12px;font-size:16px;font-weight:950;letter-spacing:0}.ranger-join-code-row input::placeholder{color:var(--muted);font-size:13px;font-weight:850}.ranger-join-code-row button{min-height:44px;border:1px solid rgba(255,98,31,.34);border-radius:8px;background:#ff4b1f24;color:#ffb199;padding:0 14px;font-size:13px;font-weight:950}.ranger-list,.ranger-participant-list,.ranger-roadmap{min-width:0;display:grid;gap:8px}.ranger-friend-row,.ranger-history-row,.ranger-participant{min-width:0;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:9px}.ranger-friend-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.ranger-row-actions{display:flex;gap:6px}.ranger-presence{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:14px;background:#ffffff0f;color:var(--muted)}.ranger-presence.online{color:#86efac;background:#32d5831f}.ranger-presence.riding{color:#ffb199;background:#ff623121}.ranger-presence.offline{color:#a4adbc;background:#ffffff0d}.ranger-call-card{border-color:#ff62314d;box-shadow:0 18px 42px #ff441814}.ranger-call-head{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.ranger-call-head>div{min-height:78px;display:grid;align-content:center;gap:4px;border-radius:8px;background:#0f131a;border:1px solid var(--line);padding:12px}.ranger-call-head span{color:var(--muted);font-size:12px;font-weight:900}.ranger-call-head strong{font-size:clamp(18px,5vw,24px);font-weight:950}.ranger-voice-dot{width:13px;height:13px;flex:0 0 13px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 4px #ffffff0a}.ranger-voice-dot.invited{background:#fdb022}.ranger-voice-dot.connecting{background:#ff8a3d;animation:pulse-dot 1.1s ease-in-out infinite}.ranger-voice-dot.connected{background:#32d583}.ranger-voice-dot.muted{background:#f04438}.ranger-voice-dot.disconnected,.ranger-voice-dot.left{background:#667085}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 3px #ff8a3d1f}50%{box-shadow:0 0 0 8px #ff8a3d05}}.ranger-participant>div:nth-child(2){min-width:0;flex:1 1 auto}.ranger-call-controls{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.ranger-call-controls button{min-width:0;min-height:72px;display:grid;place-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;background:#161c26;color:var(--text);padding:8px 4px;font-size:11px;font-weight:950}.ranger-call-controls button.active,.ranger-call-controls button:hover{border-color:#ff623161;background:#2a1712;color:#ffb199}.ranger-call-controls button.danger{border-color:#f044384d;background:#f0443824;color:#ffb4ad}.ranger-transmit-modes{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}.ranger-transmit-modes button{min-width:0;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--line);border-radius:8px;background:#111721;color:var(--muted);padding:4px;font-size:10px;font-weight:950}.ranger-transmit-modes button.active{border-color:#ff623161;background:#ff623124;color:#ffb199}.ranger-roadmap span{min-height:38px;display:flex;align-items:center;border:1px dashed rgba(255,255,255,.12);border-radius:8px;background:#10141b;color:var(--muted);padding:8px 10px;font-size:12px;font-weight:850}.bottom-tabbar.locked .tab-button.active{background:#2a1712;color:#ffb199;box-shadow:inset 0 0 0 1px #ff4b1f42}.tab-button-driving-wide{grid-column:1 / -1;min-height:58px;grid-auto-flow:column;grid-auto-columns:max-content;justify-content:center;align-content:center;gap:8px}.tab-button-locked{background:#151922f0;color:transparent;pointer-events:none}.tab-button-locked:before{content:"";width:46%;height:32px;border-radius:7px;background:#ffffff0a;box-shadow:inset 0 0 0 1px #ffffff0a}.tabbar-copyright{grid-column:1 / -1;display:block;margin-top:1px;color:#a4adbc9e;font-size:9px;font-weight:700;letter-spacing:0;line-height:1;text-align:center}.status-row{display:flex;flex-wrap:wrap;gap:8px}.status-pill,.badge{min-height:30px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 10px;background:#222833;color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}.status-pill.safe,.badge.safe,.notice.safe{color:#86efac;background:#32d5831f;border-color:#32d58340}.status-pill.warn,.badge.warn{color:#ffd78a;background:#fdb02221}.badge.danger,.notice.warning{color:#ffb4ad;background:#f0443821;border-color:#f0443840}.badge.night{color:#b7c7ff;background:#536fff29}.route-public_road{color:#d7e4ff}.route-scenic{color:#b6f2cb}.route-commute{color:#ffd29b}.route-closed_course{color:#ffb4ad}.speedometer{min-height:230px;display:grid;place-items:center;text-align:center;border-radius:8px;background:#11151c;border:1px solid rgba(255,98,49,.22);box-shadow:inset 0 0 0 1px #ffffff08}.speedometer.active{border-color:#ff623199}.idle-speedometer-frame{position:relative;min-width:0;isolation:isolate}.idle-metric-toggle{position:absolute;right:10px;bottom:10px;z-index:3;box-sizing:border-box;width:auto;height:34px;min-width:66px;min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid rgba(255,98,49,.32);border-radius:999px;background:#0f131ae6;color:#ffb199;padding:0 10px;font-size:12px;font-weight:950;box-shadow:0 10px 24px #00000059;pointer-events:auto;touch-action:manipulation}.idle-metric-grid{margin-top:-4px}.speed-label,.speed-unit,.speed-meta{color:var(--muted);font-weight:800}.speed-value{color:#fff;font-size:clamp(74px,24vw,112px);font-weight:900;line-height:.95;letter-spacing:0}.speed-unit{margin-top:-12px;font-size:18px}.speed-meta{font-size:13px}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.compact-grid{margin-top:12px}.metric{min-height:74px;display:grid;gap:5px;align-content:center;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.metric span{color:var(--muted);font-size:12px;font-weight:800}.metric strong{font-size:20px;letter-spacing:0}.form-grid{display:grid;gap:12px}label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:800}input,select,textarea{width:100%;min-height:46px;border:1px solid var(--line);border-radius:8px;background:#0f131a;color:var(--text);padding:11px 12px;outline:none}select:not([multiple]){-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 7L9 11.5L13.5 7' stroke='%23f5f7fb' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:15px 15px;padding-right:38px}.feed-sort-select:not([multiple]){padding:0 28px 0 9px;background-position:right 12px center}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ff623124}.checkbox-row{grid-template-columns:22px 1fr;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:8px;background:#10141b}.checkbox-row input{width:18px;min-height:18px;margin-top:2px}.checkbox-row small{display:block;margin-top:4px;color:var(--muted);font-weight:700}.notice{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;background:#111721;color:var(--muted);padding:12px;line-height:1.45}.notice.compact{font-size:13px}.drive-page.driving-mode{min-height:calc(100svh - 154px - env(safe-area-inset-bottom));gap:0;overflow:hidden}.recording-window{min-width:0;height:calc(100svh - 154px - env(safe-area-inset-bottom));display:grid;grid-template-rows:auto minmax(126px,.72fr) minmax(158px,1fr) auto minmax(0,auto) auto;gap:8px;overflow:hidden;border:1px solid rgba(255,98,49,.18);border-radius:8px;background:linear-gradient(180deg,#ff4b1f1f,#0e1219f5 28%),#111721;padding:10px;box-shadow:inset 0 0 0 1px #ffffff08}.recording-topline{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.recording-title{min-width:0;display:grid;gap:2px}.recording-title span,.recording-title small{overflow:hidden;color:var(--muted);font-size:11px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.recording-title span{width:fit-content;border:1px solid rgba(255,98,49,.24);border-radius:999px;background:#ff4b1f1f;color:#ffb199;padding:3px 7px}.recording-title strong{min-width:0;overflow:hidden;color:var(--text);font-size:17px;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.recording-title-logo{width:min(188px,48vw);height:26px;object-fit:contain;object-position:left center}.recording-status{flex:0 0 132px;min-width:0;display:grid;gap:5px;overflow:hidden}.recording-status .status-pill{width:100%;min-width:0;min-height:26px;justify-content:flex-start;overflow:hidden;padding:4px 8px;font-size:11px;text-overflow:ellipsis}.recording-speed-card,.recording-map-card{min-width:0;overflow:hidden;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#10141c}.recording-speed-card{display:grid}.recording-speed-card.convoy-speed-card{grid-template-columns:minmax(0,.58fr) minmax(118px,.42fr);align-items:stretch}.recording-speedometer-slot{min-width:0;min-height:0}.recording-speed-card .speedometer{min-height:0;height:100%;border:0;background:radial-gradient(circle at 50% 35%,rgba(255,98,49,.18),transparent 45%),#11151c;padding:8px}.recording-speed-card .speed-value{font-size:clamp(66px,19vw,92px)}.recording-speed-card .speed-label,.recording-speed-card .speed-unit,.recording-speed-card .speed-meta{font-size:12px}.recording-speed-card .speed-unit{margin-top:-9px}.convoy-speed-card .speedometer{padding:7px 5px}.convoy-speed-card .speed-value{font-size:clamp(43px,11vw,58px)}.convoy-speed-card .speed-unit{margin-top:-7px}.convoy-speed-card .speed-label,.convoy-speed-card .speed-unit,.convoy-speed-card .speed-meta{font-size:10px}.convoy-progress-panel{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:5px;border-left:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(71,215,255,.08),transparent),#0f131a;padding:7px}.convoy-progress-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:6px}.convoy-progress-head span,.convoy-progress-head strong{min-width:0;overflow:hidden;font-size:10px;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.convoy-progress-head span{color:var(--muted)}.convoy-progress-head strong{color:#9af3bb}.convoy-progress-list{min-width:0;display:grid;gap:4px;align-content:stretch}.convoy-progress-row{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) 34px;align-items:center;gap:5px}.convoy-progress-row.empty{opacity:.38}.convoy-progress-track{min-width:0;height:7px;overflow:hidden;border-radius:999px;background:#ffffff17}.convoy-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff4b1f,#47d7ff)}.convoy-progress-row strong{min-width:0;overflow:hidden;color:var(--muted);font-size:9px;font-weight:950;text-align:right;text-overflow:ellipsis;white-space:nowrap}.recording-map-card{position:relative}.recording-map-card .route-preview-map-wrap,.recording-map-card .route-preview-map,.recording-map-card .mock-map-fallback{height:100%!important;min-height:0}.recording-map-card .mock-map-message{display:none}.recording-map-card .wayfinder-panel,.recording-map-card .wayfinder-track-visual,.recording-map-card .wayfinder-track-visual svg{height:100%}.recording-map-card .wayfinder-track-visual{border-radius:0}.recording-map-card .wayfinder-stats{display:none}.recording-metric-grid,.recording-metric-grid.lap-recording-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.recording-metric-grid .metric{min-height:52px;gap:2px;padding:7px 5px;background:#1b202aeb}.recording-metric-grid .metric span{font-size:10px}.recording-metric-grid .metric strong{overflow:hidden;font-size:clamp(12px,3.25vw,16px);text-overflow:ellipsis;white-space:nowrap}.lap-recording-metric-grid .metric{min-height:50px;padding:6px 4px}.lap-recording-metric-grid .metric span{font-size:9px}.lap-recording-metric-grid .metric strong{font-size:clamp(11px,3.1vw,14px)}.recording-notice{max-height:46px;overflow:hidden;padding:8px;font-size:11px}.recording-footer{min-width:0;display:grid;gap:7px}.recording-actions{min-width:0;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:8px}.recording-footer .button,.recording-actions .button{min-height:42px}.rally-recording-window{height:calc(100svh - 168px - env(safe-area-inset-bottom));grid-template-rows:auto minmax(108px,.56fr) minmax(132px,.9fr) auto minmax(0,auto) auto;gap:6px;padding:8px}.rally-recording-window .recording-title strong{font-size:15px}.rally-recording-window .recording-title span,.rally-recording-window .recording-title small,.rally-recording-window .recording-status .status-pill{font-size:10px}.rally-recording-window .recording-status{flex-basis:116px;gap:4px}.rally-recording-window .recording-status .status-pill{min-height:23px;padding:3px 7px}.rally-recording-window .convoy-progress-panel{gap:4px;padding:5px}.rally-recording-window .convoy-progress-row{gap:4px}.rally-recording-window .convoy-progress-track{height:6px}.rally-recording-window .recording-metric-grid{gap:5px}.rally-recording-window .recording-metric-grid .metric{min-height:44px;padding:5px}.rally-recording-window .recording-live-summary span{padding:4px 6px;font-size:9px}.rally-recording-window .recording-footer{gap:5px}.rally-recording-window .recording-actions{gap:6px}.rally-recording-window .recording-footer .button,.rally-recording-window .recording-actions .button{min-height:38px}.recording-live-summary{margin-bottom:0;gap:5px}.recording-live-summary span{padding:5px 7px;font-size:10px}@media(max-height:700px){.app-main:has(.drive-page.driving-mode){--app-main-gutter: 8px;padding:6px 8px calc(84px + env(safe-area-inset-bottom))}.drive-page.driving-mode{min-height:calc(100svh - 140px - env(safe-area-inset-bottom))}.recording-window{height:calc(100svh - 140px - env(safe-area-inset-bottom));grid-template-rows:auto minmax(104px,.6fr) minmax(124px,1fr) auto minmax(0,auto) auto;gap:6px;padding:8px}.rally-recording-window{height:calc(100svh - 158px - env(safe-area-inset-bottom));grid-template-rows:auto minmax(92px,.48fr) minmax(110px,.82fr) auto minmax(0,auto) auto;gap:5px;padding:7px}.recording-title strong{font-size:15px}.recording-title span,.recording-title small,.recording-status .status-pill{font-size:10px}.recording-status{flex-basis:118px;gap:4px}.recording-status .status-pill{min-height:24px;padding:3px 7px}.recording-speed-card .speed-value{font-size:clamp(52px,17vw,68px)}.recording-speed-card .speed-label,.recording-speed-card .speed-unit,.recording-speed-card .speed-meta{font-size:10px}.recording-metric-grid .metric{min-height:44px;padding:6px 5px}.recording-metric-grid .metric strong{font-size:13px}.lap-recording-metric-grid .metric{min-height:42px;padding:5px 3px}.lap-recording-metric-grid .metric span{font-size:8px}.lap-recording-metric-grid .metric strong{font-size:10px}.recording-live-summary span{padding:4px 6px;font-size:9px}.recording-footer .button{min-height:38px}.rally-recording-window .recording-footer .button,.rally-recording-window .recording-actions .button{min-height:36px}}.drive-live-summary,.inline-actions,.stacked-actions,.card-actions{display:flex;gap:9px;flex-wrap:wrap}.drive-live-summary{margin-bottom:12px}.drive-live-summary span{border-radius:999px;background:#242b36;color:var(--muted);padding:7px 10px;font-size:12px;font-weight:800}.safety-inline{display:flex;gap:10px;align-items:flex-start}.safety-inline svg{color:var(--safe);flex:0 0 auto;margin-top:2px}.safety-inline p{margin:0}.compliance-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.compliance-row span,.compliance-row strong{display:block}.compliance-row span{color:var(--muted);font-size:12px;font-weight:800}.compliance-row strong{margin-top:3px;font-size:30px}.progress-track{width:100%;height:12px;overflow:hidden;border-radius:999px;background:#282f3b;margin:12px 0}.progress-fill{height:100%;min-width:4px;border-radius:inherit;background:linear-gradient(90deg,var(--safe),var(--accent))}.session-list,.route-list,.review-list,.vehicle-list{display:grid;gap:10px}.vehicle-form-card-collapsed .card-heading{margin-bottom:0}.vehicle-form-inline-action{display:flex;justify-content:flex-end}.drive-session-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.drive-session-item.active{border-color:#ff62317a;background:#151a23}.drive-session-item>button{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;color:inherit;padding:0;text-align:left}.drive-session-item>.button{min-height:38px;padding-inline:10px}.drive-mode-field,.wayfinder-preview-panel{display:grid;gap:8px;min-width:0}.drive-mode-field>span{color:var(--muted);font-size:13px;font-weight:900}.drive-mode-selector{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rally-mode-panel{min-width:0;display:grid;gap:8px}.rally-mode-button{min-width:0;min-height:48px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid rgba(255,98,49,.42);border-radius:8px;background:linear-gradient(135deg,#ff4b1f29,#0f131af5),#10141b;color:var(--text);padding:7px 10px;text-align:left}.rally-mode-panel.active .rally-mode-button{border-color:#ff6231b8;box-shadow:0 0 0 1px #ff4b1f1f,0 14px 28px #ff4b1f1a}.rally-mode-button img{width:min(210px,58vw);height:30px;object-fit:contain;object-position:left center}.rally-mode-button span{min-width:0;max-width:118px;overflow:hidden;color:#ffb199;font-size:11px;font-weight:950;text-align:right;text-overflow:ellipsis;white-space:nowrap}.rally-destination-sheet,.rally-idle-panel{min-width:0;display:grid;gap:8px;border:1px solid rgba(255,98,49,.22);border-radius:8px;background:#ff4b1f14;padding:10px}.rally-route-summary{min-width:0;display:flex;gap:6px;flex-wrap:wrap}.rally-route-summary span{border:1px solid rgba(255,98,49,.22);border-radius:999px;background:#ff4b1f1a;color:#ffb199;padding:4px 7px;font-size:11px;font-weight:900}.rally-route-option-strip button{flex-basis:86px;min-height:44px;border-radius:8px;padding:5px 7px}.rally-route-help,.rally-idle-panel span{color:var(--muted);font-size:12px;line-height:1.45}.rally-idle-panel strong{color:var(--text);font-size:14px;font-weight:950}.drive-mode-card{min-width:0;min-height:88px;display:grid;align-content:start;gap:6px;border:1px solid var(--line);border-radius:8px;background:#10141b;color:var(--text);padding:12px;text-align:left}.drive-mode-card.active{border-color:#ff623185;background:linear-gradient(180deg,#ff4b1f2b,#111721f2)}.drive-mode-card-title{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;justify-content:space-between;gap:6px;font-size:14px;font-weight:950}.drive-mode-card-title>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-mode-card-title em{flex:0 0 auto;border:1px solid rgba(255,198,87,.26);border-radius:999px;background:#ffc6571a;color:#ffd58a;padding:3px 6px;font-size:10px;font-style:normal;font-weight:950}.drive-mode-card small{color:var(--muted);font-size:12px;line-height:1.35}.wayfinder-preview-panel,.track-required-panel{border:1px solid rgba(71,215,255,.2);border-radius:8px;background:#47d7ff14;padding:12px}.track-required-panel{display:grid;gap:6px;border-color:#ffc65747;background:#ffc65714}.wayfinder-preview-panel strong,.wayfinder-preview-panel span,.wayfinder-preview-panel small,.track-required-panel strong,.track-required-panel span{display:block;min-width:0}.wayfinder-preview-panel strong,.track-required-panel strong{margin-bottom:4px}.wayfinder-preview-panel span,.wayfinder-preview-panel small,.track-required-panel span{color:var(--muted);line-height:1.45}.lap-start-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lap-start-actions .button{min-height:48px;padding-inline:8px;font-size:13px}.lap-setup-modal label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:900}.lap-setup-modal input[type=number]{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#10141c;color:var(--text);padding:0 12px;font-weight:900}.lap-setup-facts{display:flex;flex-wrap:wrap;gap:6px}.lap-setup-facts span{border:1px solid rgba(255,98,49,.22);border-radius:999px;background:#ff62311a;color:#ffb199;padding:6px 8px;font-size:11px;font-weight:900}.wayfinder-panel{display:grid;gap:10px;min-width:0}.wayfinder-track-visual{position:relative;min-width:0;overflow:hidden;border-radius:8px;background:#10141c}.wayfinder-track-visual svg{display:block;width:100%;aspect-ratio:16 / 9}.wayfinder-track-visual rect{fill:#10141c}.wayfinder-track-visual polyline{fill:none;stroke:#ff4b1f;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px rgba(255,75,31,.24))}.wayfinder-start-dot{fill:#ff4b1f}.wayfinder-current-dot{fill:#fff;stroke:#ff4b1f;stroke-width:3}.wayfinder-track-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font-size:12px;font-weight:900}.wayfinder-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wayfinder-stats span{min-width:0;display:grid;gap:3px;border:1px solid var(--line);border-radius:8px;background:#111721;color:var(--muted);padding:9px;font-size:11px;font-weight:850}.wayfinder-stats strong{overflow:hidden;color:var(--text);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.comparison-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.comparison-summary strong,.comparison-summary span{display:block}.comparison-summary span{margin-top:4px;color:var(--muted)}.comparison-legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.comparison-legend span{min-height:28px;display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900}.legend-course{background:#ff4b1f29;color:#ffb199}.legend-actual{background:#47d7ff24;color:#aeeeff}.author-badge{min-width:0;display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.09);border-radius:999px;padding:4px 8px;color:var(--muted);font-size:12px;font-weight:900;max-width:100%}.author-badge svg{flex:0 0 auto}.compact-profile{align-items:flex-start;justify-content:space-between}.compact-profile>div:not(.account-avatar-preview){min-width:0;flex:1}.account-avatar-preview{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#282f3b,#151922);color:#ffb199;font-size:22px;font-weight:950}.account-avatar-preview img,.profile-avatar img,.friend-avatar img{width:100%;height:100%;display:block;object-fit:cover}.account-avatar-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.account-avatar-controls small{grid-column:1 / -1;color:var(--muted);font-size:11px;font-weight:800}.visually-hidden-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.admin-link-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,98,49,.35);border-radius:8px;color:#ffd7cb;text-decoration:none;font-weight:900;background:#ff4b1f1a}.admin-page{max-width:760px;margin-inline:auto;padding:18px}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-topbar h1{margin:2px 0 0;font-size:24px}.admin-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:8px}.admin-nav a{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;color:var(--text);text-decoration:none;font-size:13px;font-weight:900;background:#121721}.admin-form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-image-preview,.pit-card>img{width:100%;max-height:220px;display:block;border:1px solid var(--line);border-radius:8px;object-fit:cover;background:#0f131a}.pit-tabs{display:inline-grid;grid-template-columns:repeat(2,minmax(54px,1fr));gap:4px;padding:3px;border:1px solid var(--line);border-radius:8px;background:#10141b}.pit-tabs button{min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:0 10px;font-size:12px;font-weight:900}.pit-tabs button.active{background:#2a1712;color:#ffb199}.pit-search{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;margin-bottom:12px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#10141b}.pit-search input{min-height:42px;border:0;background:transparent;padding:0}.pit-list,.admin-pit-list,.admin-pit-comments,.pit-card-body,.pit-comments,.pit-comment-form{display:grid;gap:10px}.pit-card,.admin-pit-item{min-width:0;display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:10px}.pit-card-head,.admin-pit-head{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:0;background:transparent;color:var(--text);padding:0;text-align:left}.pit-card-head span,.admin-pit-head span{min-width:0;display:grid;gap:4px}.pit-card-head strong,.admin-pit-head strong{overflow:hidden;font-size:15px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.pit-card-head small,.admin-pit-head small{min-width:0;display:flex;align-items:center;gap:5px;overflow:hidden;color:var(--muted);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.pit-card-body{padding-top:2px}.pit-card-body>p,.pit-comments h3{margin:0}.pit-comments-toggle{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:8px;background:#151b24;color:var(--text);padding:0 11px;font-weight:900}.pit-comments-toggle span{display:inline-flex;align-items:center;gap:6px}.pit-comments h3{display:flex;align-items:center;gap:6px;font-size:14px}.pit-comment-form textarea{min-height:78px}.admin-pit-actions{display:flex;justify-content:space-between;gap:8px;align-items:center}.admin-pit-actions .button{min-height:36px;padding:0 10px}.admin-table{display:grid;gap:10px}.admin-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:12px}.admin-row strong,.admin-row span,.admin-row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-row span,.admin-row small{color:var(--muted);margin-top:4px}.admin-row-details{min-width:0;border-top:1px solid var(--line);padding-top:10px}.admin-row-details summary{cursor:pointer;color:var(--text);font-size:13px;font-weight:900}.admin-consent-list{display:grid;gap:8px;margin-top:10px}.admin-consent-item{min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff08;padding:10px}.admin-consent-item code{display:block;min-width:0;margin-top:6px;overflow:hidden;color:#f4f7fb;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.comparison-thumbnail-frame{margin-bottom:10px}.comparison-thumbnail-frame svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.comparison-thumbnail-frame polyline{fill:none;stroke:#47d7ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px rgba(0,0,0,.75))}.session-item,.route-list-item,.vehicle-card,.review-item{border:1px solid var(--line);border-radius:8px;background:#10141b;padding:12px}.review-item{display:grid;gap:8px}.review-item>.button{justify-self:end;min-height:34px;padding-inline:12px}.session-item,.route-list-item button,.vehicle-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.session-item.drive-session-item{display:grid;grid-template-columns:minmax(0,1fr) auto}.session-item strong,.route-list-item strong,.vehicle-card strong,.review-item strong{display:block;margin-bottom:4px}.session-item span,.route-list-item span,.vehicle-card p,.muted-text,.empty-text,.review-item p{color:var(--muted)}.session-stats{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;text-align:right;font-size:12px;font-weight:800}.empty-text{margin:0}.pwa-install-card{overflow:hidden}.pwa-install-intro{min-width:0;display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start}.pwa-install-intro strong,.pwa-install-intro p{display:block;min-width:0}.pwa-install-intro strong{font-size:16px}.pwa-install-intro p,.pwa-status-note{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.pwa-install-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:8px;color:#fff;background:linear-gradient(135deg,#ff4b1ff2,#f04438bf)}.pwa-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}.native-app-status-grid{grid-template-columns:1fr}.pwa-status-grid div{min-width:0;padding:10px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#ffffff09}.pwa-status-grid span,.pwa-status-grid strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pwa-status-grid span{color:var(--muted);font-size:11px;font-weight:800}.pwa-status-grid strong{margin-top:3px;font-size:14px}.pwa-actions{margin-top:13px}.theme-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.theme-choice{min-width:0;min-height:84px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text);padding:12px;text-align:left;cursor:pointer}.theme-choice svg{flex:0 0 auto;color:var(--accent)}.theme-choice span,.theme-choice strong,.theme-choice small{min-width:0;display:block}.theme-choice strong{font-size:14px;font-weight:950}.theme-choice small{margin-top:4px;color:var(--muted);font-size:11px;font-weight:800;line-height:1.35}.theme-choice.active{border-color:#ff623194;background:#ff62311f;box-shadow:0 0 0 3px #ff623114}.map-canvas,.map-fallback{width:100%;overflow:hidden;border-radius:8px;border:1px solid var(--line);background:#10141b}.route-preview-map-wrap{min-width:0;max-width:100%;overflow:hidden;position:relative;z-index:13;isolation:isolate;contain:layout paint;border-radius:8px;touch-action:pan-x pan-y pinch-zoom}.route-preview-map,.mock-map-fallback{position:relative;z-index:0;width:100%;max-width:100%;min-height:280px;overflow:hidden;border-radius:8px;border:1px solid var(--line);background:#10141b;touch-action:pan-x pan-y pinch-zoom}.native-map-placeholder{background:radial-gradient(circle at 50% 50%,rgba(255,45,31,.12),transparent 38%),#10141b}.map-control-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;overflow:hidden;border-radius:inherit;pointer-events:none;touch-action:auto}.map-zoom-controls{position:absolute;left:10px;bottom:10px;display:grid;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#0f131af0;box-shadow:0 10px 26px #00000059;pointer-events:auto}.map-zoom-controls button{width:44px;height:44px;display:grid;place-items:center;border:0;border-bottom:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text)}.map-zoom-controls button:last-child{border-bottom:0}.map-locate-button{position:absolute;right:10px;bottom:10px;z-index:1;min-height:44px;border-radius:9px;background:#0f131af0;color:var(--text);box-shadow:0 10px 26px #00000059;pointer-events:auto}.map-course-button{position:absolute;left:10px;top:10px;z-index:1;min-height:44px;display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#0f131aeb;color:var(--text);padding:0 10px;font-size:11px;font-weight:950;box-shadow:0 10px 26px #00000059;pointer-events:auto}.route-stop-panel{display:grid;gap:8px;margin-top:-6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#10141b}.route-stop-panel-header,.route-stop-row,.route-stop-move-controls{display:flex;align-items:center}.route-stop-panel-header{justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;font-weight:900}.route-stop-panel-header span{color:#ffd78a}.route-stop-list{display:grid;gap:6px}.route-stop-row{width:100%;min-width:0;max-width:100%;min-height:48px;gap:8px;padding:7px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#0f131a}.route-stop-role{width:46px;flex:0 0 46px;min-width:46px;color:var(--accent);font-size:12px;font-weight:900}.route-stop-copy{min-width:0;max-width:100%;flex:1 1 0;overflow:hidden}.route-stop-copy strong,.route-stop-copy span{display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-stop-copy strong{font-size:13px}.route-stop-copy span{margin-top:2px;color:var(--muted);font-size:11px;line-height:1.2}.route-stop-move-controls{flex:0 0 auto;min-width:72px;justify-content:flex-end;gap:4px}.route-stop-move-controls button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#161c25;color:var(--text);cursor:pointer}.route-stop-move-controls button:disabled{cursor:not-allowed;opacity:.32}.naver-marker-label{min-width:34px;height:34px;display:grid;place-items:center;border:3px solid #fff;border-radius:999px;background:#ff2d1f;color:#160703;font-size:12px;font-weight:900;box-shadow:0 8px 22px #00000052}.naver-marker-label.vehicle{width:30px;min-width:30px;height:30px;border-color:#10141c;background:#ff2d1f;color:#fff7f3}.naver-marker-label.vehicle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.naver-marker-label.convoy{width:32px;min-width:32px;height:32px;padding:0;border-width:2px;border-radius:999px;background:#47d7ff;color:#041018;font-size:11px;letter-spacing:0;white-space:nowrap}.naver-marker-label.convoy.host{background:#fff;color:#10141c}.naver-spot-pin{position:relative;width:31px;height:31px;border:3px solid #ffffff;border-radius:50% 50% 50% 0;background:#ff2d1f;box-shadow:0 10px 24px #00000057;transform:rotate(-45deg)}.naver-spot-pin span{position:absolute;top:7px;left:7px;width:11px;height:11px;border:2px solid #ffffff;border-radius:999px;background:#10141c}.mock-map-fallback{position:relative;display:grid;place-items:center;cursor:crosshair}.mock-map-grid{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:28px 28px}.mock-map-fallback svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.mock-convoy-participant circle{fill:#47d7ff;stroke:#10141c;stroke-width:3}.mock-convoy-participant.host circle{fill:#fff}.mock-convoy-participant text{fill:#10141c;font-size:8px;font-weight:900;pointer-events:none}.mock-map-message{position:relative;z-index:1;display:grid;gap:4px;max-width:260px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#10141be0;text-align:center}.mock-map-message span,.mock-map-message small{color:var(--muted)}.route-thumbnail{width:100%;aspect-ratio:16 / 9;display:block;overflow:hidden;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#10141c;object-fit:cover}.svg-thumbnail svg{display:block;width:100%;height:100%}.route-thumbnail-placeholder{display:grid;place-items:center;color:var(--muted);font-weight:900}.drive-route-preview-panel{display:grid;gap:10px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#10141b}.shared-route-visual{min-width:0;display:grid;gap:10px}.shared-thumbnail-frame{position:relative;min-width:0;overflow:hidden;border-radius:8px}.thumbnail-map-toggle{position:absolute;left:10px;bottom:10px;z-index:2;min-height:34px;display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#0f131aeb;color:var(--text);padding:0 10px;font-size:12px;font-weight:900;box-shadow:0 10px 24px #00000059}.shared-static-map-frame{border:1px solid var(--line)}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;border-radius:8px;background:#0b0f15}.drive-route-preview-panel .segmented-control{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.drive-route-preview-panel .segmented-control button{min-height:34px;gap:4px;padding:0 6px;font-size:11px}.segmented-control button{min-width:0;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font-size:12px;font-weight:900}.segmented-control button.active{border-color:#ff623159;background:#2a1712;color:#ffb199}.drive-route-thumbnail-frame,.drive-route-static-frame{position:relative;aspect-ratio:16 / 9;min-width:0;overflow:hidden;border-radius:8px;background:#10141c}.drive-route-thumbnail-frame .route-thumbnail{height:100%}.lap-thumbnail-frame{position:relative;width:100%;height:100%;min-width:0;overflow:hidden;background:#10141c}.lap-thumbnail-frame .route-thumbnail{width:100%;height:100%;border:0;border-radius:0}.lap-overlay-marker{position:absolute;z-index:2;display:grid;place-items:center;transform:translate(-50%,-50%);border-radius:999px;pointer-events:none;box-shadow:0 8px 18px #0000006b}.lap-start-finish{width:12px;height:12px;border:2px solid #0b0d10;background:#fff;box-shadow:0 0 0 2px #ffffff38,0 5px 14px #00000059}.lap-finish-shadow{width:10px;height:10px;border:2px solid #0b0d10;background:#fff;box-shadow:0 0 0 2px #ffffff2e,0 5px 14px #0000004d}.lap-checkpoint{width:20px;height:20px;border:2px solid #111721;background:#47d7fff5;color:#06131a;font-size:10px;font-weight:1000}.lap-vehicle-marker{z-index:5}.lap-game-frame{position:relative;width:100%;height:100%;min-width:0;overflow:hidden;border-radius:8px;background:#10141c;isolation:isolate}.lap-game-frame:before{content:none}.lap-game-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%}.lap-game-track-shadow,.lap-game-track-guard,.lap-game-track-main,.lap-game-track-core{fill:none;stroke-linecap:round;stroke-linejoin:round}.lap-game-track-shadow{stroke:#ffffff1a;stroke-width:9}.lap-game-track-guard{stroke:#fff3;stroke-width:6;filter:none}.lap-game-track-main{stroke:#ff4b1f;stroke-width:4;filter:none}.lap-game-track-core{display:none}.lap-game-start rect{fill:#fff;stroke:#0b0d10eb;stroke-width:1.5;filter:none}.lap-game-start path{fill:#0b0d10}.lap-game-start text{fill:#fff;font-family:system-ui,sans-serif;font-size:10px;font-weight:1000;text-anchor:middle;paint-order:stroke;stroke:#000000d9;stroke-width:3px}.lap-game-start-dot,.lap-game-end-dot{fill:#fff;stroke:#080b10;stroke-width:2}.lap-game-checkpoint circle:first-child{fill:#10141c;stroke:#fff;stroke-width:2;filter:none}.lap-game-checkpoint circle:nth-child(2){fill:#ff4b1f}.lap-game-checkpoint text{fill:#fff;font-family:system-ui,sans-serif;font-size:8px;font-weight:1000;text-anchor:middle}.lap-game-hud,.lap-game-course-name,.lap-game-waiting{position:absolute;z-index:4;pointer-events:none}.lap-game-hud{top:7px;left:7px;display:flex;align-items:center;gap:6px;border:1px solid rgba(255,75,31,.32);border-radius:999px;background:#080b10c2;color:#ffb199;padding:5px 8px;box-shadow:none;font-size:9px;font-weight:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lap-game-hud strong{color:#fff}.lap-game-course-name{right:7px;bottom:3px;max-width:58%;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#080b10b8;color:#ffffffe0;padding:5px 8px;font-size:10px;font-weight:900;text-overflow:ellipsis;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lap-game-vehicle{z-index:6;width:30px;height:30px;border:2px solid #ffffff;background:#26e381;color:#031b0d;box-shadow:0 8px 18px #00000073}.lap-game-vehicle .vehicle-position-marker-icon{width:18px;height:18px}.lap-game-waiting{left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#080b10c7;color:#d8dee9;padding:8px 12px;font-size:12px;font-weight:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.drive-route-static-frame img{width:100%;height:100%;display:block;object-fit:cover}.drive-route-static-frame svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.drive-route-static-frame polyline{fill:none;stroke:#ff4b1f;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px rgba(0,0,0,.75))}.vehicle-position-dot{position:absolute;z-index:2;width:30px;height:30px;display:grid;place-items:center;transform:translate(-50%,-50%);border:3px solid #10141c;border-radius:999px;background:#ff2d1f;color:#fff7f3;box-shadow:0 8px 18px #0000005c}.vehicle-position-marker-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mock-current-vehicle .vehicle-position-marker-icon{color:#fff7f3}.vehicle-position-waiting{position:absolute;right:8px;bottom:8px;border:1px solid var(--line);border-radius:999px;background:#0f131ae0;color:var(--muted);padding:6px 9px;font-size:12px;font-weight:900}.drive-route-preview-meta{display:flex;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:12px;font-weight:900}.drive-route-preview-meta span{border:1px solid var(--line);border-radius:999px;background:#171d26;padding:6px 9px}.builder-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.builder-header h2{margin:2px 0 0}.nav-route-builder{gap:10px}.nav-route-shell{min-width:0;display:grid;gap:10px}.nav-route-topbar{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:var(--panel)}.nav-route-topbar>div{min-width:0}.nav-route-topbar h2{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:21px}.nav-step-track{margin:-2px 14px 0}.nav-route-copy-card{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid rgba(255,98,49,.28);border-radius:8px;background:#151922}.nav-route-copy-card div{min-width:0;flex:1 1 auto;overflow:hidden}.nav-route-copy-card span,.nav-route-copy-card strong{display:block}.nav-route-copy-card span{color:var(--muted);font-size:12px;font-weight:900}.nav-route-copy-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-route-map-stage{min-width:0;position:relative;z-index:13;overflow:hidden;isolation:isolate;border-radius:8px;background:#10141b;touch-action:pan-x pan-y pinch-zoom}.nav-route-map-stage .route-preview-map,.nav-route-map-stage .mock-map-fallback{border-radius:8px}.nav-route-map-summary{position:absolute;right:10px;top:10px;z-index:4;display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap;max-width:calc(100% - 20px);pointer-events:none}.nav-route-map-summary span{min-height:30px;display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#0f131ae6;color:var(--text);padding:5px 9px;font-size:12px;font-weight:900}.nav-route-sheet{min-width:0;display:grid;gap:12px;margin-top:-18px;padding:8px 10px 12px;position:relative;z-index:5;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#151922fa;box-shadow:0 -18px 36px #0000004d}.nav-route-sheet-grip{width:42px;height:4px;justify-self:center;border-radius:999px;background:#3a414d}.nav-route-stop-stack{min-width:0;display:grid;gap:6px}.nav-route-stop{width:100%;min-width:0;min-height:52px;display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#0f131a;color:inherit;padding:8px 10px;text-align:left}.nav-route-stop.active{border-color:#ff62318c;background:#211711}.nav-stop-rail{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#252c38;color:var(--muted);font-size:12px;font-weight:900}.nav-stop-rail.origin{background:var(--safe);color:#042011}.nav-stop-rail.destination{background:var(--accent);color:#170604}.nav-stop-rail.waypoint{border:1px solid rgba(255,98,49,.42);background:#2a1712;color:#ffb199}.nav-stop-text{min-width:0}.nav-stop-text strong,.nav-stop-text small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-stop-text strong{font-size:15px}.nav-stop-text small{margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}.nav-route-option-strip{min-width:0;display:flex;flex-wrap:wrap;gap:7px;padding-bottom:2px;overflow:hidden}.nav-route-option-strip button{flex:1 1 98px;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:14px;background:#0f131a;color:var(--muted);padding:6px 9px;font-size:12px;font-weight:900;line-height:1.1;display:grid;gap:2px;align-content:center;white-space:normal}.nav-route-option-strip button.active{border-color:#ff623173;background:#2a1712;color:#ffb199}.nav-route-option-strip button.motorcycle.active{border-color:#40d68675;background:#23623f38;color:#b6f4d1}.nav-route-option-strip button span,.nav-route-option-strip button small{min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-route-option-strip button small{color:var(--muted);font-size:10px;font-weight:800}.nav-route-editor-panel,.nav-route-order-list,.nav-save-panel{min-width:0;display:grid;gap:10px}.nav-current-location-actions{min-width:0;display:grid;gap:8px;border:1px solid rgba(71,215,255,.16);border-radius:8px;background:#47d7ff12;padding:10px}.nav-current-location-actions>span{color:var(--muted);font-size:12px;font-weight:900}.nav-current-location-actions>div{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.nav-current-location-actions .button{min-height:44px;padding-inline:8px}.nav-route-order-list{padding:8px;border:1px solid var(--line);border-radius:8px;background:#10141b}.nav-order-row{min-height:44px;padding:6px}.nav-route-result-card{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}.nav-route-result-card>div{min-width:0;display:grid;align-content:center;border:1px solid var(--line);border-radius:8px;background:#0f131a;padding:9px}.nav-route-result-card span:not(.badge),.nav-route-result-card strong{display:block}.nav-route-result-card span:not(.badge){color:var(--muted);font-size:11px;font-weight:900}.nav-route-result-card strong{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.nav-route-result-card .badge{justify-content:center}.nav-course-form{padding-top:2px}.nav-route-actions{margin-top:0}.step-track{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:13px}.step-track span{height:5px;border-radius:999px;background:#2a303a}.step-track span.active{background:var(--accent)}.paste-route-card{border-color:#ff623147}.paste-route-banner{display:flex;align-items:center;justify-content:space-between;gap:10px}.paste-route-banner div{min-width:0}.paste-route-banner span,.paste-route-banner strong{display:block}.paste-route-banner span{color:var(--muted);font-size:12px;font-weight:900}.paste-route-banner strong{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.paste-route-banner .button{flex:0 0 auto;min-height:44px}.route-builder-actions{position:sticky;bottom:88px;z-index:18;width:100%;min-width:0;max-width:100%;display:grid;grid-template-columns:minmax(72px,.48fr) minmax(0,1fr);gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:#0f131af5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.route-action-stack{min-width:0;display:grid;gap:7px}.route-input-summary{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.route-input-summary div{min-width:0;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:10px}.route-input-summary span,.route-input-summary strong{display:block}.route-input-summary span{color:var(--muted);font-size:12px;font-weight:800}.route-input-summary strong{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.route-dirty{grid-column:1 / -1;display:inline-flex;gap:6px;align-items:center;color:#ffd78a;font-size:12px;font-weight:800}.address-search{display:grid;gap:8px}.search-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(82px,auto);gap:8px}.search-row .button{padding-inline:10px;white-space:nowrap}.selected-place,.search-results button,.save-complete{width:100%;max-width:100%;min-width:0;display:flex;align-items:flex-start;gap:8px;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:9px}.selected-place svg,.save-complete svg{color:var(--accent);flex:0 0 auto}.selected-place>div,.search-results button>strong,.search-results button>span,.search-results button>small{min-width:0;max-width:100%;overflow:hidden}.selected-place strong,.selected-place span,.selected-place small,.search-results strong,.search-results span,.search-results small,.save-complete strong,.save-complete span{display:block;min-width:0}.selected-place strong,.selected-place span,.selected-place small,.search-results strong,.search-results span,.search-results small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-place span,.selected-place small,.search-results span,.search-results small,.save-complete span,.field-help{color:var(--muted);line-height:1.45}.place-search-results button{display:grid;gap:4px}.place-result-heading{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.place-result-heading .badge{min-height:24px;padding:3px 7px;font-size:10px}.provider-naver_local{color:#b6f4d1;background:#32d58324}.provider-naver_geocoding{color:#b7c7ff;background:#536fff29}.provider-mock{color:#ffd78a;background:#fdb02221}.place-selected-card{align-items:center}.place-selected-card>div{flex:1 1 0}.icon-clear-button{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#171d26;color:var(--muted)}.field-help{margin:0;font-size:13px}.search-results{display:grid;gap:6px}.search-results button{width:100%;min-height:48px;color:inherit;text-align:left;cursor:pointer}.waypoint-list,.waypoint-editor{min-width:0;display:grid;gap:9px}.waypoint-editor{max-width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:#0f131a}.waypoint-editor .inline-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.waypoint-editor .inline-actions .button{width:100%;padding-inline:8px}.compact-heading{margin-bottom:0}.map-fallback{display:grid;align-content:center;gap:8px;padding:16px}.map-fallback ol{margin:0;padding-left:20px;color:var(--muted)}.route-marker{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--accent);border:3px solid #fff;color:#150603;font-weight:900;box-shadow:0 8px 20px #0000005c}.point-summary{display:grid;gap:7px;margin-top:12px;color:var(--muted);font-size:12px;line-height:1.45}.route-list-item{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.route-list-item-with-thumb>button{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center}.route-list-item-with-thumb .route-thumbnail{grid-row:span 2}.route-list-item-with-thumb .session-stats{grid-column:2;justify-content:flex-start;text-align:left}.route-list-item>button,.card-open{width:100%;min-width:0;border:0;background:transparent;color:inherit;padding:0;text-align:left}.route-list-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-content:center;margin-top:10px}.route-list-actions .button{width:100%;min-height:38px;padding-inline:10px}.route-card{padding:0;overflow:hidden}.card-open{display:grid;gap:9px;padding:15px 15px 12px}.route-card h3{margin:0;font-size:20px}.route-card p{margin:0}.route-card-top{display:flex;gap:7px;flex-wrap:wrap}.route-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;color:var(--muted);font-size:12px;font-weight:800}.route-meta-grid span{display:inline-flex;align-items:center;gap:5px}.card-actions{padding:10px 15px 15px}.mini-action{min-height:44px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:#202631;color:var(--muted);padding:0 10px;font-size:12px;font-weight:800}.mini-action.active{color:#ffb199;border-color:#ff623173}.mini-action.muted{opacity:.82}.mini-action.danger{color:#ffb4ad;border-color:#f044384d;background:#f044381f}.detail-toolbar{display:flex;flex-wrap:wrap;gap:8px}.detail-toolbar .button{min-width:0;flex:1 1 96px;min-height:42px}.route-edit-form{margin-top:12px}.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vehicle-card{align-items:flex-start}.vehicle-icon,.profile-avatar{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:#282f3b;color:var(--accent);overflow:hidden}.vehicle-icon.sports-car-icon{background:linear-gradient(145deg,#2b1410,#252c38);color:#ff8a62}.vehicle-icon.sports-car-icon svg{transform:scaleX(1.14) translateY(1px);stroke-width:2.5}.vehicle-icon.motorcycle-icon{background:linear-gradient(145deg,#ff623133,#202631);color:#ffd0bf}.vehicle-icon.motorcycle-icon svg{transform:scale(1.08);stroke-width:2.35}.vehicle-body{min-width:0;flex:1}.vehicle-heading{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.vehicle-heading h3{margin:0}.vehicle-body p{margin:4px 0 0}.profile-summary{display:flex;align-items:center;gap:12px;margin-bottom:14px}.profile-summary strong,.profile-summary span{display:block}.profile-summary span{color:var(--muted);margin-top:3px}.readonly-field{min-width:0;display:grid;gap:5px;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:11px 12px}.readonly-field span{color:var(--muted);font-size:12px;font-weight:800}.readonly-field strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-route-list{display:grid;gap:10px}.profile-collapsible-group,.profile-collapsible-section,.profile-session-list{min-width:0;display:grid;gap:10px}.profile-collapsible-section{border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#10141b;padding:10px}.profile-section-toggle{width:100%;min-width:0;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-radius:8px;background:#171d26;color:var(--text);padding:0 11px;text-align:left}.profile-section-toggle>span{min-width:0;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:950}.profile-section-toggle small{color:var(--muted);font-size:11px;font-weight:900}.profile-route-item{min-width:0;display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:10px}.profile-session-item{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#0f131a;padding:10px}.profile-session-item>div{min-width:0}.profile-session-item strong,.profile-session-item span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-session-actions{min-width:0;display:grid;gap:7px}.profile-session-actions .button,.profile-session-item>.button{min-height:36px;padding-inline:10px}.profile-session-detail{grid-column:1 / -1;min-width:0;display:grid;gap:10px;border-top:1px solid rgba(255,255,255,.07);padding-top:10px}.profile-session-view-mode{min-width:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.profile-session-view-mode.three{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-session-view-mode button{min-width:0;min-height:36px;border:1px solid var(--line);border-radius:8px;background:#151b24;color:var(--muted);padding:4px;font-size:10px;font-weight:900;line-height:1.15}.profile-session-view-mode button.active{border-color:#ff62316b;background:#2a1712;color:#ffb199}.profile-session-log-only,.profile-session-log-below{position:relative;min-width:0;overflow:hidden;border:1px solid rgba(71,215,255,.16);border-radius:8px;background:#10141c}.profile-session-log-only .route-thumbnail,.profile-session-log-below .route-thumbnail{width:100%;height:260px;min-height:260px;aspect-ratio:auto;object-fit:contain}.profile-session-log-below:before{content:"GPS 로그";position:absolute;left:8px;top:8px;z-index:2;border:1px solid rgba(71,215,255,.24);border-radius:999px;background:#070c12c2;color:#9eeaff;padding:5px 8px;font-size:10px;font-weight:950}.profile-session-thumbnail{position:relative;min-width:0;overflow:hidden;border-radius:8px;background:#10141c}.profile-session-thumbnail .route-thumbnail{width:100%;height:260px;min-height:260px;aspect-ratio:auto;object-fit:contain}.profile-session-detail-actions{min-width:0;display:grid;gap:8px}.profile-route-item .route-thumbnail{height:54px;aspect-ratio:auto}.drive-info-modal{width:min(100%,520px);height:min(760px,calc(100dvh - 36px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));grid-template-rows:auto auto auto minmax(0,1fr);overflow:hidden;touch-action:auto}.drive-info-embedded{min-width:0}.drive-info-page-panel{min-width:0;display:grid;gap:12px}.drive-info-page-panel .drive-info-content{overflow:visible;max-height:none}.records-page{padding-top:12px}.records-page-header{display:grid;gap:3px}.records-page-header h1,.records-stat-section h2{margin:0;letter-spacing:0}.records-page-header h1{font-size:25px}.records-stat-section{display:grid;gap:10px}.records-stat-section h2{font-size:16px}.records-metric-grid .metric{min-height:76px}:root[data-theme=light] .drive-info-page-panel,:root[data-theme=light] .records-stat-section{color:var(--text)}.drive-info-tabs{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.drive-info-tabs button{min-width:0;min-height:38px;border:1px solid var(--line);border-radius:8px;background:#10141c;color:var(--muted);padding:0 8px;font-size:12px;font-weight:950}.drive-info-tabs button.active{border-color:#ff623180;background:#2a1712;color:#ffb199}.drive-info-tabs.compact{grid-template-columns:repeat(3,minmax(0,1fr));position:sticky;top:0;z-index:3;padding-bottom:6px;background:#151922}.drive-info-content{min-width:0;min-height:0;display:grid;align-content:start;gap:10px;overflow-y:auto;padding-right:2px;overscroll-behavior:contain;touch-action:pan-y}.drive-info-summary-strip{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.drive-info-summary-strip span{min-width:0;border:1px solid var(--line);border-radius:8px;background:#10141c;color:var(--text);padding:10px;text-align:center;font-size:12px;font-weight:950}.drive-info-route-list{min-width:0;display:grid;gap:10px}.drive-info-route-card{min-width:0;display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:10px}.drive-info-route-card .route-thumbnail{height:58px;aspect-ratio:auto}.drive-info-route-body{min-width:0}.drive-info-route-body strong,.drive-info-route-body span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-info-route-body strong{color:var(--text);font-size:14px;font-weight:950}.drive-info-route-body>span{color:var(--muted);font-size:11px;font-weight:850}.drive-info-route-expand{grid-column:1 / -1;min-height:36px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#151b24;color:var(--muted);font-size:12px;font-weight:900}.drive-info-nested-sessions,.drive-info-session-group{grid-column:1 / -1;min-width:0;display:grid;gap:9px}.drive-info-session-group{border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#10141b;padding:10px}.drive-info-session-group-title{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.drive-info-session-group-title strong{min-width:0;overflow:hidden;color:var(--text);font-size:13px;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.drive-info-session-group-title span{flex:0 0 auto;color:var(--muted);font-size:11px;font-weight:900}.profile-route-item strong,.profile-route-item span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-route-item span,.profile-route-meta{color:var(--muted);font-size:12px;font-weight:800}.profile-route-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px}.review-item div{display:flex;justify-content:space-between;gap:10px}.review-item .review-actions{justify-content:flex-start;align-items:center;flex-wrap:wrap;margin-top:10px}.admin-review-list .review-actions{font-size:12px;color:var(--muted)}.review-item p{margin:0}.friends-page{gap:10px}.friend-login-required,.friend-my-profile,.friend-row,.friend-detail-head,.convoy-room-head{min-width:0;display:flex;align-items:center;gap:10px}.friend-login-required{display:grid;justify-items:center;text-align:center}.friend-login-required svg{color:var(--accent)}.friend-my-profile{min-height:64px;margin-bottom:12px}.friend-my-profile>div:nth-child(2),.friend-row>div,.friend-open-button>div:nth-child(2),.friend-detail-head>div:nth-child(2),.convoy-room-head>div{min-width:0;flex:1 1 auto}.friend-my-profile strong,.friend-my-profile span,.friend-row strong,.friend-row span,.friend-detail-head strong,.friend-detail-head span,.convoy-room-head strong,.convoy-room-head span,.friend-route-list strong,.friend-route-list span,.friend-message-list strong,.friend-message-list span,.friend-message-list small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-my-profile span,.friend-row span,.friend-detail-head span,.friend-route-list span,.friend-message-list span,.friend-message-list small{color:var(--muted);font-size:12px;font-weight:800}.friend-avatar{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#262d39,#151922);color:#ffb199;font-size:20px;font-weight:950;overflow:hidden}.friend-avatar.small{width:40px;height:40px;flex-basis:40px;border-radius:14px;font-size:16px}.friend-avatar.large{width:58px;height:58px;flex-basis:58px;border-radius:18px;font-size:24px}.friend-search-box,.friend-search-results,.friend-list-filter,.friend-list,.friend-detail-section,.friend-share-grid,.friend-share-split,.friend-message-list,.convoy-panel-body,.convoy-option-grid,.convoy-create-grid,.convoy-room-card,.convoy-participant-list{min-width:0;display:grid;gap:8px}.friend-search-results{margin-top:8px}.friend-list-filter{grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid var(--line);border-radius:8px;background:#0f131a;padding:0 10px;min-height:42px;margin-bottom:8px}.friend-list-filter svg{color:var(--muted)}.friend-list-filter input{border:0;background:transparent;min-height:40px;padding:0}.friend-row{border:1px solid var(--line);border-radius:8px;background:#10141b;padding:9px}.chat-conversation-row{width:100%;min-width:0;min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#10141b;color:inherit;padding:9px;text-align:left}.chat-conversation-row>div:nth-child(2){min-width:0}.chat-conversation-row strong,.chat-conversation-row span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-conversation-row span,.chat-conversation-row small{color:var(--muted);font-size:12px;font-weight:850}.chat-conversation-row small{justify-self:end}.friend-row.active{border-color:#ff623175;background:#191b20}.friend-row.muted{opacity:.82}.friend-open-button{min-width:0;flex:1 1 auto;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:inherit;padding:0;text-align:left}.friend-drive-stats{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;margin-top:5px}.friend-drive-stats>span{min-width:0;display:block;overflow:hidden}.friend-drive-stats small,.friend-drive-stats b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-drive-stats small{color:var(--muted);font-size:9px;font-weight:850}.friend-drive-stats b{color:var(--text);font-size:11px;font-weight:950}.friend-row-actions,.friend-profile-actions,.convoy-invite-row,.convoy-join-row{min-width:0;display:flex;align-items:center;gap:7px}.friend-row-actions{flex:0 0 auto}.friend-section-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px}.friend-section-tabs button{min-width:0;min-height:36px;border:1px solid var(--line);border-radius:8px;background:#10141b;color:var(--muted);padding:0 6px;font-size:12px;font-weight:900}.friend-section-tabs button.active{border-color:#ff62317a;background:#2a1712;color:#ffb199}.friend-detail-head{margin-bottom:10px}.friend-profile-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.friend-profile-actions .button{min-width:0;padding-inline:7px;font-size:12px}.friend-detail-section{border-top:1px solid rgba(255,255,255,.07);padding-top:12px}.friend-detail-section h3{margin:0;font-size:14px}.friend-detail-toggle{width:100%;min-width:0;min-height:40px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;border:0;background:transparent;color:inherit;padding:0;text-align:left}.friend-detail-toggle>span{min-width:0;display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:950}.friend-detail-toggle small{color:var(--muted);font-size:12px;font-weight:900}.friend-detail-toggle svg{color:var(--accent)}.friend-route-list article,.friend-message-list article,.convoy-participant-list article{min-width:0;display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:9px}.friend-route-list article{grid-template-columns:auto minmax(0,1fr);align-items:center}.friend-route-list svg{color:var(--accent)}.friend-share-grid{grid-template-columns:minmax(0,1fr)}.friend-share-grid .button,.friend-share-split .button{min-height:40px}.friend-share-split{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.friend-share-pane{min-width:0;display:grid;gap:8px;align-content:start;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:9px}.friend-share-pane strong{font-size:13px}.friend-share-pane select{width:100%;min-width:0}.friend-message-list.compact article{background:#0f131a;cursor:pointer}.friend-message-list article.mine{border-color:#ff623157;background:#ff62311a}.friend-message-compose{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:8px;margin-top:8px}.friend-message-compose .button{min-width:0;padding-inline:0}.friend-chat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:grid;place-items:center;background:#0000008a;padding:12px;overflow:hidden;overscroll-behavior:none}.friend-chat-window{width:min(100%,460px);height:min(86dvh,720px);min-height:min(520px,calc(100dvh - 24px));margin:0 auto;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#0b0d10;box-shadow:0 -20px 70px #00000080}.friend-chat-header{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.08);background:#151922fa;padding:10px;box-shadow:0 10px 26px #0000002e}.friend-chat-header>div:nth-child(2){min-width:0}.friend-chat-header strong,.friend-chat-header span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-chat-header span{color:var(--muted);font-size:12px;font-weight:850}.friend-chat-messages{min-width:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding:12px 10px;background:radial-gradient(circle at top left,rgba(255,98,49,.08),transparent 32%),linear-gradient(180deg,#121a25,#0d121a)}.friend-chat-messages article{min-width:0;width:min(78%,310px);align-self:flex-start;display:grid;gap:3px}.friend-chat-messages article.mine{align-self:flex-end;justify-items:end}.friend-chat-messages span{width:fit-content;max-width:100%;border-radius:999px;background:#ffffff14;color:var(--muted);padding:3px 7px;font-size:11px;font-weight:950}.friend-chat-messages p{width:fit-content;max-width:100%;margin:0;border-radius:4px 15px 15px;background:#252f3c;color:#f7f8fb;padding:9px 11px;font-size:13px;font-weight:750;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 6px 14px #00000029}.friend-chat-messages article.mine p{border-top-left-radius:15px;border-top-right-radius:4px;background:linear-gradient(135deg,#ffd25f,#ff8a3d);color:#17110b}.friend-chat-messages small{justify-self:start;color:var(--muted);font-size:10px;font-weight:800}.friend-chat-messages article.mine small{justify-self:end;color:#ffe8e0ad}.friend-chat-compose{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:8px;border-top:1px solid rgba(255,255,255,.08);background:#151922fa;padding:10px;box-shadow:0 -10px 30px #00000038}.friend-chat-compose input{border-radius:999px}.friend-chat-compose .button{border-radius:50%;background:linear-gradient(135deg,#ffd25f,#ff6b32);color:#17110b}.friend-chat-compose .button{min-width:0;padding-inline:0}.convoy-panel{min-width:0;display:grid;gap:8px;border:1px solid rgba(255,98,49,.22);border-radius:8px;background:#10141b;padding:10px}.convoy-launch-button{min-width:0;min-height:44px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;border:1px solid rgba(255,98,49,.22);border-radius:8px;background:linear-gradient(135deg,#ff4b1f29,#12161ef2);color:var(--text);padding:0 12px;text-align:left}.convoy-launch-button>span{min-width:0;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:950}.convoy-launch-button small{color:var(--muted);font-size:11px;font-weight:850;white-space:nowrap}.convoy-launch-button svg{color:var(--accent)}.convoy-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;place-items:center;background:#030508b8;padding:18px}.convoy-modal{width:min(100%,430px);max-height:min(82vh,720px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid rgba(255,98,49,.28);border-radius:12px;background:#10141b;box-shadow:0 22px 60px #00000085}.convoy-modal-head{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:12px}.convoy-modal-head div{min-width:0;display:grid;gap:2px}.convoy-modal-head span{color:var(--accent);font-size:11px;font-weight:950}.convoy-modal-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.convoy-modal .convoy-panel-body{min-width:0;overflow-y:auto;padding:12px}.convoy-mode-switch{min-width:0;display:grid;grid-template-columns:1fr 1fr;gap:7px}.convoy-mode-switch button{min-height:42px;border:1px solid var(--line);border-radius:8px;background:#151922;color:var(--muted);font-size:13px;font-weight:950}.convoy-mode-switch button.active{border-color:#ff62318c;background:#ff4b1f29;color:var(--text)}.convoy-rallyist-destination{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;border:1px solid rgba(71,215,255,.22);border-radius:8px;background:#47d7ff14;padding:9px}.convoy-rallyist-destination svg{color:#47d7ff}.convoy-rallyist-destination div{min-width:0;display:grid;gap:2px}.convoy-rallyist-destination strong,.convoy-rallyist-destination span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convoy-rallyist-destination span{color:var(--muted);font-size:11px;font-weight:800}.convoy-panel-toggle{min-width:0;min-height:38px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;border:0;background:transparent;color:inherit;padding:0;text-align:left}.convoy-panel-toggle>span{min-width:0;display:inline-flex;align-items:center;gap:7px;font-weight:950}.convoy-panel-toggle svg{color:var(--accent)}.convoy-panel-toggle small,.convoy-room-meta,.convoy-participant-list small{color:var(--muted);font-size:11px;font-weight:850}.convoy-option-grid .checkbox-row{margin:0}.convoy-room-card{border:1px solid var(--line);border-radius:8px;background:#0f131a;padding:10px}.convoy-room-head strong{font-size:13px}.convoy-room-meta{display:flex;gap:6px;flex-wrap:wrap}.convoy-invite-row,.convoy-join-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.convoy-invite-row .button,.convoy-join-row .button{min-height:42px}.convoy-participant-list article{grid-template-columns:minmax(0,1fr) auto;align-items:center}.convoy-participant-list article>div{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px}.convoy-participant-list article>div>span:not(.convoy-call-sign){grid-column:2}.convoy-call-sign{grid-row:span 2;width:30px;height:30px;display:inline-grid;place-items:center;border:2px solid rgba(255,255,255,.82);border-radius:999px;background:#47d7ff;color:#041018;font-size:11px;font-weight:950}.convoy-call-sign.host{background:#fff;color:#10141c}.convoy-call-sign.mini{grid-row:auto;width:23px;height:23px;border-width:1px;font-size:9px}.convoy-progress-badge{min-width:44px;justify-self:end;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,98,49,.22);border-radius:999px;background:#ff623114;color:#ffb199;padding:4px 7px}.convoy-progress-badge.ready{border-color:#43d3804d;background:#43d3801a;color:#9af3bb}.convoy-popup-start-actions{min-width:0;display:grid;gap:7px;border:1px solid rgba(255,98,49,.22);border-radius:8px;background:#ff4b1f14;padding:9px}.convoy-popup-start-actions span{color:var(--muted);font-size:11px;font-weight:850;text-align:center}.convoy-ready-button{min-width:54px;min-height:32px;justify-self:end;border:1px solid rgba(255,98,49,.34);border-radius:999px;background:#2a1712;color:#ffb199;padding:0 10px;font-size:12px;font-weight:950}.convoy-ready-button.ready{border-color:#ffffff24;background:#151b24;color:var(--muted)}.convoy-start-actions{min-width:0;display:grid;gap:7px}.convoy-start-actions span{color:var(--muted);font-size:12px;font-weight:850;text-align:center}.screen-guard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1700;display:grid;place-items:center;justify-items:center;padding:24px;background:#03050885;touch-action:none;overflow:hidden;overscroll-behavior:none}.screen-guard-mini-button{width:60px;height:60px;display:grid;place-items:center;border:2px solid rgba(255,98,49,.48);border-radius:999px;background:radial-gradient(circle at 50% 48%,rgba(255,75,31,.18),transparent 58%),#111721f5;padding:7px;box-shadow:0 16px 48px #0000007a}.screen-guard-overlay:has(.screen-guard-mini-button){display:block;padding:0;background:#03050857}.screen-guard-overlay:has(.screen-guard-mini-button) .screen-guard-mini-button{position:absolute;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);width:60px;height:60px;display:grid;place-items:center;border-radius:999px;background:radial-gradient(circle at 50% 48%,rgba(255,75,31,.18),transparent 58%),#111721f5;box-shadow:inset 0 0 0 1px #ff4b1f47,0 16px 48px #0000006b}.screen-guard-overlay:has(.screen-guard-mini-button) .screen-guard-mini-button:after{content:"잠금 해제";color:#ffb199;font-size:13px;font-weight:900;letter-spacing:0}.screen-guard-overlay:has(.screen-guard-mini-button) .screen-guard-mini-button:after{content:none}.screen-guard-mini-button img{width:42px;height:42px;display:block;object-fit:contain}.screen-guard-panel{align-self:center;width:min(100%,360px);min-width:0;display:grid;gap:12px;border:1px solid rgba(255,98,49,.26);border-radius:8px;background:#111721;padding:20px;text-align:center;box-shadow:0 24px 80px #0000008c}.screen-guard-panel img{width:min(220px,76%);justify-self:center;display:block}.screen-guard-panel p{margin:0;color:var(--muted);line-height:1.45}.screen-guard-panel input{width:100%;min-width:0;min-height:48px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#0b0f15;color:var(--text);padding:0 12px;text-align:center;font-size:18px;font-weight:900}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1600;display:grid;place-items:center;align-items:center;justify-items:center;width:100vw;min-height:100dvh;height:100dvh;padding:22px;background:#000000bd;overflow:hidden;overscroll-behavior:none;touch-action:none}.modal-panel{width:min(100%,420px);max-height:min(720px,calc(100dvh - 44px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));position:relative;margin:auto;display:grid;gap:14px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#151922;padding:20px;overflow:hidden;overscroll-behavior:none;touch-action:none;box-shadow:0 24px 80px #0000008c;transform:translateZ(0)}.modal-panel p{margin:0;color:var(--muted);line-height:1.55}.modal-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:8px;background:#ff623124;color:var(--accent)}.modal-icon.safe{background:#32d5831f;color:var(--safe)}.modal-icon.danger{background:#f0443824;color:#ffb4ad}.ban-block-backdrop{z-index:1000;background:#000000e0}.ban-block-modal{border-color:#ff5a4b6b;background:#151015;text-align:left}.ban-block-modal h2{margin:0;color:#ffb4ad;font-size:28px;line-height:1.1}.ban-block-lines{display:grid;gap:8px;border:1px solid rgba(255,90,75,.22);border-radius:8px;background:#ff5a4b14;padding:14px}.ban-block-lines p{color:var(--text);font-size:18px;font-weight:900}.ban-block-reason{display:grid;gap:6px}.ban-block-reason strong{color:var(--text);font-size:18px}.ban-block-reason span{color:var(--muted);line-height:1.55;white-space:pre-wrap}.ban-block-note{color:#ffb4ad!important;font-size:13px}.modal-close{position:absolute;top:12px;right:12px}.modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.safety-modal{max-height:min(720px,calc(100vh - 44px));overflow:hidden}.safety-copy{white-space:pre-line;font-size:14px}.legal-modal{gap:12px}.legal-backdrop{place-items:start center;padding:14px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.legal-modal{max-height:calc(100dvh - 28px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.legal-intro{font-size:13px}.legal-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.legal-tabs button{min-height:40px;border:1px solid var(--line);border-radius:8px;background:#10141c;color:var(--muted);padding:7px 6px;font-size:11px;font-weight:900}.legal-tabs button.active{border-color:#ff4b1fb3;background:#ff4b1f1f;color:var(--text)}.legal-text-panel{max-height:min(34dvh,300px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:8px;background:#10141c;padding:13px}.legal-text-panel h3{margin:0 0 10px;font-size:15px}.legal-text-panel p{white-space:pre-line;color:#d6dce8;font-size:12px;line-height:1.65}.legal-consent-list{display:grid;gap:8px}.legal-consent-row{min-height:44px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:8px;background:#10141c;color:var(--text);padding:10px;font-size:13px;font-weight:800}.legal-consent-row input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 auto}.guide-modal{gap:12px}.guide-intro{font-size:13px}.guide-section-picker{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:900}.guide-section-picker select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#10141c;color:var(--text);padding:0 40px 0 12px;font-weight:900;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 7L9 11.5L13.5 7' stroke='%23d6dce8' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px}.guide-text-panel{max-height:min(48dvh,390px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:8px;background:#10141c;padding:14px}.guide-text-panel h3{margin:0 0 10px;color:var(--text);font-size:16px}.guide-text-panel p{white-space:pre-line;color:#d6dce8;font-size:13px;line-height:1.7}.gpx-modal{gap:12px;max-height:calc(100dvh - 28px);overflow-y:auto;overscroll-behavior:contain}.gpx-note{margin:0;border:1px solid rgba(255,98,49,.22);border-radius:8px;background:#ff623114;color:#ffd2c4;padding:11px;font-size:12px;font-weight:800;line-height:1.55}.gpx-file-picker{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:900}.gpx-file-input{position:fixed;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.gpx-file-button{min-height:44px;border:1px dashed rgba(255,255,255,.16);border-radius:8px;background:#10141c;color:var(--text);padding:10px;font:inherit;font-weight:900;text-align:left;cursor:pointer}.gpx-selected-file{min-width:0;overflow:hidden;color:var(--muted);font-size:11px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.gpx-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gpx-summary div,.gpx-export-section{min-width:0;border:1px solid var(--line);border-radius:8px;background:#10141c;padding:10px}.gpx-summary .gpx-summary-wide{grid-column:1 / -1}.gpx-summary span,.gpx-export-row small{display:block;color:var(--muted);font-size:11px;font-weight:850}.gpx-summary strong,.gpx-export-head strong,.gpx-export-row strong{display:block;min-width:0;overflow:hidden;color:var(--text);font-size:13px;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.gpx-export-section{display:grid;gap:9px}.gpx-export-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.gpx-export-head .button{min-height:34px;padding-inline:10px;font-size:11px}.gpx-export-list{display:grid;gap:7px;max-height:190px;overflow-y:auto}.gpx-export-row{min-width:0;min-height:44px;display:flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#151b24;padding:9px}.gpx-export-row input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent)}.gpx-export-row span{min-width:0}.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));z-index:1400;width:min(calc(100% - 28px),440px);transform:translate(-50%);border:1px solid var(--line);border-radius:8px;background:#202631;color:var(--text);padding:13px 15px;font-weight:800;box-shadow:0 18px 50px #00000073}.toast-success{border-color:#32d58373}.toast-warning{border-color:#fdb02273}.toast-danger{border-color:#f0443873}.top-invite-notice{position:fixed;top:calc(72px + env(safe-area-inset-top));left:50%;z-index:58;width:min(calc(100% - 24px),456px);display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:8px;transform:translate(-50%);border:1px solid rgba(255,98,49,.32);border-radius:8px;background:#151922f5;padding:8px;box-shadow:0 18px 50px #00000073;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.top-invite-main,.top-invite-close{min-width:0;min-height:38px;border:0;border-radius:8px;color:inherit}.top-invite-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;background:#ff62311a;padding:0 10px;text-align:left}.top-invite-main svg{color:var(--accent)}.top-invite-main span{min-width:0;overflow:hidden;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.top-invite-main strong{color:#ffb199;font-size:12px}.top-invite-close{display:grid;place-items:center;background:#202631}.top-invite-actions{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(52px,1fr));gap:6px}.top-invite-actions button{min-width:0;min-height:38px;border:1px solid rgba(255,98,49,.32);border-radius:8px;background:#ff62311f;color:#ffb199;font-size:12px;font-weight:900}.top-invite-actions button+button{border-color:#ffffff1f;background:#202631;color:var(--muted)}.pwa-update-notice{border-color:#32d58352}.pwa-update-notice .top-invite-main{background:#32d5831a}.pwa-update-notice .top-invite-main svg,.pwa-update-notice .top-invite-main strong{color:#86efac}.ranger-top-notice{border-color:#ff62315c}.intercom-top-notice{grid-template-columns:minmax(0,1fr) minmax(112px,auto) 38px}.ranger-top-notice .top-invite-main{background:#ff62311f}.ranger-channel-page{position:relative;gap:10px;padding-bottom:86px}.network-panel-title{min-width:0;display:grid;gap:2px;padding:2px 2px 0}.network-panel-title span{color:var(--muted);font-size:11px;font-weight:900}.network-panel-title strong{color:var(--text);font-size:22px;font-weight:950;line-height:1.1}.ranger-channel-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:8px}.ranger-channel-main,.ranger-channel-select{min-width:0;border:0;color:inherit;text-align:left}.ranger-channel-main{display:grid;grid-template-columns:40px minmax(0,1fr);gap:9px;align-items:center;background:transparent;padding:0}.ranger-channel-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:14px;background:#ff62311f;color:#ffb199}.ranger-channel-main strong,.ranger-channel-main small,.ranger-channel-select strong,.ranger-channel-select small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranger-channel-main strong,.ranger-channel-select strong{display:block;font-size:14px;font-weight:950}.ranger-channel-main small,.ranger-channel-select small{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:11px;font-weight:850}.ranger-channel-select{min-height:44px;display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#10141b;padding:8px 10px}.ranger-channel-select.active{border-color:#ff62316b;background:#ff62311f}.ranger-channel-summary-card{border-color:#ff623138}.ranger-channel-summary-card>.empty-text{margin:0}.ranger-channel-meta{min-width:0;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.ranger-channel-meta span{min-height:28px;display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#ffffff0f;color:var(--muted);padding:0 10px;font-size:11px;font-weight:900}.ranger-channel-invite-strip{min-width:0;display:grid;gap:8px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0a;padding:8px;margin-bottom:10px}.ranger-channel-invite-strip>strong{color:#ffb199;font-size:11px;font-weight:950}.ranger-channel-invite-strip>div{min-width:0;display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:2px}.ranger-channel-invite-strip button{min-height:32px;display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;border:1px solid rgba(255,98,49,.26);border-radius:999px;background:#ff62311c;color:#ffb199;padding:0 10px;font-size:11px;font-weight:900}.ranger-channel-actions{min-width:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px}.ranger-channel-actions button{min-width:0;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(255,98,49,.28);border-radius:8px;background:#ff62311f;color:#ffb199;font-size:13px;font-weight:950}.ranger-channel-chat{min-height:250px;max-height:44dvh;display:grid;align-content:start;gap:8px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:8px;background:#0c1017;padding:10px}.ranger-channel-message{min-width:0;width:min(78%,310px);display:grid;justify-self:start;gap:3px;border:0;background:transparent;padding:0}.ranger-channel-message.mine{justify-self:end;justify-items:end}.ranger-channel-message strong{color:#ffb199;font-size:11px;font-weight:950}.ranger-channel-message.mine strong{display:none}.ranger-channel-message p{width:fit-content;max-width:100%;margin:0;border-radius:4px 15px 15px;background:#252f3c;color:#f7f8fb;padding:9px 11px;font-size:13px;font-weight:750;line-height:1.45;overflow-wrap:anywhere;box-shadow:0 6px 14px #00000029}.ranger-channel-message.mine p{border-top-left-radius:15px;border-top-right-radius:4px;background:linear-gradient(135deg,#ffd25f,#ff8a3d);color:#17110b}.ranger-channel-message time{justify-self:start;color:var(--muted);font-size:10px;font-weight:800}.ranger-channel-message.mine time{justify-self:end;color:#ffe8e0ad}.ranger-channel-composer{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:8px;margin-top:10px}.ranger-channel-composer input{width:100%;min-width:0;min-height:44px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#0f131a;color:var(--text);padding:0 12px;font-size:14px;font-weight:850}.ranger-channel-modal input{width:100%;min-width:0;min-height:44px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0f131a;color:var(--text);padding:0 12px;font-size:14px;font-weight:850}.ranger-channel-composer button{min-height:44px;display:grid;place-items:center;border:1px solid rgba(255,98,49,.36);border-radius:50%;background:linear-gradient(135deg,#ffd25f,#ff6b32);color:#17110b}.ranger-channel-room-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:92;display:grid;justify-items:center;background:#04060ad1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.ranger-channel-room{width:min(100%,480px);height:100dvh;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#0b0d10;padding:calc(10px + env(safe-area-inset-top)) 10px calc(10px + env(safe-area-inset-bottom))}.ranger-channel-room-head{min-width:0;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid rgba(255,98,49,.22);border-radius:10px;background:#151922f5;padding:8px;margin-bottom:10px;box-shadow:0 10px 28px #0003}.ranger-channel-room-head .ranger-channel-room-tools{display:inline-flex;align-items:center;gap:6px}.ranger-channel-room-tools .mini-action{min-width:36px;min-height:34px;justify-content:center;padding:0 9px}.ranger-channel-room-tools .mini-action span{color:inherit;font-size:11px;font-weight:950}.ranger-channel-room-head div{min-width:0;display:grid;gap:2px}.ranger-channel-room-head strong,.ranger-channel-room-head span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranger-channel-room-head strong{color:var(--text);font-size:15px;font-weight:950}.ranger-channel-room-head span{color:var(--muted);font-size:11px;font-weight:850}.ranger-channel-room-messages{min-width:0;min-height:0;display:grid;align-content:start;gap:8px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;border:1px solid rgba(255,255,255,.06);border-radius:10px;background:radial-gradient(circle at top left,rgba(255,98,49,.08),transparent 32%),linear-gradient(180deg,#121a25,#0d121a);padding:12px 10px}.ranger-channel-member-panel{min-width:0;display:grid;gap:10px;border:1px solid rgba(255,98,49,.24);border-radius:12px;background:#151922fa;padding:10px;margin-bottom:10px;box-shadow:0 14px 34px #0000004d}.ranger-channel-member-head{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:start;gap:8px}.ranger-channel-member-head>div{min-width:0;display:grid;gap:3px}.ranger-channel-member-head strong,.ranger-channel-member-head span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranger-channel-member-head strong{color:var(--text);font-size:14px;font-weight:950}.ranger-channel-member-head span{color:var(--muted);font-size:11px;font-weight:850}.ranger-channel-member-list{min-width:0;max-height:34dvh;display:grid;gap:7px;overflow-y:auto;overscroll-behavior:contain}.ranger-channel-member{min-width:0;min-height:48px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:#ffffff0a;padding:7px 8px}.ranger-channel-member>div:nth-child(2){min-width:0;display:grid;gap:2px}.ranger-channel-member strong,.ranger-channel-member span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranger-channel-member strong{color:var(--text);font-size:13px;font-weight:950}.ranger-channel-member span{color:var(--muted);font-size:11px;font-weight:850}.ranger-channel-leave-button{min-width:0;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(255,75,31,.36);border-radius:10px;background:#ff4b1f24;color:#ffb3a1;font-size:13px;font-weight:950}.ranger-channel-leave-button:disabled{opacity:.55}.ranger-channel-room-composer{flex:0 0 auto;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#151922fa;padding:8px;margin-top:10px;box-shadow:0 -10px 30px #00000038}.ranger-channel-fab{position:fixed;right:max(18px,calc(50% - 220px));bottom:calc(100px + env(safe-area-inset-bottom));z-index:86;width:58px;height:58px;display:grid;place-items:center;border:1px solid rgba(255,98,49,.48);border-radius:50%;background:linear-gradient(180deg,#ff5d31,#dc351c);color:#fff;box-shadow:0 16px 34px #ff441842,0 14px 44px #0000007a}.ranger-channel-modal{gap:12px;max-height:min(620px,calc(100dvh - 36px));overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.ranger-channel-invite-modal{gap:12px;max-height:min(660px,calc(100dvh - 36px));overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.ranger-channel-invite-tools{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px}.ranger-channel-invite-tools span{color:var(--muted);font-size:12px;font-weight:900}.ranger-channel-invite-tools button{min-height:32px;border:1px solid rgba(255,98,49,.28);border-radius:8px;background:#ff62311a;color:#ffb199;padding:0 10px;font-size:12px;font-weight:950}.ranger-channel-invite-list{min-width:0;max-height:42dvh;display:grid;gap:8px;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}.ranger-channel-invite-option{min-width:0;min-height:50px;display:grid;grid-template-columns:20px 34px minmax(0,1fr);align-items:center;gap:9px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0a;padding:8px 10px}.ranger-channel-invite-option.active{border-color:#ff623180;background:#ff62311f}.ranger-channel-invite-option input{width:18px;height:18px;accent-color:var(--accent)}.ranger-channel-invite-option span:last-child{min-width:0;display:grid;gap:2px}.ranger-channel-invite-option strong,.ranger-channel-invite-option small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranger-channel-invite-option strong{color:var(--text);font-size:13px;font-weight:950}.ranger-channel-invite-option small{color:var(--muted);font-size:11px;font-weight:800}.ranger-channel-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:900}.ranger-channel-divider:before,.ranger-channel-divider:after{content:"";height:1px;flex:1 1 auto;background:var(--line)}.floating-intercom-widget{position:fixed;z-index:1250;min-width:0;touch-action:none;-webkit-user-select:none;user-select:none;will-change:top,left,right,transform;transition:left .18s cubic-bezier(.2,.8,.2,1),right .18s cubic-bezier(.2,.8,.2,1),top .14s ease,transform .14s ease}.floating-intercom-widget.dragging{transition:none}.floating-intercom-widget.dock-left{left:max(8px,env(safe-area-inset-left))}.floating-intercom-widget.dock-right{right:max(8px,env(safe-area-inset-right))}.floating-intercom-pill{width:58px;min-width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,98,31,.42);border-radius:50%;background:#140b09eb;color:#ffb199;box-shadow:0 14px 32px #0000006b,0 0 0 1px #ffffff0a inset;padding:0;overflow:hidden;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:grab}.floating-intercom-bubble-icon{width:100%;height:100%;display:block;object-fit:cover;pointer-events:none}.floating-intercom-widget.dragging .floating-intercom-pill,.floating-intercom-widget.dragging .floating-intercom-grip{cursor:grabbing;transform:scale(1.03)}.floating-intercom-panel{position:relative;width:min(286px,calc(100vw - 24px));min-width:0;border:1px solid rgba(255,98,31,.38);border-radius:12px;background:#0c0f14f5;box-shadow:0 18px 50px #00000085;padding:14px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.floating-intercom-grip,.floating-intercom-close{position:absolute;top:8px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:10px;background:#ffffff0f;color:var(--muted)}.floating-intercom-grip{left:8px;cursor:grab}.floating-intercom-close{right:8px}.floating-intercom-head{min-width:0;display:flex;align-items:center;gap:10px;padding:4px 36px 0;color:#ffb199}.floating-intercom-head>svg,.floating-intercom-head-icon{flex:0 0 auto}.floating-intercom-head-icon{width:24px;height:24px;display:block;border-radius:50%;object-fit:cover}.floating-intercom-head div{min-width:0;display:grid;gap:2px}.floating-intercom-head strong,.floating-intercom-head span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floating-intercom-head strong{color:var(--text);font-size:14px;font-weight:950}.floating-intercom-head span{color:var(--muted);font-size:11px;font-weight:850}.floating-intercom-meta{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.floating-intercom-meta span{min-height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#10141b;color:var(--text);font-size:12px;font-weight:950}.floating-intercom-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.floating-intercom-actions button{min-width:0;min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#171d27;color:var(--text);padding:0;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.floating-intercom-actions button:active{transform:translateY(1px) scale(.98)}.floating-intercom-actions button.active{color:#ffd78a;background:#fdb0221f;border-color:#fdb02242}.floating-intercom-actions button.danger{color:#ffb3a1;background:#ff4b1f29;border-color:#ff4b1f57}:root[data-theme=light]{color:#111827;background:#eef2f7;color-scheme:light;--bg: #eef2f7;--panel: #ffffff;--panel-2: #f4f6fa;--line: #d9e0ea;--text: #111827;--muted: #667085;--tabbar: rgba(255, 255, 255, .96)}:root[data-theme=light] body{background:#dfe6ef;color:var(--text)}:root[data-theme=light] .app-shell{background:var(--bg)}:root[data-theme=light] .app-header,:root[data-theme=light] .bottom-tabbar{background:#fffffff0;border-color:#11182714}:root[data-theme=light] .app-brand-logo{padding:3px 6px;border-radius:6px;background:#0b0d10}:root[data-theme=light] .mobile-card,:root[data-theme=light] .route-card,:root[data-theme=light] .modal-panel,:root[data-theme=light] .friend-chat-window,:root[data-theme=light] .floating-intercom-panel{background:var(--panel);border-color:#1118271a;box-shadow:0 18px 34px #1e293b1f}:root[data-theme=light] .metric,:root[data-theme=light] .readonly-field,:root[data-theme=light] .checkbox-row,:root[data-theme=light] .profile-collapsible-section,:root[data-theme=light] .profile-section-toggle,:root[data-theme=light] .pwa-status-grid div,:root[data-theme=light] .theme-choice,:root[data-theme=light] .selected-place,:root[data-theme=light] .place-selected-card,:root[data-theme=light] .route-input-summary div,:root[data-theme=light] .floating-intercom-meta span{background:var(--panel-2);border-color:var(--line)}:root[data-theme=light] input,:root[data-theme=light] select,:root[data-theme=light] textarea,:root[data-theme=light] .feed-sort-select{background-color:#fff;border-color:var(--line);color:var(--text)}:root[data-theme=light] select:not([multiple]){background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 7L9 11.5L13.5 7' stroke='%23111827' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}:root[data-theme=light] .button-secondary,:root[data-theme=light] .icon-button,:root[data-theme=light] .mini-action,:root[data-theme=light] .floating-intercom-actions button{background:#f4f6fa;border-color:var(--line);color:var(--text)}:root[data-theme=light] .button-ghost{color:var(--text);border-color:var(--line)}:root[data-theme=light] .tab-button.active{background:#ff623124;color:#b93815}:root[data-theme=light] .status-pill{background:#ffffffc7;border-color:#11182714}:root[data-theme=light] .ranger-hero-card,:root[data-theme=light] .recording-window,:root[data-theme=light] .rally-recording-window{background:radial-gradient(circle at 15% 8%,rgba(255,98,49,.14),transparent 34%),linear-gradient(180deg,#fff,#f4f6fa);border-color:#ff623138}:root[data-theme=light] .speedometer,:root[data-theme=light] .recording-speed-card,:root[data-theme=light] .map-canvas,:root[data-theme=light] .map-fallback{background:#f8fafc;border-color:var(--line)}:root[data-theme=light] .nav-route-topbar,:root[data-theme=light] .nav-route-copy-card,:root[data-theme=light] .nav-route-sheet,:root[data-theme=light] .nav-route-order-list,:root[data-theme=light] .route-builder-actions{background:#fffffffa;border-color:var(--line);color:var(--text);box-shadow:0 14px 30px #1e293b1a}:root[data-theme=light] .nav-route-sheet-grip,:root[data-theme=light] .step-track span{background:#cfd7e3}:root[data-theme=light] .step-track span.active{background:var(--accent)}:root[data-theme=light] .nav-route-stop,:root[data-theme=light] .nav-route-option-strip button,:root[data-theme=light] .nav-route-result-card>div{background:var(--panel-2);border-color:var(--line);color:var(--text)}:root[data-theme=light] .nav-route-stop.active,:root[data-theme=light] .nav-route-option-strip button.active{background:#ff62311f;border-color:#ff623173;color:#9d3415}:root[data-theme=light] .nav-route-option-strip button.motorcycle.active{background:#12b76a1f;border-color:#12b76a59;color:#027a48}:root[data-theme=light] .rally-mode-button{background:linear-gradient(135deg,#ff623124,#fffffff5),#fff;border-color:#ff623166;color:var(--text)}:root[data-theme=light] .rally-mode-button span,:root[data-theme=light] .rally-route-summary span{color:#9d3415}:root[data-theme=light] .rally-destination-sheet,:root[data-theme=light] .rally-idle-panel{background:#ff623114;border-color:#ff62313d;color:var(--text)}:root[data-theme=light] .theme-choice.active{background:#ff62311f;border-color:#ff623194}:root[data-theme=light] .disabled-feature-panel,:root[data-theme=light] .ranger-status-cell,:root[data-theme=light] .ranger-friend-row,:root[data-theme=light] .ranger-history-row,:root[data-theme=light] .ranger-participant,:root[data-theme=light] .ranger-call-head>div,:root[data-theme=light] .ranger-roadmap span,:root[data-theme=light] .ranger-transmit-modes button,:root[data-theme=light] .drive-mode-card,:root[data-theme=light] .recording-speed-card,:root[data-theme=light] .recording-map-card,:root[data-theme=light] .profile-route-item,:root[data-theme=light] .profile-session-item,:root[data-theme=light] .friend-login-required,:root[data-theme=light] .friend-my-profile,:root[data-theme=light] .friend-row,:root[data-theme=light] .friend-detail-head,:root[data-theme=light] .friend-detail-section,:root[data-theme=light] .friend-share-pane,:root[data-theme=light] .friend-route-list article,:root[data-theme=light] .friend-message-list article,:root[data-theme=light] .ranger-channel-row,:root[data-theme=light] .ranger-channel-select,:root[data-theme=light] .ranger-channel-summary-card,:root[data-theme=light] .ranger-channel-invite-strip,:root[data-theme=light] .ranger-channel-member,:root[data-theme=light] .ranger-channel-room,:root[data-theme=light] .ranger-channel-modal,:root[data-theme=light] .ranger-channel-invite-modal,:root[data-theme=light] .ranger-channel-invite-option,:root[data-theme=light] .screen-guard-panel,:root[data-theme=light] .legal-modal,:root[data-theme=light] .gpx-modal,:root[data-theme=light] .drive-info-modal{background:var(--panel);border-color:var(--line);color:var(--text);box-shadow:0 14px 30px #1e293b1a}:root[data-theme=light] .ranger-call-controls button,:root[data-theme=light] .friend-section-tabs button,:root[data-theme=light] .friend-detail-toggle,:root[data-theme=light] .friend-open-button,:root[data-theme=light] .friend-chat-header,:root[data-theme=light] .friend-chat-compose,:root[data-theme=light] .friend-message-compose,:root[data-theme=light] .ranger-channel-actions button,:root[data-theme=light] .ranger-channel-room-head,:root[data-theme=light] .ranger-channel-room-composer,:root[data-theme=light] .ranger-channel-composer,:root[data-theme=light] .ranger-channel-invite-tools,:root[data-theme=light] .ranger-channel-member-panel,:root[data-theme=light] .legal-consent-row,:root[data-theme=light] .legal-tabs button,:root[data-theme=light] .guide-section-picker select,:root[data-theme=light] .gpx-file-button,:root[data-theme=light] .gpx-summary div,:root[data-theme=light] .gpx-export-section,:root[data-theme=light] .gpx-export-row,:root[data-theme=light] .drive-info-tabs button,:root[data-theme=light] .drive-info-summary-strip span,:root[data-theme=light] .drive-info-route-card,:root[data-theme=light] .drive-info-route-expand,:root[data-theme=light] .drive-info-session-group{background:var(--panel-2);border-color:var(--line);color:var(--text)}:root[data-theme=light] .drive-mode-card,:root[data-theme=light] .rally-launch-button,:root[data-theme=light] .route-card,:root[data-theme=light] .ranger-call-card{background:radial-gradient(circle at 15% 8%,rgba(255,98,49,.1),transparent 34%),linear-gradient(180deg,#fff,#f6f8fb)}:root[data-theme=light] .drive-mode-card.active,:root[data-theme=light] .bottom-tabbar.locked .tab-button.active,:root[data-theme=light] .friend-section-tabs button.active,:root[data-theme=light] .profile-session-view-mode button.active,:root[data-theme=light] .ranger-call-controls button.active,:root[data-theme=light] .ranger-call-controls button:hover,:root[data-theme=light] .ranger-transmit-modes button.active,:root[data-theme=light] .ranger-channel-select.active,:root[data-theme=light] .ranger-channel-invite-option.active{background:#ff62311f;border-color:#ff623173;color:#9d3415}:root[data-theme=light] .speed-value,:root[data-theme=light] .recording-title strong,:root[data-theme=light] .network-panel-title strong,:root[data-theme=light] .ranger-call-head strong,:root[data-theme=light] .friend-my-profile strong,:root[data-theme=light] .friend-row strong,:root[data-theme=light] .friend-detail-head strong,:root[data-theme=light] .friend-route-list strong,:root[data-theme=light] .friend-message-list strong,:root[data-theme=light] .ranger-channel-main strong,:root[data-theme=light] .ranger-channel-select strong,:root[data-theme=light] .ranger-channel-room-head strong,:root[data-theme=light] .ranger-channel-member strong,:root[data-theme=light] .modal-panel h2,:root[data-theme=light] .legal-text-panel h3,:root[data-theme=light] .guide-text-panel h3,:root[data-theme=light] .profile-route-item strong,:root[data-theme=light] .profile-session-item strong,:root[data-theme=light] .profile-section-toggle>span,:root[data-theme=light] .gpx-summary strong,:root[data-theme=light] .gpx-export-head strong,:root[data-theme=light] .gpx-export-row strong,:root[data-theme=light] .drive-info-route-body strong,:root[data-theme=light] .drive-info-session-group-title strong{color:var(--text)}:root[data-theme=light] .recording-title span,:root[data-theme=light] .drive-mode-card-title em,:root[data-theme=light] .ranger-channel-icon,:root[data-theme=light] .ranger-channel-invite-strip>strong,:root[data-theme=light] .ranger-channel-invite-strip button,:root[data-theme=light] .ranger-channel-actions button,:root[data-theme=light] .ranger-channel-message strong,:root[data-theme=light] .ranger-channel-select.active svg{color:#b93815}:root[data-theme=light] .drive-info-tabs.compact{background:var(--panel)}:root[data-theme=light] .drive-info-tabs button.active{background:#ff62311f;border-color:#ff623173;color:#9d3415}:root[data-theme=light] .status-pill.safe,:root[data-theme=light] .badge.safe,:root[data-theme=light] .ranger-status-cell strong.safe,:root[data-theme=light] .ranger-presence.online{color:#027a48;background:#12b76a1f;border-color:#12b76a3d}:root[data-theme=light] .status-pill.warn,:root[data-theme=light] .badge.warn,:root[data-theme=light] .ranger-status-cell strong.warn,:root[data-theme=light] .ranger-permission-note{color:#93370d;background:#f7900924;border-color:#f7900947}:root[data-theme=light] .badge.danger,:root[data-theme=light] .notice.warning,:root[data-theme=light] .ranger-call-controls button.danger,:root[data-theme=light] .floating-intercom-actions button.danger,:root[data-theme=light] .mini-action.danger{color:#b42318;background:#f044381f;border-color:#f0443842}:root[data-theme=light] .badge.night,:root[data-theme=light] .route-public_road{color:#344054;background:#34405414}:root[data-theme=light] .route-scenic{color:#027a48}:root[data-theme=light] .route-commute{color:#b54708}:root[data-theme=light] .route-closed_course{color:#b42318}:root[data-theme=light] .notice,:root[data-theme=light] .recording-notice,:root[data-theme=light] .empty-text{background:#f8fafc;border-color:var(--line);color:var(--muted)}:root[data-theme=light] .legal-backdrop,:root[data-theme=light] .modal-backdrop,:root[data-theme=light] .convoy-modal-backdrop,:root[data-theme=light] .friend-chat-overlay,:root[data-theme=light] .ranger-channel-room-overlay{background:#0f172a75}:root[data-theme=light] .legal-tabs button.active{color:#b93815;background:#ff62311f;border-color:#ff62316b}:root[data-theme=light] .legal-text-panel,:root[data-theme=light] .guide-text-panel,:root[data-theme=light] .profile-session-log-only,:root[data-theme=light] .profile-session-log-below,:root[data-theme=light] .profile-session-thumbnail,:root[data-theme=light] .friend-chat-messages,:root[data-theme=light] .friend-message-list,:root[data-theme=light] .ranger-channel-chat,:root[data-theme=light] .ranger-channel-room-messages{background:#eef2f7;border-color:var(--line);color:var(--text)}:root[data-theme=light] .legal-intro,:root[data-theme=light] .legal-text-panel p,:root[data-theme=light] .legal-consent-row span,:root[data-theme=light] .guide-intro,:root[data-theme=light] .guide-section-picker,:root[data-theme=light] .guide-text-panel p,:root[data-theme=light] .profile-route-item span,:root[data-theme=light] .profile-route-meta,:root[data-theme=light] .profile-section-toggle small,:root[data-theme=light] .profile-session-item span,:root[data-theme=light] .gpx-file-picker,:root[data-theme=light] .gpx-summary span,:root[data-theme=light] .gpx-export-row small{color:var(--muted)}:root[data-theme=light] .gpx-note{background:#ff62311a;border-color:#ff62313d;color:#9d3415}:root[data-theme=light] .profile-session-detail{border-top-color:var(--line)}:root[data-theme=light] .profile-session-view-mode button{background:var(--panel-2);border-color:var(--line);color:var(--muted)}:root[data-theme=light] .profile-session-log-below:before{background:#ffffffd1;border-color:#027a4838;color:#027a48}:root[data-theme=light] .guide-section-picker select{background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 7L9 11.5L13.5 7' stroke='%23111827' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px}:root[data-theme=light] .friend-chat-messages p,:root[data-theme=light] .friend-message-list article:not(.mine),:root[data-theme=light] .ranger-channel-message p{background:#fff;color:var(--text);border:1px solid rgba(17,24,39,.08);box-shadow:0 6px 14px #1e293b14}:root[data-theme=light] .friend-chat-messages article.mine p,:root[data-theme=light] .friend-message-list article.mine,:root[data-theme=light] .ranger-channel-message.mine p{color:#17110b;background:linear-gradient(135deg,#ffd25f,#ff9b57);border-color:#ff8a3d47}:root[data-theme=light] .toast,:root[data-theme=light] .top-invite-notice{background:#fffffff5;border-color:#ff623147;color:var(--text);box-shadow:0 18px 50px #1e293b29}:root[data-theme=light] .top-invite-main,:root[data-theme=light] .top-invite-actions button{color:#9d3415;background:#ff62311a}:root[data-theme=light] .top-invite-main strong{color:#b93815}:root[data-theme=light] .top-invite-close,:root[data-theme=light] .top-invite-actions button+button{background:#f4f6fa;border-color:var(--line);color:var(--muted)}:root[data-theme=light] .pwa-update-notice,:root[data-theme=light] .pwa-update-notice .top-invite-main{border-color:#12b76a42;background:#ecfdf3f5}:root[data-theme=light] .pwa-update-notice .top-invite-main svg,:root[data-theme=light] .pwa-update-notice .top-invite-main strong{color:#027a48}:root[data-theme=light] .map-canvas,:root[data-theme=light] .map-fallback,:root[data-theme=light] .mock-map-fallback,:root[data-theme=light] .nav-route-map-stage,:root[data-theme=light] .drive-route-static-frame,:root[data-theme=light] .shared-static-map-frame,:root[data-theme=light] .route-thumbnail{background-color:#f8fafc;border-color:var(--line)}:root[data-theme=light] .screen-guard-panel input,:root[data-theme=light] .ranger-join-code-row input,:root[data-theme=light] .friend-search-box input,:root[data-theme=light] .friend-list-filter input,:root[data-theme=light] .friend-chat-compose input,:root[data-theme=light] .friend-message-compose input,:root[data-theme=light] .ranger-channel-composer input,:root[data-theme=light] .ranger-channel-room-composer input,:root[data-theme=light] .ranger-channel-modal input{background:#fff;color:var(--text);border-color:var(--line)}:root[data-theme=light] .ranger-presence,:root[data-theme=light] .friend-avatar,:root[data-theme=light] .account-avatar-preview,:root[data-theme=light] .ranger-channel-meta span,:root[data-theme=light] .top-invite-notice,:root[data-theme=light] .pwa-update-notice,:root[data-theme=light] .ranger-top-notice,:root[data-theme=light] .intercom-top-notice{background:#ffffffdb;color:var(--muted);border-color:#11182714}@media(max-width:374px){.app-main{--app-main-gutter: 10px;padding-left:10px;padding-right:10px}.app-header{padding-left:12px;padding-right:12px}.metric strong{font-size:18px}.button{padding-left:11px;padding-right:11px}.drive-mode-selector{gap:6px}.drive-mode-card{padding:10px}.drive-mode-card-title{gap:4px;font-size:13px}.drive-mode-card-title em{padding:2px 5px;font-size:9px}.nav-route-copy-card{gap:6px;padding:8px}}
