:root{--hero-bg:#fdeee3;--sms:#2b3a4a;--sms-soft:#e9eef3;--o:#ff6600;--o-dark:#cc5200;--o-soft:#fff1e8;--ink:#1c1e20;--muted:#676d73;--line:#e4e4e0;--paper:#f6f6f4;--card:#fff;--ok:#1d7a4a;--bad:#b3261e;--warn:#9a5b00}
@media (prefers-color-scheme:dark){:root{--hero-bg:#1b1511;--sms:#7fa6cc;--sms-soft:#1d2733;--o-soft:#2c1a10;--ink:#f1f2f3;--muted:#a1a7ad;--line:#30343a;--paper:#15171a;--card:#1d2024;--ok:#4cc38a;--bad:#ff8a80;--warn:#f0b04a}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:inherit}
h1,h2,h3{font-weight:600}
strong,b{font-weight:600}
h1{font-size:1.55rem;line-height:1.2;margin:.4rem 0 1rem;letter-spacing:-.01em}
h2{font-size:1.1rem;margin:1.6rem 0 .6rem;display:flex;align-items:center;gap:.5rem}
.cnt{display:inline-block;min-width:1.7rem;padding:.05rem .5rem;border-radius:99px;background:var(--o);color:#1c1e20;font-size:.85rem;font-weight:600;text-align:center}
.cnt.zero{background:var(--line);color:var(--muted)}

/* hlavička (vodič aj personál) */
.brand{border-top:6px solid var(--o);background:var(--card);border-bottom:1px solid var(--line)}
.brand .in{max-width:30rem;margin:0 auto;padding:.55rem 1.25rem}
.logo{display:inline-flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--ink)}
.logo .gw{width:48px;height:48px;border-radius:10px;display:block}
.logo .txt{display:flex;flex-direction:column;line-height:1.2}
.logo b{font-weight:600;font-size:1.2rem;letter-spacing:.01em;color:var(--o-dark)}
.logo .ver{display:flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.8rem;margin-top:.1rem}
.logo .ver img{width:18px;height:18px;display:block}
@media (prefers-color-scheme:dark){.logo b{color:var(--o)}}
main{max-width:30rem;margin:0 auto;padding:1.1rem 1.25rem 3rem}
label{display:block;font-weight:500;margin:1rem 0 .3rem}
input[type=text],input[type=tel],input[type=password],input[type=number],input[type=date],select{width:100%;min-height:3.2rem;padding:.6rem .8rem;font:inherit;color:var(--ink);background:var(--card);border:2px solid var(--ink);border-radius:8px}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--o);outline-offset:2px}
.check{display:flex;gap:.75rem;align-items:flex-start;font-weight:400;margin:1.25rem 0}
.check input{width:1.6rem;height:1.6rem;margin-top:.15rem;flex:none;accent-color:var(--o)}
button,.btn{min-height:3rem;padding:.55rem 1.2rem;font:inherit;font-weight:500;border:2px solid var(--o);border-radius:8px;background:var(--o);color:#1c1e20;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
button:hover,.btn:hover{background:var(--o-dark);border-color:var(--o-dark);color:#fff}
button.ghost,.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
button.ghost:hover{background:var(--o-soft);color:var(--ink);border-color:var(--o)}
button.wide{width:100%;margin-top:.6rem}
.err{background:#fde8e6;color:#5c1410;border-left:5px solid var(--bad);padding:.7rem .9rem;border-radius:6px;margin:0 0 1rem}
.hint{color:var(--muted);font-size:.93rem}
.lang{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.6rem}
.lang a{padding:.3rem .6rem;border:2px solid var(--line);border-radius:6px;text-decoration:none;font-weight:500;font-size:.9rem}
.lang a.on{border-color:var(--o);background:var(--o);color:#1c1e20}
.panel{padding:1.6rem 1rem;border:2px solid var(--line);border-radius:12px;text-align:center;background:var(--card)}
.panel .plate{font:600 1.5rem/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em;margin:0 0 1rem}
.panel .lead{font-size:1.3rem;font-weight:600;margin:0}
.panel .dock{font-size:clamp(6rem,42vw,12rem);font-weight:600;line-height:1;margin:.1em 0;font-variant-numeric:tabular-nums}
.panel.s-called{background:var(--o);border-color:var(--o);color:#1c1e20}
.panel.s-done{border-color:var(--ok)}
.panel.s-cancelled{border-color:var(--bad)}
.dots{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;background:var(--o);margin-right:.5rem;animation:p 1.4s ease-in-out infinite}
@keyframes p{50%{opacity:.2}}
@media (prefers-reduced-motion:reduce){.dots{animation:none}}
.pushbox{margin-top:1rem}

/* personál */
.top{background:var(--card);border-bottom:4px solid var(--o);display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:.5rem 1.25rem}
.top .logo{margin-right:.8rem}
.top nav{display:flex;gap:.25rem;flex:1;flex-wrap:wrap}
.top nav a{padding:.45rem .8rem;border-radius:6px;text-decoration:none;font-weight:500}
.top nav a:hover{background:var(--o-soft)}
.top nav a.on{background:var(--o);color:#1c1e20}
.top .who{display:flex;gap:.8rem;align-items:center;color:var(--muted);font-size:.93rem}
.who .me{display:flex;flex-direction:column;text-align:right;line-height:1.2}
.who .me b{color:var(--ink);font-weight:500}
.who .me small{font-size:.78rem;color:var(--o-dark);letter-spacing:.03em}
@media (prefers-color-scheme:dark){.who .me small{color:var(--o)}}
.top form{margin:0}.top button{min-height:2.3rem;padding:.2rem .8rem;font-size:.9rem}
.wrap{max-width:78rem;margin:0 auto;padding:1rem 1.25rem 3rem}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}
@media (max-width:60rem){.cols{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow-x:auto}
.card h2{margin:0;padding:.7rem .9rem;border-bottom:1px solid var(--line);background:var(--o-soft)}
.card .note{font-weight:400;color:var(--muted);font-size:.85rem;margin-left:auto}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.55rem .8rem;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
th{font-size:.8rem;color:var(--muted);font-weight:500}
td.plate,.mono{font:600 1.1rem ui-monospace,Menlo,Consolas,monospace;letter-spacing:.03em}
td.dock{font:600 1.6rem ui-monospace,Menlo,Consolas,monospace}
td.act{min-width:11rem}
td.act form,.inl{display:inline-flex;gap:.35rem;margin:0 .2rem .2rem 0}
td input[type=text]{width:5.2rem;min-height:2.6rem}
td button{min-height:2.6rem;padding:.2rem .8rem}
a.tel{text-decoration:none;color:var(--muted);font-size:.92rem}
.empty{color:var(--muted);padding:.9rem}
.tag{display:inline-block;padding:.05rem .5rem;border-radius:99px;font-size:.78rem;font-weight:500;border:1px solid var(--line)}
.tag.ok{color:var(--ok);border-color:var(--ok)}.tag.bad{color:var(--bad);border-color:var(--bad)}.tag.warn{color:var(--warn);border-color:var(--warn)}
.dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--line);margin-right:.35rem}
.dot.on{background:var(--ok)}
.sound{margin-left:auto}
.sound button{min-height:2.2rem;font-size:.85rem}
.filters{display:flex;gap:.6rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem}
.filters div{display:flex;flex-direction:column}
.filters label{margin:0 0 .2rem;font-size:.82rem;color:var(--muted)}
.filters input,.filters select{min-height:2.6rem;width:auto;border-width:1px;border-color:var(--line)}
.pager{display:flex;gap:.5rem;align-items:center;margin-top:1rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.8rem;margin:1rem 0}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem}
.kpi b{display:block;font-size:1.7rem;line-height:1.1}
.kpi span{color:var(--muted);font-size:.85rem}
.chart{display:flex;align-items:flex-end;gap:3px;height:9rem;padding:.5rem .5rem 0;border-bottom:2px solid var(--ink)}
.bar{flex:1;background:var(--o);min-height:2px;position:relative;border-radius:2px 2px 0 0}
.bar i{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font:600 .68rem system-ui;font-style:normal;color:var(--muted)}
.labels{display:flex;gap:3px;padding:.2rem .5rem;font-size:.66rem;color:var(--muted)}
.labels span{flex:1;text-align:center;overflow:hidden}
.hbar{display:grid;grid-template-columns:4.5rem 1fr 2.5rem;gap:.6rem;align-items:center;margin:.25rem 0;font-size:.92rem}
.hbar div{height:.9rem;background:var(--o);border-radius:3px}
.split{display:flex;height:1.1rem;border-radius:99px;overflow:hidden;background:var(--line);margin:.4rem 0}
.split div:first-child{background:var(--o)}.split div:last-child{background:var(--ink)}
.tabs{display:flex;gap:.3rem;margin:.2rem 0 .8rem}
.tabs a{padding:.35rem .8rem;border:1px solid var(--line);border-radius:99px;text-decoration:none;font-weight:500;font-size:.9rem}
.tabs a.on{background:var(--o);border-color:var(--o);color:#1c1e20}

/* kiosk */
.kiosk main{max-width:40rem}
.kiosk input{min-height:4rem;font-size:1.3rem}
.kiosk button.wide{min-height:4.2rem;font-size:1.25rem}
.kiosk .done{text-align:center;padding:2.5rem 1rem;background:var(--o);color:#1c1e20;border-radius:12px;font-size:1.6rem;font-weight:500}
@media print{.top,.filters,.pager,.sound{display:none}}

@media (max-width:40rem){
.card table,.card tbody,.card tr,.card td{display:block;width:100%}
.card thead{display:none}
.card tr{padding:.5rem .3rem;border-bottom:1px solid var(--line)}
.card tr:last-child{border-bottom:0}
.card td{border:0;padding:.2rem .6rem}
td.act{min-width:0}
}

/* úvodná stránka, prihlásenie, výber vodiča */
body.pub{background:var(--hero-bg)} /* tu neskôr pridať fotku: background:var(--hero-bg) url(...) center/cover */
body.pub main.box{background:var(--card);border:1px solid var(--line);border-radius:14px;margin:1.5rem auto;padding:1.6rem 1.5rem 1.8rem;box-shadow:0 6px 28px rgba(0,0,0,.06)}
.center{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center;padding:1rem 0}
.center main.box{margin:0 auto;width:calc(100% - 2.5rem)}
.hero{text-align:center;margin:.4rem 0 1.4rem}
.hero img.rampa{height:76px;width:auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px}
.hero h1{margin:.6rem 0 .1rem;font-size:1.8rem}
.tiles{display:grid;gap:.8rem}
.tile{display:flex;flex-direction:column;gap:.15rem;padding:1.05rem 1.2rem;border:1px solid var(--line);border-left:6px solid var(--o);border-radius:10px;background:var(--card);text-decoration:none;position:relative}
.tile b{font-size:1.2rem;font-weight:600}
.tile span{color:var(--muted);font-size:.95rem}
.tile::after{content:"\203A";position:absolute;right:1.1rem;top:50%;transform:translateY(-52%);font-size:1.8rem;color:var(--o)}
.tile:hover{background:var(--o-soft)}
.resume{display:flex;gap:.8rem;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--o-soft);border:1px solid var(--o);border-radius:10px;padding:.8rem 1rem;margin-bottom:1.2rem}
.resume b{font-weight:600}
.steps{margin:0 0 1.4rem;padding:0;list-style:none;counter-reset:s}
.steps li{counter-increment:s;display:flex;gap:.8rem;align-items:flex-start;padding:.55rem 0}
.steps li::before{content:counter(s);flex:none;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--o);color:#1c1e20;display:flex;align-items:center;justify-content:center;font-weight:500}
.back{display:inline-block;margin-bottom:.8rem;color:var(--muted);text-decoration:none}
.back:hover{color:var(--ink)}
.sublink{margin-top:1.6rem;font-size:.9rem;color:var(--muted)}

/* dva zoznamy: web a SMS jasne oddelené */
.cols{gap:1.6rem}
.card.lane{border-top-width:6px;border-top-style:solid;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.card.lane.web{border-top-color:var(--o)}
.card.lane.sms{border-top-color:var(--sms)}
.card.lane.sms h2{background:var(--sms-soft)}
.lane h2{font-size:1.15rem}
.lane h2 svg{width:1.3rem;height:1.3rem;flex:none}
.lane.web h2 svg{color:var(--o-dark)}
.lane.sms h2 svg{color:var(--sms)}
.lane .sub{padding:.5rem .9rem;margin:0;color:var(--muted);font-size:.9rem;border-bottom:1px solid var(--line)}
.lane.sms .cnt{background:var(--sms);color:#fff}
@media (prefers-color-scheme:dark){.lane.sms .cnt{color:#10161c}}
.lane.sms .cnt.zero{background:var(--line);color:var(--muted)}
.lane.sms button:not(.ghost){background:var(--sms);border-color:var(--sms);color:#fff}
@media (prefers-color-scheme:dark){.lane.sms button:not(.ghost){color:#10161c}}
.lane.sms button:not(.ghost):hover{filter:brightness(1.12);background:var(--sms);border-color:var(--sms)}
.tag.ch-web{border-color:var(--o);color:var(--o-dark)}
.tag.ch-sms{border-color:var(--sms);color:var(--sms)}


.tag.warn{border-color:var(--warn);color:var(--warn)}
.tag.ok{border-color:var(--ok);color:var(--ok)}
.tag.bad{border-color:var(--bad);color:var(--bad)}
code{font-size:.88em;background:var(--o-soft);padding:.05rem .3rem;border-radius:4px}

/* meradlá servera */
.mrow{display:flex;justify-content:space-between;gap:.8rem;margin:.9rem 0 .25rem;font-size:.95rem}
.mrow:first-child{margin-top:.2rem}
.mrow b{font-weight:500}
.meter{height:.7rem;background:var(--line);border-radius:99px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--ok);border-radius:99px;transition:width .4s}
.meter.warn i{background:var(--warn)}
.meter.bad i{background:var(--bad)}
table.kv{margin-top:1rem}
table.kv td:first-child{color:var(--muted)}
table.kv td{padding:.4rem 0}

/* stránka Vodiči */
.qrbox{background:#fff;border-radius:10px;padding:.6rem;display:inline-block;max-width:100%;border:1px solid var(--line)}
.qrbox svg{display:block;width:min(16rem,100%);height:auto}
.qrbox.small svg{width:11rem}
.linkline{margin:.5rem 0}
.linkline input{min-height:2.4rem;font-size:.85rem}
.found{padding:.7rem 0;border-top:1px solid var(--line)}
.found:first-child{border-top:0}
.frow{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.2rem}
details summary{cursor:pointer;color:var(--o-dark);margin-top:.3rem}
@media print{
 body.printqr .top,body.printqr .wrap h1,body.printqr .cols>div,body.printqr .linkline,body.printqr button,body.printqr .hint,body.printqr h2{display:none}
 body.printqr .qrbox{border:0}
 body.printqr .qrbox svg{width:16cm}
 body.printqr .card{border:0;box-shadow:none}
}

/* --- Rampa 0.5: uzavretie s výsledkom, pripomenutie, úprava v histórii --- */
.doneform{min-width:13rem;display:flex;flex-direction:column;gap:.3rem;align-items:stretch}
.doneform input{width:100%;min-width:9rem}
.doneform .row{display:flex;gap:.35rem}
.okbtn{background:var(--ok);border-color:var(--ok);color:#fff}
.failbtn{background:#fff;border:1px solid var(--bad);color:var(--bad)}
button[disabled]{opacity:.5;cursor:not-allowed}
td.note{max-width:16rem;overflow-wrap:anywhere}
details.edit{margin-top:.3rem}
details.edit summary{cursor:pointer;color:var(--o-dark);font-size:.82rem}
details.edit form{display:flex;flex-direction:column;gap:.3rem;margin-top:.3rem}

/* --- Rampa 0.6: kompaktnejšie tlačidlá v tabuľkách dispečingu --- */
td.act button,td.act input[type=text]{min-height:2rem;padding:.15rem .6rem;font-size:.82rem;border-width:1px;border-radius:6px}
td.act input[type=text]{width:4.6rem}
.doneform input[type=text]{width:100%;min-width:9rem}
td.act form{gap:.25rem;margin:0 .15rem .15rem 0}
td.act{min-width:9rem}
.doneform{min-width:10rem}

/* --- Rampa 0.7: tlačový návod pre vodičov --- */
.langs{display:inline-flex;gap:.3rem;flex-wrap:wrap}
.langs a{padding:.25rem .6rem;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--ink);font-size:.85rem}
.langs a.on{background:var(--o);border-color:var(--o);color:#1c1e20}
.sheet{padding:1.6rem 1.8rem;max-width:56rem}
.sheet .kicker{margin:0;color:var(--o-dark);font-weight:500;letter-spacing:.03em}
.sheet h1{margin:.2rem 0 .4rem;font-size:1.7rem;font-weight:500}
.sheet .lead2{margin:0 0 1.2rem;color:var(--muted)}
.sheet .two{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.sheet h2{font-size:1.1rem;margin:0 0 .5rem;border-bottom:3px solid var(--o);padding-bottom:.3rem;background:none}
.sheet ol{margin:0;padding-left:1.3rem}
.sheet li{margin-bottom:.55rem;line-height:1.4}
.sheet .note{margin:1rem 0 0;padding:.7rem .9rem;background:var(--o-soft);border-left:4px solid var(--o);border-radius:4px}
.sheetfoot{display:flex;gap:1rem;align-items:center;margin-top:1.4rem}
.qrsmall svg{width:5.5rem;height:5.5rem;display:block}
@media (max-width:48rem){.sheet .two{grid-template-columns:1fr}}
@media print{
 @page{size:A4;margin:12mm}
 body:has(.sheet) .top,body:has(.sheet) .noprint,body:has(.sheet) .hint{display:none!important}
 body:has(.sheet){background:#fff}
 .sheet{border:0;box-shadow:none;max-width:none;padding:0;font-size:12.5pt}
 .sheet .qrsmall svg{width:3.2cm;height:3.2cm}
}

/* --- Rampa 0.8: blikajúci panel po pridelení/pripomenutí (zastaví sa klepnutím) --- */
.panel .ack{display:none;margin:.4rem 0 0;font-size:1rem;font-weight:500}
.panel.s-called.flash{animation:rampaflash 1s steps(1,end) infinite}
.panel.s-called.flash .ack{display:block}
@keyframes rampaflash{0%{background:var(--o)}50%{background:#fff}}
/* kto má zapnuté obmedzenie animácií: bez blikania, len výrazný rámec */
@media (prefers-reduced-motion:reduce){
 .panel.s-called.flash{animation:none;outline:8px solid #1c1e20;outline-offset:-8px}
}

/* --- Rampa 0.9: výrazná karta "Zapnite upozornenia" nad panelom vodiča --- */
.alertcard{margin:0 0 1rem;padding:1rem;border:3px solid var(--o);border-radius:12px;background:var(--o-soft);text-align:center}
.alertcard .ah{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:1.25rem}
.alertcard .ah svg{width:1.6rem;height:1.6rem;color:var(--o-dark);flex:none}
.alertcard .as{margin:.4rem 0 .2rem}
.alertcard .pmsg{margin:.5rem 0 0;font-weight:500}
.alertcard button.pulse{min-height:3.4rem;font-size:1.1rem;font-weight:600;animation:rampapulse 1.6s ease-in-out infinite}
@keyframes rampapulse{0%,100%{box-shadow:0 0 0 0 rgba(255,102,0,.55)}50%{box-shadow:0 0 0 .7rem rgba(255,102,0,0)}}
/* zapnuté: zmenší sa na jeden zelený riadok */
.alertcard[data-state=ok]{border-width:2px;border-color:var(--ok);background:transparent;padding:.55rem}
.alertcard[data-state=ok] .ah,.alertcard[data-state=ok] .as{display:none}
.alertcard[data-state=ok] .pmsg{margin:0;color:var(--ok)}
/* nedá sa zapnúť (iPhone bez pridania na plochu / zablokované): výstražná karta, text je výrazný */
.alertcard[data-state=warn] .pmsg{font-size:1.05rem}
@media (prefers-reduced-motion:reduce){.alertcard button.pulse{animation:none}}

/* atribút hidden musí vždy skryť prvok (inak ho prebije display:inline-flex na tlačidlách) */
[hidden]{display:none!important}

/* --- Rampa 0.10: výrazný blok "Máte aktívnu registráciu" na úvodnej stránke --- */
.resume.big{display:block;text-align:center;border-width:3px;padding:1.1rem 1rem;margin-bottom:1.4rem}
.resume.big .rl{margin:0;font-size:1.1rem}
.resume.big .rp{margin:.3rem 0 .8rem;font:600 2rem/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em}
.resume.big .btn{width:100%;min-height:3.4rem;font-size:1.15rem;font-weight:600}

/* 0.13: stránka pre vodičov (hľadanie podľa ŠPZ hore, návod pod ním) */
.drvfind,.drvhow{margin:1.2rem 0;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.drvfind h2,.drvhow h2{margin:0 0 .6rem;font-size:1.1rem}
.drvhow .btn{margin-top:.6rem}

/* 0.16: jedna tabuľka čakajúcich, farebný štítok a pruh zdroja (QR oranžová, kiosk modrá), filter */
.srcbadge{display:inline-block;padding:.05rem .55rem;border-radius:99px;font-size:.78rem;font-weight:600;border:1px solid;vertical-align:middle}
.srcbadge.qr{background:var(--o);border-color:var(--o);color:#1c1e20}
.srcbadge.kiosk{background:var(--sms);border-color:var(--sms);color:#fff}
@media (prefers-color-scheme:dark){.srcbadge.kiosk{color:#10161c}}
tr.src-qr td:first-child{box-shadow:inset 4px 0 0 var(--o)}
tr.src-kiosk td:first-child{box-shadow:inset 4px 0 0 var(--sms)}
tr.src-kiosk{background:color-mix(in srgb,var(--sms-soft) 65%,transparent)}
.fsec .sub{padding:.5rem .9rem;margin:0;color:var(--muted);font-size:.9rem;border-bottom:1px solid var(--line)}
.fbar{margin:1rem 0 1.2rem}
.fbar .fcount{align-self:center;color:var(--muted);font-size:.9rem}
.fbar input[type=search]{min-width:14rem}

/* 0.17: podmenu (panely) vo Vodiči a Správca */
.subtabs{display:flex;gap:.4rem;flex-wrap:nowrap;overflow-x:auto;margin:.2rem 0 1.1rem;padding-bottom:.2rem;border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch}
.subtabs [role=tab]{flex:none;min-height:2.6rem;padding:.3rem 1rem;border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;background:var(--card);color:var(--ink);font-weight:500;font-size:.95rem;cursor:pointer}
.subtabs [role=tab][aria-selected=true]{background:var(--o);border-color:var(--o);color:#1c1e20;font-weight:600}
.subtabs [role=tab]:hover:not([aria-selected=true]){background:var(--o-soft)}
.panel2{max-width:46rem}
body.printqr .subtabs,body.printqr [role=tabpanel]:not(#p-qr){display:none}

/* 0.17: úvodná obrazovka s logom (len prvé načítanie v relácii) */
#splash{display:none;position:fixed;inset:0;z-index:9999;background:var(--card);align-items:center;justify-content:center;opacity:1;transition:opacity .3s ease;animation:sp-fs .01s linear 4s forwards}
#splash.on{display:flex}
#splash.done{opacity:0;pointer-events:none}
.sp-in{display:flex;flex-direction:column;align-items:center;gap:1rem}
#splash img{border-radius:16px;animation:sp-pulse 1.2s ease-in-out infinite}
.sp-bar{width:7rem;height:3px;border-radius:3px;background:var(--line);overflow:hidden}
.sp-bar i{display:block;width:40%;height:100%;background:var(--o);border-radius:3px;animation:sp-run 1s ease-in-out infinite}
.sp-name{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@keyframes sp-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes sp-run{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}
@keyframes sp-fs{to{visibility:hidden;pointer-events:none}}
@media (prefers-reduced-motion:reduce){#splash img,.sp-bar i{animation:none}.sp-bar i{width:100%}}

/* 0.19: správa QR kódov (panel "QR kódy" v záložke Vodiči) */
.qrnew{display:grid;gap:.5rem;max-width:26rem;margin:.8rem 0 1.2rem}
.qrtab td{vertical-align:top}
.qrsmall svg{width:140px;height:140px;display:block}
.qrtab .linkline{margin:.4rem 0 0}
.qrtab .linkline input{width:100%;min-width:12rem}
