:root{
  --bg:#f1f5f9; --card:#ffffff; --ink:#0f172a; --muted:#64748b; --line:#e2e8f0;
  --brand:#111827; --accent:#2563eb; --accent2:#0f766e; --gold:#f59e0b;
  --green:#16a34a; --red:#dc2626; --purple:#7c3aed;
  --radius:16px; --shadow:0 10px 30px rgba(15,23,42,0.10);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;height:100%;background:#0b1220;color:var(--ink);}
body{display:flex;align-items:center;justify-content:center;padding:16px;}

/* phone frame — a mockup bezel only on wide (desktop) screens */
.phone{position:relative;width:100%;max-width:412px;height:min(880px,94vh);background:var(--bg);
  border-radius:36px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 10px #0b1220,0 0 0 12px #1f2937;
  display:flex;flex-direction:column;}

/* On real phones / the packaged app fill the whole screen — no fake bezel */
@media (max-width:560px){
  html,body{background:var(--bg);}
  body{display:block;padding:0;}
  .phone{max-width:none;width:100%;height:100vh;height:100dvh;border-radius:0;box-shadow:none;}
}

/* header */
.appbar{flex:none;background:#fff;padding:calc(env(safe-area-inset-top,0px) + 14px) 16px 12px;
  display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);z-index:5;}
.appbar .logo{width:34px;height:34px;border-radius:11px;background:linear-gradient(145deg,var(--accent),var(--accent2));
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:16px;}
.appbar .titles{flex:1;min-width:0;}
.appbar h1{margin:0;font-size:16px;font-weight:900;letter-spacing:.2px;}
.appbar .sub{font-size:11px;color:var(--muted);font-weight:600;}
.plan-chip{font-size:11px;font-weight:800;padding:5px 10px;border-radius:999px;background:#eef2ff;color:#3730a3;border:0;font-family:inherit;cursor:pointer;}
.plan-chip.combo{background:#ecfdf5;color:#065f46;}
.plan-chip.premium{background:#faf5ff;color:#6b21a8;}

/* screen area */
.screen{flex:1;position:relative;overflow:hidden;}
.view{position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:none;}
.view.active{display:block;}
.view.map-view{overflow:hidden;}
.pad{padding:16px;}
iframe#mapFrame{border:0;width:100%;height:100%;display:block;}

/* map overlay controls */
.map-fab{position:absolute;right:14px;z-index:1000;width:48px;height:48px;border-radius:16px;border:0;
  background:var(--brand);color:#fff;font-size:20px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;}
.map-fab.loc{bottom:150px;}
.map-fab.radar{bottom:206px;background:var(--purple);}
.map-fab.mode{bottom:262px;background:#0f766e;}

/* floating price widget (overlay over taxi app) */
.widget{position:absolute;left:12px;top:52px;z-index:1200;background:rgba(17,24,39,.94);color:#fff;
  border-radius:16px;padding:10px 14px;box-shadow:0 10px 26px rgba(0,0,0,.4);min-width:150px;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.08);}
.widget .w-head{font-size:11px;font-weight:800;color:#cbd5e1;display:flex;align-items:center;gap:6px;}
.widget .w-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e;}
.widget{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;min-width:0;padding:2px 4px 8px 10px;background:rgba(15,23,42,.95);}
.widget.drag{cursor:grabbing;opacity:.9;}
.widget .w-head{gap:5px;}
.widget .w-age{margin-left:auto;padding-left:8px;font-weight:600;color:#94a3b8;font-size:10px;}
.widget .w-age.old{color:#fbbf24;}
.widget .w-b{border:0;background:none;color:#94a3b8;font-size:15px;font-weight:900;width:30px;height:30px;padding:0;cursor:pointer;flex:none;}
/* КЭФ table: rows = places (📍 you, blue numbered pins as on the map),
   columns = tariffs; tabular digits so the columns line up. */
.widget .w-table{display:grid;column-gap:2px;row-gap:4px;align-items:center;padding-right:6px;font-variant-numeric:tabular-nums;}
.widget .w-th{font-size:11px;font-weight:800;color:#94a3b8;text-align:right;padding-right:5px;}
.widget .w-rl{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:13px;}
.widget .w-pin{border-radius:50%;background:#2563eb;border:1px solid #fff;color:#fff;font-size:11px;font-weight:900;}
.widget .w-c{min-width:46px;text-align:right;font-size:14px;font-weight:900;color:#475569;padding:1px 5px 1px 4px;border-radius:6px;}
.widget .w-c.up{color:#4ade80;}
.widget .w-c.best{background:#16a34a;color:#fff;}
.widget .w-msg{font-size:12px;color:#cbd5e1;font-weight:600;margin-top:4px;max-width:220px;line-height:1.3;}
.widget .w-msg:empty{display:none;}/* widget settings */
.wset{margin:4px 0 6px;padding:12px;border-radius:12px;background:#f8fafc;}
.wset .lbl{font-size:12px;font-weight:800;color:var(--muted);margin-bottom:8px;}
.wset .chips{margin-bottom:6px;}
.wset .small{margin-top:4px;}
.wperm{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;margin-bottom:10px;}
.wperm .t{font-size:13px;font-weight:800;color:#9a3412;}
.wperm .s{font-size:11.5px;color:#9a3412;opacity:.85;}
.wperm .btn{width:auto;margin:0;padding:8px 12px;white-space:nowrap;}
.ya-steps{margin:10px 0 8px;padding-left:20px;font-size:12.5px;line-height:1.45;color:var(--muted);}
.ya-steps li{margin-bottom:4px;}
.ya-steps b{color:var(--ink);}
.ya-more{margin-top:8px;font-size:13px;}
.ya-more summary{cursor:pointer;font-weight:700;padding:6px 0;}

/* menu hub rows */
.menu-row{display:flex;align-items:center;gap:14px;padding:16px;background:var(--card);border-radius:14px;
  box-shadow:var(--shadow);margin-bottom:12px;cursor:pointer;}
.menu-row .ic{width:42px;height:42px;border-radius:12px;background:#eef2ff;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;}
.menu-row .main{flex:1;} .menu-row .main .t{font-weight:800;font-size:15px;} .menu-row .main .s{font-size:12px;color:var(--muted);}
.menu-row .chev{color:#cbd5e1;font-size:20px;}
.back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--accent);font-weight:800;font-size:14px;padding:0 0 12px;cursor:pointer;}
.map-hint{position:absolute;left:12px;bottom:96px;z-index:1000;background:rgba(17,24,39,.9);color:#fff;
  font-size:11px;font-weight:600;padding:7px 12px;border-radius:12px;max-width:200px;line-height:1.3;}
.tries-badge{position:absolute;left:12px;top:12px;z-index:1000;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:6px 11px;font-size:12px;font-weight:800;box-shadow:var(--shadow);}
.tries-badge b{color:var(--accent);}

/* cards */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:14px;}
.card h2{margin:0 0 4px;font-size:16px;font-weight:900;}
.card .desc{font-size:13px;color:var(--muted);line-height:1.45;}
.section-title{font-size:13px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:6px 2px 10px;}

.stat-row{display:flex;gap:10px;margin-bottom:14px;}
.stat{flex:1;background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:13px;}
.stat .v{font-size:20px;font-weight:900;}
.stat .l{font-size:11px;color:var(--muted);font-weight:600;margin-top:2px;}
.stat .up{color:var(--green);font-size:11px;font-weight:800;}

.bar{height:10px;border-radius:999px;background:var(--line);overflow:hidden;margin-top:6px;}
.bar>i{display:block;height:100%;border-radius:999px;}

.list-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.list-row:last-child{border-bottom:0;}
.list-row .ic{width:38px;height:38px;border-radius:11px;background:#eef2ff;display:flex;align-items:center;justify-content:center;font-size:18px;flex:none;}
.list-row .main{flex:1;min-width:0;}
.list-row .main .t{font-weight:800;font-size:14px;}
.list-row .main .s{font-size:12px;color:var(--muted);}
.list-row .val{font-weight:900;font-size:14px;white-space:nowrap;}
.val.pos{color:var(--green);} .val.neg{color:var(--red);}

.btn{display:block;width:100%;border:0;border-radius:14px;padding:14px;font-size:15px;font-weight:800;
  background:var(--brand);color:#fff;box-shadow:var(--shadow);margin-top:6px;cursor:pointer;}
.btn.accent{background:linear-gradient(135deg,var(--accent),#1d4ed8);}
.btn.gold{background:linear-gradient(135deg,#f59e0b,#d97706);color:#3a2500;}
.btn.ghost{background:#eef2ff;color:#1e3a8a;box-shadow:none;}
.btn.sm{padding:9px 12px;font-size:13px;width:auto;display:inline-block;}

/* plan cards */
.plan{border:2px solid var(--line);border-radius:18px;padding:16px;margin-bottom:14px;background:#fff;position:relative;}
.plan.active{border-color:var(--accent);}
.plan .pbadge{position:absolute;top:-11px;right:14px;font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;background:var(--accent);color:#fff;}
.plan.premium .pbadge{background:var(--purple);}
.plan h3{margin:0;font-size:19px;font-weight:900;}
.plan .price{font-size:26px;font-weight:900;margin:6px 0;}
.plan .price small{font-size:13px;color:var(--muted);font-weight:700;}
.plan .psub{font-size:13px;color:var(--muted);margin-bottom:10px;}
.plan ul{list-style:none;margin:8px 0 0;padding:0;}
.plan li{font-size:13px;padding:5px 0 5px 24px;position:relative;}
.plan li:before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:900;}
.plan li.no{color:#94a3b8;} .plan li.no:before{content:'✕';color:#cbd5e1;}
/* Тарифы: current access at the top, then the key, then levels */
.sub-status .t{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.sub-status .v{font-size:17px;font-weight:900;margin-top:4px;}
.sub-status .s{font-size:12.5px;color:#9a3412;margin-top:6px;}
.sub-status.soon{border:1px solid #fed7aa;background:#fff7ed;}
.key-row{display:flex;gap:8px;margin-top:10px;align-items:stretch;}
.key-row .field{flex:1;margin:0;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em;text-transform:uppercase;}
.key-row .btn{width:auto;margin:0;padding:0 16px;white-space:nowrap;}
.tries-badge{cursor:pointer;}

/* lock overlay */
.lock{background:linear-gradient(180deg,#111827,#1f2937);color:#fff;border-radius:var(--radius);padding:20px;text-align:center;margin-bottom:14px;}
.lock .em{font-size:34px;}
.lock h2{color:#fff;margin:8px 0 4px;}
.lock p{color:#cbd5e1;font-size:13px;line-height:1.5;margin:0 0 14px;}

/* bottom tabs */
.tabs{flex:none;background:#fff;border-top:1px solid var(--line);display:flex;
  padding:8px 4px calc(env(safe-area-inset-bottom,0px) + 8px);z-index:5;}
.tab{flex:1;background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:3px;
  color:var(--muted);font-size:10px;font-weight:700;padding:4px 0;cursor:pointer;}
.tab .ti{font-size:20px;line-height:1;}
.tab.active{color:var(--accent);}

/* toast */
.toast{position:absolute;left:50%;bottom:86px;transform:translateX(-50%) translateY(20px);
  background:rgba(17,24,39,.95);color:#fff;font-size:13px;font-weight:600;padding:11px 16px;border-radius:14px;
  max-width:84%;text-align:center;opacity:0;transition:.25s;z-index:2000;pointer-events:none;box-shadow:var(--shadow);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* auth modal */
.modal{position:absolute;inset:0;background:rgba(15,23,42,.55);z-index:3000;display:none;align-items:flex-end;}
.modal.show{display:flex;}
.sheet{background:#fff;width:100%;border-radius:24px 24px 0 0;padding:22px 18px calc(env(safe-area-inset-bottom,0px) + 22px);animation:up .3s;}
@keyframes up{from{transform:translateY(100%);}to{transform:translateY(0);}}
.sheet h2{margin:0 0 6px;font-size:20px;font-weight:900;}
.sheet p{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 16px;}
.field{width:100%;border:2px solid var(--line);border-radius:14px;padding:13px 14px;font-size:16px;margin-bottom:12px;font-family:inherit;}
.field:focus{outline:none;border-color:var(--accent);}
.steps{display:flex;gap:6px;margin-bottom:16px;}
.step{flex:1;height:4px;border-radius:999px;background:var(--line);}
.step.on{background:var(--accent);}
.small{font-size:12px;color:var(--muted);text-align:center;margin-top:12px;line-height:1.5;}
.link{color:var(--accent);font-weight:700;text-decoration:none;}

.seg{display:flex;background:#eef2ff;border-radius:12px;padding:4px;margin-bottom:14px;}
.seg button{flex:1;border:0;background:none;padding:9px;border-radius:9px;font-weight:800;font-size:13px;color:var(--muted);cursor:pointer;}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12);}

.switch{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);}
.switch:last-child{border-bottom:0;}
.switch .t{font-weight:700;font-size:14px;}
.switch .s{font-size:12px;color:var(--muted);}
.toggle{width:48px;height:28px;border-radius:999px;background:var(--line);position:relative;transition:.2s;flex:none;border:0;cursor:pointer;}
.toggle.on{background:var(--green);}
.toggle:after{content:'';position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.toggle.on:after{left:23px;}

/* ===================== Driver Hub ===================== */
.hero{background:linear-gradient(140deg,var(--accent),var(--accent2));color:#fff;border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:var(--shadow);}
.hero .big{font-size:30px;font-weight:900;letter-spacing:-.5px;}
.hero .lbl{font-size:12px;font-weight:700;opacity:.85;}
.hero .row{display:flex;gap:14px;margin-top:12px;}
.hero .row>div{flex:1;} .hero .row .v{font-size:16px;font-weight:800;} .hero .row .s{font-size:11px;opacity:.85;}
.hero.neg{background:linear-gradient(140deg,#dc2626,#7c2d12);}
.trio{display:flex;gap:10px;margin-bottom:14px;}
.trio .stat{flex:1;text-align:center;} .trio .stat .v{font-size:17px;font-weight:900;} .trio .stat.pos .v{color:var(--green);} .trio .stat.neg .v{color:var(--red);}

/* progress bar for goals */
.goalbar{margin-top:10px;}
.goalbar .top{display:flex;justify-content:space-between;font-size:13px;font-weight:800;margin-bottom:6px;}
.goalbar .track{height:14px;border-radius:999px;background:var(--line);overflow:hidden;}
.goalbar .track>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),#22c55e);transition:width .5s;}
.goalbar.off .track>i{background:linear-gradient(90deg,var(--gold),#f97316);}
.goalbar .meta{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:6px;font-weight:600;}

/* category chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.chip{display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:999px;border:2px solid var(--line);background:#fff;font-weight:800;font-size:13px;cursor:pointer;}
.chip.on{border-color:var(--accent);background:#eff6ff;color:var(--accent);}
.chip .em{font-size:15px;}

/* quick add buttons */
.qadd{display:flex;gap:10px;margin-bottom:14px;}
.qadd button{flex:1;border:0;border-radius:14px;padding:14px;font-weight:900;font-size:15px;cursor:pointer;color:#fff;}
.qadd .inc{background:linear-gradient(135deg,var(--green),#15803d);}
.qadd .exp{background:linear-gradient(135deg,var(--red),#b91c1c);}
.amount{width:100%;border:2px solid var(--line);border-radius:16px;padding:16px;font-size:30px;font-weight:900;text-align:center;margin-bottom:14px;font-family:inherit;}
.amount:focus{outline:none;border-color:var(--accent);}

/* maintenance status pills */
.pill{font-size:11px;font-weight:900;padding:4px 9px;border-radius:999px;}
.pill.ok{background:#dcfce7;color:#15803d;} .pill.soon{background:#fef3c7;color:#b45309;} .pill.overdue{background:#fee2e2;color:#b91c1c;}
.pill.new{background:#e2e8f0;color:#475569;}

/* motivation mode picker */
.modes{display:flex;gap:8px;margin-bottom:14px;}
.mode{flex:1;border:2px solid var(--line);border-radius:14px;padding:12px 8px;text-align:center;cursor:pointer;background:#fff;}
.mode.on{border-color:var(--accent);background:#eff6ff;}
.mode .em{font-size:22px;} .mode .t{font-weight:900;font-size:13px;margin-top:4px;} .mode .s{font-size:10.5px;color:var(--muted);margin-top:2px;}
.mode.hard.on{border-color:var(--red);background:#fef2f2;}

.msg-card{border-radius:var(--radius);padding:16px;margin-bottom:14px;color:#fff;box-shadow:var(--shadow);}
.msg-card.calm{background:linear-gradient(135deg,#0ea5e9,#2563eb);}
.msg-card.push{background:linear-gradient(135deg,#f59e0b,#ea580c);}
.msg-card.hard{background:linear-gradient(135deg,#dc2626,#7f1d1d);}
.msg-card .mt{font-weight:900;font-size:16px;margin-bottom:4px;} .msg-card .mb{font-size:13px;line-height:1.5;opacity:.95;}

.daychip{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:10px;border:2px solid var(--line);font-weight:800;font-size:12px;cursor:pointer;background:#fff;margin:0 4px 4px 0;}
.daychip.on{border-color:var(--accent);background:#eff6ff;color:var(--accent);}
.btn.big{padding:16px;font-size:17px;}
.del-x{border:0;background:none;color:var(--red);font-weight:900;font-size:18px;cursor:pointer;padding:0 4px;}

/* alarm overlay */
.alarm-overlay{position:absolute;inset:0;z-index:4000;display:none;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 30%,#b91c1c,#450a0a);text-align:center;padding:24px;animation:pulseBg 1s infinite alternate;}
.alarm-overlay.show{display:flex;}
@keyframes pulseBg{from{background:radial-gradient(circle at 50% 30%,#b91c1c,#450a0a);}to{background:radial-gradient(circle at 50% 30%,#ef4444,#7f1d1d);}}
.alarm-card{color:#fff;}
.alarm-emoji{font-size:72px;animation:shake .5s infinite;}
@keyframes shake{0%,100%{transform:rotate(-12deg);}50%{transform:rotate(12deg);}}
.alarm-title{font-size:26px;font-weight:900;margin-top:8px;}
.alarm-sub{font-size:14px;opacity:.9;margin:8px 0 22px;line-height:1.5;}
.alarm-card .btn{width:100%;margin-bottom:10px;}

/* ===================== Onboarding / feature tour ===================== */
.ob{position:absolute;inset:0;z-index:3500;display:none;background:var(--bg);}
.ob.show{display:flex;flex-direction:column;}
.ob-inner{display:flex;flex-direction:column;height:100%;width:100%;}
.ob-progress{display:flex;gap:6px;padding:16px 18px 4px;}
.ob-progress i{flex:1;height:5px;border-radius:999px;background:var(--line);transition:.3s;}
.ob-progress i.on{background:var(--accent);}
.ob-body{flex:1;overflow-y:auto;padding:14px 18px;}
.ob-nav{padding:12px 18px calc(env(safe-area-inset-bottom,0px) + 16px);display:flex;gap:10px;border-top:1px solid var(--line);background:var(--card);}
.ob-nav .btn{flex:1;margin:0;}
.ob-hero{text-align:center;padding:22px 8px 6px;}
.ob-hero .ic{font-size:60px;line-height:1;}
.ob-hero h1{font-size:24px;font-weight:900;margin:14px 0 8px;}
.ob-hero p{font-size:14px;color:var(--muted);line-height:1.55;margin:0;}
.ob-field-label{font-size:12px;font-weight:800;color:var(--muted);margin:14px 2px 6px;text-transform:uppercase;letter-spacing:.3px;}

/* feature tour card with mini demo */
.tour-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:14px;}
.tour-card .th{display:flex;align-items:center;gap:12px;}
.tour-card .th .em{font-size:30px;}
.tour-card .th h3{margin:0;font-size:17px;font-weight:900;}
.tour-card .th .s{font-size:12px;color:var(--muted);}
.tour-card p{font-size:13.5px;color:var(--ink);line-height:1.5;margin:12px 0 0;}
.demo{margin-top:14px;border-radius:14px;background:#f8fafc;border:1px solid var(--line);padding:14px;}
.demo-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;padding:5px 0;}
.demo-bar{height:12px;border-radius:999px;background:var(--line);overflow:hidden;margin-top:6px;}
.demo-bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),#22c55e);animation:demoFill 1.4s ease forwards;}
@keyframes demoFill{from{width:6%;}to{width:63%;}}
.demo-note{background:linear-gradient(135deg,#f59e0b,#ea580c);color:#fff;border-radius:12px;padding:12px;font-size:13px;font-weight:700;margin-top:12px;line-height:1.4;}
.demo-pins{display:flex;gap:8px;margin-top:8px;font-size:22px;}

/* ===================== Смена · план дня · быстрый ввод (v4) ===================== */
.shiftcard{padding:14px 16px;}
.shiftcard .sh-row{display:flex;align-items:center;gap:10px;}
.shiftcard .sh-main{flex:1;min-width:0;}
.shiftcard .sh-t{font-weight:900;font-size:15px;}
.shiftcard .sh-s{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.4;}
.shiftcard .sh-btns{display:flex;gap:8px;margin-top:12px;}
.shiftcard .sh-btns .btn{flex:1;margin:0;padding:12px 8px;font-size:14px;}
.shiftcard.on{border-left:5px solid var(--green);}
.shiftcard.paused{border-left:5px solid var(--gold);}
.plancard{cursor:pointer;}
.plancard .pl-head{display:flex;justify-content:space-between;align-items:baseline;font-weight:800;font-size:13px;color:var(--muted);}
.plancard .pl-head b{font-size:24px;color:var(--ink);font-weight:900;}
.plancard .pl-row{display:flex;gap:8px;margin-top:12px;}
.plancard .pl-row>div{flex:1;min-width:0;}
.plancard .pl-row b{display:block;font-size:17px;font-weight:900;}
.plancard .pl-row span{display:block;font-size:11px;color:var(--muted);font-weight:600;line-height:1.3;margin-top:2px;}
.plancard .pl-foot{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);font-weight:700;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);}
.plancard .pl-chg{font-size:12px;font-weight:800;margin-top:6px;color:var(--muted);}
.plancard .pl-chg .up{color:var(--red);} .plancard .pl-chg .down{color:var(--green);}
.plancard.met .pl-head b{color:var(--green);}
.gstats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}
.gstats>div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px;}
.gstats b{display:block;font-size:16px;font-weight:900;}
.gstats span{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-top:2px;line-height:1.3;}
.gpreview{background:#eff6ff;border-radius:12px;padding:12px;font-size:14px;margin:4px 0 14px;line-height:1.45;}
.gpreview .muted{color:var(--muted);font-size:12px;} .gpreview .neg{color:var(--red);font-weight:800;}
.chip input[type=date]{border:0;background:transparent;font:inherit;color:inherit;padding:0;max-width:130px;}
.daychips{margin-top:-4px;}
.list-row.tap{cursor:pointer;}
.list-row .del-x{margin-left:4px;font-size:15px;white-space:nowrap;}
.del-x.armed{background:var(--red);color:#fff;border-radius:8px;padding:4px 8px;font-size:12px;}
.btn.armed{background:#fee2e2;color:#b91c1c;}
.sheet{max-height:88vh;overflow-y:auto;}
.day-sum{display:flex;gap:8px;margin-top:6px;}
.day-sum>div{flex:1;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center;}
.day-sum b{display:block;font-size:16px;font-weight:900;} .day-sum span{font-size:11px;color:var(--muted);font-weight:600;}
.day-sh{font-size:12px;color:var(--muted);font-weight:700;line-height:1.6;margin-bottom:6px;}
.res-big{font-size:34px;font-weight:900;text-align:center;margin-top:10px;color:var(--green);}
.res-sub{font-size:13px;color:var(--muted);text-align:center;font-weight:700;margin-top:4px;}
.undo-bar{position:absolute;left:12px;right:12px;bottom:86px;z-index:2100;display:flex;align-items:center;gap:10px;
  background:rgba(17,24,39,.96);color:#fff;border-radius:14px;padding:10px 12px 10px 16px;font-size:13px;font-weight:700;
  box-shadow:var(--shadow);opacity:0;transform:translateY(20px);transition:.25s;pointer-events:none;}
.undo-bar.show{opacity:1;transform:translateY(0);pointer-events:auto;}
.undo-bar span{flex:1;} .undo-bar button{border:0;background:#fbbf24;color:#3a2500;font-weight:900;border-radius:10px;padding:9px 12px;font-size:13px;}

/* ===================== city (v6) ===================== */
.city-chip{position:absolute;top:12px;right:12px;z-index:1000;display:flex;align-items:center;gap:6px;max-width:calc(100% - 150px);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font:inherit;font-size:13px;color:var(--ink);
  box-shadow:var(--shadow);cursor:pointer;}
.city-chip b{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.city-chip span{color:var(--muted);font-weight:700;white-space:nowrap;} .city-chip .pin{color:inherit;}
.city-chip .chev{font-size:11px;}
.city-note{position:absolute;top:58px;right:12px;left:12px;z-index:1000;display:flex;align-items:center;gap:10px;
  background:rgba(17,24,39,.94);color:#fff;border-radius:12px;padding:10px 12px;font-size:13px;font-weight:700;
  opacity:0;transform:translateY(-8px);transition:.25s;pointer-events:none;}
.city-note.show{opacity:1;transform:none;pointer-events:auto;}
.city-note span{flex:1;} .city-note button{border:0;background:#fbbf24;color:#3a2500;font-weight:900;border-radius:9px;padding:7px 10px;font-size:12px;}
.city-search{margin-top:10px;}
.city-geo{display:flex;align-items:center;gap:10px;width:100%;border:0;background:#eff6ff;color:var(--accent);font:inherit;
  font-weight:800;font-size:14px;border-radius:12px;padding:12px;margin:10px 0 4px;text-align:left;cursor:pointer;}
.city-country{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:14px 2px 4px;}
.city-row{display:flex;align-items:center;gap:10px;width:100%;border:0;border-bottom:1px solid var(--line);background:none;
  font:inherit;font-size:15px;color:var(--ink);padding:12px 4px;text-align:left;cursor:pointer;}
.city-row span{flex:1;} .city-row em{font-style:normal;font-size:12px;color:var(--muted);font-weight:700;}
.city-row em.has{color:var(--green);} .city-row.on{font-weight:900;} .city-row.on::after{content:'✓';color:var(--accent);font-weight:900;}
.ev-day{font-size:12px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:14px 2px 2px;}
.ev-day:first-child{margin-top:4px;}
.ev-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.ev-head .chips{margin:0;flex:1;}
.ev-city{border:0;background:none;color:var(--accent);font:inherit;font-weight:800;font-size:13px;cursor:pointer;white-space:nowrap;}

/* ===================== commission (v5) ===================== */
.feecard{cursor:pointer;}
.feecard.warn{border-left:5px solid var(--gold);background:#fffbeb;}
.feeline{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:10px 14px;margin:0 0 12px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;}
.feeline span{flex:1;min-width:0;} .feeline b{color:var(--ink);font-size:15px;font-weight:900;}
.feeline em{font-style:normal;color:var(--accent);font-size:12px;white-space:nowrap;}
.hero .fee-sub{font-size:12px;font-weight:700;opacity:.85;margin-top:8px;}
.day-list .list-row .val{text-align:right;}
.list-row .val .fare{font-size:11px;font-weight:600;color:var(--muted);text-align:right;margin-top:2px;white-space:nowrap;}
.fee-now{margin-top:10px;font-size:13px;color:var(--muted);font-weight:700;}
.fee-now b{color:var(--ink);}
.fee-hint{background:#fffbeb;border-radius:10px;padding:9px 12px;font-size:13px;margin:12px 0 4px;}
label.fl{display:block;position:relative;z-index:1;font-size:13px;font-weight:800;color:var(--ink);margin:14px 0 6px 2px;}
.fee-inp{margin-top:0 !important;font-size:26px !important;padding:12px !important;}
.sticky-save{position:sticky;bottom:0;z-index:2;box-shadow:0 -10px 18px rgba(255,255,255,.95);}
.fee-how{display:block;width:100%;border:0;background:#eff6ff;color:var(--accent);font-weight:800;font-size:14px;
  border-radius:12px;padding:11px;margin-top:10px;text-align:left;}
.fee-step{margin-top:12px;}
.fee-step .fs-t{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.4;margin-bottom:8px;}
.fee-step .fs-t i{flex:0 0 24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-style:normal;
  font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center;}
.fee-step img{display:block;width:100%;max-width:340px;margin:0 auto;border-radius:14px;border:1px solid var(--line);}
.fee-res{margin-top:12px;text-align:center;font-size:13px;line-height:1.5;}
.fee-res .fee-big{font-size:32px;font-weight:900;color:var(--accent);}
.fee-res .neg{color:var(--red);font-weight:700;text-align:left;}
.fee-res .warn{color:#b45309;font-weight:700;margin-top:4px;}
.farechips{margin:-4px 0 0;}
.amt-hint{font-size:13px;color:var(--muted);margin:6px 2px 8px;min-height:0;}
.amt-hint:empty{display:none;}