@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons+Round');

:root{
  --font:'Noto Sans','Noto Sans JP',system-ui,sans-serif;
  --bg:#0c0c20;
  --bg-card:rgba(255,255,255,0.06);
  --bg-glass:rgba(120,100,200,0.16);
  --bg-glass-s:rgba(100,85,180,0.28);
  --text:#f0eeff;
  --text-sec:rgba(210,205,240,0.85);
  --text-mut:rgba(170,165,210,0.6);
  --accent:#7c5cfc;
  --accent-blue:#3b82f6;
  --grad:linear-gradient(135deg,#7c5cfc,#3b82f6);
  --border:rgba(255,255,255,0.08);
  --border-a:rgba(124,92,252,0.25);
  --glass-blur:20px;
  --shine:linear-gradient(135deg,rgba(255,255,255,0.12) 0%,rgba(255,255,255,0.03) 40%,transparent 60%);
  --sh-sm:0 2px 8px rgba(0,0,0,0.3);
  --sh-md:0 8px 24px rgba(0,0,0,0.4);
  --sh-brand:0 4px 16px rgba(124,92,252,0.4),inset 0 1px 0 rgba(255,255,255,0.12);
  --success:#22c55e;--warning:#facc15;--error:#ef4444;
  --g:20px;--nav-h:88px;
  --pill:999px;
  /* surfaces */
  --surface:#1a1a36;
  --surface-2:#222240;
  --surface-border:rgba(255,255,255,0.06);
  --surface-hover:#252548;
}

/* ═══ LIGHT MODE: CSS変数上書き ═══ */
.light-mode{
  --bg:#f4f4f8;
  --bg-card:rgba(0,0,0,0.03);
  --bg-glass:rgba(255,255,255,0.7);
  --bg-glass-s:rgba(255,255,255,0.85);
  --text:#0f172a;
  --text-sec:#475569;
  --text-mut:#94a3b8;
  --border:rgba(0,0,0,0.08);
  --border-a:rgba(124,92,252,0.15);
  --shine:linear-gradient(135deg,rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.1) 40%,transparent 60%);
  --sh-sm:0 2px 8px rgba(0,0,0,0.08);
  --sh-md:0 8px 24px rgba(0,0,0,0.12);
  --sh-brand:0 4px 16px rgba(124,92,252,0.2),inset 0 1px 0 rgba(255,255,255,0.5);
  --surface:#fff;
  --surface-2:#f4f4f8;
  --surface-border:#e3e1ee;
  --surface-hover:#f8fafc;
}
.light-mode .device{box-shadow:0 0 0 11px #d4d4d8,0 0 0 13px #e4e4e7,0 40px 100px rgba(0,0,0,0.15)}

/* ライトモード: ナビバー */
.light-mode .nav{background:linear-gradient(to top,rgba(244,244,248,0.98) 70%,rgba(244,244,248,0.85) 90%,transparent)}
.light-mode .nv .mi{color:#94a3b8}
.light-mode .nv-l{color:#94a3b8}
.light-mode .nv.on .nv-ic{background:rgba(124,92,252,0.1)}
.light-mode .nv.on .mi{color:#7c5cfc}
.light-mode .nv.on .nv-l{color:#0f172a;font-weight:600}

/* ライトモード: ステータスバー */
.light-mode .sbar span{color:#0f172a}
.light-mode .sbar-i .mi{color:#0f172a}

/* ライトモード: ヘッダー */
.light-mode .hdr-btn{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.08)}
.light-mode .hdr-btn .mi{color:#475569}

/* ライトモード: ホーム画面 */
.light-mode .map-fade{background:linear-gradient(to bottom,transparent 0%,rgba(244,244,248,0.3) 35%,rgba(244,244,248,0.7) 70%,var(--bg) 100%)}
.light-mode .ho .chip{background:rgba(255,255,255,0.9);border-color:rgba(0,0,0,0.08);color:#0f172a;backdrop-filter:blur(12px)}
.light-mode .ho .chip .mi{color:#7c5cfc}
.light-mode .ho .chip-on{background:rgba(34,197,94,0.1);color:#16a34a;border-color:rgba(34,197,94,0.2)}

/* ライトモード: 検索バー全般 */
.light-mode .search-bar{background:rgba(255,255,255,0.96);border-color:rgba(0,0,0,0.08);box-shadow:0 10px 28px rgba(28,21,73,0.12)}
.light-mode .search-bar .mi{color:#94a3b8}
.light-mode .sb-input{color:#0f172a}
.light-mode .sb-input::placeholder{color:#94a3b8}
.light-mode .search-bar .sfil{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.06)}
.light-mode .search-bar .sfil .mi{color:#7c5cfc}

/* ライトモード: fab ボタン */
.light-mode .fab-glass{background:rgba(255,255,255,0.92);border-color:rgba(0,0,0,0.08);box-shadow:0 2px 8px rgba(0,0,0,0.08)}
.light-mode .fab-glass .mi{color:#475569}

/* ライトモード: ソートピル */
.light-mode .sort-pill{background:rgba(255,255,255,0.92);border-color:rgba(0,0,0,0.08);color:#0f172a}

/* ライトモード: カルーセルカード */
.light-mode .card{background:rgba(255,255,255,0.95);border-color:rgba(0,0,0,0.06);box-shadow:0 4px 16px rgba(0,0,0,0.08)}
.light-mode .card .c-name{color:#0f172a}
.light-mode .card .c-addr{color:#64748b}
.light-mode .card .c-price{color:#0f172a}

/* ライトモード: プロフィール画面 */
.light-mode #s-prof{background:var(--bg)}
.light-mode .pn{color:#0f172a}
.light-mode .pp{color:#64748b}
.light-mode .st .mi{color:#7c5cfc}
.light-mode .st-v{color:#0f172a}
.light-mode .st-l{color:#64748b}
.light-mode .tile{background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.06)}
.light-mode .tile .mi{color:#475569}
.light-mode .tile-l{color:#0f172a}
.light-mode .tile .chev{color:#94a3b8}

/* ライトモード: Saved画面 */
.light-mode #s-saved{background:var(--bg)}
.light-mode .stitle{color:#0f172a}

/* ライトモード: 検索候補 */
/* ライトモード: 検索候補はライトルールで自動対応（変数ベース） */

/* ライトモード: pushed screens (.pscr) */
.light-mode .back-hdr{background:#f4f4f8 !important;border-color:rgba(0,0,0,0.06)}
.light-mode .bk-btn{background:rgba(0,0,0,0.04) !important}
.light-mode .bk-btn .mi{color:#0f172a !important}
.light-mode .bh-title{color:#0f172a !important}

/* ライトモード: sheet */
.light-mode .sheet-c{background:#fff;border-color:rgba(0,0,0,0.06)}

/* ライトモード: toast */
.light-mode .toast{background:rgba(15,23,42,0.9);color:#fff}

/* ── 追加: 変数ベースに移行済みの画面固有調整 ── */
.rw-badges-title{color:var(--text)}
.set-chev{color:var(--text-mut)}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;font-family:var(--font);background:#060610;-webkit-font-smoothing:antialiased;overflow:hidden}
.light-mode-bg{background:#e8e8ec !important}
.mi{font-family:'Material Icons Round';font-weight:normal;font-style:normal;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased}

/* ═══ DEVICE ═══ */
.device{position:relative;width:393px;height:852px;margin:20px auto;border-radius:48px;overflow:hidden;background:var(--bg);box-shadow:0 0 0 11px #0a0a18,0 0 0 13px #1a1a30,0 40px 100px rgba(0,0,0,0.7)}
@media(max-width:440px){.device{width:100vw;height:100vh;margin:0;border-radius:0;box-shadow:none}}

.sbar{position:absolute;top:0;left:0;right:0;height:54px;z-index:600;display:flex;align-items:flex-end;justify-content:space-between;padding:0 32px 8px;pointer-events:none}
.sbar span{font-size:15px;font-weight:600;color:var(--text)}
.sbar-i{display:flex;gap:5px;align-items:center}
.sbar-i .mi{font-size:15px;color:var(--text)}

.screens{position:absolute;inset:0}
.scr{position:absolute;inset:0;display:none;flex-direction:column}.scr.on{display:flex}

/* ═══ NAV ═══ */
.nav{position:absolute;bottom:0;left:0;right:0;height:var(--nav-h);z-index:100;display:flex;align-items:flex-start;padding-top:12px;background:linear-gradient(to top,rgba(12,12,32,0.98) 70%,rgba(12,12,32,0.85) 90%,transparent)}
.nv{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;user-select:none}
.nv-ic{width:48px;height:48px;border-radius:var(--pill);display:flex;align-items:center;justify-content:center;transition:all 0.25s}
.nv .mi{font-size:24px;color:var(--text-mut);transition:color 0.2s}
.nv-l{font-size:10px;font-weight:500;color:var(--text-mut);transition:color 0.2s}
.nv.on .nv-ic{background:var(--bg-glass-s)}
.nv.on .mi{color:var(--accent)}
.nv.on .nv-l{color:var(--text);font-weight:600}
.nav.hidden{display:none}

/* ═══ SHARED ═══ */
.hdr{flex-shrink:0;padding:60px var(--g) 16px;display:flex;align-items:center;justify-content:space-between}
.hdr-logo{font-size:22px;font-weight:800;color:var(--text);letter-spacing:-0.5px;display:flex;align-items:center}
.hdr-logo b{color:var(--accent)}
.hdr-logo-img{height:24px;width:auto;display:block;filter:brightness(0) invert(1)}
.hdr-btn{width:40px;height:40px;border-radius:var(--pill);background:var(--bg-card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer}
.hdr-btn .mi{font-size:20px;color:var(--text-sec)}

.stitle{font-size:18px;font-weight:700;color:var(--text);padding:24px var(--g) 12px}

.seg{margin:0 var(--g);padding:4px;border-radius:var(--pill);background:var(--bg-card);border:1px solid var(--border);display:flex;gap:4px;flex-shrink:0}
.seg-i{flex:1;height:42px;border-radius:var(--pill);border:none;display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font);font-size:13px;font-weight:500;color:var(--text-mut);cursor:pointer;transition:all 0.2s;background:transparent}
.seg-i .mi{font-size:16px}
.seg-i.on{background:var(--accent);color:#fff;font-weight:600;box-shadow:var(--sh-brand)}

.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:104px}

.btn-grad{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:52px;border-radius:var(--pill);border:none;background:var(--grad);color:#fff;font-family:var(--font);font-size:16px;font-weight:600;cursor:pointer;box-shadow:var(--sh-brand);position:relative;overflow:hidden}
.btn-grad::before{content:'';position:absolute;inset:0;border-radius:var(--pill);background:linear-gradient(180deg,rgba(255,255,255,0.15) 0%,transparent 50%);pointer-events:none}
.btn-grad:active{transform:scale(0.97)}
.btn-grad .mi{font-size:20px}

/* ═══ HOME ═══ */
.map-wrap{position:absolute;inset:0;z-index:0}
#mapbox{width:100%;height:100%}
.map-fade{position:absolute;left:0;right:0;bottom:0;height:55%;z-index:1;background:linear-gradient(to bottom,transparent 0%,rgba(12,12,32,0.5) 35%,rgba(12,12,32,0.92) 70%,var(--bg) 100%);pointer-events:none}

/* ═══ HOME OVERLAY (.ho) — idle / searching / results ═══ */
/*
 * idle:      mission(top) → [spacer flex:1] → search+chips+promos(bottom)
 * searching: search+suggest(top, padding-top:54px) — ミッション/プロモ/チップ非表示
 * results:   search+result-chips(top) → [spacer+FABs] → carousel(bottom)
 */
.ho{position:absolute;top:0;left:0;right:0;bottom:var(--nav-h);z-index:4;display:flex;flex-direction:column;pointer-events:none}

/* ── idle: ミッション(top) ── */
.ho-mission{order:0;flex:0 0 auto;padding:54px 12px 0;pointer-events:auto}

/* ── スペーサー (マップ透過領域) ── */
.ho-spacer{order:1;flex:1 1 0%;position:relative;min-height:60px;pointer-events:none}

/* ── 検索エリア ── */
.ho-search{order:2;flex:0 0 auto;padding:0 12px 12px;display:flex;flex-direction:column;gap:12px;pointer-events:auto}

/* ── プロモ ── */
/* .hi-promos は .ho-search 内に配置、gap で間隔管理 */

/* ── カルーセル (results のみ表示) ── */
.ho-carousel-wrap{order:4;flex:0 0 auto;display:none;flex-direction:column;gap:12px;padding:0 0 16px;pointer-events:auto}

/* ── FABs (results のみ表示) ── */
.ho-fab{opacity:0;pointer-events:none;transition:opacity 0.3s}
.ho.results .ho-fab{opacity:1;pointer-events:auto}

/* ── Result chips (results のみ表示) ── */
.chips.ho-result-chips{display:none}

/* 検索実行ボタン / フィルターボタン: 状態別表示 */
/* idle: 両方非表示 */
.sb-go{display:none;width:36px;height:36px;border-radius:var(--pill);background:var(--grad);align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;position:relative;z-index:2}
.sb-go .mi{font-size:18px;color:#fff}
.search-bar .sfil{display:none}
/* searching: Goボタンのみ */
.ho.searching .search-bar .sb-go{display:flex}
/* results: フィルターのみ */
.ho.results .search-bar .sfil{display:flex}

/* ═══ searching 状態 ═══ */
.ho.searching .ho-mission{display:none}
.ho.searching .ho-search{order:0;padding:54px 12px 0}
.ho.searching .ho-spacer{flex:0 0 0;min-height:0;pointer-events:auto}
.ho.searching .hi-promos{display:none}
.ho.searching .hi-actions{display:none}

/* ═══ results 状態 ═══ */
.ho.results .ho-mission{display:none}
.ho.results .ho-search{order:0;padding:54px 12px 0}
.ho.results .ho-spacer{order:1;flex:1 1 0%}
.ho.results .hi-promos{display:none}
.ho.results .hi-actions{display:none}
.ho.results .ho-result-chips{display:flex}
.ho.results .ho-carousel-wrap{order:2;display:flex}

/* 検索バー */
.search-bar{height:52px;padding:0 16px;border-radius:var(--pill);background:var(--bg-glass-s);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--border-a);box-shadow:var(--sh-sm);display:flex;align-items:center;gap:12px;position:relative}
.search-bar::before{content:'';position:absolute;inset:0;border-radius:var(--pill);background:var(--shine);pointer-events:none}
.search-bar .mi{font-size:22px;color:var(--text-sec);position:relative}
.search-bar .sfil{width:36px;height:36px;border-radius:var(--pill);background:var(--bg-card);border:1px solid var(--border);align-items:center;justify-content:center;position:relative;flex-shrink:0;z-index:2;cursor:pointer}
.search-bar .sfil .mi{font-size:18px;color:var(--text-sec)}
.sb-input{font-family:var(--font);font-size:15px;font-weight:500;color:var(--text);flex:1;position:relative;min-width:0;border:none;outline:none;background:transparent}
.sb-input::placeholder{color:var(--text-mut)}

.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.chip{flex-shrink:0;height:36px;padding:0 16px;border-radius:var(--pill);background:var(--bg-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-a);display:flex;align-items:center;gap:4px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--text-sec);cursor:pointer;white-space:nowrap;position:relative;overflow:hidden}
.chip::before{content:'';position:absolute;inset:0;border-radius:var(--pill);background:var(--shine);pointer-events:none}
.chip .mi{font-size:16px;color:var(--text-mut);position:relative}
.chip-on{background:rgba(34,197,94,0.15);color:var(--success);border-color:rgba(34,197,94,0.3)}

/* フィルターチップ（results用、ドロップダウン付き） */
.fchip{flex-shrink:0;height:36px;padding:0 14px;border-radius:var(--pill);background:var(--bg-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-a);display:flex;align-items:center;gap:4px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--text-sec);cursor:pointer;white-space:nowrap;position:relative;-webkit-user-select:none;user-select:none}
.fchip .mi{font-size:16px;color:var(--text-mut)}
.fchip.on{background:rgba(34,197,94,0.15);color:var(--success);border-color:rgba(34,197,94,0.3)}
.fchip.on .mi{color:var(--success)}
/* ドロップダウン */
.fc-drop{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:140px;padding:6px 0;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--sh-md);z-index:50;animation:fc-drop-in 0.2s ease-out}
.fc-drop.open{display:block}
@keyframes fc-drop-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.fc-drop-item{padding:10px 16px;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;transition:background 0.15s}
.fc-drop-item:active{background:var(--bg-glass)}
.fc-drop-item.picked{color:var(--accent);font-weight:700}
/* ライトモード */
.light-mode .fchip{background:rgba(255,255,255,0.9);border-color:rgba(0,0,0,0.08);color:#0f172a}
.light-mode .fchip .mi{color:#7c5cfc}
.light-mode .fc-drop{background:#fff;border-color:rgba(0,0,0,0.08);box-shadow:0 8px 24px rgba(0,0,0,0.12)}

/* FAB共通 */
.fab-r{position:absolute;right:var(--g);display:flex;flex-direction:column;gap:12px}
.fab-r-top{top:16px}
.fab-r-bot{bottom:4px}
.fab{width:48px;height:48px;border-radius:var(--pill);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform 0.15s}
.fab:active{transform:scale(0.88)}
.fab-glass{background:var(--bg-glass-s);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-a);box-shadow:var(--sh-sm);position:relative;overflow:hidden}
.fab-glass::before{content:'';position:absolute;inset:0;border-radius:var(--pill);background:var(--shine);pointer-events:none}
.fab-glass .mi{font-size:22px;color:var(--text);position:relative}

/* AI FAB */
.ai-fab-wrap{position:relative;width:52px;height:52px}
.ai-ring{position:absolute;inset:-3px;border-radius:50%;border:2px solid transparent;border-top-color:rgba(124,92,252,0.7);border-right-color:rgba(59,130,246,0.4);animation:ai-spin 2.5s linear infinite}
@keyframes ai-spin{to{transform:rotate(360deg)}}
.ai-ring2{position:absolute;inset:-3px;border-radius:50%;border:2px solid transparent;border-bottom-color:rgba(168,85,247,0.5);border-left-color:rgba(99,102,241,0.3);animation:ai-spin 4s linear infinite reverse}
.ai-fab{width:100%;height:100%;border-radius:50%;background:var(--accent);box-shadow:0 0 20px rgba(124,92,252,0.4),var(--sh-brand);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;border:none}
.ai-fab::before{content:'';position:absolute;inset:0;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,0.2) 0%,transparent 50%);pointer-events:none}
.ai-fab-icon{position:relative;width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.ai-fab-icon .mi{font-size:24px;color:rgba(255,255,255,0.9)}
.ai-fab-icon .ai-spark{position:absolute;top:-2px;right:-2px;font-size:11px;color:#fff}

/* リスト表示（ハーフモーダル） */
.home-list{position:absolute;left:0;right:0;bottom:var(--nav-h);z-index:80;max-height:60%;background:var(--surface);border-radius:24px 24px 0 0;box-shadow:0 -8px 32px rgba(0,0,0,0.18);display:flex;flex-direction:column;transform:translateY(100%);transition:transform 0.35s cubic-bezier(0.2,0,0,1)}
.home-list.open{transform:translateY(0)}
.hl-handle{flex-shrink:0;padding:12px 0 8px;cursor:grab;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}
.hl-handle::after{content:'';display:block;width:36px;height:4px;border-radius:2px;background:var(--text-mut);opacity:0.3}
.hl-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px var(--g) 20px;display:flex;flex-direction:column;gap:10px}
.hl-card{display:flex;gap:12px;padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--sh-sm);cursor:pointer}
.hl-card:active{opacity:0.85}
.hl-thumb{width:80px;height:80px;border-radius:12px;background:var(--surface-2);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.hl-thumb .mi{font-size:28px;color:var(--text-mut)}
.hl-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.hl-name{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hl-addr{font-size:11px;color:var(--text-mut);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hl-meta{display:flex;align-items:center;gap:4px;margin-top:6px}
.hl-meta .mi{font-size:13px}
.hl-dist{font-size:11px;font-weight:600;color:var(--accent)}
.hl-rat{font-size:11px;color:var(--text-mut);margin-left:6px}
.hl-price{font-size:16px;font-weight:800;color:var(--text);margin-top:4px}
.hl-per{font-size:10px;color:var(--text-mut)}
.ctrl-row{display:flex;align-items:center;justify-content:space-between;padding:0 var(--g)}
.sort-pill{height:40px;padding:0 18px;border-radius:var(--pill);background:var(--bg-glass-s);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-a);box-shadow:var(--sh-sm);display:flex;align-items:center;gap:6px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--text);cursor:pointer;position:relative;overflow:hidden}
.sort-pill::before{content:'';position:absolute;inset:0;border-radius:var(--pill);background:var(--shine);pointer-events:none}
.sort-pill .mi{font-size:16px;color:var(--accent);position:relative}
.sort-pill em{font-style:normal;position:relative}

.ctrl-right{display:flex;gap:8px}
.ctrl-btn{width:40px;height:40px;border-radius:var(--pill);border:1px solid var(--border-a);background:var(--bg-glass-s);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden}
.ctrl-btn::before{content:'';position:absolute;inset:0;border-radius:var(--pill);background:var(--shine);pointer-events:none}
.ctrl-btn .mi{font-size:18px;color:var(--text-sec);position:relative}

.carousel{display:flex;gap:12px;padding:0 var(--g);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch}
.carousel::-webkit-scrollbar{display:none}

.pc{flex:0 0 85%;scroll-snap-align:center;background:var(--bg-glass-s);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--border-a);border-radius:24px;box-shadow:var(--sh-md);padding:14px 16px 14px;display:flex;flex-direction:column;gap:4px;cursor:pointer;position:relative;overflow:hidden}
.pc::before{content:'';position:absolute;inset:0;border-radius:24px;background:var(--shine);pointer-events:none}
.pc-top{display:flex;gap:12px;position:relative}
.pc-info{flex:1;min-width:0}
.pc-name{font-size:16px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-meta{display:flex;align-items:center;gap:4px;margin-top:2px}
.pc-meta .mi{font-size:14px}
.pc-dist{font-size:12px;font-weight:600;color:var(--accent)}
.pc-rat{font-size:12px;color:var(--text-mut);margin-left:8px}
.pc-star{color:var(--warning)}
.pc-thumb{width:80px;height:60px;border-radius:16px;background:var(--bg-card);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.pc-thumb .mi{font-size:24px;color:var(--text-mut)}
.pc-hours{display:flex;align-items:center;gap:4px;position:relative}.pc-hours .mi{font-size:14px;color:var(--text-mut)}.pc-hours span{font-size:12px;color:var(--text-mut)}
.pc-price{font-size:20px;font-weight:800;color:var(--text);position:relative}
.pc-price-sub{font-size:11px;font-weight:500;color:var(--text-mut);position:relative}
.pc-acts{display:flex;gap:8px;margin-top:4px;position:relative}
.pc-ib{width:44px;height:44px;border-radius:var(--pill);border:1px solid var(--border-a);background:var(--bg-card);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.15s}
.pc-ib:active{background:var(--bg-glass)}
.pc-ib .mi{font-size:20px;color:var(--text-sec)}
.pc-go{flex:1;height:44px;border-radius:var(--pill);border:none;background:var(--grad);color:#fff;font-family:var(--font);font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:var(--sh-brand);position:relative;overflow:hidden}
.pc-go::before{content:'';position:absolute;inset:0;border-radius:var(--pill);background:linear-gradient(180deg,rgba(255,255,255,0.15) 0%,transparent 50%);pointer-events:none}
.pc-go:active{transform:scale(0.97)}
.pc-go .mi{font-size:18px}

/* ═══ PARKING ═══ */
.sc{margin:0 var(--g) 12px;border-radius:24px;overflow:hidden;cursor:pointer;background:var(--bg-glass);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--border-a);box-shadow:var(--sh-sm);position:relative}
.sc::before{content:'';position:absolute;inset:0;border-radius:24px;background:var(--shine);pointer-events:none}
.sc-bar{height:3px}.sc-bar-on{background:var(--grad)}.sc-bar-done{background:var(--border)}
.sc-body{padding:16px 20px;position:relative}
.sc-name{font-size:16px;font-weight:700;color:var(--text)}
.sc-addr{font-size:12px;color:var(--text-mut);margin-top:4px}
.sc-stats{display:flex;gap:32px;margin-top:16px}
.sc-sl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.8px;color:var(--text-mut)}
.sc-sv{font-size:22px;font-weight:800;color:var(--text);margin-top:4px}
.sc-memo{margin-top:12px;padding:12px;background:var(--bg-card);border-radius:16px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-sec)}
.sc-memo .mi{font-size:16px;color:var(--text-mut)}
.sc-btns{display:flex;gap:12px;margin-top:16px}
.sc-btn{flex:1;height:44px;border-radius:var(--pill);border:none;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer}
.sc-btn:active{transform:scale(0.97)}
.sc-btn-o{background:var(--bg-card);color:var(--text-sec);border:1px solid var(--border)}
.sc-btn-f{background:var(--grad);color:#fff;box-shadow:var(--sh-brand)}

/* ═══ SAVED ═══ */
.sv{margin:0 var(--g) 12px;padding:16px;border-radius:24px;background:var(--bg-glass);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--border-a);box-shadow:var(--sh-sm);display:flex;gap:16px;position:relative;cursor:pointer;overflow:hidden}
.sv::before{content:'';position:absolute;inset:0;border-radius:24px;background:var(--shine);pointer-events:none}
.sv-img{width:72px;height:72px;border-radius:16px;background:var(--bg-card);flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative}
.sv-img .mi{font-size:24px;color:var(--text-mut)}
.sv-c{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;gap:4px}
.sv-n{font-size:15px;font-weight:700;color:var(--text)}
.sv-a{font-size:11px;color:var(--text-mut)}
.sv-row{display:flex;align-items:center;gap:4px;margin-top:4px}.sv-row .mi{font-size:13px}
.sv-p{font-size:15px;font-weight:700;color:var(--text);margin-top:4px}
.sv-bk{position:absolute;top:16px;right:16px;z-index:1}.sv-bk .mi{font-size:22px;color:var(--accent)}

/* ═══ MEDIA ═══ */
/* Legacy media styles (dark theme — kept for backward compat) */
.cats{display:flex;gap:8px;padding:0 var(--g);overflow-x:auto;scrollbar-width:none}.cats::-webkit-scrollbar{display:none}
.cat{flex-shrink:0;height:36px;padding:0 16px;border-radius:var(--pill);font-family:var(--font);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid var(--border);background:var(--bg-card);color:var(--text-mut)}
.cat.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.c-red{background:rgba(239,68,68,0.15);color:#f87171}.c-amb{background:rgba(250,204,21,0.12);color:#fbbf24}.c-grn{background:rgba(34,197,94,0.12);color:#4ade80}

/* ═══ MEDIA (light theme redesign) ═══ */
.scr-light-media{background:var(--bg)}
.scr-light-media .sbar span{color:#fff}
.scr-light-media .sbar-i .mi{color:#fff}

/* Header */
.md-hdr{flex-shrink:0;padding:54px 20px 14px;background:linear-gradient(135deg,#7c5cfc,#3b82f6);display:flex;align-items:center;justify-content:space-between}
.md-hdr-logo-img{height:24px;width:auto;filter:brightness(0) invert(1)}
.md-hdr-bell{width:30px;height:30px;border-radius:50%;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}
.md-hdr-bell .mi{font-size:24px;color:#fff}

/* Scroll area */
.md-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:104px;background:var(--surface)}

/* Category Tabs */
.md-cats{display:flex;gap:8px;padding:14px 20px;overflow-x:auto;scrollbar-width:none}
.md-cats::-webkit-scrollbar{display:none}
.md-cat{flex-shrink:0;height:36px;padding:0 16px;border-radius:8px;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid var(--surface-border);background:var(--surface);color:var(--text)}
.md-cat.on{background:linear-gradient(135deg,#7c5cfc,#3b82f6);color:#fff;border-color:transparent}

/* Featured Article */
.md-feat{margin:0 20px;cursor:pointer}
.md-feat-img{width:100%;height:176px;border-radius:16px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.md-feat-img .mi{font-size:48px;color:#94a3b8}
.md-feat-title{font-size:15px;font-weight:700;color:var(--text);line-height:1.35;margin-top:10px}

/* Dot pagination */
.md-dots{display:flex;justify-content:center;gap:5px;margin-top:14px}
.md-dot{width:5px;height:5px;border-radius:999px;background:var(--text-mut)}
.md-dot.on{width:15px;background:linear-gradient(135deg,#7c5cfc,#3b82f6)}

/* Section header — "New Articles" */
.md-sec-hdr{display:flex;align-items:center;gap:6px;margin:20px 20px 14px;padding:10px 14px;border-radius:8px;background:var(--surface-2)}
.md-sec-hdr .mi{font-size:20px;color:var(--text)}
.md-sec-title{flex:1;font-size:14px;font-weight:700;color:var(--text)}
.md-sec-chev{font-size:20px;color:var(--text-mut)}

/* Article List */
.md-articles{padding:0 20px;display:flex;flex-direction:column;gap:12px}
.md-ar{display:flex;gap:12px;padding:6px;border-radius:8px;background:var(--surface);box-shadow:var(--sh-sm);cursor:pointer;overflow:hidden}
.md-ar:active{background:var(--surface-hover)}
.md-ar-img{width:112px;height:106px;border-radius:8px;background:var(--surface-2);flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.md-ar-img .mi{font-size:28px;color:#94a3b8}
.md-ar-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:4px 0}
.md-ar-cat{font-size:12px;font-weight:700;background:linear-gradient(135deg,#7c5cfc,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;width:fit-content}
.md-ar-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.4;margin-top:4px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ═══ PROFILE ═══ */
.avt{width:80px;height:80px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;margin:32px auto 12px;box-shadow:var(--sh-brand)}
.avt-t{font-size:26px;font-weight:700;color:#fff}
.pn{text-align:center;font-size:18px;font-weight:700;color:var(--text)}
.pp{text-align:center;font-size:12px;color:var(--text-mut);margin-top:4px}
.stats{display:flex;gap:12px;margin:20px var(--g) 0}
.st{flex:1;padding:16px 12px;text-align:center;border-radius:24px;background:var(--bg-glass);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-a);box-shadow:var(--sh-sm);position:relative;overflow:hidden}
.st::before{content:'';position:absolute;inset:0;border-radius:24px;background:var(--shine);pointer-events:none}
.st .mi{font-size:22px;color:var(--accent);position:relative}
.st-v{font-size:24px;font-weight:800;color:var(--text);margin-top:4px;position:relative}
.st-l{font-size:10px;font-weight:500;color:var(--text-mut);margin-top:4px;position:relative}
.prem{margin:20px var(--g) 0;padding:20px;border-radius:24px;background:var(--grad);color:#fff;position:relative;overflow:hidden;box-shadow:var(--sh-brand);cursor:pointer}
.prem::before{content:'';position:absolute;inset:0;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,0.12) 0%,transparent 50%);pointer-events:none}
.prem::after{content:'';position:absolute;top:-40px;right:-20px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,0.06)}
.prem-t{font-size:17px;font-weight:700;position:relative;z-index:1}
.prem-d{font-size:12px;opacity:0.7;margin-top:4px;position:relative;z-index:1}
.prem-btn{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:10px 20px;border-radius:var(--pill);background:rgba(255,255,255,0.15);backdrop-filter:blur(8px);font-size:13px;font-weight:600;color:#fff;border:1px solid rgba(255,255,255,0.2);position:relative;z-index:1}
.tile{margin:8px var(--g) 0;padding:16px 20px;border-radius:var(--pill);background:var(--bg-glass);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-a);display:flex;align-items:center;gap:12px;cursor:pointer;position:relative;overflow:hidden}
.tile::before{content:'';position:absolute;inset:0;border-radius:var(--pill);background:var(--shine);pointer-events:none}
.tile .mi{font-size:22px;color:var(--text-mut);position:relative}
.tile-l{flex:1;font-size:14px;font-weight:500;color:var(--text);position:relative}
.tile .chev{font-size:20px;color:var(--text-mut);position:relative}

/* ═══ SHEET ═══ */
.sheet{position:absolute;inset:0;z-index:90;display:none}.sheet.open{display:block}
.sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.sheet-c{position:absolute;left:0;right:0;bottom:0;max-height:85%;background:var(--bg);border:1px solid var(--border-a);border-bottom:none;border-radius:28px 28px 0 0;overflow-y:auto;animation:shu 0.35s ease-out}
@keyframes shu{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sheet-h{width:36px;height:4px;border-radius:2px;background:var(--border);margin:8px auto}
.sheet-hero{width:100%;height:200px;background:linear-gradient(145deg,#1a1840,#12122e);display:flex;align-items:center;justify-content:center;position:relative}
.sheet-hero .mi{font-size:56px;color:var(--text-mut)}
.sheet-back{position:absolute;top:12px;left:12px;width:40px;height:40px;border-radius:var(--pill);background:var(--bg-glass-s);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-a);display:flex;align-items:center;justify-content:center;cursor:pointer}
.sheet-back .mi{font-size:20px;color:var(--text)}
.sheet-fav{position:absolute;bottom:14px;right:14px;width:44px;height:44px;border-radius:var(--pill);background:var(--bg-glass-s);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-a);display:flex;align-items:center;justify-content:center;cursor:pointer}
.sheet-fav .mi{font-size:22px;color:var(--text-sec)}
.sheet-info{padding:20px}
.sheet-nm{font-size:22px;font-weight:800;color:var(--text);line-height:1.15}
.sheet-mt{display:flex;align-items:center;gap:4px;margin-top:12px;flex-wrap:wrap}.sheet-mt .mi{font-size:16px}
.sheet-loc{font-size:14px;font-weight:600;color:var(--accent)}
.sheet-div{width:1px;height:14px;background:var(--border);margin:0 8px}
.sheet-str{color:var(--warning)}
.sheet-rtg{font-size:14px;font-weight:600;color:var(--text)}
.sheet-cnt{font-size:14px;color:var(--text-mut);margin-left:4px}
.sheet-hrs{display:flex;align-items:center;gap:8px;margin-top:12px}.sheet-hrs .mi{font-size:16px;color:var(--text-mut)}
.sheet-hrs-t{font-size:13px;color:var(--text-mut)}
.sheet-bdg{padding:4px 10px;border-radius:var(--pill);background:rgba(34,197,94,0.12);font-size:11px;font-weight:700;color:var(--success);margin-left:8px}
.sheet-pr{display:flex;align-items:baseline;gap:12px;margin-top:16px}
.sheet-pr-m{font-size:28px;font-weight:800;color:var(--text)}
.sheet-pr-s{font-size:14px;color:var(--text-mut)}
.sheet-sec{padding:0 20px 16px}
.sheet-sec-t{font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px}
.info-box{border-radius:20px;border:1px solid var(--border-a);overflow:hidden}
.ir{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card)}
.ir+.ir{border-top:1px solid var(--border)}
.ir-ic{width:36px;height:36px;border-radius:var(--pill);background:rgba(124,92,252,0.12);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.ir-ic .mi{font-size:18px;color:var(--accent)}
.ir-tx{flex:1}.ir-l{font-size:10px;font-weight:700;color:var(--text-mut);text-transform:uppercase;letter-spacing:0.5px}
.ir-v{font-size:13px;font-weight:500;color:var(--text);margin-top:2px}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tg{padding:8px 14px;border-radius:var(--pill);font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}
.tg .mi{font-size:14px}
.tg-a{background:rgba(124,92,252,0.12);color:var(--accent)}
.tg-n{background:var(--bg-card);color:var(--text-sec)}
.sheet-cta{padding:16px 20px 32px}

.toast{position:absolute;bottom:100px;left:32px;right:32px;padding:12px 16px;border-radius:var(--pill);background:rgba(124,92,252,0.9);backdrop-filter:blur(12px);color:#fff;font-size:13px;font-weight:600;text-align:center;z-index:700;opacity:0;transform:translateY(8px);transition:all 0.3s;pointer-events:none}
.toast.show{opacity:1;transform:translateY(0)}

/* Mapbox marker overrides */
.mapboxgl-marker{cursor:pointer}
/* マップピン: 吹き出し型（金額+順位バッジ） */
.custom-marker{position:relative;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform 0.3s}
.cm-bubble{padding:6px 12px;border-radius:12px;font-family:var(--font);text-align:center;white-space:nowrap;position:relative}
.cm-bubble::after{content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);border-left:6px solid transparent;border-right:6px solid transparent}
.cm-price{font-size:14px;font-weight:800;color:#fff;line-height:1.2}
.cm-badge{position:absolute;top:-8px;right:-8px;min-width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font);font-size:11px;font-weight:800;color:#fff;border:2px solid #fff}
/* active */
.custom-marker.cm-active{transform:scale(1.1);z-index:10}
.custom-marker.cm-active .cm-bubble{background:var(--accent);box-shadow:0 4px 16px rgba(124,92,252,0.5)}
.custom-marker.cm-active .cm-bubble::after{border-top:6px solid var(--accent)}
.custom-marker.cm-active .cm-badge{background:#ef4444}
/* default */
.custom-marker.cm-default .cm-bubble{background:rgba(20,20,50,0.92);box-shadow:0 2px 10px rgba(0,0,0,0.4)}
.custom-marker.cm-default .cm-bubble::after{border-top:6px solid rgba(20,20,50,0.92)}
.custom-marker.cm-default .cm-badge{background:rgba(100,90,140,0.8)}
.sponsor-marker{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;border:2.5px solid rgba(255,255,255,0.85);box-shadow:0 2px 12px rgba(0,0,0,0.3);cursor:pointer;transition:transform 0.2s}
.sponsor-marker:hover{transform:scale(1.15)}

/* ═══ PUSHED SCREENS ═══ */
.pscr{position:absolute;inset:0;z-index:110;background:var(--bg);display:none;flex-direction:column;overflow:hidden}
.pscr.on{display:flex;animation:slide-r 0.3s cubic-bezier(0.2,0,0,1)}
@keyframes slide-r{from{transform:translateX(100%)}to{transform:translateX(0)}}

/* ═══ BACK HEADER ═══ */
.back-hdr{flex-shrink:0;height:56px;padding:8px 16px 0;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border)}
.bh-title{flex:1;font-size:16px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-btn{width:40px;height:40px;border-radius:var(--pill);border:none;background:var(--bg-card);display:flex;align-items:center;justify-content:center;cursor:pointer}
.bk-btn .mi{font-size:22px;color:var(--text)}
.ic-btn{width:40px;height:40px;border-radius:var(--pill);border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}
.ic-btn .mi{font-size:22px;color:var(--text-sec)}

/* ═══ ENTRY FLOW ═══ */
#entry-flow{position:absolute;inset:0;z-index:500;display:flex;flex-direction:column}
#entry-flow.gone{display:none}
.ef-scr{position:absolute;inset:0;display:none;flex-direction:column;background:var(--bg)}
.ef-scr.on{display:flex}

/* Splash */
.splash-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}
.splash-icon{width:96px;height:96px;border-radius:32px;background:var(--grad);display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-brand)}
.splash-icon .mi{font-size:52px;color:#fff}
.splash-logo-text{font-size:28px;font-weight:800;color:var(--text);letter-spacing:-0.5px}
.splash-logo-text b{color:var(--accent)}
.splash-logo-img{width:180px;height:auto;display:block;filter:brightness(0) invert(1)}
.splash-dots{display:flex;gap:8px}
.splash-dot{width:8px;height:8px;border-radius:4px;background:var(--border);animation:sdot 1.4s ease-in-out infinite}
.splash-dot:nth-child(2){animation-delay:0.2s}.splash-dot:nth-child(3){animation-delay:0.4s}
@keyframes sdot{0%,80%,100%{background:var(--border)}40%{background:var(--accent)}}

/* Onboarding */
.onb-wrap{flex:1;display:flex;flex-direction:column}
.onb-slides-track{flex:1;position:relative}
.onb-slide{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:0 40px;text-align:center}
.onb-slide.on{display:flex}
.onb-icon-wrap{width:120px;height:120px;border-radius:36px;background:var(--bg-glass-s);border:1px solid var(--border-a);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.onb-icon-wrap::before{content:'';position:absolute;inset:0;background:var(--shine);pointer-events:none}
.onb-icon-wrap .mi{font-size:56px;color:var(--accent);position:relative}
.onb-title{font-size:22px;font-weight:800;color:var(--text);line-height:1.3}
.onb-desc{font-size:14px;color:var(--text-sec);line-height:1.6}
.onb-bottom{flex-shrink:0;padding:0 var(--g) 48px;display:flex;flex-direction:column;gap:16px;align-items:center}
.onb-skip{font-size:13px;color:var(--text-mut);position:absolute;top:60px;right:20px;cursor:pointer;padding:8px;z-index:1}

/* Auth */
.auth-wrap{flex:1;display:flex;flex-direction:column;overflow-y:auto}
.auth-top{flex-shrink:0;padding:60px var(--g) 32px;display:flex;flex-direction:column;align-items:center;gap:8px}
.auth-icon{width:72px;height:72px;border-radius:24px;background:var(--grad);display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-brand);margin-bottom:8px}
.auth-icon .mi{font-size:40px;color:#fff}
.auth-name{font-size:24px;font-weight:800;color:var(--text)}
.auth-body{padding:0 var(--g) 40px;display:flex;flex-direction:column;gap:16px}
.auth-inp{width:100%;height:52px;border-radius:16px;background:var(--bg-card);border:1px solid var(--border);padding:0 16px;font-family:var(--font);font-size:15px;color:var(--text);outline:none}
.auth-inp:focus{border-color:var(--accent)}
.auth-inp::placeholder{color:var(--text-mut)}
.auth-divider{display:flex;align-items:center;gap:12px;margin:4px 0}
.auth-divider-line{flex:1;height:1px;background:var(--border)}
.auth-divider-txt{font-size:12px;color:var(--text-mut)}
.auth-social{display:flex;gap:12px}
.auth-soc-btn{flex:1;height:52px;border-radius:16px;background:var(--bg-glass);border:1px solid var(--border-a);display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-family:var(--font);font-size:14px;font-weight:600;color:var(--text)}

/* ═══ AUTH ═══ */
/* ダークモード（デフォルト）: 背景はグラデーション、ハードコードをCSS変数に置換 */
.ef-scr.auth-light{background:linear-gradient(180deg,rgba(124,92,252,0.12) 0%,var(--bg) 35%)}
.auth-l-hdr{flex-shrink:0;padding:60px var(--g) 8px}
.auth-l-title{font-size:18px;font-weight:700;color:var(--text);letter-spacing:-0.2px}
.auth-l-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 24px 32px;display:flex;flex-direction:column}
.auth-l-logo{display:flex;align-items:center;justify-content:center;margin-top:32px}
.auth-l-logo-img{width:160px;height:auto;display:block}
.auth-l-sub{text-align:center;font-size:15px;font-weight:600;color:#1ec5a1;margin-top:18px;margin-bottom:32px}
.auth-l-form{display:flex;flex-direction:column;gap:14px}
.auth-l-inp{display:flex;align-items:center;gap:12px;height:56px;padding:0 18px;border-radius:14px;background:var(--surface);border:1px solid var(--surface-border)}
.auth-l-inp:focus-within{border-color:#7c5cfc;box-shadow:0 0 0 3px rgba(124,92,252,0.15)}
.auth-l-inp-ic{font-size:20px;color:var(--text-mut);flex-shrink:0}
.auth-l-inp input{flex:1;border:none;outline:none;background:transparent;font-family:var(--font);font-size:15px;font-weight:500;color:var(--text)}
.auth-l-inp input::placeholder{color:var(--text-mut);font-weight:500}
.auth-l-eye{font-size:20px;color:var(--text-mut);cursor:pointer;flex-shrink:0}
.auth-l-forgot{font-size:13px;font-weight:700;color:var(--accent);cursor:pointer;margin-top:2px;align-self:flex-start}
.auth-l-btn{margin-top:18px;height:56px;border-radius:var(--pill);border:none;background:var(--bg-glass-s);color:var(--text-sec);font-family:var(--font);font-size:16px;font-weight:700;cursor:pointer;transition:background 0.15s}
.auth-l-btn:hover,.auth-l-btn:active{background:linear-gradient(135deg,#7c5cfc,#5b40ff);color:#fff;box-shadow:0 8px 20px rgba(124,92,252,0.35)}
.auth-l-divider{display:flex;align-items:center;gap:12px;margin:22px 0 18px}
.auth-l-divider-line{flex:1;height:1px;background:var(--border)}
.auth-l-divider-txt{font-size:13px;font-weight:500;color:var(--text-sec)}
.auth-l-soc{display:flex;gap:10px}
.auth-l-soc-btn{flex:1;height:50px;border-radius:14px;background:var(--surface);border:1px solid var(--surface-border);display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-family:var(--font);font-size:13px;font-weight:600;color:var(--text)}
.auth-l-soc-btn:active{transform:scale(0.97)}
.auth-l-soc-g{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:12px;font-weight:800;font-family:var(--font);background:conic-gradient(from -45deg,#ea4335 0deg 90deg,#fbbc05 90deg 180deg,#34a853 180deg 270deg,#4285f4 270deg 360deg);color:#fff}
.auth-l-soc-apple{font-size:18px;color:var(--text)}
.auth-l-soc-fb{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:13px;font-weight:800;font-family:Georgia,serif;background:#1877f2;color:#fff}
.auth-l-foot{text-align:center;margin-top:24px;font-size:13px;color:var(--text);font-weight:500}
.auth-l-link{color:var(--accent);font-weight:700;cursor:pointer;margin-left:4px}
/* ライトモード: 元のFigmaデザインを維持 */
.light-mode .ef-scr.auth-light{background:linear-gradient(180deg,#f4f1fa 0%,#ffffff 35%)}
.light-mode .auth-l-btn{background:#cfd0dc;color:#fff}

/* ═══ PARKING (LIGHT THEME — Figma redesign) ═══ */
.scr-light-parking{background:var(--bg)}
.scr-light-parking .pk-hdr{flex-shrink:0;height:120px;padding:54px 20px 0;background:linear-gradient(135deg,#6a5cff 0%,#7c5cfc 50%,#8b6cff 100%);display:flex;align-items:flex-start;justify-content:space-between;border-bottom-left-radius:24px;border-bottom-right-radius:24px;box-shadow:0 8px 24px rgba(124,92,252,0.25)}
.pk-hdr-logo{height:26px;width:auto;display:block;filter:brightness(0) invert(1);margin-top:4px}
.pk-hdr-bell{width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,0.18);display:flex;align-items:center;justify-content:center;cursor:pointer}
.pk-hdr-bell .mi{font-size:20px;color:#fff}
.pk-seg{margin:-22px 20px 0;padding:5px;border-radius:var(--pill);background:var(--surface);display:flex;gap:4px;box-shadow:var(--sh-sm);position:relative;z-index:2;flex-shrink:0}
.pk-seg-i{flex:1;height:42px;border-radius:var(--pill);border:none;background:transparent;font-family:var(--font);font-size:14px;font-weight:700;color:var(--text-mut);cursor:pointer;transition:all 0.2s}
.pk-seg-i.on{background:linear-gradient(135deg,#7c5cfc,#5b40ff);color:#fff;box-shadow:0 4px 12px rgba(124,92,252,0.35)}
.pk-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:20px 20px 104px;display:flex;flex-direction:column;gap:18px}
.pk-card{border-radius:18px;background:var(--surface);box-shadow:var(--sh-sm);cursor:pointer}
.pk-card-hdr{padding:11px 16px;background:linear-gradient(135deg,#6a5cff 0%,#7c5cfc 100%);font-size:12px;font-weight:600;color:#fff;letter-spacing:0.1px;border-radius:18px 18px 0 0}
.pk-card-body{padding:16px}
.pk-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.pk-card-info{flex:1;min-width:0}
.pk-card-name{font-size:16px;font-weight:800;color:var(--text);letter-spacing:-0.2px}
.pk-card-addr{font-size:12px;color:var(--text-sec);margin-top:4px}
.pk-card-bk{width:32px;height:32px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}
.pk-card-bk .mi{font-size:22px;color:var(--text)}
.pk-card-bk.on .mi{color:#7c5cfc}
.pk-card-stats{margin-top:14px;display:flex;flex-direction:column;gap:6px}
.pk-stat-row{display:flex;justify-content:space-between;align-items:center}
.pk-stat-l{font-size:13px;color:var(--text-sec);font-weight:500}
.pk-stat-v{font-size:14px;font-weight:800;color:#5b40ff}
.pk-card-note{margin-top:14px;padding:11px 14px;border-radius:10px;background:var(--surface-2);font-size:13px;color:var(--text-mut)}
.pk-card-photos{display:flex;gap:8px;margin-top:12px}
.pk-ph{width:calc((100% - 24px) / 4);flex:0 0 auto;aspect-ratio:1;border-radius:10px;background:linear-gradient(135deg,#3a3556,#1f1c33);display:flex;align-items:center;justify-content:center;overflow:hidden}
.pk-ph .mi{font-size:22px;color:rgba(255,255,255,0.35)}
.pk-ph-more{background:#dedce5;color:var(--text-sec);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}

/* ═══ AI AGENT SEARCH ═══ */
.ai-search-scr{background:radial-gradient(ellipse at center,#1a1638 0%,#0c0c20 70%)}
.ai-back-hdr{flex-shrink:0;padding:54px 16px 16px;display:flex;align-items:center;justify-content:space-between}
.ai-back-btn{width:36px;height:36px;border-radius:50%;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}
.ai-back-btn .mi{font-size:22px;color:#fff}
.ai-back-title{font-size:17px;font-weight:700;color:#fff}
.ai-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:48px 24px 0}
.ai-circle-wrap{position:relative;width:240px;height:240px;display:flex;align-items:center;justify-content:center}
.ai-circle-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 180deg,#22d3ee 0%,#a855f7 50%,#22d3ee 100%);-webkit-mask:radial-gradient(circle,transparent 60%,#000 62%);mask:radial-gradient(circle,transparent 60%,#000 62%);animation:ai-spin 6s linear infinite}
.ai-circle-ring2{position:absolute;inset:8px;border-radius:50%;border:1.5px solid rgba(168,85,247,0.5);animation:ai-pulse 2.4s ease-in-out infinite}
.ai-circle-glow{position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(circle,rgba(124,92,252,0.35) 0%,transparent 60%);filter:blur(20px);pointer-events:none}
.ai-circle-text{position:relative;font-size:18px;font-weight:700;color:#fff;letter-spacing:0.2px}
.ai-prompt{margin-top:64px;font-size:15px;font-weight:600;color:#fff;text-align:center;letter-spacing:0.1px}
.ai-mic-wrap{flex-shrink:0;padding:0 0 56px;display:flex;align-items:center;justify-content:center}
.ai-mic-btn{width:64px;height:64px;border-radius:50%;border:none;background:linear-gradient(135deg,#7c5cfc,#5b40ff);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 32px rgba(124,92,252,0.5),inset 0 1px 0 rgba(255,255,255,0.25)}
.ai-mic-btn .mi{font-size:28px;color:#fff}
@keyframes ai-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes ai-pulse{0%,100%{transform:scale(1);opacity:0.5}50%{transform:scale(1.04);opacity:0.9}}

/* ═══ LOT DETAIL (LIGHT THEME — Figma redesign) ═══ */
.det-light{background:var(--bg)}
.det-l-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.det-l-top{padding:54px 20px 16px}
.det-l-top-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.det-l-name{flex:1;font-size:22px;font-weight:800;color:var(--text);letter-spacing:-0.4px;line-height:1.25}
.det-l-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--surface-2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.det-l-close .mi{font-size:18px;color:var(--text)}
.det-l-meta{display:flex;align-items:center;gap:6px;margin-top:8px}
.det-l-meta-pin{font-size:16px;color:#7c5cfc}
.det-l-dist{font-size:13px;font-weight:700;color:var(--text);margin-right:6px}
.det-l-meta-star{font-size:16px;color:#facc15}
.det-l-rating{font-size:13px;color:var(--text)}
.det-l-rating b{font-weight:800}
.det-l-rating span{color:var(--text-sec);font-weight:500}
.det-l-hours{margin-top:10px;font-size:13px;color:var(--text);font-weight:500}
.det-l-hours b{font-weight:700}
.det-l-open{margin-top:4px;font-size:13px;font-weight:700;color:#1ec5a1}
.det-l-price-row{margin-top:14px;display:flex;align-items:flex-end;justify-content:space-between}
.det-l-max{font-size:14px;color:var(--text);font-weight:600}
.det-l-max b{font-size:22px;font-weight:800;margin-left:4px}
.det-l-hour{font-size:14px;color:var(--text);font-weight:600}
.det-l-actions{margin-top:14px;display:flex;gap:10px}
.det-l-act{flex:1;height:42px;border-radius:12px;border:1px solid var(--surface-border);background:var(--surface);display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--text);cursor:pointer}
.det-l-act .mi{font-size:18px}
.det-l-photos{display:flex;gap:10px;padding:6px 20px 18px;height:240px}
.det-l-photo{flex:2;border-radius:14px;background:#dedce5}
.det-l-photo-stack{flex:1;display:flex;flex-direction:column;gap:10px}
.det-l-photo-sm{flex:1;border-radius:14px;background:#dedce5}
.det-l-tabs{margin:0 20px;padding:5px;border-radius:var(--pill);background:var(--bg-card);display:flex;gap:4px}
.det-l-tab{flex:1;height:42px;border-radius:var(--pill);border:none;background:transparent;font-family:var(--font);font-size:14px;font-weight:700;color:var(--text-mut);cursor:pointer}
.det-l-tab.on{background:linear-gradient(135deg,#7c5cfc,#5b40ff);color:#fff;box-shadow:0 4px 12px rgba(124,92,252,0.3)}
.det-l-content{padding:18px 20px 0;display:flex;flex-direction:column;gap:12px}
.det-l-ad{height:120px;border-radius:14px;background:#dedce5;position:relative}
.det-l-ad-badge{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:var(--pill);background:#facc15;color:var(--text);font-size:11px;font-weight:800}
.det-l-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:14px;background:var(--surface-2);border:1px solid var(--surface-border)}
.det-l-row-ic{font-size:18px;color:var(--text);flex-shrink:0}
.det-l-row-tx{flex:1;font-size:13px;color:var(--text);font-weight:500;line-height:1.5}
.det-l-row-chev{font-size:20px;color:var(--text-mut);flex-shrink:0}
.det-l-row-col{flex-direction:column;align-items:flex-start;gap:10px}
.det-l-row-label{font-size:13px;color:var(--text);font-weight:600}
.det-l-tags{display:flex;flex-wrap:wrap;gap:6px}
.det-l-tags-loose{padding:0 4px}
.det-l-tag{padding:6px 12px;border-radius:var(--pill);background:var(--surface);border:1px solid var(--surface-border);font-size:12px;font-weight:600;color:var(--text)}
.det-l-rv-head{text-align:center;padding:8px 0 16px}
.det-l-rv-num{font-size:42px;font-weight:800;color:var(--text)}
.det-l-rv-stars{display:flex;justify-content:center;gap:2px;color:#facc15}
.det-l-rv-stars .mi{font-size:20px}
.det-l-rv-cnt{font-size:13px;color:var(--text-sec);margin-top:4px}
.det-l-rv-card{padding:14px 16px;border-radius:14px;background:var(--surface-2);border:1px solid var(--surface-border)}
.det-l-rv-top{display:flex;align-items:center;gap:10px}
.det-l-rv-avt{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#7c5cfc,#5b40ff);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}
.det-l-rv-info{flex:1}
.det-l-rv-name{font-size:13px;font-weight:700;color:var(--text)}
.det-l-rv-date{font-size:11px;color:var(--text-sec)}
.det-l-rv-text{margin-top:10px;font-size:13px;color:#3d394f;line-height:1.6}
.det-l-rv-write{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;border-radius:var(--pill);border:1px solid var(--surface-border);background:var(--surface);font-family:var(--font);font-size:14px;font-weight:600;color:var(--text);cursor:pointer;margin-top:4px}
.det-l-rv-write .mi{font-size:18px;color:#7c5cfc}
.det-l-cta{flex-shrink:0;padding:12px 20px 20px;background:linear-gradient(180deg,transparent 0%,var(--bg) 30%);position:absolute;left:0;right:0;bottom:0}

/* ═══ HOME INITIAL elements ═══ */

/* Mission card */
.hi-mission{position:relative;padding:16px 18px 16px;border-radius:22px;background:linear-gradient(135deg,#6a5cff 0%,#7c5cfc 55%,#8b6cff 100%);box-shadow:0 14px 36px rgba(124,92,252,0.42),inset 0 1px 0 rgba(255,255,255,0.22);overflow:hidden;cursor:pointer}
.hi-mission::before{content:'';position:absolute;top:-40px;right:-30px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,0.08);pointer-events:none}
.hi-mission::after{content:'';position:absolute;bottom:-30px;left:-20px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,0.05);pointer-events:none}
.hi-mission-title{font-size:14px;font-weight:800;color:#fff;line-height:1.3;position:relative}
.hi-mission-sub{font-size:11px;color:rgba(255,255,255,0.82);margin-top:3px;position:relative}
.hi-mission-steps{display:flex;justify-content:space-between;margin-top:14px;gap:4px;position:relative}
.hi-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;min-width:0}
.hi-step:not(:last-child)::after{content:'';position:absolute;top:17px;right:-50%;width:100%;height:2px;background-image:linear-gradient(to right,rgba(255,255,255,0.45) 0%,rgba(255,255,255,0.45) 50%,transparent 50%);background-size:6px 2px;background-repeat:repeat-x;z-index:0}
.hi-step-c{width:36px;height:36px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(28,21,73,0.25);position:relative;z-index:1}
.hi-step-c .mi{font-size:20px;color:#7c5cfc}
.hi-step-l{font-size:10px;font-weight:700;color:#fff;position:relative;z-index:1;white-space:nowrap}
/* 達成済みステップ */
.hi-step-done .hi-step-c{background:rgba(255,255,255,0.18);border:2px solid rgba(255,255,255,0.5);box-shadow:0 3px 12px rgba(124,92,252,0.35)}
.hi-step-done .hi-step-c .mi{color:#fff}
.hi-step-done .hi-step-l{color:rgba(255,255,255,0.55)}
/* 達成済みの接続線を実線に */
.hi-step-done:not(:last-child)::after{background-image:none;background:rgba(255,255,255,0.5)}

/* Search card */
/* ホーム: AI + Near Me ボタン行 */
.hi-actions{display:flex;gap:10px}
.hi-act{flex:1;height:44px;border-radius:var(--pill);border:1px solid var(--border-a);background:var(--bg-glass-s);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);box-shadow:var(--sh-sm);display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font);font-size:13px;font-weight:700;color:var(--text);cursor:pointer;position:relative;overflow:hidden}
.hi-act::before{content:'';position:absolute;inset:0;border-radius:var(--pill);background:var(--shine);pointer-events:none}
.hi-act .mi{font-size:18px;position:relative}
/* AI ボタン: 紫グラデ背景 */
.hi-act-ai{background:var(--grad);border-color:transparent;color:#fff;box-shadow:var(--sh-brand)}
.hi-act-ai .mi{color:#fff}
.hi-act-ai::before{background:linear-gradient(180deg,rgba(255,255,255,0.18) 0%,transparent 50%)}
/* Near Me ボタン: ガラス背景 */
.hi-act-near .mi{color:var(--accent)}
/* ライトモード */
.light-mode .hi-act-near{background:rgba(255,255,255,0.92);border-color:rgba(0,0,0,0.08);box-shadow:0 4px 16px rgba(28,21,73,0.1)}

/* Promo cards: 左大+右2段スタック */
.hi-promos{display:flex;gap:10px}
.hi-promo{border-radius:10px;position:relative;overflow:hidden;cursor:pointer}
.hi-promo-eyebrow{font-size:9px;font-weight:800;letter-spacing:0.8px;text-transform:uppercase}

/* 左: 大きなカード */
.hi-promo-big{flex:1;padding:14px 14px 12px;background:linear-gradient(145deg,#7c5cfc 0%,#9b7cff 100%);color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:0}
.hi-promo-big::before{content:'';position:absolute;top:-30px;right:-30px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,0.08);pointer-events:none}
.hi-promo-big .hi-promo-eyebrow{opacity:0.85}
.hi-promo-big .hi-promo-title{font-size:11px;font-weight:700;line-height:1.35;margin-top:4px;max-width:80%}
.hi-promo-car{margin-top:auto;align-self:flex-end;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center}
.hi-promo-car .mi{font-size:28px;color:#fff}

/* 右: 2段スタック */
.hi-promo-stack{flex:1;display:flex;flex-direction:column;gap:10px;min-height:0}

/* メディアカード */
.hi-promo-media{flex:1;padding:12px;background:linear-gradient(135deg,#1a1840 0%,#2a2560 100%);color:#fff;display:flex;flex-direction:column}
.hi-promo-media .hi-promo-eyebrow{color:rgba(255,255,255,0.75)}
.hi-promo-desc{font-size:8px;font-weight:600;letter-spacing:0.3px;color:rgba(255,255,255,0.5);margin-top:3px;text-transform:uppercase;line-height:1.3}
.hi-promo-badge{align-self:flex-start;margin-top:auto;padding:3px 10px;border-radius:6px;background:#22c55e;color:#fff;font-size:9px;font-weight:800;letter-spacing:0.5px}

/* ガイドカード */
.hi-promo-guide{flex:1;padding:12px;background:var(--surface);border:1px solid var(--surface-border);display:flex;flex-direction:column;justify-content:center}
.hi-promo-guide-title{font-size:12px;font-weight:800;color:var(--text);line-height:1.3}
.hi-promo-guide .hi-promo-desc{color:var(--text-mut);margin-top:3px}

/* ═══ HOME SEARCH: inline input + dropdown ═══ */

/* 検索候補ドロップダウン */
.hi-suggest{display:none;margin-top:6px;padding:12px 16px;border-radius:16px;background:var(--bg-glass-s);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--border-a);box-shadow:var(--sh-md);animation:suggest-slide 0.25s cubic-bezier(0.2,0,0,1)}
.hi-suggest.open{display:block}
@keyframes suggest-slide{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
.hi-suggest-title{font-size:12px;font-weight:700;color:var(--text-sec);margin-bottom:8px;text-transform:uppercase;letter-spacing:0.3px}
.hi-suggest-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);cursor:pointer}
.hi-suggest-item:last-child{border-bottom:none}
.hi-suggest-item:active{opacity:0.7}
.hi-suggest-item .mi{font-size:18px;color:var(--text-mut);flex-shrink:0}
.hi-suggest-body{flex:1;min-width:0}
.hi-suggest-name{font-size:14px;font-weight:600;color:var(--text)}
.hi-suggest-addr{font-size:11px;color:var(--text-mut);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ═══ MODAL (generic) + MISSION MODAL ═══ */
.modal{position:absolute;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:40px 16px}
.modal.open{display:flex;animation:modal-fade 0.2s ease-out}
.modal-bg{position:absolute;inset:0;background:rgba(12,12,32,0.55);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.modal-c{position:relative;width:100%;max-height:100%;border-radius:24px;background:var(--surface);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,0.35);animation:modal-pop 0.25s cubic-bezier(0.2,0.8,0.2,1)}
@keyframes modal-fade{from{opacity:0}to{opacity:1}}
@keyframes modal-pop{from{opacity:0;transform:scale(0.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* Mission modal */
.mm-card{max-width:360px}
.mm-hdr{position:relative;padding:20px 20px 22px;background:linear-gradient(135deg,#6a5cff 0%,#7c5cfc 55%,#8b6cff 100%);color:#fff;overflow:hidden}
.mm-hdr::before{content:'';position:absolute;top:-40px;right:-30px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,0.08);pointer-events:none}
.mm-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:50%;background:var(--surface);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.mm-close .mi{font-size:18px;color:var(--text)}
.mm-logo{display:flex;align-items:center;justify-content:center;margin-bottom:14px;position:relative}
.mm-logo-img{height:22px;width:auto;filter:brightness(0) invert(1)}
.mm-hdr-body{display:flex;align-items:center;justify-content:space-between;gap:14px;position:relative}
.mm-hdr-text{flex:1;min-width:0}
.mm-hdr-title{font-size:16px;font-weight:800;line-height:1.3}
.mm-hdr-sub{font-size:12px;color:rgba(255,255,255,0.8);margin-top:2px}
.mm-ring{width:60px;height:60px;border-radius:50%;background:conic-gradient(#fff calc(var(--pct)*1%),rgba(255,255,255,0.25) 0);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}
.mm-ring-inner{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#6a5cff,#7c5cfc);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff}
.mm-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 14px 4px;display:flex;flex-direction:column;gap:8px}
.mm-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--surface-2)}
.mm-row-done{background:linear-gradient(135deg,#6a5cff 0%,#7c5cfc 100%);color:#fff;box-shadow:0 6px 16px rgba(124,92,252,0.3)}
.mm-row-ic{width:34px;height:34px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid var(--surface-border)}
.mm-row-done .mm-row-ic{background:rgba(255,255,255,0.18);border-color:rgba(255,255,255,0.4)}
.mm-row-ic .mi{font-size:18px;color:var(--text-mut)}
.mm-row-done .mm-row-ic .mi{color:#fff}
.mm-row-body{flex:1;min-width:0}
.mm-row-t{font-size:14px;font-weight:800;color:var(--text);letter-spacing:-0.1px}
.mm-row-done .mm-row-t{color:#fff}
.mm-row-s{font-size:11px;color:var(--text-sec);margin-top:2px}
.mm-row-done .mm-row-s{color:rgba(255,255,255,0.82)}
.mm-row-badge{padding:5px 11px;border-radius:var(--pill);background:var(--surface);border:1px solid var(--surface-border);font-size:10px;font-weight:700;color:#8a8699;flex-shrink:0}
.mm-badge-done{background:rgba(255,255,255,0.95);color:#7c5cfc;border-color:transparent}
.mm-cta{flex-shrink:0;padding:12px 16px 18px}

/* ═══ LOT DETAIL ═══ */
.det-hero{flex-shrink:0;height:220px;background:linear-gradient(145deg,#1a1840,#12122e);position:relative;display:flex;align-items:center;justify-content:center}
.det-hero .mi{font-size:56px;color:var(--text-mut)}
.det-hero-fade{position:absolute;inset:0;background:linear-gradient(to top,rgba(12,12,32,1) 0%,transparent 50%)}
.det-hero-btns{position:absolute;top:12px;left:12px;display:flex;gap:8px}
.det-hero-right{position:absolute;top:12px;right:12px;display:flex;gap:8px}
.det-hero-btn{width:40px;height:40px;border-radius:var(--pill);background:var(--bg-glass-s);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-a);display:flex;align-items:center;justify-content:center;cursor:pointer}
.det-hero-btn .mi{font-size:20px;color:var(--text)}
.det-hero-info{position:absolute;bottom:16px;left:var(--g);right:var(--g);z-index:2}
.det-hero-nm{font-size:20px;font-weight:800;color:var(--text);line-height:1.2;margin-bottom:6px}
.det-hero-meta{display:flex;align-items:center;gap:8px}
.det-hero-meta .mi{font-size:14px}

.det-tabs{flex-shrink:0;display:flex;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.det-tabs::-webkit-scrollbar{display:none}
.det-tab{flex-shrink:0;height:44px;padding:0 20px;border:none;background:transparent;font-family:var(--font);font-size:13px;font-weight:500;color:var(--text-mut);cursor:pointer;position:relative;transition:color 0.2s;white-space:nowrap}
.det-tab.on{color:var(--accent);font-weight:700}
.det-tab.on::after{content:'';position:absolute;bottom:0;left:20px;right:20px;height:2px;background:var(--accent);border-radius:1px}
.det-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:96px}
.det-sec{padding:20px var(--g) 0}
.det-sec-t{font-size:12px;font-weight:700;color:var(--text-mut);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:12px}
.det-cta{flex-shrink:0;padding:12px var(--g) 24px;border-top:1px solid var(--border);background:var(--bg)}

/* Pricing tab */
.price-table{border-radius:20px;overflow:hidden;border:1px solid var(--border-a)}
.price-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-card)}
.price-row+.price-row{border-top:1px solid var(--border)}
.price-row.highlight{background:rgba(124,92,252,0.1)}
.price-row-l{font-size:13px;color:var(--text-sec)}
.price-row-r{font-size:14px;font-weight:700;color:var(--text)}
.price-row.highlight .price-row-r{color:var(--accent)}
.sim-card{margin-top:16px;padding:16px;border-radius:20px;background:var(--bg-glass);border:1px solid var(--border-a)}
.sim-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:12px;display:flex;align-items:center;gap:6px}
.sim-title .mi{font-size:16px;color:var(--accent)}
.sim-row{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.sim-label{font-size:11px;color:var(--text-mut);width:52px;flex-shrink:0}
.sim-inp{flex:1;height:40px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border);padding:0 12px;font-family:var(--font);font-size:14px;color:var(--text);outline:none}
.sim-result{margin-top:12px;padding:12px;border-radius:12px;background:rgba(124,92,252,0.12);text-align:center;font-size:18px;font-weight:800;color:var(--accent)}

/* Review tab */
.rtg-big{text-align:center;padding:20px 0 16px}
.rtg-num{font-size:56px;font-weight:800;color:var(--text);line-height:1}
.rtg-stars{display:flex;justify-content:center;gap:4px;margin-top:8px}
.rtg-star-filled .mi{color:var(--warning);font-size:20px}
.rtg-star-empty .mi{color:var(--border);font-size:20px}
.rtg-cnt{font-size:12px;color:var(--text-mut);margin-top:4px}
.rtg-bars{padding:0 var(--g) 20px;display:flex;flex-direction:column;gap:6px}
.rtg-bar-row{display:flex;align-items:center;gap:8px}
.rtg-bar-lbl{font-size:11px;color:var(--text-mut);width:16px;text-align:right}
.rtg-bar-track{flex:1;height:6px;border-radius:3px;background:var(--border);overflow:hidden}
.rtg-bar-fill{height:100%;border-radius:3px;background:var(--warning)}
.rtg-bar-pct{font-size:11px;color:var(--text-mut);width:28px}
.rv-card{margin:0 var(--g) 12px;padding:16px;border-radius:20px;background:var(--bg-glass);border:1px solid var(--border-a)}
.rv-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.rv-avt{width:36px;height:36px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rv-avt-t{font-size:13px;font-weight:700;color:#fff}
.rv-info{flex:1}
.rv-name{font-size:13px;font-weight:700;color:var(--text)}
.rv-date{font-size:11px;color:var(--text-mut)}
.rv-stars{display:flex;gap:2px;margin-left:auto}
.rv-stars .mi{font-size:14px;color:var(--warning)}
.rv-text{font-size:13px;color:var(--text-sec);line-height:1.6}
.write-rv-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:48px;border-radius:var(--pill);border:1px solid var(--accent);background:transparent;color:var(--accent);font-family:var(--font);font-size:14px;font-weight:600;cursor:pointer;margin:0 var(--g) 20px}
.write-rv-btn .mi{font-size:18px}

/* Photo tab */
.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:var(--g)}
.photo-box{aspect-ratio:1;border-radius:16px;background:linear-gradient(135deg,#1a1840,#12122e);display:flex;align-items:center;justify-content:center;border:1px solid var(--border-a)}
.photo-box .mi{font-size:32px;color:var(--text-mut)}

/* ═══ SESSION (Parking Detail — Figma redesign) ═══ */
/* Header */
.sd-hdr{flex-shrink:0;padding:54px 20px 12px;background:linear-gradient(135deg,#7c5cfc,#3b82f6);display:flex;align-items:center;gap:12px}
.sd-back{background:none;border:none;cursor:pointer;padding:0;display:flex}.sd-back .mi{font-size:24px;color:#fff}
.sd-hdr-title{flex:1;font-size:16px;font-weight:700;color:#fff}
.sd-bk{background:none;border:none;cursor:pointer;padding:0;display:flex}.sd-bk .mi{font-size:22px;color:#fff}

/* Scroll */
.sd-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bg)}

/* Photo */
.sd-photo{width:calc(100% - 40px);height:176px;margin:16px 20px 0;border-radius:16px;background:var(--surface-2);display:flex;align-items:center;justify-content:center}
.sd-photo .mi{font-size:40px;color:var(--text-mut)}
.sd-photo-dots{display:flex;justify-content:center;gap:5px;margin-top:10px}
.sd-dot{width:5px;height:5px;border-radius:999px;background:var(--text-mut)}.sd-dot.on{width:15px;background:var(--grad)}

/* Info */
.sd-info{padding:16px 20px 0}
.sd-lot-name{font-size:18px;font-weight:800;color:var(--text)}
.sd-lot-addr{font-size:13px;color:var(--text-mut);margin-top:4px}

/* Stats row */
.sd-stats{display:flex;padding:18px 20px 0;gap:0}
.sd-stat{flex:1}
.sd-stat-label{font-size:11px;color:var(--text-mut);font-weight:500}
.sd-stat-val{font-size:18px;font-weight:800;color:var(--text);margin-top:4px;font-variant-numeric:tabular-nums}
.sd-stat-accent{color:var(--accent)}

/* Detail rows */
.sd-detail-rows{padding:14px 20px 0}
.sd-detail-row{display:flex;justify-content:space-between;padding:6px 0}
.sd-detail-k{font-size:13px;color:var(--text-mut)}
.sd-detail-v{font-size:13px;font-weight:600;color:var(--text)}
.sd-detail-accent{color:var(--accent)}

/* Divider */
.sd-divider{height:1px;margin:20px 0;background:var(--border)}

/* Section */
.sd-section{padding:0 20px}
.sd-sec-title{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:800;color:var(--text);margin-bottom:14px}
.sd-sec-crown{font-size:20px;color:var(--accent)}

/* Tabs */
.sd-tabs{display:flex;padding:4px;border-radius:var(--pill);background:var(--bg-card);border:1px solid var(--border);gap:4px;margin-bottom:14px}
.sd-tab{flex:1;height:38px;border-radius:var(--pill);border:none;background:transparent;font-family:var(--font);font-size:13px;font-weight:700;color:var(--text-mut);cursor:pointer}
.sd-tab.on{background:var(--grad);color:#fff;box-shadow:var(--sh-brand)}

/* Chart */
.sd-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:12px;color:var(--text-mut)}
.sd-chart-range{font-weight:600;color:var(--text-sec);cursor:pointer}
.sd-chart{position:relative}
.sd-chart-y{position:absolute;left:0;top:0;bottom:20px;width:44px;display:flex;flex-direction:column;justify-content:space-between;font-size:9px;color:var(--text-mut);text-align:right;padding-right:6px}
.sd-chart-area{margin-left:44px;height:120px;position:relative}
.sd-chart-svg{width:100%;height:100%}
.sd-chart-x{display:flex;justify-content:space-between;margin-left:44px;margin-top:6px;font-size:10px;color:var(--text-mut)}
.sd-chart-tooltip{position:absolute;pointer-events:none}
.sd-tooltip-box{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:11px;font-weight:700;color:var(--text);text-align:center;box-shadow:var(--sh-sm)}
.sd-tooltip-box span{font-size:9px;color:var(--text-mut);font-weight:500}

/* List view */
.sd-list-table{display:flex;flex-direction:column}
.sd-list-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;color:var(--text)}
.sd-list-row:last-child{border-bottom:none}
.sd-list-head{font-weight:600;color:var(--text-mut);font-size:11px}
.sd-list-price{font-weight:700}
.sd-list-diff{font-weight:700;color:var(--success)}

/* Alerts */
.sd-alert-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 0;color:var(--text-mut);font-size:13px}
.sd-alert-empty .mi{font-size:32px}
.sd-alert-card{padding:14px;border-radius:12px;background:var(--surface);border:1px solid var(--border);margin-bottom:12px}
.sd-alert-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;color:var(--text);margin-bottom:10px}
.sd-alert-del{font-size:20px;color:var(--text-mut);cursor:pointer}
.sd-alert-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.sd-alert-field{display:flex;align-items:center;gap:4px;padding:8px 12px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:13px;color:var(--text);flex:1}
.sd-alert-sm{flex:0;min-width:60px}
.sd-alert-edit{font-size:16px;color:var(--text-mut);cursor:pointer}
.sd-alert-k{font-size:12px;color:var(--text-mut);flex:1}
.sd-alert-btn{width:100%;height:38px;border-radius:999px;border:none;background:var(--grad);color:#fff;font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;margin-top:8px}

/* Action rows */
.sd-action-row{display:flex;align-items:center;gap:12px;padding:14px;border-radius:12px;background:var(--surface);border:1px solid var(--border);margin-bottom:8px;font-size:14px;color:var(--text);cursor:pointer}
.sd-action-row .mi{font-size:20px;color:var(--text-mut)}
.sd-action-end{margin-left:auto;font-size:20px;color:var(--text-mut)}

/* Sponsor mini cards */
.sponsor-card-mini{flex:0 0 auto;width:160px;padding:14px 16px;border-radius:16px;background:var(--bg-glass);border:1px solid var(--border-a);cursor:pointer;transition:transform 0.2s}
.sponsor-card-mini:hover{transform:translateY(-2px);border-color:#f59e0b}
.scm-cat{font-size:9px;font-weight:700;color:#f59e0b;text-transform:uppercase;letter-spacing:0.05em}
.scm-name{font-size:13px;font-weight:700;color:var(--text);margin-top:4px}
.scm-dist{font-size:11px;color:var(--accent);margin-top:4px;font-weight:600}
.scm-checkin{margin-top:6px;padding:4px 10px;border:none;border-radius:8px;background:#f59e0b;color:#fff;font-size:10px;font-weight:700;cursor:pointer;transition:opacity 0.2s}
.scm-checkin:active{opacity:0.7}

/* CTA buttons */
.sd-cta{position:absolute;left:0;right:0;bottom:0;padding:12px 20px 24px;background:linear-gradient(180deg,transparent 0%,var(--bg) 30%);display:flex;flex-direction:column;gap:8px}
.sd-end-btn{width:100%;height:52px;border-radius:var(--pill);border:none;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-family:var(--font);font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 16px rgba(239,68,68,0.4),inset 0 1px 0 rgba(255,255,255,0.12)}
.sd-end-btn:active{transform:scale(0.97)}
.sd-dir-btn{width:100%;height:52px;border-radius:var(--pill);border:2px solid var(--accent);background:var(--surface);color:var(--accent);font-family:var(--font);font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.sd-dir-btn:active{transform:scale(0.97)}
.btn-end .mi{font-size:20px}
.btn-end:active{transform:scale(0.97)}

/* ═══ END FLOW ═══ */
.end-step{position:absolute;inset:0;display:none;flex-direction:column}
.end-step.on{display:flex}
.end-check-wrap{display:flex;align-items:center;justify-content:center;margin:40px 0 24px}
.end-check{width:72px;height:72px;border-radius:50%;background:rgba(34,197,94,0.15);border:2px solid rgba(34,197,94,0.3);display:flex;align-items:center;justify-content:center}
.end-check .mi{font-size:36px;color:var(--success)}
.end-h2{text-align:center;font-size:22px;font-weight:800;color:var(--text);padding:0 var(--g)}
.end-stats{display:flex;gap:12px;margin:24px var(--g)}
.end-stat{flex:1;padding:16px 12px;text-align:center;border-radius:24px;background:var(--bg-glass);border:1px solid var(--border-a)}
.end-stat-v{font-size:22px;font-weight:800;color:var(--text);margin-top:4px}
.end-stat-l{font-size:10px;font-weight:500;color:var(--text-mut);margin-top:4px}
.end-cta{margin:0 var(--g)}
.end-progress-wrap{display:flex;justify-content:center;gap:8px;margin:24px 0 40px}
.end-prog-dot{width:8px;height:8px;border-radius:4px;background:var(--border);transition:all 0.2s}
.end-prog-dot.on{width:24px;background:var(--accent)}
.end-title{text-align:center;font-size:20px;font-weight:800;color:var(--text);padding:0 var(--g) 12px}
.end-subtitle{text-align:center;font-size:14px;color:var(--text-sec);padding:0 var(--g) 32px;line-height:1.6}
.end-gb-row{display:flex;gap:16px;margin:0 var(--g) 24px}
.end-gb-btn{flex:1;height:80px;border-radius:24px;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-family:var(--font);font-size:13px;font-weight:600}
.end-gb-btn:active{transform:scale(0.97)}
.end-gb-good{background:rgba(34,197,94,0.15);border:1px solid rgba(34,197,94,0.3);color:var(--success)}
.end-gb-bad{background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.25);color:var(--error)}
.end-gb-btn .mi{font-size:28px}
.end-skip{text-align:center;font-size:13px;color:var(--text-mut);cursor:pointer;padding:16px}
.end-stars-row{display:flex;justify-content:center;gap:12px;margin:32px 0}
.end-stars-row .mi{font-size:40px;color:var(--warning)}

/* ═══ NOTIFICATIONS ═══ */
.notif-item{display:flex;gap:12px;padding:16px var(--g);cursor:pointer;border-bottom:1px solid var(--border);position:relative}
.notif-item:active{background:var(--bg-card)}
.notif-ic-wrap{width:44px;height:44px;border-radius:var(--pill);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.notif-ic-fare{background:rgba(124,92,252,0.15)}
.notif-ic-session{background:rgba(34,197,94,0.12)}
.notif-ic-promo{background:rgba(250,204,21,0.12)}
.notif-ic-system{background:rgba(59,130,246,0.12)}
.notif-ic-review{background:rgba(239,68,68,0.1)}
.notif-ic-wrap .mi{font-size:20px}
.notif-ic-fare .mi{color:var(--accent)}
.notif-ic-session .mi{color:var(--success)}
.notif-ic-promo .mi{color:var(--warning)}
.notif-ic-system .mi{color:var(--accent-blue)}
.notif-ic-review .mi{color:#f87171}
.notif-body{flex:1;min-width:0}
.notif-title{font-size:14px;font-weight:600;color:var(--text)}
.notif-text{font-size:12px;color:var(--text-sec);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notif-time{font-size:10px;color:var(--text-mut);margin-top:4px}
.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);position:absolute;right:20px;top:50%;transform:translateY(-50%)}
.notif-item.read .notif-title{font-weight:500;color:var(--text-sec)}

/* ═══ PREMIUM ═══ */
.prem-hero-big{flex-shrink:0;height:200px;background:var(--grad);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;position:relative;overflow:hidden}
.prem-hero-big::before{content:'';position:absolute;top:-40px;right:-30px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,0.07)}
.prem-hero-big::after{content:'';position:absolute;bottom:-30px;left:-20px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,0.05)}
.prem-hero-close{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:var(--pill);background:rgba(255,255,255,0.15);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer}
.prem-hero-close .mi{font-size:20px;color:#fff}
.prem-hero-ic .mi{font-size:48px;color:#fff;position:relative;z-index:1}
.prem-hero-title{font-size:22px;font-weight:800;color:#fff;position:relative;z-index:1}
.prem-hero-sub{font-size:13px;color:rgba(255,255,255,0.75);position:relative;z-index:1}
.plan-picker{display:flex;gap:12px;margin:20px var(--g) 0}
.plan-opt{flex:1;padding:16px 12px;border-radius:20px;background:var(--bg-card);border:2px solid var(--border);cursor:pointer;text-align:center;position:relative;transition:all 0.2s}
.plan-opt.on{background:rgba(124,92,252,0.1);border-color:var(--accent)}
.plan-opt-price{font-size:18px;font-weight:800;color:var(--text)}
.plan-opt-period{font-size:11px;color:var(--text-mut);margin-top:2px}
.plan-opt-monthly{font-size:10px;color:var(--text-mut);margin-top:4px}
.plan-badge{position:absolute;top:-8px;left:50%;transform:translateX(-50%);padding:3px 10px;border-radius:var(--pill);background:var(--grad);font-size:10px;font-weight:700;color:#fff;white-space:nowrap}
.feat-list{margin:20px var(--g) 0;display:flex;flex-direction:column;gap:0;border-radius:20px;overflow:hidden;border:1px solid var(--border-a)}
.feat-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-card);border-bottom:1px solid var(--border)}
.feat-item:last-child{border-bottom:none}
.feat-item-ic{width:32px;height:32px;border-radius:var(--pill);background:rgba(124,92,252,0.12);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.feat-item-ic .mi{font-size:16px;color:var(--accent)}
.feat-item-text{flex:1;font-size:13px;font-weight:500;color:var(--text)}
.feat-item-check .mi{font-size:18px;color:var(--success)}
.prem-cta{margin:20px var(--g) 8px}
.prem-legal{text-align:center;font-size:10px;color:var(--text-mut);padding:0 var(--g) 32px;line-height:1.8}

/* ═══ MEDIA DETAIL ═══ */
.mdet-hero{flex-shrink:0;height:220px;background:linear-gradient(135deg,#1a1840,#12122e);display:flex;align-items:center;justify-content:center;position:relative}
.mdet-hero .mi{font-size:64px;color:var(--text-mut)}
.mdet-hero-btns{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between}
.mdet-body{padding:20px var(--g)}
.mdet-title{font-size:20px;font-weight:800;color:var(--text);line-height:1.4;margin-top:12px}
.mdet-meta{font-size:12px;color:var(--text-mut);margin-top:8px;display:flex;align-items:center;gap:8px}
.mdet-meta .mi{font-size:14px}
.mdet-divider{height:1px;background:var(--border);margin:16px 0}
.mdet-para{font-size:14px;color:var(--text-sec);line-height:1.8;margin-bottom:16px}

/* ═══ FILTER SHEET ═══ */
.filter-hdr{display:flex;align-items:center;justify-content:space-between;padding:8px var(--g) 16px}
.filter-hdr-t{font-size:16px;font-weight:700;color:var(--text)}
.filter-reset{font-size:13px;color:var(--accent);cursor:pointer;padding:8px}
.filter-sec{padding:0 var(--g) 20px}
.filter-sec-t{font-size:12px;font-weight:700;color:var(--text-mut);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:12px}
.filter-pills{display:flex;flex-wrap:wrap;gap:8px}
.filter-pill{height:36px;padding:0 16px;border-radius:var(--pill);background:var(--bg-card);border:1px solid var(--border);font-family:var(--font);font-size:12px;font-weight:600;color:var(--text-mut);cursor:pointer;white-space:nowrap;transition:all 0.15s}
.filter-pill.on{background:rgba(124,92,252,0.15);border-color:rgba(124,92,252,0.4);color:var(--accent)}
.filter-toggle-row{display:flex;align-items:center;justify-content:space-between}
.filter-toggle-label{font-size:14px;font-weight:500;color:var(--text)}
.filter-toggle{width:48px;height:28px;border-radius:var(--pill);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;position:relative;transition:background 0.2s}
.filter-toggle.on{background:var(--accent);border-color:var(--accent)}
.filter-toggle::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.3);transition:transform 0.2s}
.filter-toggle.on::after{transform:translateX(20px)}

/* ═══ PARK START SHEET ═══ */
.ps-lot-name{font-size:18px;font-weight:800;color:var(--text);padding:8px var(--g) 4px}
.ps-lot-addr{font-size:12px;color:var(--text-mut);padding:0 var(--g) 16px}
.ps-divider{height:1px;background:var(--border);margin:0 var(--g) 16px}
.ps-row{display:flex;align-items:center;gap:12px;padding:0 var(--g) 16px}
.ps-row .mi{font-size:20px;color:var(--text-mut);flex-shrink:0}
.ps-row-label{font-size:14px;font-weight:500;color:var(--text)}
.ps-memo-area{margin:0 var(--g) 16px;padding:14px 16px;border-radius:16px;background:var(--bg-card);border:1px solid var(--border);display:flex;align-items:center;gap:10px;cursor:pointer}
.ps-memo-area .mi{font-size:18px;color:var(--text-mut);flex-shrink:0}
.ps-memo-placeholder{font-size:14px;color:var(--text-mut)}
.ps-note{text-align:center;font-size:11px;color:var(--text-mut);padding:0 var(--g) 16px}
.ps-cta{padding:0 var(--g) 8px}
.ps-cancel{text-align:center;font-size:13px;color:var(--text-mut);padding:12px;cursor:pointer}

/* ═══ REVIEW SHEET ═══ */
.rv-form{padding:0 var(--g)}
.rv-form-lot{font-size:12px;color:var(--text-mut);margin-bottom:20px}
.rv-stars-input{display:flex;justify-content:center;gap:12px;margin-bottom:24px}
.rv-star-btn{background:none;border:none;cursor:pointer}
.rv-star-btn .mi{font-size:36px;color:var(--border);transition:color 0.1s}
.rv-star-btn.on .mi{color:var(--warning)}
.rv-textarea{width:100%;height:100px;border-radius:16px;background:var(--bg-card);border:1px solid var(--border);padding:14px 16px;font-family:var(--font);font-size:14px;color:var(--text);outline:none;resize:none;margin-bottom:12px}
.rv-textarea::placeholder{color:var(--text-mut)}
.rv-photo-btn{display:flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:var(--pill);background:var(--bg-card);border:1px solid var(--border);font-family:var(--font);font-size:13px;font-weight:500;color:var(--text-sec);cursor:pointer;margin-bottom:16px}
.rv-photo-btn .mi{font-size:18px;color:var(--text-mut)}

/* ═══ END CONFIRM SHEET ═══ */
.ec-body{padding:0 var(--g) 16px;text-align:center}
.ec-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px}
.ec-fare{font-size:36px;font-weight:800;color:var(--accent);margin-bottom:4px}
.ec-note{font-size:12px;color:var(--text-mut);margin-bottom:20px}
.ec-btns{display:flex;flex-direction:column;gap:8px}
.btn-end-sm{height:52px;border-radius:var(--pill);border:none;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-family:var(--font);font-size:15px;font-weight:700;cursor:pointer}
.btn-cancel-sm{height:52px;border-radius:var(--pill);border:1px solid var(--border);background:transparent;color:var(--text-sec);font-family:var(--font);font-size:15px;cursor:pointer}

/* ═══ HOME PARKING BUBBLE ═══ */
/* 駐車中バブル — 全画面共通フローティング */
.park-bubble{position:absolute;bottom:calc(var(--nav-h) + 8px);left:var(--g);z-index:500;padding:10px 14px;border-radius:999px;background:rgba(34,197,94,0.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(34,197,94,0.5);display:none;align-items:center;gap:10px;cursor:pointer;box-shadow:0 4px 20px rgba(34,197,94,0.35);transition:all 0.3s cubic-bezier(0.2,0,0,1);overflow:hidden;max-width:280px;white-space:nowrap}
.park-bubble.show{display:flex}
.park-bubble-ic{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.park-bubble-ic .mi{font-size:18px;color:#fff}
.park-bubble-content{display:flex;align-items:center;gap:10px;overflow:hidden;max-width:200px;transition:max-width 0.3s cubic-bezier(0.2,0,0,1),opacity 0.2s}
.park-bubble-title{font-size:12px;font-weight:700;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}
.park-bubble-fare{font-size:14px;font-weight:800;color:#fff;flex-shrink:0}
/* 折りたたみ状態 */
.park-bubble.collapsed{padding:10px;border-radius:50%;max-width:52px}
.park-bubble.collapsed .park-bubble-content{max-width:0;opacity:0;gap:0;padding:0}
.park-bubble.collapsed .park-bubble-ic{width:32px;height:32px}

/* ═══ NOTIFICATION BADGE ═══ */
.notif-badge{position:relative}
.notif-badge-dot{position:absolute;top:-2px;right:-2px;width:10px;height:10px;border-radius:50%;background:var(--error);border:2px solid var(--bg)}

/* ═══ SETTINGS ═══ */
.set-hdr{border-bottom:none;background:var(--surface-2)}
.set-bk{background:var(--bg-card) !important}
.set-bk .mi{color:var(--text) !important}
.set-bh-title{color:var(--text) !important}
.set-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bg);padding-bottom:32px}
.set-section{padding:0 20px;margin-top:24px}
.set-sec-title{font-size:12px;font-weight:700;color:var(--text-sec);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:10px;padding-left:4px}
.set-group{border-radius:18px;background:var(--surface);overflow:hidden;box-shadow:var(--sh-sm)}
.set-row{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;transition:background 0.1s}
.set-row:active{background:var(--surface-2)}
.set-row+.set-row{border-top:1px solid var(--surface-border)}
.set-row-ic{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.set-row-ic .mi{font-size:20px;color:#fff}
.set-ic-purple{background:linear-gradient(135deg,#7c5cfc,#5b40ff)}
.set-ic-blue{background:linear-gradient(135deg,#3b82f6,#2563eb)}
.set-ic-green{background:linear-gradient(135deg,#22c55e,#16a34a)}
.set-ic-amber{background:linear-gradient(135deg,#f59e0b,#d97706)}
.set-ic-gray{background:#9ca3af}
.set-ic-grad{background:var(--grad)}
.set-row-body{flex:1;min-width:0}
.set-row-t{font-size:15px;font-weight:600;color:var(--text)}
.set-row-s{font-size:12px;color:var(--text-sec);margin-top:1px}
.set-chev{font-size:20px;color:#c4c2d0}
.set-toggle{width:48px;height:28px;border-radius:14px;background:var(--surface-2);position:relative;cursor:pointer;transition:background 0.2s;flex-shrink:0}
.set-toggle::after{content:'';position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.15);transition:transform 0.2s}
.set-toggle.on{background:linear-gradient(135deg,#7c5cfc,#3b82f6)}
.set-toggle.on::after{transform:translateX(20px)}

/* ═══ REWARDS & BADGES ═══ */
/* Header */
.rw-hdr{background:linear-gradient(135deg,#7c5cfc,#3b82f6);padding:54px 20px 0}
.rw-nav{display:flex;align-items:center;gap:15px;padding-bottom:14px}
.rw-back{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}
.rw-back .mi{font-size:24px;color:#fff}
.rw-nav-title{flex:1;font-size:18px;font-weight:700;color:#fff}
.rw-nav-btn{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}
.rw-nav-btn .mi{font-size:24px;color:#fff}

/* Level Card */
.rw-lvl-card{margin:0 20px;padding:16px;border-radius:20px;background:linear-gradient(135deg,#7c5cfc 0%,#6366f1 50%,#3b82f6 100%);position:relative;overflow:hidden;margin-top:-1px}
.rw-lvl-card::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0.1) 0%,transparent 60%);pointer-events:none}
.rw-lvl-top{display:flex;align-items:flex-start;gap:12px;position:relative;margin-bottom:16px}
.rw-lvl-badge{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:999px;background:#ff9f29;color:#fff;font-size:13px;font-weight:700;flex-shrink:0}
.rw-lvl-badge .mi{font-size:14px}
.rw-lvl-info{flex:1;text-align:right}
.rw-lvl-exp{font-size:18px;font-weight:800;color:#fff}
.rw-lvl-remain{font-size:12px;color:rgba(255,255,255,0.75);margin-top:2px}
.rw-lvl-bar-wrap{position:relative}
.rw-lvl-bar{height:9px;border-radius:5px;background:rgba(248,250,252,0.3);overflow:hidden}
.rw-lvl-fill{height:100%;border-radius:5px;background:var(--surface);transition:width 0.6s ease}
.rw-lvl-labels{display:flex;justify-content:space-between;margin-top:6px}
.rw-lvl-labels span{font-size:12px;font-weight:600;color:#fff}

/* Badges Section */
.rw-badges-sec{padding:24px 20px 32px}
.rw-badges-title{font-size:18px;font-weight:800;color:var(--text);margin-bottom:16px}

/* Badge Card Grid — 2 columns */
.rw-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* Badge Card — shared */
.rw-card{padding:14px;border-radius:16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;position:relative;overflow:hidden}
.rw-card:active{transform:scale(0.97);transition:transform 0.15s}

/* Active (gradient) */
.rw-card-active{background:linear-gradient(145deg,#7c5cfc 0%,#6366f1 55%,#3b82f6 100%);color:#fff}
.rw-card-active .rw-card-name{color:#fff}
.rw-card-active .rw-card-desc{color:rgba(255,255,255,0.75)}
.rw-card-active .rw-card-icon{background:var(--surface)}
.rw-card-active .rw-card-icon .mi{color:#7c5cfc}

/* Locked (grey) */
.rw-card-locked{background:var(--bg-card);color:var(--text)}
.rw-card-locked .rw-card-name{color:var(--text)}
.rw-card-locked .rw-card-desc{color:var(--text-mut)}
.rw-card-locked .rw-card-icon{background:var(--bg-glass)}
.rw-card-locked .rw-card-icon .mi{color:var(--text-mut)}

/* Card Icon */
.rw-card-icon{width:41px;height:41px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rw-card-icon .mi{font-size:22px}

/* Card Info */
.rw-card-info{flex:1;min-width:0}
.rw-card-name{font-size:14px;font-weight:700;line-height:1.3}
.rw-card-desc{font-size:10px;line-height:1.3;margin-top:2px}

/* Card Tags */
.rw-card-tags{display:flex;flex-wrap:wrap;gap:4px}
.rw-card-tag{display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap}
.rw-card-tag .mi{font-size:11px}

/* Tag variants */
.rw-tag-earn{background:#ff9f29;color:#fff}
.rw-tag-earned{background:#ff9f29;color:#fff}
.rw-tag-lock{background:#94a3b8;color:#fff}
.rw-tag-locked-sm{background:#cbd5e1;color:#fff}

/* Profile rewards card */
.rw-prof-card{margin:16px var(--g) 0;padding:16px 18px;border-radius:20px;background:var(--bg-glass);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-a);display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:relative;overflow:hidden}
.rw-prof-card::before{content:'';position:absolute;inset:0;border-radius:20px;background:var(--shine);pointer-events:none}
.rw-prof-left{display:flex;align-items:center;gap:14px;position:relative}
.rw-prof-ic{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,rgba(124,92,252,0.2),rgba(59,130,246,0.2));display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rw-prof-ic .mi{font-size:24px;color:var(--accent)}
.rw-prof-title{font-size:14px;font-weight:700;color:var(--text)}
.rw-prof-sub{font-size:11px;color:var(--text-mut);margin-top:2px}

/* Badge Unlocked Modal */
.bdg-modal-card{max-width:340px;border-radius:8px;overflow:visible}
.bdg-modal-hdr{position:relative;padding:28px 20px 0;background:linear-gradient(145deg,#7c5cfc 0%,#6366f1 55%,#3b82f6 100%);text-align:center;overflow:visible}
.bdg-modal-hdr-deco{position:absolute;top:-30px;right:-30px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,0.06);pointer-events:none;overflow:hidden}
.bdg-modal-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;background:var(--surface-2);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.bdg-modal-close .mi{font-size:16px;background:linear-gradient(135deg,#7c5cfc,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.bdg-modal-content{position:relative}
.bdg-modal-title{font-size:18px;font-weight:800;color:#fff;margin-bottom:20px}
.bdg-modal-badge-wrap{position:relative;display:flex;flex-direction:column;align-items:center;margin-bottom:-50px;z-index:3}
.bdg-modal-badge-circle{width:100px;height:100px;border-radius:50%;background:linear-gradient(145deg,#f59e0b,#d97706);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(245,158,11,0.35);position:relative;z-index:2;border:4px solid rgba(255,255,255,0.3)}
.bdg-modal-badge-circle .mi{font-size:44px;color:#fff}
.bdg-modal-ribbon{position:absolute;bottom:-8px;width:120px;height:36px;background:linear-gradient(135deg,#7c3aed,#6d28d9);clip-path:polygon(0 0,100% 0,85% 100%,50% 75%,15% 100%);z-index:1}

.bdg-modal-body{padding:60px 24px 24px;text-align:center;background:var(--surface);border-radius:0 0 8px 8px;position:relative}
.bdg-modal-name{font-size:20px;font-weight:800;color:var(--text)}
.bdg-modal-cat{font-size:13px;color:#64748b;margin-top:4px}
.bdg-modal-share-label{font-size:13px;font-weight:700;color:var(--text);margin-top:20px;margin-bottom:14px}
.bdg-modal-share-row{display:flex;justify-content:center;gap:20px;margin-bottom:22px}
.bdg-modal-share-item{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}
.bdg-modal-share-item:active{transform:scale(0.95)}
.bdg-modal-share-ic{width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--surface-border);display:flex;align-items:center;justify-content:center}
.bdg-modal-share-ic .mi{font-size:20px;color:var(--text)}
.bdg-modal-share-name{font-size:11px;font-weight:600;color:var(--text)}
.bdg-modal-btn{margin-top:0;font-size:15px;height:50px}
