/* KözelGo mobilalkalmazás – stílusok (világos és sötét téma; a betűkészlet a kijelzőével közös: ../assets/fonts, SIL OFL 1.1) */
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/poppins-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/poppins-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/poppins-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/poppins-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/poppins-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/poppins-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:800;font-display:swap;src:url(../assets/fonts/poppins-latin-ext-800-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:800;font-display:swap;src:url(../assets/fonts/poppins-latin-800-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ------------------------------------------------------------------ színek (világos / sötét) */
:root{
  --bg:#F3F5F8; --card:#FFFFFF; --ink:#1B2027; --ink2:#2C323B; --mut:#5A6472; --line:#E1E6EC; --line2:#CDD4DD;
  --accent:#38B6FF; --accent-ink:#0A6AA6; --accent-bg:#E6F5FF; --star:#B07D00; --warn-bg:#FFF4DB; --warn-ink:#7A4B00;
  --focus:#0A6AA6; --edge:#808A98;   /* (1.8: a fókuszkeret, a bekapcsolt csillag és a kezelőelemek kerete legalább 3:1) */
  --here:#2C323B; --shadow:0 1px 2px rgba(20,24,30,.06),0 2px 10px rgba(20,24,30,.05);
  --live:#15803D; --live-ink:#0F6B31; --late:#A8480A; --bad:#B3261E;
  --top-h:56px; --tabs-h:62px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0F1318; --card:#181D24; --ink:#EDF1F5; --ink2:#DDE3EA; --mut:#9AA5B3; --line:#2A313B; --line2:#3A424E;
    --accent:#38B6FF; --accent-ink:#7CCFFF; --accent-bg:#11293A; --star:#FFC23D; --warn-bg:#3A2C10; --warn-ink:#FFD58A;
    --focus:#38B6FF; --edge:#6B7584;
    --here:#FFFFFF; --shadow:none; color-scheme:dark;
    --live:#1F9D4D; --live-ink:#6EE7A0; --late:#FFB86B; --bad:#FF9A91;
  }
}
:root[data-theme="dark"]{
  --bg:#0F1318; --card:#181D24; --ink:#EDF1F5; --ink2:#DDE3EA; --mut:#9AA5B3; --line:#2A313B; --line2:#3A424E;
  --accent:#38B6FF; --accent-ink:#7CCFFF; --accent-bg:#11293A; --star:#FFC23D; --warn-bg:#3A2C10; --warn-ink:#FFD58A;
  --focus:#38B6FF; --edge:#6B7584;
  --here:#FFFFFF; --shadow:none; color-scheme:dark;
  --live:#1F9D4D; --live-ink:#6EE7A0; --late:#FFB86B; --bad:#FF9A91;
}
.lg-d{display:none}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .lg-l{display:none} :root:not([data-theme="light"]) .lg-d{display:inline} }
:root[data-theme="dark"] .lg-l{display:none} :root[data-theme="dark"] .lg-d{display:inline}

/* ------------------------------------------------------------------ alap */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;
  /* a billentyűzettel fókuszba kerülő elemet a rögzített fülsor és értesítés ne takarja (2.4.11); felül nincs: a fejléc
     ragadós (sticky), a saját gombjaira lépve a lap a tetejére ugrana – a lefelé haladó fókusz felül úgysem kerül takarásba */
  scroll-padding-bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom) + var(--ert-h,0px) + 24px)}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);
  font-family:'Poppins','Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;font-weight:500;font-size:15px;line-height:1.4;
  -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
a{color:var(--accent-ink)}
button{font:inherit;color:inherit}
svg{display:block}
.tnum{font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-999px;top:0;z-index:100;background:var(--card);padding:10px 14px}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus{outline:none}
#main a,#main button,#main input,#main [tabindex]{scroll-margin-top:calc(var(--top-h) + env(safe-area-inset-top) + 8px)}   /* (felfelé lépve se a fejléc alá) */   /* (a nézetváltáskor programból fókuszált címsor) */
[hidden]{display:none!important}
.nyelvvar #top,.nyelvvar #tabs{visibility:hidden}   /* (1.9: a nem magyar szótár letöltése alatt – legfeljebb 8 mp) */
.sr{position:absolute;left:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}   /* (left:0: a sor végén álló rejtett szöveg ne nyújtsa szélesre a lapot) */

/* ------------------------------------------------------------------ fejléc */
#top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;
  height:calc(var(--top-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0 12px;
  background:var(--card);border-bottom:1px solid var(--line)}
#brand{display:flex;align-items:center;padding:6px 4px;margin-right:auto;min-width:0}
#brand img{height:28px;width:auto}
#title{flex:1;min-width:0;font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#title small{display:block;font-weight:500;font-size:12px;color:var(--mut);margin-top:-2px}
.icon-btn{display:grid;place-items:center;width:44px;height:44px;border:0;background:none;border-radius:12px;cursor:pointer;flex:none}
.icon-btn:active{background:var(--line)}
.icon-btn svg,#cityBtn svg,#tabs svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#cityBtn{display:flex;align-items:center;gap:6px;height:38px;padding:0 12px 0 9px;border:1px solid var(--edge);border-radius:19px;
  background:var(--card);cursor:pointer;font-weight:600;font-size:14px;max-width:48vw;flex:none}
#cityBtn svg{width:18px;height:18px;flex:none;color:var(--accent-ink)}
#cityBtn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.inner #brand{display:none}
/* nyelvkapcsoló (HU | EN) a fejlécben */
.langsw{display:flex;flex:none;padding:2px;gap:2px;border-radius:10px;background:var(--line)}
.langsw button{width:30px;height:32px;padding:0;border:0;border-radius:8px;background:none;font-weight:700;font-size:12px;letter-spacing:.02em;color:var(--mut);cursor:pointer}
.langsw button::before{content:attr(data-kod)}   /* a felirat nem szövegcsomópont: a gépi fordítás nem éri el */
.langsw button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}
#brand{flex:none}                       /* a logó nem zsugorodik: szűk helyen a városnév rövidül */
#cityBtn{flex:0 1 auto;min-width:0}
@media (max-width:380px){
  #top{gap:6px;padding-left:10px;padding-right:10px}
  #brand{padding-left:2px;padding-right:2px}
  #brand img{height:26px}
  #cityBtn{padding:0 9px 0 7px;gap:4px;font-size:13.5px}
  .langsw button{width:28px}
}

/* ------------------------------------------------------------------ fő terület és fülsor */
#main{display:block;padding:14px 14px calc(var(--tabs-h) + env(safe-area-inset-bottom) + 20px);max-width:720px;margin:0 auto;outline:none}
body.map #main{padding:0;max-width:none}
#tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:space-around;
  height:calc(var(--tabs-h) + env(safe-area-inset-bottom));padding:4px 6px env(safe-area-inset-bottom);
  background:var(--card);border-top:1px solid var(--line)}
#tabs a{flex:1;max-width:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  color:var(--mut);text-decoration:none;font-size:11.5px;font-weight:600;border-radius:12px}
#tabs a[aria-current="page"]{color:var(--accent-ink)}
#tabs a[aria-current="page"] svg{stroke-width:2.4}
#tabs svg .fill{fill:currentColor;stroke:none}

/* ------------------------------------------------------------------ közös elemek */
h1{font-size:22px;line-height:1.2;margin:4px 0 2px;font-weight:700;letter-spacing:-.01em}
h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);font-weight:700;margin:22px 4px 8px}
h2:first-child{margin-top:4px}
h1.h2{font-size:13px;line-height:1.4;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);font-weight:700;margin:4px 4px 8px}
.card{background:var(--card);border-radius:16px;box-shadow:var(--shadow);border:1px solid var(--line)}
.muted{color:var(--mut)}
.small{font-size:13px}
.empty{padding:18px 16px;color:var(--mut);text-align:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:12px;
  border:1px solid var(--edge);background:var(--card);font-weight:600;cursor:pointer;text-decoration:none;color:var(--ink)}
.btn.primary{background:var(--ink2);color:var(--card);border-color:var(--ink2)}
.btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.btn:active{transform:translateY(1px)}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:26px;padding:0 6px;border-radius:7px;
  font-weight:700;font-size:14px;line-height:1;flex:none}
.badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.badges .badge{min-width:30px;height:22px;font-size:12.5px;border-radius:6px}
.pf{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;margin-left:6px;border-radius:6px;
  background:var(--ink2);color:var(--card);font-size:12px;font-weight:700;vertical-align:2px}
.notice{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:var(--warn-bg);color:var(--warn-ink);font-size:13.5px}
.chip{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:13px;background:var(--accent-bg);color:var(--accent-ink);
  font-size:12.5px;font-weight:600}

/* ------------------------------------------------------------------ keresés és megállólista */
.search{position:relative;margin-bottom:6px}
.search input{width:100%;height:50px;border-radius:14px;border:1px solid var(--edge);background:var(--card);color:var(--ink);
  font:inherit;font-size:16px;padding:0 44px 0 46px}
.search input::placeholder{color:var(--mut)}
.search svg{position:absolute;left:14px;top:13px;width:24px;height:24px;fill:none;stroke:var(--mut);stroke-width:2;stroke-linecap:round}
.search .clear{position:absolute;right:3px;top:3px}
.list{list-style:none;margin:0;padding:0}
.list > li + li{border-top:1px solid var(--line)}
.srow{display:flex;align-items:center;gap:6px;padding:4px 4px 4px 14px;min-height:64px}
.srow .go{flex:1;min-width:0;display:block;padding:9px 0;color:inherit;text-decoration:none}
.srow .nm{font-weight:700;font-size:16px}
.srow .dr{color:var(--mut);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srow .dist{font-size:12.5px;font-weight:600;color:var(--accent-ink);white-space:nowrap}
.star{color:var(--mut)}
.star svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.star[aria-pressed="true"]{color:var(--star)}
.star[aria-pressed="true"] svg{fill:currentColor}
.prev{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:6px;font-size:13px;font-weight:600}
.prev span{display:inline-flex;align-items:center;gap:5px}
.prev .badge{min-width:28px;height:20px;font-size:12px;border-radius:5px}
.more{padding:12px 16px;color:var(--mut);font-size:13px;text-align:center}

/* ------------------------------------------------------------------ megállónézet */
.shead{padding:4px 2px 10px}
.shead .dir{color:var(--mut);font-size:14px}
.acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.acts .btn{min-height:40px;padding:0 12px;font-size:14px}
.acts .star{border:1px solid var(--edge);border-radius:12px;width:auto;padding:0 12px;gap:6px;display:inline-flex;height:40px;font-weight:600;font-size:14px;color:var(--ink)}
.acts .star[aria-pressed="true"]{color:var(--ink)}
.acts .star[aria-pressed="true"] svg{color:var(--star)}
.dayline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 2px 12px;font-size:13px;color:var(--mut)}
.deps{list-style:none;margin:0;padding:0}
.dep{position:relative;display:grid;grid-template-columns:54px 1fr auto;column-gap:12px;align-items:center;
  padding:12px 12px 12px 12px;text-decoration:none;color:inherit}
.deps > li + li{border-top:1px solid var(--line)}
.dep .badge{margin-top:1px}
/* jelvény + járattípus-jelölő (helyközi: felirat vagy a városadat logója) – egységes szélességű jelvényoszlop */
.bw{display:flex;flex-direction:column;align-items:center;gap:3px;align-self:start;justify-self:center;max-width:100%}
.tag{font-size:10.5px;line-height:1;padding:3px 5px;border-radius:5px;background:var(--line);color:var(--mut);font-weight:700;letter-spacing:.02em;white-space:nowrap}
.oplogo{display:block;height:14px;width:auto;max-width:54px}
.dep .hd{font-weight:700;font-size:15.5px;line-height:1.25;min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.dep .sub{font-size:12.5px;color:var(--mut)}
.dep .cd{text-align:right;align-self:start}
.dep .cd b{display:block;font-size:22px;line-height:1.05;font-weight:700;white-space:nowrap}
.dep .cd b.now{color:var(--accent-ink)}
.dep .cd small{display:block;font-size:12px;color:var(--mut);white-space:nowrap}
.dep.dim .hd,.dep.dim .cd b{color:var(--mut)}   /* (1.8: az opacity .62 2,7:1-re rontotta a szöveget és a jelvényt) */
.dep.far .cd b{font-size:15px;font-weight:600}
.dep .lane{grid-column:2 / 4;margin-top:8px}
.foot{margin:14px 4px 0;font-size:12.5px;color:var(--mut)}

/* élő járatadat (GTFS-RT): zöld jel a várható időpont előtt, késés és kimaradó járat szövege */
.lvi,.dep.live .cd b::before,.runs button.live b::before{content:"";display:inline-block;width:14px;height:14px;border-radius:50%;margin-right:5px;vertical-align:1px;
  background:var(--live) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Ccircle cx='5' cy='17' r='3.2' fill='white'/%3E%3Cpath d='M4 9.5a8.5 8.5 0 0 1 8.5 8.5M4 3a15 15 0 0 1 15 15' fill='none' stroke='white' stroke-width='2.8' stroke-linecap='round'/%3E%3C/svg%3E") center/9px no-repeat}
.dep.live .cd b::before{vertical-align:2px}
.runs button.live b::before{width:10px;height:10px;background-size:7px;margin-right:4px;vertical-align:1px}
.foot .lvi{width:12px;height:12px;background-size:8px;margin:0 4px 0 1px;vertical-align:-1px}
.prev .lvi{width:11px;height:11px;background-size:7px;margin-right:3px;vertical-align:0}
.dep .rtl{font-size:12.5px;font-weight:600;margin-top:1px}
.dep .rtl:empty{display:none}
.dep .rtl span + span::before{content:" · ";color:var(--mut);font-weight:500}
.late{color:var(--late)} .ok{color:var(--live-ink)} .early{color:var(--accent-ink)} .x{color:var(--bad)}
.dep .cd small s{margin-right:5px}
.lrt{margin:-2px 2px 10px;font-size:13.5px;font-weight:600}
.runs button.x b{text-decoration:line-through;font-weight:600;color:var(--mut)}
.runs button.x small{color:var(--bad)}
.runs button.x[aria-pressed="true"] b,.runs button.x[aria-pressed="true"] small{color:inherit}
.tl li .t.lt{color:var(--late)} .tl li .t.et{color:var(--accent-ink)}
.tl.xed li .n,.tl.xed li .t,.tl.xed li.here .t{color:var(--mut)} .tl.xed .rail{opacity:.3!important}
.tl .n small.sk{display:block;font-weight:600;font-size:12px;color:var(--bad)}
.maptag .lvi{width:12px;height:12px;background-size:8px;vertical-align:-1px}

/* mini sáv: az utolsó megállók a peron előtt, a busz a menetrend szerint halad */
.lane{position:relative;height:30px}
.lane .tr{position:absolute;left:6px;right:10px;top:19px;height:4px;border-radius:2px;background:var(--line2)}
.lane .tr i{position:absolute;top:-3px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--card);border:2px solid var(--line2)}
.lane .tr .me{width:18px;height:18px;margin-left:-9px;top:-7px;border:4px solid var(--here);background:var(--card)}
.lane .tr .me.hit{background:var(--accent);border-color:var(--accent)}
/* a busz transform-mal mozog (a left átmenete képkockánként újraelrendezést kért: ~18% CPU a megállónézetben) */
.lane .bus{position:absolute;top:0;left:0;width:34px;height:20px;margin-left:-17px;will-change:transform;transition:transform 1s linear,opacity .4s}
.lane .bus svg{width:34px;height:20px}
.lane .bus.wait{opacity:.5}
.lane .lbl{position:absolute;left:6px;top:-2px;font-size:11.5px;font-weight:600;color:var(--mut);white-space:nowrap}
@media (prefers-reduced-motion: reduce){ .lane .bus, .tlwrap .tbus{transition:none} }

/* ------------------------------------------------------------------ vonalnézet */
.lhead{display:flex;align-items:center;gap:12px;padding:4px 2px 8px}
.lhead .badge{min-width:48px;height:36px;font-size:19px;border-radius:9px}
.lhead .bw{align-self:center;flex:none}
.lhead .tag{font-size:11.5px;padding:4px 6px}
.lhead .oplogo{height:16px;max-width:72px}
.lhead h1{margin:0;font-size:19px;overflow-wrap:anywhere}
.runs{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:none}
.runs::-webkit-scrollbar{display:none}
.runs button{flex:none;min-width:70px;height:48px;border-radius:12px;border:1px solid var(--edge);background:var(--card);cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}
.runs button b{font-size:16px}
.runs button small{font-size:11px;color:var(--mut);font-weight:600}
.runs button[aria-pressed="true"]{background:var(--ink2);border-color:var(--ink2);color:var(--card)}
.runs button[aria-pressed="true"] small{color:inherit;opacity:.8}
.tlwrap{position:relative}
.tl{list-style:none;margin:0;padding:6px 0}
.tl li{position:relative;display:grid;grid-template-columns:50px 32px 1fr;align-items:center;min-height:40px}
.tl .t{text-align:right;font-size:14px;font-weight:600;color:var(--mut)}
.tl .n{padding:6px 12px 6px 4px;font-size:15px;min-width:0;overflow-wrap:anywhere}
.tl .rail{position:absolute;left:66px;width:6px;margin-left:-3px;top:0;bottom:0}
.tl li:first-child .rail{top:50%} .tl li:last-child .rail{bottom:50%}
.tl .dot{position:relative;justify-self:center;width:14px;height:14px;border-radius:50%;background:var(--card);border:3px solid var(--line2);z-index:1}
.tl li.past .n,.tl li.past .t{color:var(--mut)}
.tl li.here .n{font-weight:700;font-size:16px}
.tl li.here .t{color:var(--ink);font-weight:700}
.tl li.here .dot{width:22px;height:22px;border:5px solid var(--here)}
.tl li.here .n small{display:block;font-weight:600;font-size:12px;color:var(--accent-ink)}
.tl li.term .n{font-weight:700}
.tlwrap .tbus{position:absolute;top:0;left:50px;width:32px;height:19px;margin-top:-10px;z-index:2;will-change:transform;transition:transform 1s linear}
.tlwrap .tbus svg{width:32px;height:19px}
.seg{display:flex;padding:3px;border-radius:12px;background:var(--line);gap:3px;margin:4px 0 12px}
.seg button{flex:1;height:36px;border:0;border-radius:9px;background:none;font-weight:600;font-size:13.5px;cursor:pointer;color:var(--mut)}
.seg button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}
.hours{list-style:none;margin:0;padding:6px 0}
.hours li{display:grid;grid-template-columns:44px 1fr;align-items:start;padding:5px 12px 5px 0}
.hours li + li{border-top:1px solid var(--line)}
.hours .h{text-align:right;font-weight:700;padding-right:12px;line-height:28px}
.hours .m{display:flex;flex-wrap:wrap;gap:4px}
.hours .m span{min-width:34px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;font-weight:600;padding:0 4px}
.hours .m span.past{color:var(--mut);font-weight:500}
.hours .m sup{font-size:10px;margin-left:1px;color:var(--accent-ink)}
.hours .m span.next sup{color:inherit}
.notes{padding:4px 12px 10px;font-size:13px;color:var(--mut)}

/* ------------------------------------------------------------------ térkép */
#mapWrap{position:relative;height:calc(100vh - var(--top-h) - env(safe-area-inset-top) - var(--tabs-h) - env(safe-area-inset-bottom))}
@supports (height:100dvh){#mapWrap{height:calc(100dvh - var(--top-h) - env(safe-area-inset-top) - var(--tabs-h) - env(safe-area-inset-bottom))}}
#map{position:absolute;inset:0;background:var(--line)}
.mapbar{position:absolute;right:12px;bottom:28px;z-index:500;display:flex;flex-direction:column;gap:8px}
.mapbar .icon-btn{background:var(--card);box-shadow:0 2px 8px rgba(0,0,0,.2);border:1px solid var(--line)}
.maptag{position:absolute;left:12px;right:12px;top:12px;z-index:500;display:flex;align-items:center;gap:10px;padding:8px 8px 8px 12px;
  border-radius:14px;background:var(--card);box-shadow:0 2px 10px rgba(0,0,0,.18);font-size:14px}
.maptag .tx{flex:1;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mapmsg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:400;max-width:300px;text-align:center;padding:16px 18px;
  border-radius:14px;background:var(--card);box-shadow:0 2px 10px rgba(0,0,0,.18)}
.leaflet-container{font-family:inherit;background:var(--line)}
.leaflet-popup-content{margin:12px 14px;font-size:14px;line-height:1.35}
.leaflet-popup-content .nm{font-weight:700;font-size:15px}
.leaflet-popup-content .btn{min-height:36px;margin-top:8px;font-size:13.5px;color:var(--ink)}
.leaflet-container .leaflet-popup-content-wrapper,.leaflet-container .leaflet-popup-tip{background:var(--card);color:var(--ink)}
.leaflet-container a.leaflet-popup-close-button{color:var(--mut);width:32px;height:32px;font-size:22px;line-height:30px}
.maplst{position:absolute;left:12px;right:68px;bottom:28px;z-index:600;max-height:60%;overflow:auto;background:var(--card);
  border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,.25);padding:4px 0}
.maplst h2{margin:10px 14px 6px}
.maplst .list a{display:block;padding:10px 14px;min-height:44px;color:var(--ink);text-decoration:none}
.maplst .dr{display:block;font-size:12.5px;color:var(--mut)}
.maplst .nm{font-weight:600}
#mapList[aria-expanded="true"]{background:var(--accent-bg);color:var(--accent-ink)}
.leaflet-control-attribution{font-size:11px}
.meloc{width:18px;height:18px;border-radius:50%;background:#1A73E8;border:3px solid #fff;box-shadow:0 0 0 2px rgba(26,115,232,.35)}
.mbus{display:grid;place-items:center;width:40px;height:26px}
.mbus svg{width:40px;height:26px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}

/* ------------------------------------------------------------------ info és városválasztó */
.sect{padding:14px 16px}
.sect + .sect{border-top:1px solid var(--line)}
.sect h3{margin:0 0 6px;font-size:15px}
.sect p{margin:6px 0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px}
.kv dt{color:var(--mut)}
.kv dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}
.prices{width:100%;border-collapse:collapse;font-size:14px}
.prices td{padding:6px 0;border-top:1px solid var(--line)}
.prices td:last-child{text-align:right;font-weight:700;white-space:nowrap;padding-left:12px}
.city{display:flex;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;color:inherit;min-height:64px}
.city .nm{font-weight:700;font-size:17px}
.city svg{width:22px;height:22px;fill:none;stroke:var(--mut);stroke-width:2;margin-left:auto}
.city[aria-current="true"] .nm::after{content:" ✓";color:var(--accent-ink)}
.hero{text-align:center;padding:18px 8px 6px}
.hero img{height:44px;width:auto}
.hero p{color:var(--mut);margin:10px 0 0}

/* ------------------------------------------------------------------ értesítés
   (a rétegsorrendje a térkép – a térképkönyvtár elemei 1000-ig – és a statisztika értesítése fölött van: a térképen is látszik és koppintható) */
#toast{position:fixed;left:50%;bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom) + 14px);transform:translate(-50%,20px);
  z-index:1200;width:max-content;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:12px;background:var(--ink2);color:var(--card);
  font-size:14px;font-weight:600;text-align:center;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}   /* (a szélessége a szövegéhez igazodik – különben a fél képernyőnél törne) */
#toast.on{opacity:1;transform:translate(-50%,0)}
#toast.tartos{pointer-events:auto;background:#0A6AA6;color:#FFFFFF;display:flex;align-items:center;gap:4px;padding:4px 4px 4px 6px}
#toast .tgo{flex:1;min-height:44px;padding:6px 10px;border:0;background:none;color:inherit;font:inherit;font-weight:600;text-align:left;cursor:pointer;border-radius:9px}
#toast .tx{display:grid;place-items:center;width:44px;height:44px;flex:none;border:0;background:none;color:inherit;cursor:pointer;border-radius:9px}
#toast .tx svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
#toast button:focus-visible{outline-color:#FFFFFF}

/* ------------------------------------------------------------------ értesítés a használati statisztikáról (első megnyitás)
   A fülsor fölött áll; amíg látszik (:root[data-ert]), a lap alja, a térkép és a rövid értesítés helye a magasságával
   (--ert-h, a program méri) igazodik, így semmit sem takar ki. A három gomb egyforma súlyú: egyik válasz sincs kiemelve. */
.ert{position:fixed;left:10px;right:10px;bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom) + 10px);z-index:1100;max-width:700px;margin:0 auto;
  padding:12px 14px;border-radius:16px;background:var(--card);color:var(--ink);border:1px solid var(--line2);box-shadow:0 4px 18px rgba(20,24,30,.22);
  font-size:14px;line-height:1.4}
.ert p{margin:0 0 10px}
.ert .ert-t{margin-top:-4px;font-weight:600}   /* a tiltakozás jogáról szóló mondat: külön sorban, kiemelve (GDPR 21. cikk (4)) */
.ert-l{display:inline-block;padding:4px 0;border:0;background:none;color:var(--accent-ink);font-weight:600;text-decoration:underline;cursor:pointer}
.ert-g{display:flex;flex-wrap:wrap;gap:8px}
.ert-g .btn{flex:1 1 0;min-height:44px;padding:0 10px;font-size:14px;white-space:nowrap}   /* egyforma szélesek; ha nem férnek el egy sorban (nagy betű), egymás alá kerülnek */
:root[data-ert] #main{padding-bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom) + 30px + var(--ert-h,0px))}
:root[data-ert] body.map #main{padding-bottom:0}
:root[data-ert] #mapWrap{height:calc(100vh - var(--top-h) - env(safe-area-inset-top) - var(--tabs-h) - env(safe-area-inset-bottom) - var(--ert-h,0px) - 20px)}
@supports (height:100dvh){:root[data-ert] #mapWrap{height:calc(100dvh - var(--top-h) - env(safe-area-inset-top) - var(--tabs-h) - env(safe-area-inset-bottom) - var(--ert-h,0px) - 20px)}}
:root[data-ert] #toast{bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom) + 24px + var(--ert-h,0px))}
/* az adatkezelési tájékoztató hosszú sorai: a megnevezés a szöveg fölött áll, a szöveg nem félkövér (könnyebben olvasható) */
.kv.taj{display:block}
.kv.taj dt{margin-top:12px;font-weight:700;color:var(--ink)}
.kv.taj dt:first-child{margin-top:0}
.kv.taj dd{margin-top:2px;font-weight:500;overflow-wrap:anywhere}
#statCim,#adatvCim{scroll-margin-top:calc(var(--top-h) + env(safe-area-inset-top) + 10px)}

@media (min-width:720px){
  #main{padding-left:20px;padding-right:20px}
  .dep .cd b{font-size:24px}
}
.lane .lbl{max-width:calc(100% - 44px);overflow:hidden;text-overflow:ellipsis}
.acts .star{background:var(--card);align-items:center;cursor:pointer}
.acts .star svg{width:20px;height:20px}
body.inner #title{opacity:0;transition:opacity .2s}
body.inner.pinned #title{opacity:1}
.tl li.more-st .n{border:0;background:none;text-align:left;cursor:pointer;color:var(--mut);font-weight:600}
.tl li.more-st .n small{display:block;color:var(--accent-ink);font-size:12.5px}
.tl li.more-st .dot{border-style:dashed}

/* ------------------------------------------------------------------ újratördelés nagy nagyításnál (1.8; 1.4.10)
   200%-os nagyításnál a telefon ~200 CSS-pixel széles: a fejléc két sorba törik (a magasságát a --top-h adja, ebből
   számol a térkép és a rögzítés is); a szegmensgombok és a kulcs–érték listák törnek, nincs vízszintes görgetés */
@media (max-width:300px){
  :root{--top-h:96px}
  #top{flex-wrap:wrap;align-content:center;row-gap:4px}
  #brand img{height:22px}
  #cityBtn{padding:0 8px 0 6px}
  .seg{flex-wrap:wrap}
  .seg button{flex:1 1 auto;min-width:0;height:auto;min-height:36px;white-space:normal;line-height:1.2;padding:4px 6px}
  .kv{grid-template-columns:1fr}
  .kv dt{margin-top:6px}
  .city{flex-wrap:wrap;padding:12px}
  .city > div{min-width:0;overflow-wrap:anywhere}
  #top .langsw{margin-left:auto}
  body.inner #title{order:3;flex:1 0 100%}   /* belső nézetben a cím a második sorban */
  #tabs a{font-size:10px;letter-spacing:-.01em;min-width:0}
  /* az első megnyitás értesítése nem rögzített: a lap tetején, a tartalom előtt áll – rögzítve szinte a teljes képernyőt takarta */
  .ert{position:static;margin:10px;max-height:none}
  :root[data-ert] #main{padding-bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom) + 20px)}
  #main{padding-left:10px;padding-right:10px}
}
