:root{--bg:#042b32;--card:#0b3a43;--card2:#0d424c;--line:rgba(132,224,216,.15);--text:#f2fbfa;--muted:#9ab8bc;--sea:#78d9d0;--green:#79dd91;--green2:#1b6d58;--red:#f18989;--amber:#f1c96b;--shadow:0 16px 42px rgba(0,0,0,.18)}
*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;background:linear-gradient(180deg,#032a31 0%,#062f36 45%,#04272e 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}.appShell{width:min(720px,100%);margin:0 auto;padding:calc(env(safe-area-inset-top) + 18px) 18px calc(env(safe-area-inset-bottom) + 28px)}.hero{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 6px 18px}.eyebrow{font-size:12px;font-weight:850;letter-spacing:.12em;color:var(--sea)}h1{margin:4px 0 3px;font-size:clamp(32px,8vw,52px);line-height:.95;letter-spacing:-.045em}h2{margin:3px 0 0;font-size:22px;letter-spacing:-.02em}.hero p{margin:8px 0 0;color:var(--muted);font-size:14px}.iconBtn,.secondaryBtn,.primaryBtn,.dangerBtn,.countBtn{font:inherit;color:inherit;border:1px solid var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent}.iconBtn{width:44px;height:44px;border-radius:16px;background:rgba(255,255,255,.04);font-size:23px}.card{background:linear-gradient(180deg,rgba(14,66,76,.95),rgba(8,55,64,.96));border:1px solid var(--line);border-radius:26px;padding:20px;box-shadow:var(--shadow);margin-bottom:16px}.cardHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.cardHead.compact{align-items:center}.statusBadge{display:inline-flex;padding:7px 11px;border-radius:999px;background:rgba(121,221,145,.13);border:1px solid rgba(121,221,145,.22);color:#aef2b9;font-size:12px;font-weight:800;white-space:nowrap}.statusBadge.dim{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);color:var(--muted)}.tripMeta{font-size:17px;font-weight:750;margin-top:14px}.delayLine{min-height:22px;color:var(--amber);font-size:13px;font-weight:700;margin-top:4px}.tripActions,.bottomActions{display:flex;gap:10px;margin-top:14px}.secondaryBtn,.primaryBtn,.dangerBtn{min-height:46px;border-radius:15px;padding:10px 15px;font-weight:800}.secondaryBtn{background:rgba(255,255,255,.05)}.secondaryBtn.small{min-height:38px;padding:8px 11px;font-size:12px}.primaryBtn{background:linear-gradient(180deg,#2a8b75,#1f755f);border-color:rgba(145,240,179,.35);flex:1}.dangerBtn{background:rgba(241,137,137,.09);border-color:rgba(241,137,137,.22);color:#ffc2c2}.tripChoices{display:grid;gap:8px;margin-top:14px}.tripChoice{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:12px 13px;border-radius:15px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:inherit}.tripChoice strong{display:block}.tripChoice small{color:var(--muted)}.stopChips{display:flex;gap:8px;overflow:auto;padding:13px 0 2px;scrollbar-width:none}.stopChips::-webkit-scrollbar{display:none}.stopChip{flex:0 0 auto;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--muted);border-radius:999px;padding:9px 12px;font-weight:750}.stopChip.active{background:rgba(120,217,208,.13);border-color:rgba(120,217,208,.34);color:var(--text)}.onboardCard{text-align:center}.center{text-align:center}.onboardValue{font-size:clamp(82px,24vw,150px);font-weight:900;line-height:.9;letter-spacing:-.07em;margin:12px 0 18px}.counterGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.countSide{padding:14px;border-radius:22px;border:1px solid var(--line);background:rgba(0,0,0,.08)}.countSide h3{margin:0 0 10px;font-size:15px}.countSide.boarding h3{color:#a9f0b4}.countSide.alighting h3{color:#ffd0d0}.countBtn{background:rgba(255,255,255,.06);border-radius:18px;font-weight:900}.countBtn.main{width:100%;height:94px;font-size:38px}.boarding .countBtn.main{background:linear-gradient(180deg,rgba(54,149,102,.42),rgba(30,106,76,.42));border-color:rgba(121,221,145,.33)}.alighting .countBtn.main{background:linear-gradient(180deg,rgba(168,77,77,.34),rgba(119,53,53,.32));border-color:rgba(241,137,137,.28)}.quickRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.quickRow .countBtn{height:50px;font-size:18px}.sessionTotals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.sessionTotals div,.statsGrid div{border:1px solid var(--line);border-radius:15px;background:rgba(0,0,0,.08);padding:11px}.sessionTotals span,.statsGrid span{display:block;color:var(--muted);font-size:11px}.sessionTotals strong,.statsGrid strong{display:block;margin-top:4px;font-size:22px}.eventLog{display:grid;gap:8px;margin-top:14px}.eventItem{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;background:rgba(0,0,0,.08);border:1px solid rgba(255,255,255,.05)}.eventType{font-weight:900}.eventType.board{color:#aef2b9}.eventType.alight{color:#ffc2c2}.eventStop{color:var(--muted);font-size:12px}.eventTime{font-size:12px;color:var(--muted)}.statsGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.storageNote{color:var(--muted);font-size:12px;line-height:1.45;margin:14px 2px 0}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#143f46;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:999px;padding:10px 16px;font-weight:750;z-index:50}footer{text-align:center;color:#709198;font-size:11px;padding:7px 0 20px}@media(max-width:430px){.appShell{padding-left:12px;padding-right:12px}.card{padding:16px;border-radius:22px}.counterGrid{gap:8px}.countSide{padding:10px}.countBtn.main{height:86px}.sessionTotals{gap:6px}.tripActions{flex-wrap:wrap}.tripActions .secondaryBtn{flex:1}.tripActions .primaryBtn{flex:1 0 100%}}@media(max-width:350px){.counterGrid{grid-template-columns:1fr}.statsGrid{grid-template-columns:1fr 1fr}}

/* v0.2.0 / Build 2 — automatisk hållplats via Västtrafik GPS, säkrare räknelogik och UI-polering. */
.stopHeadActions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.autoBadge{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap;border:1px solid var(--line)}
.autoBadge.gps{background:rgba(121,221,145,.10);border-color:rgba(121,221,145,.24);color:#baf5c3}
.autoBadge.manual{background:rgba(255,255,255,.04);color:var(--muted)}
.stopChips{scroll-snap-type:x proximity;padding-bottom:5px}
.stopChip{scroll-snap-align:start;min-width:max-content;padding-left:14px;padding-right:14px}
.arrivalHint{margin-top:12px;padding:10px 12px;border-radius:14px;background:rgba(121,221,145,.09);border:1px solid rgba(121,221,145,.22);color:#c9f5d0;font-size:12px;font-weight:750;line-height:1.35;text-align:left}
.countBtn:disabled{opacity:.28;cursor:not-allowed;filter:saturate(.5)}
@media(max-width:430px){.stopCard .cardHead{align-items:flex-start}.stopHeadActions{max-width:48%}.stopHeadActions .secondaryBtn.small{font-size:10.5px;padding:7px 9px}.autoBadge{font-size:10px;padding:5px 8px}}


/* v0.4.0 / Build 4 — säkerhetsräkning per delsträcka mellan varje hållplats. */
.legList{display:grid;gap:8px;margin-top:14px}.legRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:15px;background:rgba(0,0,0,.08)}.legRow div{min-width:0}.legRow strong{display:block;font-size:13px;line-height:1.3}.legRow span{display:block;margin-top:3px;color:var(--muted);font-size:10.5px}.legRow b{flex:0 0 auto;font-size:15px}.legRow.done{border-color:rgba(121,221,145,.20)}.legRow.done b{color:#baf5c3}.legRow.active{background:rgba(120,217,208,.08);border-color:rgba(120,217,208,.30)}.legRow.active b{color:#c8fbf5}.legRow.future{opacity:.58}@media(max-width:430px){.legRow{padding:11px}.legRow strong{font-size:12.2px}.legRow b{font-size:13.5px}}


/* v0.5.0 Build 5 — avklarade turer med hållplatsvis på/av/totalt. */
.completedHead{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.completedHead h3{margin:3px 0 0;font-size:18px}
.completedTrips{display:grid;gap:12px;margin-top:12px}
.completedEmpty{border:1px dashed var(--line);border-radius:16px;padding:16px;color:var(--muted);font-size:13px;text-align:center}
.completedTrip{border:1px solid rgba(120,217,208,.18);border-radius:19px;background:rgba(0,0,0,.10);overflow:hidden}
.completedTripHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:14px 14px 12px}
.completedTripHead>div{min-width:0}.completedTripHead strong{display:block;font-size:14px;line-height:1.25}.completedTripHead small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.completedTripHead>b{flex:0 0 auto;border:1px solid rgba(120,217,208,.22);border-radius:999px;padding:6px 9px;color:var(--sea);font-size:11px;white-space:nowrap}
.completedTripNo{display:block;color:var(--sea);font-size:10px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;margin-bottom:3px}
.completedTable{border-top:1px solid var(--line)}
.completedTableHead,.completedStopRow{display:grid;grid-template-columns:minmax(0,1fr) 42px 42px 54px;gap:6px;align-items:center;padding:9px 12px}
.completedTableHead{background:rgba(255,255,255,.025);color:var(--muted);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.completedTableHead span:not(:first-child),.completedStopRow span,.completedStopRow>b{text-align:right}
.completedStopRow{border-top:1px solid rgba(255,255,255,.045);font-size:12px}.completedStopRow:first-of-type{border-top:0}.completedStopRow strong{font-size:12px;line-height:1.15}.completedStopRow .boardNum{color:#aef2b9;font-weight:850}.completedStopRow .alightNum{color:#ffc2c2;font-weight:850}.completedStopRow>b{font-size:15px;color:#fff}
@media(max-width:380px){.completedTableHead,.completedStopRow{grid-template-columns:minmax(0,1fr) 38px 38px 48px;padding-left:10px;padding-right:10px}.completedTripHead{padding-left:12px;padding-right:12px}}


/* v0.6.0 / Build 6 — tydlig total resenärsvolym per tur och dag. */
.dailyPassengerTotal{margin-top:14px;border:1px solid rgba(120,217,208,.28);border-radius:18px;padding:15px 16px;text-align:center;background:linear-gradient(180deg,rgba(120,217,208,.10),rgba(0,0,0,.08))}
.dailyPassengerTotal span{display:block;color:var(--sea);font-size:10px;font-weight:850;letter-spacing:.10em}
.dailyPassengerTotal strong{display:block;font-size:40px;line-height:1;margin:7px 0 5px;letter-spacing:-.04em}
.dailyPassengerTotal small{display:block;color:var(--muted);font-size:10.5px}
.completedTripMetrics{flex:0 0 auto;display:grid;gap:6px;justify-items:end}
.completedTripMetrics>b{border:1px solid rgba(120,217,208,.22);border-radius:999px;padding:6px 9px;color:var(--sea);font-size:11px;white-space:nowrap}
.completedTripMetrics>.passengerBadge{color:#d9fff0;background:rgba(121,221,145,.10);border-color:rgba(121,221,145,.24)}
@media(max-width:390px){.completedTripHead{gap:8px}.completedTripMetrics>b{font-size:10px;padding:5px 7px}}


/* v0.7.0 / Build 7 — obligatoriskt båtval och däcksman, statistik separerad per fartyg. */
.setupCard{display:grid;gap:12px}.setupLabel{display:block;color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px}.boatChoices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.boatChoice{border:1px solid var(--line);background:rgba(255,255,255,.025);color:#fff;border-radius:16px;padding:14px 12px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:8px}.boatChoice strong{font-size:14px}.boatChoice span{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 7px}.boatChoice.active{background:rgba(121,221,145,.12);border-color:rgba(121,221,145,.48);box-shadow:inset 0 0 0 1px rgba(121,221,145,.08)}.boatChoice.active strong{color:#c9f7d1}.boatChoice.active span{color:#c9f7d1;border-color:rgba(121,221,145,.30)}.boatChoice:disabled{opacity:.72}.deckhandField{display:block}.deckhandField select{width:100%;appearance:none;background:rgba(255,255,255,.035);border:1px solid var(--line);color:#fff;border-radius:16px;padding:14px 42px 14px 14px;font:inherit;font-weight:750;background-image:linear-gradient(45deg,transparent 50%,#8fb7b8 50%),linear-gradient(135deg,#8fb7b8 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}.deckhandField select option{color:#111;background:#fff}.deckhandField select:disabled{opacity:.72}.setupNote{color:var(--muted);font-size:11px;line-height:1.4;padding:10px 12px;border-radius:13px;background:rgba(0,0,0,.10);border:1px solid rgba(255,255,255,.045)}.primaryBtn:disabled{opacity:.45;filter:saturate(.45);cursor:not-allowed}.sessionIdentity{margin:-2px 3px 0;padding:10px 13px;border:1px solid rgba(120,217,208,.18);border-radius:14px;background:rgba(120,217,208,.06);color:#c9f7f2;font-size:11px;font-weight:800;text-align:center}.boatStats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.boatStatCard{border:1px solid rgba(120,217,208,.18);border-radius:16px;padding:12px;background:rgba(0,0,0,.08)}.boatStatCard>span{display:block;color:var(--sea);font-size:9.5px;font-weight:850;letter-spacing:.06em}.boatStatCard>strong{display:block;font-size:28px;line-height:1;margin:7px 0 5px}.boatStatCard small{display:block;color:var(--muted);font-size:9.5px;line-height:1.35}.boatStatCard small b{color:#fff}@media(max-width:390px){.boatChoice{padding:12px 10px}.boatChoice strong{font-size:12.5px}.boatStats{grid-template-columns:1fr}.sessionIdentity{font-size:10px}}

/* v0.8.0 / Build 9 — nytt ljust färgtema inspirerat av referensbilden (klar blå, ljusgrå, svart/grafit). */
:root{
  --bg:#eef1f4;
  --card:#ffffff;
  --card2:#f7fafc;
  --line:rgba(11,41,63,.10);
  --text:#071827;
  --muted:#637486;
  --sea:#1090d0;
  --green:#28b66f;
  --green2:#1b8c5c;
  --red:#d86f76;
  --amber:#bd7d00;
  --shadow:0 14px 34px rgba(12,36,61,.08);
}
html{background:var(--bg);color-scheme:light}
body{
  background:linear-gradient(180deg,#eef1f4 0%,#edf2f7 42%,#e7edf3 100%);
  color:var(--text);
}
.appShell{width:min(760px,100%)}
.eyebrow{color:var(--sea)}
.hero p, footer, .storageNote, .sessionTotals span, .statsGrid span, .eventStop, .eventTime, .tripChoice small, .sessionIdentity, .setupNote, .boatStatCard small, .dailyPassengerTotal small, .completedTableHead, .completedTripHead small, .completedEmpty, .legRow span{color:var(--muted)}
.iconBtn{
  background:#ffffff;
  border-color:rgba(16,144,208,.16);
  color:var(--sea);
  box-shadow:0 10px 24px rgba(16,144,208,.08);
}
.card{
  background:linear-gradient(180deg,#ffffff 0%, #f8fbfd 100%);
  border:1px solid rgba(16,144,208,.12);
  box-shadow:var(--shadow);
}
.statusBadge{
  background:rgba(40,182,111,.10);
  border-color:rgba(40,182,111,.20);
  color:#1f8b57;
}
.statusBadge.dim{
  background:#f4f7fa;
  border-color:rgba(11,41,63,.08);
  color:var(--muted);
}
.delayLine{color:var(--amber)}
.secondaryBtn,.tripChoice,.stopChip,.countBtn,.boatChoice,.deckhandField select,.sessionTotals div,.statsGrid div,.eventItem,.countSide,.boatStatCard,.completedTrip,.completedEmpty,.legRow,.setupNote,.sessionIdentity,.tripChoice,.tripChoices .tripChoice,.dailyPassengerTotal{
  box-shadow:none;
}
.secondaryBtn{
  background:#f5f8fb;
  border-color:rgba(11,41,63,.10);
  color:var(--text);
}
.primaryBtn{
  background:linear-gradient(180deg,#22ace7,#1090d0);
  border-color:rgba(16,144,208,.35);
  color:#fff;
}
.primaryBtn:disabled{opacity:.55}
.dangerBtn{
  background:#fff6f6;
  border-color:rgba(216,111,118,.28);
  color:#b84b53;
}
.tripChoice{
  background:#fbfdff;
  border-color:rgba(11,41,63,.08);
}
.stopChip{
  background:#f6f9fc;
  border-color:rgba(11,41,63,.08);
  color:var(--muted);
}
.stopChip.active{
  background:rgba(16,144,208,.10);
  border-color:rgba(16,144,208,.24);
  color:var(--sea);
}
.arrivalHint{
  background:rgba(16,144,208,.07);
  border-color:rgba(16,144,208,.20);
  color:#0b6795;
}
.autoBadge.gps{
  background:rgba(16,144,208,.10);
  border-color:rgba(16,144,208,.22);
  color:#0c77aa;
}
.autoBadge.manual{
  background:#f5f8fb;
  border-color:rgba(11,41,63,.10);
  color:var(--muted);
}
.countSide,
.sessionTotals div,
.statsGrid div,
.eventItem,
.legRow,
.boatStatCard,
.completedTrip,
.completedEmpty,
.dailyPassengerTotal,
.setupNote,
.sessionIdentity{
  background:#fbfdff;
  border-color:rgba(11,41,63,.08);
}
.countSide h3{font-size:16px}
.countSide.boarding h3{color:#159159}
.countSide.alighting h3{color:#c45d65}
.countBtn{
  background:#f5f8fb;
  border-color:rgba(11,41,63,.09);
  color:var(--text);
}
.boarding .countBtn.main{
  background:linear-gradient(180deg,#e8f7ef,#d7f0e2);
  border-color:rgba(40,182,111,.32);
  color:#10764a;
}
.alighting .countBtn.main{
  background:linear-gradient(180deg,#fff3f4,#fde6e8);
  border-color:rgba(216,111,118,.25);
  color:#a94a52;
}
.sessionTotals strong,.statsGrid strong{color:var(--text)}
.eventType.board{color:#159159}
.eventType.alight{color:#c45d65}
.completedHead{border-top-color:rgba(11,41,63,.08)}
.completedTrip{border-color:rgba(16,144,208,.14);background:#fbfdff}
.completedTripNo,.boatStatCard>span,.dailyPassengerTotal span{color:var(--sea)}
.completedTripMetrics>b,
.completedTripHead>b{
  border-color:rgba(16,144,208,.18);
  color:var(--sea);
  background:rgba(16,144,208,.05);
}
.completedTripMetrics>.passengerBadge{
  color:#127e52;
  background:rgba(40,182,111,.10);
  border-color:rgba(40,182,111,.22);
}
.completedTable{border-top-color:rgba(11,41,63,.07)}
.completedTableHead{background:#f4f8fb;color:var(--muted)}
.completedStopRow{border-top-color:rgba(11,41,63,.06)}
.completedStopRow .boardNum{color:#159159}
.completedStopRow .alightNum{color:#c45d65}
.completedStopRow>b{color:var(--text)}
.legRow.done{border-color:rgba(40,182,111,.24)}
.legRow.done b{color:#159159}
.legRow.active{background:rgba(16,144,208,.08);border-color:rgba(16,144,208,.22)}
.legRow.active b{color:#0c77aa}
.setupLabel{color:var(--muted)}
.boatChoice{
  background:#fbfdff;
  border-color:rgba(11,41,63,.09);
  color:var(--text);
}
.boatChoice span{
  color:var(--muted);
  border-color:rgba(11,41,63,.09);
}
.boatChoice.active{
  background:rgba(16,144,208,.08);
  border-color:rgba(16,144,208,.28);
  box-shadow:inset 0 0 0 1px rgba(16,144,208,.06);
}
.boatChoice.active strong,.boatChoice.active span{color:#0c77aa}
.boatChoice.active span{border-color:rgba(16,144,208,.18)}
.deckhandField select{
  background-color:#fbfdff;
  border-color:rgba(11,41,63,.09);
  color:var(--text);
  background-image:linear-gradient(45deg,transparent 50%,#5f7387 50%),linear-gradient(135deg,#5f7387 50%,transparent 50%);
}
.sessionIdentity{
  background:rgba(16,144,208,.06);
  border-color:rgba(16,144,208,.16);
  color:#0c77aa;
}
.boatStatCard>strong,.dailyPassengerTotal strong{color:var(--text)}
footer{color:#6f8292}


/* v0.9.0 / Build 10 — installbar för PWA. */
.installCard{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 6px 16px;padding:13px 14px;border:1px solid rgba(16,144,208,.16);border-radius:18px;background:linear-gradient(180deg,#ffffff,#f6fbfe);box-shadow:0 10px 28px rgba(16,144,208,.08)}
.installCard[hidden]{display:none!important}.installCopy{min-width:0}.installCopy strong{display:block;font-size:14px;color:var(--text)}.installCopy span{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35}.installBtn{flex:0 0 auto;border:1px solid rgba(16,144,208,.30);border-radius:13px;background:linear-gradient(180deg,#22ace7,#1090d0);color:white;padding:10px 13px;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.installBtn[hidden]{display:none!important}
@media(max-width:390px){.installCard{margin-left:2px;margin-right:2px}.installCopy strong{font-size:13px}.installCopy span{font-size:10.5px}}


/* v0.9.1 / Build 11 — kompakt arbetspassrad med båt och däcksman sida vid sida. */
.setupBar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;margin:0 4px 12px;padding:9px 10px;background:rgba(255,255,255,.72);border:1px solid rgba(16,144,208,.12);border-radius:18px;box-shadow:0 8px 22px rgba(12,36,61,.045);backdrop-filter:blur(10px)}
.compactField{display:grid;gap:4px;min-width:0}
.compactField>span{font-size:8.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-left:2px}
.compactField select,.setupBar .deckhandField select{width:100%;min-width:0;height:38px;appearance:none;background-color:#f8fbfd;border:1px solid rgba(11,41,63,.09);color:var(--text);border-radius:12px;padding:0 30px 0 10px;font:inherit;font-size:11.5px;font-weight:800;white-space:nowrap;text-overflow:ellipsis;background-image:linear-gradient(45deg,transparent 50%,#5f7387 50%),linear-gradient(135deg,#5f7387 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.compactField select:disabled{opacity:.65;background-color:#f0f3f6;color:#687986}
@media(max-width:390px){.setupBar{gap:7px;padding:8px}.compactField select,.setupBar .deckhandField select{font-size:10.5px;padding-left:8px}}


/* v0.9.2 / Build 12 — tydligare och mer lättläst aktiv-tur-kort. */
.liveCard{padding-top:18px}
.liveTop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.liveHeading{min-width:0}
.tripKicker{margin-top:7px;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.10em}
.liveCard h2{margin-top:2px;font-size:clamp(22px,5.7vw,29px);line-height:1.05;letter-spacing:-.025em}
.tripRoute{margin-top:13px;font-size:clamp(24px,6vw,32px);font-weight:900;line-height:1.08;letter-spacing:-.035em;color:var(--text)}
.tripFacts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}
.tripFact{padding:11px 13px;border:1px solid rgba(11,41,63,.08);border-radius:15px;background:#f7fafc}
.tripFact span,.tripLabel,.tripStatusLine>span{display:block;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.tripFact strong{display:block;margin-top:3px;font-size:22px;line-height:1;color:var(--text)}
.tripStopsBlock{margin-top:13px}
.tripStops{display:flex;align-items:center;gap:5px;overflow-x:auto;padding:7px 1px 3px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tripStops::-webkit-scrollbar{display:none}
.tripStop{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#f4f8fb;border:1px solid rgba(11,41,63,.07);color:#43596b;font-size:10.5px;font-weight:800;white-space:nowrap}
.tripStop.empty{min-width:36px;text-align:center}
.tripStopArrow{flex:0 0 auto;color:#8ca0b0;font-size:17px;line-height:1}
.tripStatusLine{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding:9px 11px;border-radius:13px;background:rgba(16,144,208,.055);border:1px solid rgba(16,144,208,.12)}
.tripStatusLine>span{margin:0}
.tripStatusLine strong{font-size:12px;color:#0c77aa;text-align:right}
.liveCard .tripActions{margin-top:12px;display:grid;grid-template-columns:.7fr 1.3fr;gap:9px}
.liveCard .tripActions .secondaryBtn,.liveCard .tripActions .primaryBtn{width:100%;min-height:48px}
.liveCard .tripActions .primaryBtn{flex:initial}
.liveCard .tripChoices{margin-top:10px}
@media(max-width:430px){
  .liveCard{padding:16px}
  .tripFacts{gap:7px}
  .tripFact{padding:10px 11px}
  .tripFact strong{font-size:20px}
  .tripStop{font-size:10px;padding:5px 8px}
  .liveCard .tripActions{grid-template-columns:.65fr 1.35fr}
  .liveCard .tripActions .secondaryBtn,.liveCard .tripActions .primaryBtn{font-size:13px;padding-left:10px;padding-right:10px}
}


/* v0.9.3 / Build 13 — hela resan synlig i turkortet och exakt Västtrafik-rutt när sådan finns. */
.tripStopsBlock{margin-top:14px}
.tripStops{display:flex;align-items:center;gap:6px;flex-wrap:wrap;overflow:visible;padding:8px 0 1px}
.tripStop{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#f4f8fb;border:1px solid rgba(11,41,63,.08);color:#43596b;font-size:10.5px;font-weight:800;white-space:nowrap}
.tripStop:first-child,.tripStop:last-child{background:rgba(16,144,208,.08);border-color:rgba(16,144,208,.16);color:#0b6f9f}
.tripStopArrow{flex:0 0 auto;color:#8297a8;font-size:16px;line-height:1;font-weight:800}
@media(max-width:430px){.tripStops{gap:5px}.tripStop{font-size:9.7px;padding:5px 7px}.tripStopArrow{font-size:14px}}


/* v0.9.4 / Build 14 — enklare registreringsmeny med tydlig tur/hållplats och manuellt läge. */
.registeringMeta{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.45;max-width:44ch}
.modeSwitch{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid rgba(11,41,63,.09);background:#f5f8fb;border-radius:14px}
.modeBtn{min-height:34px;padding:0 11px;border:0;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:850;cursor:pointer}
.modeBtn.active{background:#ffffff;color:var(--sea);box-shadow:0 1px 0 rgba(11,41,63,.03),0 4px 10px rgba(12,36,61,.06)}
.manualHint{margin-top:12px;padding:10px 12px;border-radius:14px;background:#f7fafc;border:1px solid rgba(11,41,63,.08);color:var(--muted);font-size:12px;line-height:1.4}
.manualHint[hidden]{display:none!important}
@media(max-width:430px){.registeringMeta{font-size:11px}.stopHeadActions{width:100%;justify-content:space-between;gap:8px;margin-top:2px}.modeSwitch{padding:3px}.modeBtn{min-height:32px;font-size:11px;padding:0 9px}.stopCard .cardHead.compact{flex-direction:column;align-items:stretch}.stopHeadActions .secondaryBtn.small{min-height:34px}}


/* v0.9.5 / Build 15 — tydligare säkerhetsöversikt per delsträcka */
.currentLegBanner{margin:6px 0 14px;padding:14px 16px;border-radius:18px;border:1px solid rgba(24,157,255,.18);background:linear-gradient(180deg,rgba(24,157,255,.07),rgba(24,157,255,.03))}
.currentLegEyebrow{font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--brand);margin-bottom:6px}
.currentLegMain{font-size:24px;font-weight:900;line-height:1.15;color:var(--ink)}
.currentLegMeta{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.currentLegMeta strong{font-size:18px;color:var(--ink)}
.currentLegMeta span{font-size:13px;line-height:1.45;color:var(--muted)}
.legRow.active{border-width:2px}
.legRow.active span{font-weight:800;color:var(--brand)}
@media(max-width:430px){.currentLegMain{font-size:21px}.currentLegMeta strong{font-size:17px}}

/* v0.9.6 / Build 16 — fast säkerhetsruta högst upp i räknedelen. */
.currentLegEyebrow{color:var(--sea)}
.currentLegMain,.currentLegMeta strong{color:var(--text)}
.legRow.active span{color:var(--sea)}
.safetyStatusCard{
  position:sticky;
  top:calc(env(safe-area-inset-top) + 6px);
  z-index:20;
  margin:0 0 12px;
  padding:13px 14px;
  border-radius:20px;
  border:1px solid rgba(16,144,208,.22);
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 30px rgba(12,36,61,.12);
  backdrop-filter:blur(14px);
}
.safetyStatusTop{display:flex;align-items:center;justify-content:space-between;gap:10px}
.safetyStatusLabel{font-size:10px;font-weight:950;letter-spacing:.11em;color:var(--sea)}
.safetyStatusRight{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:9.5px;font-weight:750;white-space:nowrap}
.safetyModeBadge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:4px 7px;border-radius:999px;background:rgba(16,144,208,.10);border:1px solid rgba(16,144,208,.20);color:#0c77aa;font-size:9px;font-weight:900;letter-spacing:.05em}
.safetyModeBadge.manual{background:#fff6e7;border-color:rgba(189,125,0,.20);color:#9a6700}
.safetyTrip{margin-top:6px;font-size:12px;font-weight:850;line-height:1.35;color:#30485a}
.safetyStatusGrid{display:grid;grid-template-columns:minmax(0,1fr) 94px;gap:9px;margin-top:10px}
.safetyLegBox,.safetyOnboardBox{border:1px solid rgba(11,41,63,.08);border-radius:15px;background:#f7fafc;padding:10px 11px}
.safetyLegBox>span,.safetyOnboardBox>span{display:block;color:var(--muted);font-size:8.5px;font-weight:900;letter-spacing:.09em}
.safetyLegBox strong{display:block;margin-top:4px;font-size:17px;line-height:1.15;color:var(--text)}
.safetyLegBox small{display:block;margin-top:4px;color:var(--muted);font-size:9.5px;line-height:1.3}
.safetyOnboardBox{text-align:center;background:linear-gradient(180deg,rgba(16,144,208,.09),rgba(16,144,208,.04));border-color:rgba(16,144,208,.16)}
.safetyOnboardBox strong{display:block;margin-top:2px;font-size:40px;line-height:1;color:var(--text);letter-spacing:-.05em}
@media(max-width:430px){
  .safetyStatusCard{padding:11px 12px;border-radius:18px;top:calc(env(safe-area-inset-top) + 4px)}
  .safetyTrip{font-size:10.5px}
  .safetyStatusGrid{grid-template-columns:minmax(0,1fr) 82px;gap:7px;margin-top:8px}
  .safetyLegBox,.safetyOnboardBox{padding:9px 10px}
  .safetyLegBox strong{font-size:15.5px}
  .safetyLegBox small{font-size:9px}
  .safetyOnboardBox strong{font-size:36px}
  .safetyStatusRight{font-size:8.8px;gap:5px}
}


/* v0.9.7 / Build 17 — visa alltid alla destinationer i turkortet, men skilj på planerade stopp. */
.tripLegend{display:block;margin-top:4px;color:var(--muted);font-size:9.5px;line-height:1.3}
.tripStop.served{background:rgba(16,144,208,.09);border-color:rgba(16,144,208,.18);color:#0b6f9f}
.tripStop.notServed{background:#f5f7f9;border-color:rgba(11,41,63,.07);color:#94a2ae;opacity:.82}
.tripStop.notServed::after{content:' · ej stopp';font-size:.86em;font-weight:700}
@media(max-width:430px){.tripLegend{font-size:9px}.tripStop.notServed::after{content:' · ej stopp'}}


/* v0.9.8 / Build 18 — visa hela faktiska anropsmönstret i turens huvudrubrik. */
.tripRoute{font-size:clamp(20px,5.2vw,30px);line-height:1.18}
@media(max-width:430px){.tripRoute{font-size:clamp(19px,5vw,25px)}}

/* v1.0.0 / Build 19 — efterregistrering, datakontroll, redigering och datumbaserad statistik. */
.statsHead{align-items:flex-start}
.statsHeadActions{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.statsDateField{display:grid;gap:4px}
.statsDateField span{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.statsDateField input,.manualEntryGrid input,.manualEntryGrid select{
  min-height:40px;border:1px solid rgba(11,41,63,.10);border-radius:12px;background:#f8fbfd;color:var(--text);font:inherit;font-size:12px;font-weight:750;padding:8px 10px
}
.statsDateField input{min-width:138px}
.statsDayType{margin-top:4px;color:var(--muted);font-size:11px;font-weight:750}
.manualEntryPanel,.dataCheckPanel{margin-top:18px;padding:16px;border:1px solid rgba(16,144,208,.14);border-radius:20px;background:#fbfdff}
.manualEntryHead,.dataCheckPanel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.manualEntryHead h3,.dataCheckPanel h3{margin:3px 0 0;font-size:19px;letter-spacing:-.02em}
.manualEntryHead p,.dataCheckPanel p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.manualEntryBody{grid-column:1/-1;margin-top:14px;padding-top:14px;border-top:1px solid rgba(11,41,63,.08)}
.manualEntryBody[hidden]{display:none!important}
.manualEntryGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.manualEntryGrid label{display:grid;gap:5px;min-width:0}
.manualEntryGrid label>span{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.manualEntryGrid .manualDeckhand{grid-column:1/-1}
.manualDayType{margin:10px 0 0;color:#0c77aa;font-size:12px;font-weight:800}
.manualCountsWrap{margin-top:14px;border:1px solid rgba(11,41,63,.08);border-radius:16px;overflow:hidden;background:#fff}
.manualCountsHead,.manualCountRow{display:grid;grid-template-columns:minmax(0,1.55fr) 70px 70px 72px;gap:7px;align-items:center;padding:9px 11px}
.manualCountsHead{background:#f3f7fa;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.manualCountRow{border-top:1px solid rgba(11,41,63,.06)}
.manualCountRow strong{font-size:12px;line-height:1.2}
.manualCountRow input{width:100%;min-width:0;height:38px;border:1px solid rgba(11,41,63,.09);border-radius:10px;background:#f8fbfd;color:var(--text);font:inherit;font-size:14px;font-weight:850;text-align:center;padding:4px}
.manualCountRow b{text-align:right;font-size:17px}
.manualCountRow.invalid{background:#fff5f5}
.manualCountRow.invalid input[data-kind="alight"]{border-color:rgba(216,111,118,.48);background:#fff8f8}
.manualValidation{margin-top:10px;padding:10px 12px;border-radius:13px;font-size:12px;line-height:1.4}
.manualValidation.error{background:#fff3f4;border:1px solid rgba(216,111,118,.25);color:#a9444d}
.manualEntryActions{display:flex;gap:9px;justify-content:flex-end;margin-top:12px}
.manualEntryActions .primaryBtn{flex:0 1 260px}
.dataCheckPanel{margin-top:12px}
.dataCheckPanel>button{align-self:start}
.auditResult{grid-column:1/-1;margin-top:2px;padding:11px 12px;border-radius:14px;font-size:12px;line-height:1.45}
.auditResult.ok{background:#edf9f2;border:1px solid rgba(40,182,111,.22);color:#147747}
.auditResult.warn{background:#fff8e8;border:1px solid rgba(189,125,0,.22);color:#8f5c00}
.auditResult.neutral{background:#f5f8fb;border:1px solid rgba(11,41,63,.08);color:var(--muted)}
.auditResult ul{margin:7px 0 0;padding-left:18px}.auditResult li+li{margin-top:5px}
.completedActions{display:flex;gap:8px;justify-content:flex-end;padding:10px 12px 12px;border-top:1px solid rgba(11,41,63,.06)}
.completedActions .secondaryBtn,.completedActions .dangerBtn{min-height:36px;padding:7px 11px;font-size:11px}
.currentLegEyebrow,.legRow.active span{color:var(--sea)}
@media(max-width:520px){
  .statsHead{flex-direction:column;align-items:stretch}.statsHeadActions{justify-content:space-between}.statsDateField{flex:1}.statsDateField input{width:100%;min-width:0}
  .manualEntryGrid{grid-template-columns:1fr 1fr}.manualEntryHead,.dataCheckPanel{grid-template-columns:minmax(0,1fr) auto}
  .manualCountsHead,.manualCountRow{grid-template-columns:minmax(0,1.4fr) 58px 58px 62px;padding-left:9px;padding-right:9px}.manualCountRow input{height:36px;font-size:13px}
}
@media(max-width:390px){
  .manualEntryGrid{grid-template-columns:1fr}.manualEntryGrid .manualDeckhand{grid-column:auto}.manualCountsHead,.manualCountRow{grid-template-columns:minmax(0,1.25fr) 52px 52px 54px;gap:5px}.manualCountRow strong{font-size:10.5px}.manualCountRow b{font-size:15px}.manualEntryActions{flex-direction:column}.manualEntryActions .primaryBtn{flex:auto;width:100%}
}

/* v1.0.1 / Build 20 — slå ihop hållplats och räknare, övertydlig aktuell registreringsplats. */
.countingCard{padding-top:18px}
.countingContext{padding-bottom:2px}
.countingContextHead{align-items:flex-start}
.countingContext h2{font-size:clamp(28px,7vw,38px);line-height:1.05;margin-top:4px}
.countingDivider{height:1px;background:rgba(11,41,63,.08);margin:16px 0 14px}
.countingForBadge{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 13px;border:1px solid rgba(16,144,208,.18);border-radius:14px;background:linear-gradient(180deg,rgba(16,144,208,.09),rgba(16,144,208,.04));color:#0c77aa;font-size:12px;font-weight:950;letter-spacing:.10em;text-align:center}
.countingCard .onboardValue{margin-top:10px}
.countingCard #onboardLabel{margin-top:14px;font-size:12px}
.countingCard .countSide h3{min-height:40px;display:flex;align-items:center;justify-content:center;line-height:1.2;text-align:center}
.countingCard .arrivalHint{margin-bottom:2px}
@media(max-width:430px){
  .countingCard{padding:16px}
  .countingContext h2{font-size:30px}
  .countingForBadge{font-size:11px;min-height:40px;padding:8px 10px}
  .countingCard #onboardLabel{font-size:10.5px}
  .countingCard .countSide h3{font-size:14px;min-height:38px}
}


/* v1.0.2 / Build 21 — tydligare start/fortsätt-logik */
.countingStatusHint{margin-top:12px;padding:8px 11px;border-radius:12px;background:rgba(40,182,111,.09);border:1px solid rgba(40,182,111,.18);color:#188653;font-size:11px;font-weight:850;text-align:center}
.countingStatusHint[hidden]{display:none!important}


/* v1.0.3 / Build 22 — tydlig navigering till pågående räkning */
#activeCountingCard{scroll-margin-top:18px}
.countingFocusPulse{animation:countingFocusPulse 1.6s ease-out}
@keyframes countingFocusPulse{
  0%{box-shadow:0 0 0 0 rgba(16,144,208,.36),var(--shadow)}
  38%{box-shadow:0 0 0 8px rgba(16,144,208,.15),var(--shadow)}
  100%{box-shadow:0 0 0 0 rgba(16,144,208,0),var(--shadow)}
}
@media(prefers-reduced-motion:reduce){.countingFocusPulse{animation:none}}

/* v1.0.4 / Build 23 — korrigeringsknappar samt valbar haptik/ljud vid registrering. */
.quickRow{grid-template-columns:repeat(3,1fr)}
.countBtn.minus{background:#f3f5f7;color:#263746;border-color:#d7dde2}
.boarding .countBtn.minus{color:#177d52;background:#f2faf6;border-color:#cbe8d8}
.alighting .countBtn.minus{color:#b24d56;background:#fff5f5;border-color:#efd1d4}
.feedbackSettings{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:9px 12px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.45)}
.feedbackSettingsTitle{font-size:12px;font-weight:850;color:var(--muted);margin-right:2px}
.feedbackCheck{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#20313f;cursor:pointer;user-select:none}
.feedbackCheck input{width:18px;height:18px;margin:0;accent-color:#1090d0}
.feedbackCheck.unsupported{opacity:.45;cursor:not-allowed}
.feedbackUnavailable{flex-basis:100%;font-size:10px;color:var(--muted);line-height:1.3}
.feedbackPulse{animation:feedbackTap .18s ease-out}
.countValuePulse{animation:countValueTap .22s ease-out}
@keyframes feedbackTap{0%{transform:scale(1)}45%{transform:scale(.965)}100%{transform:scale(1)}}
@keyframes countValueTap{0%{transform:scale(1)}45%{transform:scale(1.045)}100%{transform:scale(1)}}
@media(max-width:430px){.feedbackSettings{gap:8px}.feedbackSettingsTitle{width:100%}.quickRow .countBtn{font-size:17px}}

/* v1.0.6 / Build 25 — säkerhetskritisk Västtrafik-verifiering och låst eventlogg. */
.safetyStatusCard.verified{border-color:rgba(27,143,93,.34);box-shadow:0 12px 30px rgba(20,111,75,.12)}
.safetyStatusCard.uncertain{border-color:rgba(191,78,78,.35);background:rgba(255,251,251,.97);box-shadow:0 12px 30px rgba(147,57,57,.12)}
.safetyStatusCard.manual{border-color:rgba(189,125,0,.30);background:rgba(255,252,244,.97)}
.safetyModeBadge.verified{background:#edf9f3;border-color:#bfe3d0;color:#16784f}
.safetyModeBadge.uncertain{background:#fff0f0;border-color:#efc2c6;color:#b23f49}
.safetyAlert{margin-top:8px;padding:8px 10px;border-radius:12px;background:#fff0f0;border:1px solid #efc2c6;color:#a63c45;font-size:10px;font-weight:850;line-height:1.35}
.safetyStatusCard.manual .safetyAlert{background:#fff7e8;border-color:#ead5a6;color:#8a620b}
.stopChip:disabled{opacity:.5;cursor:not-allowed}

.rawLogProtected{display:inline-flex;align-items:center;padding:7px 10px;border-radius:10px;background:#f3f6f8;color:#60717e;font-size:10px;font-weight:850}
.rawLogProtected{display:inline-flex;align-items:center;padding:7px 10px;border-radius:10px;background:#f3f6f8;color:#60717e;font-size:10px;font-weight:850}
