:root{
    --asphalt:#15171a;
    --asphalt-2:#1d2024;
    --concrete:#efece4;
    --concrete-2:#e6e1d4;
    --paper:#fbfaf6;
    --ink:#15171a;
    --muted:#6c6f6a;
    --muted-2:#9a9d97;
    --road:#f5c518;
    --road-dark:#c99e0e;
    --fuel:#ff6a3d;
    --fuel-dark:#e14f22;
    --teal:#12726e;
    --ok:#1f9d55;
    --ok-bg:#e7f6ec;
    --queue:#d9a400;
    --queue-bg:#fbf1cf;
    --low:#ff8a3d;
    --low-bg:#ffedde;
    --bad:#e5484d;
    --bad-bg:#fbe4e4;
    --line-dashed: repeating-linear-gradient(to bottom, var(--fuel) 0 22px, transparent 22px 40px);
    --shadow: 0 20px 40px -20px rgba(0,0,0,.35);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background:var(--concrete);color:var(--ink);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;}
  h1,h2,h3{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.02em;margin:0;}
  .mono{font-family:'IBM Plex Mono',monospace;}
  a{color:inherit;text-decoration:none;}
  svg{display:block;max-width:100%;}
  .wrap{max-width:1220px;margin:0 auto;padding:0 28px;}
  .eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fuel-dark);display:flex;align-items:center;gap:10px;margin-bottom:12px;}
  .eyebrow::before{content:"";width:20px;height:2px;background:var(--fuel);display:block;}
  section{position:relative;padding:64px 0;}
  .section-card{background:var(--paper);border:1px solid var(--concrete-2);border-radius:20px;padding:36px;margin:0 auto 24px;max-width:1220px;}
  .btn{display:inline-flex;align-items:center;gap:8px;background:var(--fuel);color:#fff;font-weight:600;font-size:13.5px;padding:10px 18px;border-radius:999px;border:none;cursor:pointer;transition:transform .15s cubic-bezier(.34,1.56,.64,1), background .15s ease, box-shadow .15s ease;font-family:'Inter',sans-serif;position:relative;overflow:hidden;}
  .btn:hover{background:var(--fuel-dark);transform:translateY(-1px);box-shadow:0 8px 18px -8px rgba(225,79,34,.55);}
  .btn:active{transform:translateY(0) scale(.95);}
  .btn-ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);pointer-events:none;animation:ripple .55s ease-out forwards;}
  .btn-secondary .btn-ripple{background:rgba(255,106,61,.35);}
  .btn-secondary{background:var(--concrete);color:var(--ink);border:1px solid var(--concrete-2);}
  .btn-secondary:hover{border-color:var(--fuel);color:var(--fuel-dark);}
  .btn-secondary.is-on{background:var(--ink);color:#fff;border-color:var(--ink);}

  /* ---------- animation system ---------- */
  @keyframes fadeInUp{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:translateY(0);}}
  @keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
  @keyframes popIn{0%{opacity:0;transform:scale(.85);}70%{opacity:1;transform:scale(1.04);}100%{transform:scale(1);}}
  @keyframes pinDrop{0%{opacity:0;transform:translateY(-14px) scale(.4);}60%{opacity:1;transform:translateY(2px) scale(1.15);}100%{transform:translateY(0) scale(1);}}
  @keyframes ringPulse{0%{transform:scale(.9);opacity:.55;}100%{transform:scale(2.1);opacity:0;}}
  @keyframes dashMove{to{stroke-dashoffset:-80;}}
  @keyframes shimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}
  @keyframes toastIn{from{opacity:0;transform:translateY(10px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}
  @keyframes countBlink{0%{opacity:.4;}100%{opacity:1;}}
  @keyframes ripple{from{transform:scale(0);opacity:.45;}to{transform:scale(2.6);opacity:0;}}
  @keyframes spin{to{transform:rotate(360deg);}}
  @keyframes ping{0%{transform:scale(1);opacity:.5;}100%{transform:scale(2.4);opacity:0;}}
  @keyframes bounceIn{0%{opacity:0;transform:scale(.5);}60%{opacity:1;transform:scale(1.12);}100%{transform:scale(1);}}
  @keyframes flashZoom{0%{opacity:0;}30%{opacity:.35;}100%{opacity:0;}}
  @keyframes wiggle{0%,100%{transform:rotate(0);}25%{transform:rotate(-4deg);}75%{transform:rotate(4deg);}}
  @keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-5px);}}

  .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1);}
  .reveal.in-view{opacity:1;transform:translateY(0);}

  .load-in{animation:fadeInUp .6s cubic-bezier(.16,1,.3,1) both;}

  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
    .reveal{opacity:1;transform:none;}
  }

  /* route rail signature */
  .route-rail{position:fixed;left:22px;top:0;bottom:0;width:2px;background:var(--line-dashed);background-size:2px 40px;opacity:.5;z-index:5;pointer-events:none;}
  .route-pin{position:fixed;left:14px;top:0;width:18px;height:18px;border-radius:50% 50% 50% 0;background:var(--fuel);border:2px solid var(--paper);transform:rotate(-45deg);z-index:6;box-shadow:0 3px 8px rgba(0,0,0,.25);pointer-events:none;}
  @media (max-width:900px){ .route-rail,.route-pin{display:none;} }

  /* header */
  header{position:sticky;top:0;z-index:50;background:rgba(251,250,246,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--concrete-2);transition:box-shadow .25s ease;}
  header.scrolled{box-shadow:0 12px 24px -18px rgba(0,0,0,.28);}
  .scroll-progress{position:absolute;left:0;bottom:-2px;height:2px;width:0%;background:linear-gradient(90deg,var(--road),var(--fuel));transition:width .1s linear;}
  .to-top{position:fixed;right:22px;bottom:26px;width:46px;height:46px;border-radius:50%;background:var(--ink);color:var(--road);border:none;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);opacity:0;transform:translateY(16px) scale(.8);pointer-events:none;transition:opacity .25s ease, transform .25s cubic-bezier(.34,1.56,.64,1);z-index:60;}
  .to-top.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
  .to-top:hover{transform:translateY(-3px) scale(1.06);}
  .to-top:active{transform:translateY(0) scale(.92);}
  .nav{display:flex;align-items:center;gap:26px;padding:14px 0;color:var(--ink);}
  .logo{display:flex;align-items:center;gap:8px;font-family:'Oswald',sans-serif;font-weight:600;font-size:18px;letter-spacing:.02em;flex:none;}
  .logo span{display:inline-block;transition:transform .3s cubic-bezier(.34,1.56,.64,1);}
  .logo:hover span{transform:rotate(-8deg) scale(1.06);}
  .header-city{flex:1;max-width:340px;position:relative;}
  .header-city__row{display:flex;gap:0;background:var(--concrete);border:1px solid var(--concrete-2);border-radius:10px;padding:4px;}
  .header-city__row input{flex:1;border:none;background:transparent;padding:9px 10px;font-size:13.5px;outline:none;font-family:'Inter',sans-serif;color:var(--ink);}
  .header-city__row .btn{padding:8px 14px;font-size:12.5px;}
  .city-suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--paper);border:1px solid var(--concrete-2);border-radius:10px;box-shadow:var(--shadow);z-index:10;overflow:hidden;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s ease, transform .18s ease;}
  .city-suggest.show{opacity:1;transform:translateY(0);pointer-events:auto;}
  .city-suggest button{width:100%;text-align:left;border:none;background:none;padding:10px 14px;font-size:13.5px;cursor:pointer;font-family:'Inter',sans-serif;transition:background .12s ease, padding-left .12s ease;}
  .city-suggest button:hover{background:var(--concrete);padding-left:18px;}
  .topnav{display:flex;gap:22px;list-style:none;margin:0 0 0 auto;padding:0;font-size:14px;font-weight:500;}
  .topnav a{color:var(--muted);position:relative;padding:6px 0;}
  .topnav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--fuel);transition:width .2s ease;}
  .topnav a:hover{color:var(--ink);}
  .topnav a:hover::after{width:100%;}
  .burger{display:none;}
  @media (max-width:920px){ .topnav{display:none;} .header-city{max-width:none;} }

  /* breadcrumbs + hero */
  .breadcrumbs{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted-2);margin-bottom:18px;display:flex;gap:6px;flex-wrap:wrap;}
  .breadcrumbs a:hover{color:var(--fuel-dark);}
  .seo-hero{padding-top:44px;}
  .seo-hero h1{font-size:clamp(30px,4vw,46px);line-height:1.05;margin:6px 0 16px;}
  .hero-lead{font-size:15.5px;line-height:1.65;color:var(--muted);max-width:70ch;margin:0 0 26px;}

  .summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:18px;}
  @media (max-width:900px){ .summary-grid{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:520px){ .summary-grid{grid-template-columns:repeat(2,1fr);} }
  .summary-grid div{background:var(--concrete);border:1px solid var(--concrete-2);border-radius:12px;padding:14px;text-align:center;transition:transform .2s ease;}
  .summary-grid div:hover{transform:translateY(-2px);}
  .summary-grid b{display:block;font-family:'Oswald',sans-serif;font-size:22px;transition:transform .2s cubic-bezier(.34,1.56,.64,1);}
  .summary-grid b.tick{transform:scale(1.18);}
  .summary-grid span{font-size:10.5px;font-family:'IBM Plex Mono',monospace;color:var(--muted-2);text-transform:uppercase;letter-spacing:.04em;}

  .data-quality{background:var(--low-bg);border:1px solid var(--low);border-left:4px solid var(--low);color:#8a4210;border-radius:12px;padding:12px 16px;font-size:13px;margin-bottom:18px;animation:pulseBorder 2.4s ease-in-out infinite;}
  @keyframes pulseBorder{0%,100%{border-left-color:var(--low);}50%{border-left-color:var(--bad);}}
  @media (prefers-reduced-motion: reduce){ .data-quality{animation:none;} }
  .hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px;}

  .best-box{background:var(--concrete);border:1px solid var(--concrete-2);border-radius:16px;padding:20px;}
  .panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
  .panel-head.compact h2{font-size:17px;}
  .live-dot{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ok);position:relative;padding-left:16px;}
  .live-dot::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--ok);animation:pulse 1.6s infinite;}
  .live-dot::after{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--ok);animation:ping 1.6s ease-out infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
  @media (prefers-reduced-motion: reduce){ .live-dot::before, .live-dot::after{animation:none;} }
  .recommend-list{display:flex;flex-direction:column;gap:8px;}
  .recommend-card{text-align:left;background:var(--paper);border:1px solid var(--concrete-2);border-radius:12px;padding:12px 14px;cursor:pointer;font-family:'Inter',sans-serif;transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) both;}
  .recommend-card:hover{border-color:var(--fuel);transform:translateY(-2px);box-shadow:0 10px 20px -14px rgba(0,0,0,.3);}
  .recommend-card:active{transform:translateY(0) scale(.98);}
  .recommend-card strong{display:block;font-size:14px;}
  .recommend-card span{display:block;font-size:12.5px;color:var(--muted);margin-top:3px;}
  .recommend-card small{display:block;font-size:11px;color:var(--muted-2);margin-top:4px;font-family:'IBM Plex Mono',monospace;}

  /* map stage */
  .map-stage{padding-top:20px;padding-bottom:20px;}
  .map-card{background:var(--asphalt);border-radius:20px;padding:16px;box-shadow:var(--shadow);}
  .map-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
  .map-toolbar .btn-secondary{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.14);}
  .map-toolbar .btn-secondary:hover{border-color:var(--road);color:var(--road);}
  .map-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
  .map-filters select{
    background:var(--asphalt-2);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:8px;
    padding:8px 10px;font-size:13px;font-family:'Inter',sans-serif;
  }
  .map-status{margin-bottom:10px;}
  .chip{font-family:'IBM Plex Mono',monospace;font-size:12px;padding:7px 13px;border-radius:999px;border:1.5px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#cfd1cb;cursor:pointer;transition:all .15s ease, transform .1s ease;}
  .chip:active{transform:scale(.93);}
  .chip.is-active{animation:bounceIn .35s cubic-bezier(.34,1.56,.64,1);}
  .chip.is-active, .chip:hover{border-color:var(--fuel);color:var(--fuel);}
  .chip[data-status="yes"].is-active{border-color:var(--ok);color:var(--ok);background:rgba(31,157,85,.12);}
  .chip[data-status="queue"].is-active{border-color:var(--queue);color:var(--queue);background:rgba(217,164,0,.12);}
  .chip[data-status="low"].is-active{border-color:var(--low);color:var(--low);background:rgba(255,138,61,.12);}
  .chip[data-status="no"].is-active{border-color:var(--bad);color:var(--bad);background:rgba(229,72,77,.12);}
  .map-checks{display:flex;gap:18px;color:#cfd1cb;font-size:12.5px;margin-bottom:10px;}
  .map-checks label{display:flex;align-items:center;gap:6px;}

  #map{position:relative;border-radius:14px;overflow:hidden;min-height:600px;background:#101215;}
  #map svg{width:100%;height:100%;display:block;}
  #roadGrid line{animation:dashMove 4s linear infinite;}
  @media (prefers-reduced-motion: reduce){ #roadGrid line{animation:none;} }
  .map-legend{position:absolute;left:14px;bottom:14px;background:rgba(29,32,36,.88);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 12px;color:#cfd1cb;font-size:11.5px;font-family:'IBM Plex Mono',monospace;display:flex;gap:12px;}
  .map-legend span{display:flex;align-items:center;gap:5px;}
  .dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
  .pin{cursor:pointer;transform-origin:center;animation:pinDrop .5s cubic-bezier(.34,1.56,.64,1) both;transition:filter .15s ease;}
  .pin:hover{filter:brightness(1.25);}
  .pin .core{transition:r .15s ease;}
  .pin:hover .core{r:9;}
  .pin .ring{transform-box:fill-box;transform-origin:center;}
  .pin.is-yes .ring{animation:ringPulse 2.4s ease-out infinite;}
  .pin-flash{pointer-events:none;animation:flashZoom .6s ease-out;transform-box:fill-box;transform-origin:center;}
  @media (prefers-reduced-motion: reduce){ .pin{animation:none;} .pin.is-yes .ring{animation:none;opacity:.18;} .pin-flash{animation:none;display:none;} }
  .wiggle-once{animation:wiggle .4s ease-in-out;}
  .map-tooltip{
    position:absolute;pointer-events:none;background:var(--paper);color:var(--ink);border-radius:10px;
    padding:8px 12px;font-size:12px;box-shadow:var(--shadow);z-index:8;opacity:0;transform:translate(-50%,-100%) scale(.9);
    transition:opacity .15s ease, transform .15s ease;white-space:nowrap;
  }
  .map-tooltip.show{opacity:1;transform:translate(-50%,-112%) scale(1);}
  .map-tooltip b{display:block;font-size:12.5px;}
  .map-tooltip span{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);}
  #routeLine{stroke-dasharray:14 10;animation:dashMove 1.2s linear infinite;}
  @media (prefers-reduced-motion: reduce){ #routeLine{animation:none;} }
  .route-marker{animation:popIn .4s cubic-bezier(.34,1.56,.64,1) both, floatY 1.8s ease-in-out .4s infinite;transform-box:fill-box;transform-origin:center;}
  .notice{margin-top:10px;font-size:12px;color:#9a9d97;font-family:'IBM Plex Mono',monospace;transition:opacity .2s ease;}

  /* route box */
  .route-box{display:none;}
  .route-box.show{display:block;animation:fadeInUp .35s cubic-bezier(.16,1,.3,1) both;}
  .route-fields{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
  .route-fields input{flex:1;min-width:200px;background:var(--concrete);border:1px solid var(--concrete-2);border-radius:10px;padding:11px 13px;font-size:13.5px;font-family:'Inter',sans-serif;transition:box-shadow .15s ease;}
  .route-fields input:focus{outline:none;box-shadow:0 0 0 3px rgba(255,106,61,.18);}

  /* content grid */
  .content-grid{display:grid;grid-template-columns:300px 1fr;gap:24px;align-items:start;max-width:1220px;margin:0 auto 24px;padding:0 28px;}
  @media (max-width:920px){ .content-grid{grid-template-columns:1fr;} }
  .details-panel{background:var(--paper);border:1px solid var(--concrete-2);border-radius:20px;padding:24px;position:sticky;top:90px;overflow:hidden;}
  .details-body{animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) both;}
  .details-empty b{display:block;font-size:14.5px;margin-bottom:6px;}
  .details-empty span{font-size:13px;color:var(--muted);}
  .details-body .st-badge{display:inline-flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;padding:5px 10px;border-radius:999px;margin-bottom:10px;}
  .details-body h3{font-size:18px;text-transform:none;letter-spacing:0;margin-bottom:4px;}
  .details-body .addr{font-size:13px;color:var(--muted);margin-bottom:14px;}
  .details-body .fuel-rows div{display:flex;justify-content:space-between;font-size:13.5px;padding:8px 0;border-bottom:1px solid var(--concrete-2);}
  .details-body .meta{margin-top:14px;font-size:12px;color:var(--muted-2);font-family:'IBM Plex Mono',monospace;}
  .details-body .btn{margin-top:16px;width:100%;justify-content:center;}

  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap;}
  .section-head h2{font-size:22px;}
  .small-link{font-size:12.5px;font-family:'IBM Plex Mono',monospace;color:var(--fuel-dark);}

  .station-list{display:flex;flex-direction:column;gap:10px;}
  .station-card{background:var(--concrete);border:1px solid var(--concrete-2);border-radius:14px;padding:16px 18px;cursor:pointer;transition:border-color .15s ease, transform .15s ease;animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) both;}
  .station-card:hover, .station-card.sel{border-color:var(--fuel);transform:translateX(3px);}
  .station-card:active{transform:translateX(3px) scale(.99);}
  .station-main{display:flex;justify-content:space-between;align-items:center;gap:10px;}
  .station-main strong{font-size:15px;}
  .st-tag{font-family:'IBM Plex Mono',monospace;font-size:11.5px;padding:4px 10px;border-radius:999px;white-space:nowrap;transition:transform .15s ease;}
  .station-card:hover .st-tag{transform:scale(1.05);}
  .st-tag.yes{background:var(--ok-bg);color:var(--ok);}
  .st-tag.queue{background:var(--queue-bg);color:#8a6c00;}
  .st-tag.low{background:var(--low-bg);color:#a34c14;}
  .st-tag.no{background:var(--bad-bg);color:var(--bad);}
  .station-card p{font-size:13px;color:var(--muted);margin:8px 0 6px;}
  .station-card small{font-size:11.5px;color:var(--muted-2);font-family:'IBM Plex Mono',monospace;}

  /* landing links */
  .landing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
  @media (max-width:900px){ .landing-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .landing-grid{grid-template-columns:1fr;} }
  .landing-grid h3{font-size:14px;text-transform:none;letter-spacing:0;font-weight:700;margin-bottom:12px;color:var(--ink);}
  .link-cloud{display:flex;flex-wrap:wrap;gap:8px;}
  .link-cloud a{font-size:12.5px;background:var(--concrete);border:1px solid var(--concrete-2);border-radius:999px;padding:6px 12px;color:var(--muted);transition:transform .15s cubic-bezier(.34,1.56,.64,1), border-color .15s ease, color .15s ease;display:inline-block;}
  .link-cloud a:hover{border-color:var(--fuel);color:var(--fuel-dark);transform:translateY(-2px) scale(1.05);}

  /* stats */
  .stats-kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:22px;}
  @media (max-width:900px){ .stats-kpi-grid{grid-template-columns:repeat(3,1fr);} }
  .stats-kpi{background:var(--concrete);border:1px solid var(--concrete-2);border-radius:12px;padding:14px;text-align:center;transition:transform .2s ease, box-shadow .2s ease;}
  .stats-kpi:hover{transform:translateY(-3px);box-shadow:0 10px 20px -16px rgba(0,0,0,.3);}
  .stats-kpi b{display:block;font-family:'Oswald',sans-serif;font-size:22px;}
  .stats-kpi span{font-size:10.5px;font-family:'IBM Plex Mono',monospace;color:var(--muted-2);}
  .stats-kpi.is-green b{color:var(--ok);}
  .stats-kpi.is-yellow b{color:var(--queue);}
  .stats-kpi.is-orange b{color:var(--low);}
  .stats-kpi.is-red b{color:var(--bad);}
  .stats-note{background:var(--concrete);border-left:3px solid var(--fuel);border-radius:8px;padding:12px 16px;font-size:13px;color:var(--muted);margin-bottom:22px;}
  .stats-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;}
  @media (max-width:900px){ .stats-layout{grid-template-columns:1fr;} }
  .stats-table-wrap{overflow-x:auto;}
  .stats-table{width:100%;border-collapse:collapse;font-size:13px;}
  .stats-table th{text-align:left;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted-2);text-transform:uppercase;padding:8px 10px;border-bottom:1px solid var(--concrete-2);}
  .stats-table td{padding:9px 10px;border-bottom:1px solid var(--concrete-2);}
  .stats-table td.ok{color:var(--ok);}
  .stats-table td.warn{color:#8a6c00;}
  .stats-table td.low{color:#a34c14;}
  .stats-table td.bad{color:var(--bad);}
  .stats-table-card h3{font-size:15px;text-transform:none;letter-spacing:0;margin-bottom:14px;}
  .stats-side{display:flex;flex-direction:column;gap:16px;}
  .stats-table-card.compact{background:var(--concrete);border:1px solid var(--concrete-2);border-radius:14px;padding:16px;}
  .stats-rating{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
  .stats-rating li{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;border-bottom:1px solid var(--concrete-2);}

  /* seo + faq */
  .seo-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
  @media (max-width:800px){ .seo-columns{grid-template-columns:1fr;} }
  .seo-columns p{font-size:14.5px;line-height:1.75;color:var(--muted);margin:0 0 14px;}
  .faq-list details{border-bottom:1px solid var(--concrete-2);padding:16px 0;transition:background .2s ease;}
  .faq-list summary{cursor:pointer;font-weight:600;font-size:15.5px;list-style:none;display:flex;justify-content:space-between;align-items:center;}
  .faq-list summary:hover{color:var(--fuel-dark);}
  .faq-list .plus{display:inline-block;color:var(--fuel);font-family:'Oswald',sans-serif;font-size:20px;transition:transform .25s cubic-bezier(.34,1.56,.64,1);flex:none;margin-left:14px;}
  .faq-list details[open] .plus{transform:rotate(135deg);}
  .faq-list summary::-webkit-details-marker{display:none;}
  .faq-list p{font-size:13.5px;color:var(--muted);line-height:1.7;margin:10px 0 0;animation:fadeInUp .3s cubic-bezier(.16,1,.3,1) both;}

  /* ---------- modal system ---------- */
  .modal-overlay{position:fixed;inset:0;background:rgba(21,23,26,.6);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:200;opacity:0;pointer-events:none;transition:opacity .25s ease;}
  .modal-overlay.show{opacity:1;pointer-events:auto;}
  .modal-card{background:var(--paper);border-radius:22px;padding:30px;max-width:440px;width:100%;max-height:88vh;overflow-y:auto;position:relative;transform:scale(.9) translateY(14px);transition:transform .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 40px 80px -30px rgba(0,0,0,.5);}
  .modal-overlay.show .modal-card{transform:scale(1) translateY(0);}
  .modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:none;background:var(--concrete);color:var(--ink);cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s ease, transform .25s ease;}
  .modal-close:hover{background:var(--concrete-2);transform:rotate(90deg);}
  .modal-card h3{font-size:19px;margin:0 0 6px;}
  .modal-card .modal-sub{font-size:13px;color:var(--muted);margin:0 0 20px;line-height:1.6;}

  /* subscribe popup */
  .social-links{display:flex;flex-direction:column;gap:10px;}
  .social-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--concrete-2);background:var(--concrete);transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) both;}
  .social-link:hover{transform:translateX(4px);border-color:var(--fuel);box-shadow:0 8px 18px -12px rgba(0,0,0,.25);}
  .social-link .sl-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:none;color:#fff;}
  .social-link.tg .sl-ic{background:#2AABEE;}
  .social-link.vk .sl-ic{background:#0077FF;}
  .social-link.max .sl-ic{background:#171A1F;}
  .social-link b{display:block;font-size:14.5px;}
  .social-link span{display:block;font-size:12px;color:var(--muted);margin-top:1px;}
  .subscribe-skip{display:block;text-align:center;margin-top:16px;font-size:12.5px;color:var(--muted-2);cursor:pointer;}
  .subscribe-skip:hover{color:var(--muted);}

  /* ad block */
  .ad-block{width:100%;margin:18px auto;background:linear-gradient(120deg, var(--concrete) 25%, var(--concrete-2) 50%, var(--concrete) 75%);background-size:220% 100%;animation:shimmer 3.5s linear infinite;border:1px dashed var(--muted-2);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--muted-2);}
  @media (prefers-reduced-motion: reduce){ .ad-block{animation:none;} }
  .ad-block .ad-tag{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--muted-2);border-radius:999px;padding:2px 8px;}
  .ad-block .ad-size{font-family:'IBM Plex Mono',monospace;font-size:11px;}

  /* station modal */
  .st-modal-badge{display:inline-flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;padding:5px 10px;border-radius:999px;margin-bottom:10px;}
  .st-modal-addr{font-size:13px;color:var(--muted);margin-bottom:14px;}
  .st-modal-fuels{display:flex;flex-direction:column;gap:0;margin-bottom:10px;}
  .st-modal-fuels div{display:flex;justify-content:space-between;font-size:13.5px;padding:8px 0;border-bottom:1px solid var(--concrete-2);}
  .st-modal-meta{font-size:12px;color:var(--muted-2);font-family:'IBM Plex Mono',monospace;margin-bottom:6px;}

  /* report flow */
  .report-toggle-wrap{overflow:hidden;max-height:0;transition:max-height .4s cubic-bezier(.16,1,.3,1);}
  .report-toggle-wrap.open{max-height:600px;}
  .report-step{padding-top:18px;border-top:1px solid var(--concrete-2);margin-top:18px;animation:fadeInUp .35s cubic-bezier(.16,1,.3,1) both;}
  .report-label{font-size:12.5px;font-weight:700;margin:0 0 8px;display:block;}
  .segmented{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
  .seg-btn{font-family:'Inter',sans-serif;font-size:13px;padding:9px 14px;border-radius:10px;border:1.5px solid var(--concrete-2);background:var(--concrete);cursor:pointer;transition:all .15s ease;}
  .seg-btn:active{transform:scale(.94);}
  .seg-btn.is-active{border-color:var(--fuel);background:#fff4ee;color:var(--fuel-dark);animation:bounceIn .3s cubic-bezier(.34,1.56,.64,1);}
  .queue-wrap{overflow:hidden;max-height:0;transition:max-height .35s cubic-bezier(.16,1,.3,1);}
  .queue-wrap.open{max-height:200px;}
  .fuel-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
  .fuel-chip{font-family:'IBM Plex Mono',monospace;font-size:12.5px;padding:8px 13px;border-radius:999px;border:1.5px solid var(--concrete-2);background:var(--concrete);cursor:pointer;transition:all .15s ease;animation:fadeInUp .3s cubic-bezier(.16,1,.3,1) both;}
  .fuel-chip:active{transform:scale(.92);}
  .fuel-chip.is-active{border-color:var(--ok);background:var(--ok-bg);color:var(--ok);animation:bounceIn .3s cubic-bezier(.34,1.56,.64,1);}
  .report-submit-row{display:flex;justify-content:flex-end;}
  .thanks-state{text-align:center;padding:20px 0;}
  .thanks-check{width:64px;height:64px;margin:0 auto 14px;}
  .thanks-check circle{stroke:var(--ok);stroke-width:4;fill:none;stroke-dasharray:163;stroke-dashoffset:163;animation:drawCircle .5s ease forwards;}
  .thanks-check path{stroke:var(--ok);stroke-width:4;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:32;stroke-dashoffset:32;animation:drawCheck .3s ease .45s forwards;}
  @keyframes drawCircle{to{stroke-dashoffset:0;}}
  @keyframes drawCheck{to{stroke-dashoffset:0;}}
  .thanks-state h4{font-size:16px;margin:0 0 6px;}
  .thanks-state p{font-size:13px;color:var(--muted);margin:0;}

  /* auth pill + forms */
  .auth-pill{display:flex;align-items:center;gap:8px;background:var(--concrete);border:1px solid var(--concrete-2);border-radius:999px;padding:6px 14px 6px 6px;cursor:pointer;transition:border-color .15s ease, transform .15s ease;flex:none;}
  .auth-pill:hover{border-color:var(--fuel);transform:translateY(-1px);}
  .auth-pill .avatar{width:26px;height:26px;border-radius:50%;background:var(--fuel);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-family:'Oswald',sans-serif;}
  .auth-pill span{font-size:13px;font-weight:600;}
  .form-field{margin-bottom:14px;}
  .form-field label{display:block;font-size:12.5px;font-weight:600;margin-bottom:6px;}
  .form-field input{width:100%;background:var(--concrete);border:1px solid var(--concrete-2);border-radius:10px;padding:11px 13px;font-size:13.5px;font-family:'Inter',sans-serif;transition:box-shadow .15s ease, border-color .15s ease;}
  .form-field input:focus{outline:none;border-color:var(--fuel);box-shadow:0 0 0 3px rgba(255,106,61,.15);}
  .form-submit{width:100%;justify-content:center;margin-top:6px;}

  /* mini LK */
  .lk-head{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
  .lk-avatar{width:52px;height:52px;border-radius:50%;background:var(--fuel);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;font-family:'Oswald',sans-serif;flex:none;animation:popIn .4s cubic-bezier(.34,1.56,.64,1) both;}
  .lk-name{font-size:16px;font-weight:700;}
  .lk-level{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--fuel-dark);}
  .lk-rating-row{margin-bottom:20px;}
  .lk-rating-row .top{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin-bottom:6px;}
  .lk-bar{height:8px;border-radius:999px;background:var(--concrete);overflow:hidden;}
  .lk-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--road),var(--fuel));border-radius:999px;transition:width 1s cubic-bezier(.16,1,.3,1);}
  .lk-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px;}
  .lk-stats div{background:var(--concrete);border-radius:12px;padding:10px;text-align:center;}
  .lk-stats b{display:block;font-family:'Oswald',sans-serif;font-size:18px;}
  .lk-stats span{font-size:9.5px;font-family:'IBM Plex Mono',monospace;color:var(--muted-2);text-transform:uppercase;}
  .lk-history{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto;margin-bottom:16px;}
  .lk-history-item{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:10px 12px;background:var(--concrete);border-radius:10px;animation:fadeInUp .35s cubic-bezier(.16,1,.3,1) both;}
  .lk-history-item b{display:block;font-size:13px;}
  .lk-history-item small{color:var(--muted-2);font-family:'IBM Plex Mono',monospace;font-size:10.5px;white-space:nowrap;}
  .lk-empty{font-size:13px;color:var(--muted);text-align:center;padding:20px 0;}
  .lk-logout{width:100%;justify-content:center;}

  footer{background:var(--concrete);color:var(--muted);padding:50px 0 26px;border-top:1px solid var(--concrete-2);}
  .foot-social{display:flex;gap:8px;}
  .foot-social a{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .15s ease;}
  .foot-social a:hover{transform:translateY(-2px);}
  .foot-social a.tg{background:#2AABEE;}
  .foot-social a.vk{background:#0077FF;}
  .foot-social a.max{background:#171A1F;}
  .toast-stack{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;}
  .toast{background:var(--ink);color:#fff;font-size:13px;padding:11px 18px;border-radius:999px;box-shadow:var(--shadow);animation:toastIn .3s cubic-bezier(.16,1,.3,1) both;display:flex;align-items:center;gap:8px;}
  .toast::before{content:"✓";color:var(--road);font-weight:700;}
  .foot-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:36px;}
  @media (max-width:800px){ .foot-grid{grid-template-columns:1fr 1fr;} }
  .foot-grid h4{color:var(--ink);font-size:13px;font-weight:700;margin-bottom:12px;}
  .foot-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:13px;}
  .foot-grid ul a{position:relative;width:fit-content;}
  .foot-grid ul a::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--fuel-dark);transition:width .2s ease;}
  .foot-grid ul a:hover{color:var(--fuel-dark);}
  .foot-grid ul a:hover::after{width:100%;}
  .foot-bottom{margin-top:36px;padding-top:18px;border-top:1px solid var(--concrete-2);font-size:11.5px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}
/* Yandex Maps integration */
#map{height:600px;min-height:600px;}
.yandex-map{position:absolute;inset:0;z-index:1;background:#101215;}
.map-fallback{position:absolute;inset:0;z-index:0;display:none;}
#map.use-fallback .map-fallback{display:block;z-index:1;}
#map.use-fallback .yandex-map{display:none;}
.map-legend,.map-tooltip{z-index:5;}
.ymaps-station-marker{width:18px;height:18px;border-radius:50%;border:3px solid #101215;box-shadow:0 3px 10px rgba(0,0,0,.35);position:relative;}
.ymaps-station-marker::after{content:"";position:absolute;inset:-8px;border-radius:50%;background:currentColor;opacity:.18;}
.ymaps-user-marker{width:18px;height:18px;border-radius:50%;background:#25367a;border:3px solid #fff;box-shadow:0 0 0 5px rgba(37,54,122,.18),0 3px 10px rgba(0,0,0,.35);}
.ymaps-balloon-title{font-weight:700;margin-bottom:4px;}
.ymaps-balloon-meta{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#6c6f6a;margin-top:4px;}


/* UI/report fix 20260706 */
.map-control-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.map-control-line select{background:var(--asphalt-2);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:9px 12px;font-size:13px;font-family:'Inter',sans-serif;min-height:38px;}
.map-control-line .map-status{margin:0;display:flex;gap:8px;flex-wrap:wrap;}
.map-control-line .btn{white-space:nowrap;}
.summary-grid--compact{grid-template-columns:repeat(4,1fr);}
@media (max-width:900px){.summary-grid--compact{grid-template-columns:repeat(2,1fr);}}
.content-grid.reveal{opacity:1;transform:none;}
.station-history{display:none;margin-top:16px;border-top:1px solid var(--concrete-2);padding-top:14px;}
.station-history h4{margin:0 0 10px;font-size:13px;text-transform:uppercase;font-family:'IBM Plex Mono',monospace;color:var(--muted-2);letter-spacing:.06em;}
.station-history-list{display:flex;flex-direction:column;gap:8px;}
.station-history-item{background:var(--concrete);border:1px solid var(--concrete-2);border-radius:10px;padding:9px 10px;font-size:12.5px;color:var(--muted);}
.station-history-item b{color:var(--ink);font-size:12.5px;}
.station-history-item small{display:block;margin-top:4px;color:var(--muted-2);font-family:'IBM Plex Mono',monospace;font-size:10.5px;}
.st-tag.low,.st-tag.no{display:none;}
.map-legend .legend-low,.map-legend .legend-no{display:none;}
@media (max-width:680px){.map-control-line{align-items:stretch}.map-control-line>*{width:100%;}.map-control-line .map-status{width:100%;}.map-control-line .map-status .chip{flex:1;}}

/* История отметок в карточке АЗС */
.station-history{
  margin:16px 0;
  padding:14px;
  border-radius:14px;
  background:var(--concrete);
  border:1px solid var(--concrete-2);
}
.station-history h4{
  margin:0 0 10px;
  font-size:13px;
  font-weight:700;
  color:var(--ink);
}
.station-history-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.station-history-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:10px 11px;
  border-radius:10px;
  background:var(--paper);
  border:1px solid var(--concrete-2);
  font-size:12.5px;
  color:var(--muted);
}
.station-history-item b{
  font-size:12.5px;
  color:var(--ink);
}
.station-history-item span{
  line-height:1.45;
}
.station-history-item small{
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
  color:var(--muted-2);
}
.station-history-muted{
  opacity:.78;
}

/* ==== Форма заявки в карточке АЗС (вместо баннера) ==== */
.lead-form{width:100%;margin:18px 0 6px;padding:16px 16px 14px;background:var(--concrete);border:1px solid var(--concrete-2);border-radius:16px;}
.lead-form-head{margin-bottom:12px;}
.lead-form-title{font-family:'Oswald',sans-serif;font-weight:600;font-size:17px;line-height:1.25;color:var(--ink);margin-bottom:6px;}
.lead-form-text{font-size:12.5px;line-height:1.55;color:var(--muted);}
.lead-form .form-field{margin-bottom:10px;}
.lead-form .form-field input{background:var(--paper);}
.lead-form .form-submit{margin-top:4px;}
.lead-form-status{min-height:16px;margin-top:8px;font-size:12px;color:var(--muted);}
.lead-form-status.is-err{color:var(--bad);}
.lead-form-status.is-ok{color:var(--ok);background:var(--ok-bg);font-weight:600;font-size:13px;padding:8px 12px;border-radius:10px;text-align:center;}
/* honeypot: скрыт от людей, виден ботам */
.lead-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;}

/* ==== Широкая карточка АЗС на ПК: форма заявки справа ==== */
/* Мобильные/планшеты: одна колонка, порядок как раньше (данные -> форма -> отметки). */
.st-modal-grid{display:grid;grid-template-columns:1fr;grid-template-areas:"top" "side" "bottom";}
.st-modal-top{grid-area:top;min-width:0;}
.st-modal-side{grid-area:side;min-width:0;}
.st-modal-bottom{grid-area:bottom;min-width:0;}

/* ПК: карточка в два раза шире, форма — правая колонка на всю высоту. */
@media (min-width:961px){
  .modal-card--wide{max-width:880px;}
  .modal-card--wide .st-modal-grid.has-side{
    grid-template-columns:minmax(0,1fr) 340px;
    grid-template-areas:"top side" "bottom side";
    column-gap:28px;
    align-items:start;
  }
  .modal-card--wide .st-modal-grid.has-side .st-modal-side{
    position:sticky;top:0;
  }
  .modal-card--wide .st-modal-grid.has-side .lead-form{margin:34px 0 0;} /* выровнять с h3 по высоте бейджа */
  .modal-card--wide .st-modal-grid.has-side .st-modal-bottom{margin-top:4px;}
}
