
:root{--navy:#1f1d4e;--brand:#2b2a72;--gold:#f5b400;--gold-lt:#ffe28a;--bg:#f5f5f2;--card:#fff;--ink:#1d1b33;--muted:#5f5d72;--line:#d9d3c4;--red:#b3261e;--redbg:#fde8e6;--green:#1b6e2a;--greenbg:#e3f4e5;--yel:#fff4c7;--r:10px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
[hidden]{display:none!important}
a{color:var(--brand)}
button{font:inherit;color:inherit;cursor:pointer}
input,select{font:inherit}
.top{position:sticky;top:0;z-index:20;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));gap:8px}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px;min-width:0}
.brand img{width:28px;height:28px;background:var(--gold);border-radius:7px;padding:3px}
.brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topr{display:flex;gap:6px;flex:none}
.tbtn{background:rgba(255,255,255,.12);border:0;color:#fff;border-radius:8px;padding:8px 10px;font-size:15px}
.tbtn.gold{background:var(--gold);color:var(--navy);font-weight:700}
main{max-width:760px;margin:0 auto;padding:12px 12px 80px}
.loading{padding:40px;text-align:center;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:var(--r);padding:10px 14px;font-weight:600;min-height:46px;text-decoration:none;color:var(--ink)}
.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.btn.green{background:var(--green);border-color:var(--green);color:#fff}
.btn.sm{min-height:36px;padding:6px 10px;font-size:15px}
.btn.wide{width:100%}
.btn.danger{color:var(--red)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.muted{color:var(--muted)}
.small{font-size:14px}
.err{color:var(--red);font-weight:600;min-height:1.3em}
/* login */
.login{position:relative;isolation:isolate;max-width:340px;margin:10px auto 24px;text-align:center}
.loginbg{position:fixed;z-index:-1;left:50%;top:54%;width:min(96vw,620px);aspect-ratio:1557/1365;transform:translate(-50%,-50%);background:url(/img/school-logo-900.webp) center/contain no-repeat;opacity:.13;pointer-events:none}
.loginlogo{display:block;width:96px;height:auto;margin:6px auto 2px;filter:drop-shadow(0 3px 6px rgba(31,29,78,.25))}
.login h1{font-size:24px;margin:8px 0 4px}
.pinbox{display:flex;justify-content:center;gap:12px;margin:18px 0 8px}
.pinbox i{width:18px;height:18px;border-radius:50%;border:2px solid var(--navy);display:block}
.pinbox i.on{background:var(--navy)}
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.pad button{height:66px;font-size:28px;font-weight:600;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--ink)}
.pad button:active{background:var(--gold-lt)}
.pad .go{background:var(--gold);border-color:var(--gold);font-size:20px}
/* chips */
.chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;white-space:nowrap;font-weight:600;font-size:15px}
.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.chip input{border:0;background:transparent;font-size:15px;padding:0;width:130px}
.upd{font-size:13px;color:var(--muted);margin:2px 0 10px}
.upd.stale{color:var(--red)}
.banner{border-radius:var(--r);padding:12px 14px;margin:0 0 10px;font-weight:700}
.banner.cover{background:var(--gold);color:var(--navy)}
.banner.replaced{background:var(--redbg);color:var(--red);border:2px solid var(--red)}
/* next stop */
.next{background:var(--navy);color:#fff;border-radius:16px;padding:14px;margin-bottom:14px;box-shadow:0 4px 14px rgba(31,29,78,.25)}
.next .lbl{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:800}
.next .addr{font-size:26px;font-weight:800;line-height:1.15;margin:4px 0 2px}
.next .run{font-size:14px;opacity:.85}
.next .kids{margin:10px 0}
.next .kid{background:rgba(255,255,255,.1);border-radius:10px;padding:8px 10px;margin:6px 0;font-size:18px;font-weight:600}
.next .kid.out,.next .kid.notcoming,.next .kid.movedOut{background:#fff;color:var(--red);border:3px solid var(--red)}
.next .kid.in,.next .kid.movedIn{background:#fff;color:var(--green);border:3px solid #3bb54a}
.next .kid.note{background:var(--yel);color:var(--ink)}
.next .btns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.next .btns .btn{min-height:52px;font-size:16px;padding:6px}
.next.none{background:#fff;color:var(--ink);border:1px solid var(--line)}
.gpsline{font-size:13px;opacity:.8;margin-top:8px}
/* runs */
.runcard{background:#fff;border:1px solid var(--line);border-radius:14px;margin:0 0 12px;overflow:hidden}
.runhead{display:flex;align-items:center;gap:10px;padding:12px 14px;width:100%;border:0;background:#fff;text-align:left}
.runhead .t{font-size:22px;font-weight:800;min-width:92px}
.runhead .n{flex:1;min-width:0}
.runhead .n b{display:block;font-size:16px}
.runhead .n span{font-size:14px;color:var(--muted)}
.badge{display:inline-block;border-radius:999px;padding:2px 9px;font-size:13px;font-weight:800}
.badge.ch{background:var(--red);color:#fff}
.badge.cov{background:var(--gold);color:var(--navy)}
.badge.now{background:#3bb54a;color:#fff}
.runcard.current{border:3px solid var(--gold)}
.runnote{background:var(--yel);padding:8px 14px;font-weight:600;font-size:15px}
.stops{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.stop{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid #eee;cursor:pointer}
.stop:last-child{border-bottom:0}
.stop .num{flex:none;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}
.stop.done{opacity:.5}
.stop.done .num{background:#8a8a99}
.stop.isnext{background:#fffbe8}
.stop.isnext .num{background:var(--gold);color:var(--navy)}
.stop.haschg{background:#fff6f5}
.stop .body{flex:1;min-width:0}
.stop .a{font-weight:700;font-size:18px}
.stop .who{font-size:16px;margin-top:2px}
.stop .arr{font-size:12px;color:var(--green);font-weight:700}
.chg{display:block;border-radius:8px;padding:6px 9px;margin:5px 0 0;font-weight:700;font-size:15px}
.chg.out,.chg.notcoming,.chg.movedOut{background:var(--redbg);color:var(--red);border-left:5px solid var(--red)}
.chg.in,.chg.movedIn{background:var(--greenbg);color:var(--green);border-left:5px solid #3bb54a}
.chg.note{background:var(--yel);color:#6b4d00;border-left:5px solid var(--gold)}
.strike{text-decoration:line-through;opacity:.7}
/* sheet */
.sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheetbg{position:absolute;inset:0;background:rgba(20,18,50,.45)}
.sheetcard{position:relative;background:#fff;width:100%;max-width:640px;max-height:88vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom))}
@media(min-width:700px){.sheet{align-items:center}.sheetcard{border-radius:18px}}
.sheetcard h2{margin:0 0 4px;font-size:22px}
.kidcard{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:10px 0}
.kidcard .nm{font-size:19px;font-weight:800}
.phone{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0;text-decoration:none;color:var(--ink);font-weight:700}
.phone .pl{font-size:14px;color:var(--muted);font-weight:700}
.phone .pn{font-size:17px;color:var(--ink);font-weight:800;white-space:nowrap}
.phone.mom{border-color:#e7a3c4;background:#fdf1f7}
.phone.mom .pl{color:#9c2766}
.close{position:sticky;top:0;float:right;border:0;background:#eee;border-radius:50%;width:38px;height:38px;font-size:20px}
/* admin */
.tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 12px}
.tabs a{flex:none;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-weight:700;font-size:15px}
.tabs a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.busgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.busgrid a{display:flex;align-items:center;justify-content:center;height:76px;border-radius:14px;background:var(--gold);color:var(--navy);font-size:26px;font-weight:900;text-decoration:none;border:2px solid var(--goldd,#a77a00)}
h2.sec{font-size:18px;margin:18px 0 8px;color:var(--navy)}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 8px}
.card .t1{font-weight:800}
.card .t2{font-size:15px;color:var(--muted)}
.flow{font-weight:800;font-size:16px;margin:3px 0}
.flow .from{color:var(--red)}.flow .to{color:var(--green)}
.search{width:100%;font-size:18px;padding:12px;border:2px solid var(--line);border-radius:12px;margin-bottom:10px}
mark{background:var(--gold-lt);padding:0 2px;border-radius:3px}
.users .card{display:flex;justify-content:space-between;align-items:center;gap:8px}
.bcheck{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}
.bcheck label{border:1px solid var(--line);border-radius:10px;padding:10px 4px;text-align:center;font-weight:800}
.bcheck input{margin-right:4px}
.field{display:block;margin:10px 0}
.field input[type=text],.field input[type=tel]{width:100%;font-size:18px;padding:10px;border:1px solid var(--line);border-radius:10px;margin-top:4px}
.empty{background:#fff;border:1px dashed var(--line);border-radius:12px;padding:18px;text-align:center;color:var(--muted)}
.printonly{display:none}
@media print{
 .top,.chips,.next,.tabs,.noprint,.sheet{display:none!important}
 body{font-size:12px;background:#fff}
 main{max-width:none;padding:0}
 .printonly{display:block}
 .runcard{break-inside:avoid-page;border:1px solid #999;border-radius:4px;margin:0 0 6px}
 .runhead{padding:4px 8px}.runhead .t{font-size:15px}
 .stops{display:block!important}
 .stop{padding:3px 8px}.stop .a{font-size:13px}.stop .who{font-size:12px}
 .stop .num{width:22px;height:22px;font-size:12px}
 .chg{font-size:11px;padding:1px 4px}
}

.legs{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;border-top:1px solid var(--line)}
.maplink{flex:none;align-self:center;font-size:22px;text-decoration:none;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff}

a.chip{text-decoration:none;color:inherit}
a.chip.on{color:#fff}

/* v2: download + phone location */
.dlbox{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 16px;text-align:center;margin:8px 0 14px}
.dlbus{font-size:30px;font-weight:900;color:var(--navy)}
.dlbtn{width:100%;min-height:72px;font-size:22px;font-weight:800;margin:16px 0 10px;border-radius:14px}
.dlbtn:disabled{opacity:.7}
.oldnote{background:var(--yel);border-radius:10px;padding:10px;margin:12px 0 0;font-weight:700}
.linkbtn{border:0;background:none;color:var(--brand);text-decoration:underline;font-size:13px;padding:0 0 0 6px;font-weight:700}
.dlline{display:flex;flex-wrap:wrap;align-items:center}
.trk{background:rgba(255,255,255,.14);border-radius:10px;padding:8px 10px;margin:8px 0 0;font-size:16px}
.trk.err{background:#fff;color:var(--red);font-weight:700}
.trk .acc{opacity:.75;font-size:13px}
.trkrow{margin-top:8px;display:flex}
.startbtn{min-height:56px;font-size:18px;border:2px solid #7fd88b}
.trkstop{width:100%;min-height:44px;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);color:#fff}
.next.none .trkstop,.next.none #trkoff{color:var(--ink);background:#fff;border-color:var(--line);width:auto}
.herebar{background:#3bb54a;color:#fff;font-weight:800;padding:8px 14px;font-size:15px;list-style:none}
.badge.here{background:#3bb54a;color:#fff}
.stop.atstop{background:#e3f4e5;outline:3px solid #3bb54a;outline-offset:-3px}
.userun{padding:8px 14px 0}

/* v6: Now | All routes tabs */
.bustabs{display:flex;gap:6px;margin:0 0 12px;background:#e9e6dc;border-radius:12px;padding:4px}
.bustabs button{flex:1;min-width:0;border:0;background:transparent;border-radius:9px;padding:10px 6px;font-size:15px;font-weight:800;color:var(--muted);min-height:46px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bustabs button.on{background:var(--navy);color:#fff;box-shadow:0 2px 6px rgba(31,29,78,.25)}
.runtools{padding:8px 14px 0;display:flex;gap:6px}
.rlrow{display:flex;align-items:center;gap:6px;background:#fff}
.rlrow .runhead{flex:1;min-width:0}
.rlrow .prbtn{flex:none;margin-right:10px}
/* v6: print sheets */
#printarea{display:none}
@media print{
 body.printing > *:not(#printarea){display:none!important}
 body.printing #printarea{display:block}
 @page{margin:10mm}
 .psheet{page-break-after:always;break-after:page;font:11.5px/1.3 Arial,Helvetica,sans-serif;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .psheet:last-child{page-break-after:auto;break-after:auto}
 .ph{display:flex;align-items:center;gap:12px;border-bottom:2px solid #000;padding-bottom:6px;margin-bottom:6px}
 .ph img{width:62px;height:auto}
 .pt{font-size:20px;font-weight:800}
 .ps{font-size:12px}
 .pnote{border:1px solid #000;padding:3px 6px;margin:4px 0;font-weight:700}
 table.pt2{width:100%;border-collapse:collapse}
 .pt2 th{text-align:left;border-bottom:1.5px solid #000;padding:3px 4px;font-size:11px}
 .pt2 td{border-bottom:1px solid #999;padding:3px 4px;vertical-align:top}
 .pt2 tr{break-inside:avoid;page-break-inside:avoid}
 .pt2 tr.psub td{border-top:1px dotted #bbb}
 .pt2 tr.pfirst td{border-top:1px solid #777}
 .pt2 td{border-bottom:0}
 .pt2 td.pn{width:22px;font-weight:800;font-size:14px}
 .pt2 td.pa{width:28%;font-weight:700}
 .pt2 td.pp{width:30%;white-space:nowrap;font-size:11px}
 .pt2 tr.hasc td{background:#f3f3f3}
 .pk{margin:1px 0}.pk.struck{text-decoration:line-through;text-decoration-thickness:1px}
 .pk.struck .pc{text-decoration:none;display:inline-block}
 .pcl{color:#444;font-size:10.5px}
 .pc{font-weight:800}.pc.out{color:#b3261e}.pc.in{color:#1b6e2a}
 .pf{margin-top:6px;font-size:9.5px;color:#444}
}

/* v4 extra stop (bus change kid = own stop) */
.xstop{display:block;margin:5px 0 2px;padding:5px 9px;border-radius:8px;background:#1b8a3a;color:#fff;font-weight:800;font-size:14px;letter-spacing:.2px}
.xstop.merged{background:var(--greenbg);color:var(--green);border:2px solid #3bb54a}
.xstop.x-card{font-size:16px;padding:7px 10px;margin:6px 0}
.xstop.x-sheet{font-size:16px;margin:4px 0 8px;clear:both}
li.stop:has(.xstop:not(.merged)){background:#eefaf0;border-left:5px solid #1b8a3a}
li.stop:has(.xstop:not(.merged)) .num{background:#1b8a3a;color:#fff}
@media print{ .xstop{background:none!important;color:#1b6e2a!important;border:1px solid #1b6e2a;padding:1px 4px;font-size:11px} tr.pextra td{background:#eaf6ec!important;-webkit-print-color-adjust:exact;print-color-adjust:exact} }
tr.pextra td{background:#eaf6ec}

/* v6 usual stop times */
.avg{font-size:12.5px;color:#1e56d6;font-weight:600;margin-top:2px}
.avg.big{font-size:15px;margin:4px 0 2px}
.stop.done .avg{color:#8a8fa3}
.avgcard{display:flex;gap:10px;align-items:center;margin-top:14px}
.ptm{white-space:nowrap;font-weight:600;text-align:center}

/* v7: Yiddish / Hebrew names (GeoTrack FirstNameH + FamilyHName), right-to-left, bundled Hebrew font so phones, PCs and printers all show it */
@font-face{font-family:"KrulaHeb";src:url(/img/hebrew-Regular.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0590-05FF,U+FB1D-FB4F}
@font-face{font-family:"KrulaHeb";src:url(/img/hebrew-Bold.woff2) format("woff2");font-weight:600 900;font-display:swap;unicode-range:U+0590-05FF,U+FB1D-FB4F}
.yi,.nmy{font-family:"KrulaHeb","Arial Hebrew","Noto Sans Hebrew","David",Arial,sans-serif;unicode-bidi:isolate;direction:rtl}
.yi{margin-left:.35em;font-weight:inherit;white-space:nowrap}
.nmy{font-size:1.15em;font-weight:700;text-align:left;margin:-2px 0 2px}
.kid .yi{opacity:.95}

/* v8: split screen — map top half (left half in landscape), route below */
:root{--toph:56px;--maph:calc((100vh - var(--toph)) / 2)}
@supports (height:100dvh){:root{--maph:calc((100dvh - var(--toph)) / 2)}}
#mappane{position:fixed;left:0;right:0;top:var(--toph);height:var(--maph);z-index:15;background:#e9e6df;border-bottom:3px solid var(--navy);box-shadow:0 3px 10px rgba(0,0,0,.18);overflow:hidden}
#lmap,#gmap{position:absolute;inset:0;width:100%;height:100%;border:0}
body.split main{padding-top:calc(var(--maph) + 12px)}
body.split .sheet{top:calc(var(--toph) + var(--maph))}
body.split .sheetcard{max-height:100%}
.mapbar{position:absolute;top:8px;right:8px;z-index:500;display:flex;background:#fff;border-radius:9px;box-shadow:0 1px 5px rgba(0,0,0,.3);overflow:hidden}
.mapbar button{border:0;background:#fff;padding:7px 10px;font-size:14px;font-weight:700;color:var(--navy)}
.mapbar button.on{background:var(--navy);color:#fff}
.mapctr{position:absolute;right:8px;bottom:34px;z-index:500;width:44px;height:44px;border-radius:50%;border:0;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.35);font-size:24px;line-height:44px;color:var(--navy)}
.maplbl{position:absolute;left:8px;bottom:8px;right:60px;z-index:500;background:rgba(31,29,78,.92);color:#fff;border-radius:9px;padding:6px 9px;font-size:14px;line-height:1.3;pointer-events:none}
.maplbl .nopt{color:var(--gold-lt)}
.maphint{font-size:12px;opacity:.85;margin-top:2px}
#gmap:not([hidden])~.maplbl{bottom:auto;top:8px;right:150px}
.mpin{width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid var(--navy);color:var(--navy);font:800 12px/20px Arial,sans-serif;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.35)}
.mpin.done{opacity:.45;border-color:#777;color:#555}
.mpin.extra{border-color:var(--green);color:var(--green)}
.mpin.focus{width:38px;height:38px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--red);border:3px solid #fff;color:#fff;font-size:16px;line-height:32px;box-shadow:0 2px 6px rgba(0,0,0,.45);margin-top:0}
.mpin.focus span{display:inline-block;transform:rotate(45deg)}
.mpin.focus.extra{background:var(--green)}
#splbtn{white-space:nowrap}
@media (orientation:landscape) and (min-width:560px){
 #mappane{right:auto;bottom:0;height:auto;width:50vw;border-bottom:0;border-right:3px solid var(--navy)}
 body.split main{padding-top:12px;margin-left:50vw;max-width:none}
 body.split .sheet{top:var(--toph);left:50vw}
}
@media print{#mappane,#splbtn{display:none!important} body.split main{padding-top:0;margin-left:0}}

/* v9: each bus's own color (from moshe's Krula Bus Routes planner) */
.busgrid a{background:var(--bc,var(--gold));color:var(--bf,var(--navy));border:2px solid var(--be,#a77a00);flex-direction:column;line-height:1.05;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.busgrid a small{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-top:4px;opacity:.9}
.bbadge{display:inline-block;min-width:2.5em;text-align:center;background:var(--bc);color:var(--bf);border:2px solid var(--be);border-radius:8px;padding:0 .3em;font-weight:900;line-height:1.25;-webkit-print-color-adjust:exact;print-color-adjust:exact}
#title .bbadge{font-size:17px;margin-left:4px;vertical-align:1px}
.dlbus .bbadge{font-size:30px;border-radius:12px;padding:2px 12px}
.busband{display:flex;align-items:center;gap:10px;background:var(--bc);color:var(--bf);border:2px solid var(--be);border-radius:12px;padding:6px 12px;margin:0 0 10px;font-weight:800;font-size:16px}
.busband .bn{font-size:28px;font-weight:900;line-height:1}
.runcard.bcol,.runcard.current.bcol{border-left:9px solid var(--bs)}
.mpin.bcol{background:var(--bc);color:var(--bf);border-color:var(--be)}
.mpin.bcol.done{background:#fff;color:#555;border-color:#777}
.maplbl .bbadge{font-size:13px;margin-right:4px}
.pchk.buses label.bcol{background:var(--bc);color:var(--bf);border:2px solid var(--be);min-width:64px;text-align:center;font-weight:900;font-size:17px}
.pchk.buses label.bcol:not(.on){opacity:.4}
.busgrid.pbus{grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:7px;margin:6px 0 4px}
.busgrid.pbus a{height:48px;font-size:19px;border-radius:11px}
.busgrid.pbus a small{font-size:9px;margin-top:2px}
.busgrid.pbus a.all{background:#fff;color:var(--navy);border-color:var(--line)}
.busgrid.pbus a.on{outline:4px solid var(--navy);outline-offset:2px}
.busgrid.pbus a.off{opacity:.55}
.qbus .bbadge{font-size:1em;border-width:.07em;border-radius:.18em;padding:0 .18em}
.qcol{font-size:.32em;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-left:.35em;vertical-align:middle}
.pt .bbadge{font-size:1.15em}
@media print{.bbadge{border-color:#000!important}}

/* v10 Live map */
.lvbar{display:flex;align-items:center;gap:10px;margin:0 0 8px;flex-wrap:wrap}
.lvref{min-height:46px;font-size:17px;padding:0 18px}
.lvref:disabled{opacity:.7}
.lvupd{font-size:14px;color:#555;flex:1;min-width:150px}
.lvwrap{position:relative}
.livemap{height:min(56vh,560px);min-height:300px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:#e8eef3;z-index:0}
.lvall{position:absolute;right:10px;top:10px;z-index:500;background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-weight:700;font-size:14px;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.lvpin{width:36px;height:36px;border-radius:50%;background:var(--bc);color:var(--bf);border:3px solid var(--be);box-shadow:0 0 0 2px #fff,0 2px 6px rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;position:relative;margin:2px}
.lvpin.fol{box-shadow:0 0 0 3px var(--gold),0 0 0 6px var(--navy),0 2px 8px rgba(0,0,0,.5)}
.lvpin.stale{opacity:.5;filter:grayscale(.35)}
.lvpin em{position:absolute;top:36px;left:50%;transform:translateX(-50%);white-space:nowrap;font-style:normal;font-size:11px;font-weight:700;color:#333;background:rgba(255,255,255,.92);border-radius:6px;padding:0 4px}
.lvdir{position:absolute;inset:-11px;pointer-events:none}
.lvdir::before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:9px solid var(--navy)}
.lvpop{font-size:14px;line-height:1.45}
.lvph{display:flex;align-items:center;gap:6px;margin-bottom:3px}
.lvold{background:#fde68a;color:#7a5a00;border-radius:6px;padding:0 5px;font-size:12px;font-weight:700}
.lvrun{margin-top:3px}
.lvnav{display:inline-block;margin-top:5px;font-weight:700}
.lvlist{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.lvrow{display:flex;align-items:center;gap:10px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 10px;font-size:15px;color:var(--ink);width:100%}
.lvrow .bbadge{flex:none;min-width:44px;text-align:center}
.lvrow.on{border-color:var(--navy);box-shadow:0 0 0 2px var(--gold)}
.lvrow.stale{opacity:.6}
.lvrow:disabled{opacity:.45}
.lvt{display:flex;flex-direction:column;min-width:0;flex:1}
.lvl1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lvl2{font-size:13px;overflow:hidden;text-overflow:ellipsis}
.lvfol{flex:none;font-size:12px;font-weight:800;background:var(--navy);color:#fff;border-radius:999px;padding:3px 8px}
.lvnote{margin:10px 2px 20px}
.livebtn{display:block;text-align:center;margin:14px 0 0;text-decoration:none}
