/* KI-ndustrieGigant – Oberfläche im Stil der späten 90er */
:root {
  --panel: #c4bca8; --panel-l: #e4dcc8; --panel-d: #857c68; --panel-dd: #4e4838;
  --title1: #1c3664; --title2: #4a78b8; --ink: #1e1a12; --gold: #d8b050; --bg: #10161e;
  --ok: #2c7a2c; --warn: #a06010; --bad: #b02020;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; overflow: hidden; background: var(--bg); font: 12px Tahoma, Verdana, "Segoe UI", Arial, sans-serif; color: var(--ink); user-select: none; }
button { font: inherit; }
#app { display: flex; flex-direction: column; height: 100vh; width: 100vw; overflow: hidden; }
.hidden { display: none !important; }

/* ---------- Kopfleiste ---------- */
#topbar { height: 34px; flex: none; overflow: hidden; display: flex; align-items: center; gap: 12px; padding: 0 8px; background: linear-gradient(#5a5244, #3a342a); color: #f4ecd0; border-bottom: 2px solid #1e1a12; box-shadow: inset 0 1px 0 #7a7060; }
.tb-left { display: flex; align-items: center; gap: 6px; flex: 0 1 220px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tb-mid { flex: 1; min-width: 0; overflow: hidden; display: flex; gap: 22px; justify-content: center; white-space: nowrap; }
.tb-item b { color: #ffe9a8; font-size: 13px; }
.tb-item b.neg, #top-money.neg { color: #ff7070; }
.tb-right { display: flex; gap: 4px; align-items: center; }
#speed { display: flex; gap: 2px; margin-right: 8px; }
.spd, .tbtn { background: linear-gradient(#8a8270, #5e5646); color: #f4ecd0; border: 1px solid #1e1a12; border-top-color: #aaa28e; border-left-color: #aaa28e; padding: 3px 7px; cursor: pointer; font-size: 11px; min-width: 26px; }
.spd.active { background: linear-gradient(#d8b050, #a07a28); color: #1e1a12; border-color: #1e1a12; box-shadow: inset 1px 1px 2px rgba(0,0,0,0.4); }
.tbtn.off { opacity: 0.45; text-decoration: line-through; }
.spd:hover, .tbtn:hover { filter: brightness(1.15); }

/* ---------- Hauptbereich ---------- */
#main { flex: 1; display: flex; min-height: 0; }
#viewwrap { flex: 1; position: relative; min-width: 0; overflow: hidden; }
#view { position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: crosshair; }
#windows { position: absolute; inset: 0; pointer-events: none; }
#windows > * { pointer-events: auto; }
#toasts { position: absolute; top: 10px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; gap: 4px; align-items: center; pointer-events: none; z-index: 5000; }
.toast { background: rgba(30,26,18,0.92); color: #f4ecd0; border: 2px solid var(--gold); padding: 6px 14px; font-weight: bold; transition: opacity 0.6s, transform 0.6s; box-shadow: 0 3px 10px rgba(0,0,0,0.5); }
.toast.out { opacity: 0; transform: translateY(-10px); }

#sidebar { width: 236px; flex: none; background: var(--panel); border-left: 2px solid var(--panel-dd); box-shadow: inset 1px 0 0 var(--panel-l); display: flex; flex-direction: column; padding: 6px; gap: 4px; overflow-y: auto; }
#minimap { width: 220px; height: 118px; border: 2px inset var(--panel-d); background: #10161e; cursor: pointer; image-rendering: pixelated; flex: none; }
.side-label { font-weight: bold; color: #4e4838; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin-top: 2px; border-bottom: 1px solid var(--panel-d); }
#tools { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px; }
#mgmt { display: grid; grid-template-columns: repeat(6, 1fr); gap: 3px; }
body.editor #mgmt { grid-template-columns: 1fr; }
.tool { height: 42px; background: linear-gradient(#ddd5c0, #b0a890); border: 2px outset #e8e0cc; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; }
.tool.small { height: 32px; }
.tool:hover { filter: brightness(1.08); }
.tool.active { border-style: inset; background: linear-gradient(#a8a088, #d8d0bc); box-shadow: inset 0 0 0 2px var(--gold); }
.tool img { pointer-events: none; }
#subtools { display: flex; flex-direction: column; gap: 2px; }
#subtools:empty { display: none; }
.sub-head { font-weight: bold; background: var(--panel-d); color: #fff; padding: 2px 6px; }
.subtool { display: flex; align-items: center; gap: 6px; text-align: left; background: var(--panel-l); border: 1px solid var(--panel-d); padding: 2px 4px; cursor: pointer; }
.subtool:hover { background: #fff6dc; }
.subtool.na { opacity: 0.5; }
.st-name { font-weight: bold; font-size: 11px; }
.st-cost { font-size: 10px; color: #5a5040; }
#infobox { margin-top: auto; background: #f0e8d4; border: 2px inset var(--panel-d); padding: 5px; min-height: 70px; font-size: 11px; line-height: 1.4; }
#infobox hr { border: 0; border-top: 1px solid var(--panel-d); margin: 3px 0; }

#statusbar { height: 24px; display: flex; gap: 12px; align-items: center; padding: 0 8px; background: linear-gradient(#4a4438, #2e2a22); color: #e8e0c8; border-top: 2px solid #1e1a12; white-space: nowrap; overflow: hidden; }
#status { flex: none; max-width: 45%; overflow: hidden; text-overflow: ellipsis; }
#status.err { color: #ff8080; font-weight: bold; }
#ticker { flex: 1; overflow: hidden; text-overflow: ellipsis; color: #d8c890; }
.tick-date { color: #a8a080; }

/* Titel */
body.in-title #topbar, body.in-title #sidebar, body.in-title #statusbar { display: none; }
body.in-game #title { display: none; }
#title { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at center, rgba(16,22,30,0.15), rgba(16,22,30,0.75)); }
.title-box { background: linear-gradient(rgba(40,36,28,0.93), rgba(24,22,16,0.95)); border: 3px solid var(--gold); box-shadow: 0 0 0 2px #1e1a12, 0 10px 40px rgba(0,0,0,0.7); padding: 26px 40px 20px; text-align: center; color: #f4ecd0; min-width: 420px; }
.logo { font: bold 46px Georgia, "Times New Roman", serif; letter-spacing: 1px; background: linear-gradient(#fff4c8, #d8b050 45%, #8a6420 55%, #f0d890); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(2px 3px 0 #000); }
.logo-k { font-size: 56px; }
.logo-g { font-style: italic; }
.logo-sub { color: #c8b88a; margin: 4px 0 18px; font-style: italic; }
.title-menu { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.title-foot { margin-top: 16px; font-size: 11px; color: #a89c7a; }
#sound-hint { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.6); color: #f4ecd0; padding: 6px 14px; border: 1px solid var(--gold); animation: pulse 2s infinite; }
@keyframes pulse { 50% { opacity: 0.5; } }
.loading { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(10,14,20,0.8); color: var(--gold); font: bold 22px Georgia, serif; z-index: 10000; }

/* ---------- Buttons ---------- */
.btn { background: linear-gradient(#e8e0cc, #bdb49e); border: 2px outset #f0e8d4; padding: 3px 8px; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; color: var(--ink); white-space: nowrap; }
.btn:hover:not(:disabled) { filter: brightness(1.06); }
.btn:active:not(:disabled) { border-style: inset; }
.btn:disabled { opacity: 0.5; cursor: default; }
.btn.primary { background: linear-gradient(#f0d890, #c8a040); font-weight: bold; }
.btn.danger { background: linear-gradient(#f0c0b0, #c87060); }
.btn.big { font-size: 14px; padding: 8px 14px; justify-content: center; background: linear-gradient(#6a604c, #3e382c); color: #f4ecd0; border: 2px outset #8a8068; font-weight: bold; }
.btn.big:hover { background: linear-gradient(#8a7c58, #5a4c30); color: #fff4c8; }
.btn.wide { width: 100%; justify-content: center; }
.ico16 { width: 16px; height: 16px; vertical-align: middle; }

/* ---------- Fenster ---------- */
.win { position: absolute; max-width: calc(100% - 4px); background: var(--panel); border: 2px outset var(--panel-l); box-shadow: 2px 3px 12px rgba(0,0,0,0.55); max-height: calc(100% - 12px); display: flex; flex-direction: column; }
.win-title { display: flex; align-items: center; gap: 5px; background: linear-gradient(90deg, var(--title1), var(--title2)); color: #fff; padding: 3px 3px 3px 6px; font-weight: bold; cursor: move; flex: none; }
.win-ttl { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.win-close { width: 18px; height: 16px; line-height: 12px; padding: 0; background: var(--panel); border: 2px outset var(--panel-l); cursor: pointer; font-weight: bold; }
.win-body { padding: 8px; overflow-y: auto; display: flex; flex-direction: column; gap: 5px; user-select: text; }
.bhead { display: flex; align-items: center; gap: 6px; border-bottom: 1px solid var(--panel-d); padding-bottom: 4px; }
.row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.row.end { justify-content: flex-end; }
.row.top { align-items: flex-start; }
.row.link, .link { cursor: pointer; }
.row.link:hover, tr.link:hover td { background: #fff6dc; }
.grow { flex: 1; }
.kv { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dotted #9a927e; padding: 1px 0; }
.kv .k { color: #4e4838; }
.kv .v { font-weight: bold; text-align: right; }
.box { background: #ece4d0; border: 2px groove var(--panel-l); padding: 5px; display: flex; flex-direction: column; gap: 3px; }
.box-t { font-weight: bold; color: #4e4838; }
.bar { height: 9px; background: #6a6250; border: 1px inset #857c68; }
.bar.mini { width: 60px; display: inline-block; vertical-align: middle; }
.bar-in { height: 100%; transition: width 0.3s; }
.small { font-size: 11px; }
.muted { color: #7a7260; }
.ok { color: var(--ok); font-weight: bold; }
.warn { color: var(--warn); font-weight: bold; }
.err { color: var(--bad); font-weight: bold; }
.swatch { display: inline-block; width: 12px; height: 12px; border: 1px solid #000; vertical-align: middle; margin-right: 3px; }
.swatch.big { width: 26px; height: 26px; cursor: pointer; }
.swatch.sel { outline: 3px solid var(--gold); }
.swatches { display: flex; gap: 5px; flex-wrap: wrap; }
.tbl { border-collapse: collapse; width: 100%; font-size: 11px; background: #f4ecd8; }
.tbl th { background: var(--panel-d); color: #fff; text-align: left; padding: 3px 4px; position: sticky; top: 0; z-index: 1; }
.tbl td { padding: 2px 4px; border-bottom: 1px solid #d8d0bc; vertical-align: middle; }
.tbl td.num { text-align: right; font-variant-numeric: tabular-nums; }
.tbl tr.muted td { color: #9a927e; }
.tbl.fin tr.sum td { font-weight: bold; border-top: 2px solid #857c68; }
.scroll { max-height: 300px; overflow-y: auto; border: 1px inset var(--panel-d); }
.scroll.tall { max-height: 420px; }
.sel { font: inherit; font-size: 11px; background: #fffaf0; border: 1px inset #857c68; padding: 1px; max-width: 100%; }
.sel.small { max-width: 110px; }
input.num { width: 90px; font: inherit; }
.txt { width: 220px; font: inherit; padding: 2px; }
.rng { width: 90px; vertical-align: middle; accent-color: #a07a28; }
.rng.wide { width: 100%; }
.stop { display: flex; align-items: center; gap: 4px; background: #f8f0dc; border: 1px solid #c8c0ac; padding: 2px; }
.stop.cur { background: #fff4c0; }
.stopn { background: #3060c0; color: #fff; font-weight: bold; min-width: 18px; text-align: center; border-radius: 9px; }
.chart { border: 2px inset var(--panel-d); width: 100%; }
.legend { display: flex; flex-wrap: wrap; gap: 10px; }
.leg { white-space: nowrap; }
.rival { display: flex; gap: 8px; align-items: center; background: #ece4d0; border: 2px groove var(--panel-l); padding: 5px; }
.rival.dead { opacity: 0.5; }
.portrait { border: 2px inset var(--panel-d); }
.newsitem { border-bottom: 1px solid #c8c0ac; padding: 4px; }
.newsitem.bad b { color: var(--bad); }
.newsitem.good b { color: var(--ok); }
.slot { border-bottom: 1px dotted #9a927e; padding: 3px 0; }
.help h3 { margin: 8px 0 4px; color: var(--title1); }
.help p, .help li { line-height: 1.45; }
h3, h4 { margin: 4px 0; }

/* ---------- Modale Dialoge ---------- */
.modal-bg { position: fixed; inset: 0; background: rgba(10,14,20,0.55); display: flex; align-items: center; justify-content: center; z-index: 9000; }
.modal { background: var(--panel); border: 3px outset var(--panel-l); box-shadow: 0 8px 30px rgba(0,0,0,0.7); min-width: 320px; max-width: min(760px, 94vw); max-height: 92vh; display: flex; flex-direction: column; }
.modal.wide-modal { max-width: min(880px, 96vw); }
.modal-title { background: linear-gradient(90deg, var(--title1), var(--title2)); color: #fff; font-weight: bold; padding: 5px 8px; font-size: 13px; }
.modal-body { padding: 12px; overflow-y: auto; line-height: 1.45; user-select: text; }
.modal-buttons { display: flex; gap: 6px; justify-content: flex-end; padding: 8px; border-top: 1px solid var(--panel-d); }
.menu-list { display: flex; flex-direction: column; gap: 5px; min-width: 260px; }
.victory { text-align: center; font-size: 34px; color: var(--gold); text-shadow: 1px 2px 0 #000; }
.form h4 { color: var(--title1); border-bottom: 1px solid var(--panel-d); }
.fcols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.frow { display: flex; align-items: center; gap: 8px; margin: 3px 0; }
.frow label { width: 100px; color: #4e4838; flex: none; }
.rivals-pick { display: flex; gap: 8px; flex-wrap: wrap; }
.rp { width: 96px; text-align: center; background: #ece4d0; border: 2px outset var(--panel-l); padding: 4px; cursor: pointer; }
.rp.sel { border-style: inset; background: #f8e8b0; box-shadow: inset 0 0 0 2px var(--gold); }
.missions { display: flex; flex-direction: column; gap: 6px; min-width: 520px; }
.mission { background: #ece4d0; border: 2px outset var(--panel-l); padding: 6px 8px; cursor: pointer; }
.mission:hover { background: #fff6dc; }
.mission.locked { opacity: 0.5; cursor: default; }
.mhead { margin-bottom: 3px; }

/* Zeitung */
.paper-modal { background: #efe8d4; }
.paper { background: #f6f0de; padding: 10px 16px; font-family: Georgia, "Times New Roman", serif; color: #1e1a12; max-width: 520px; box-shadow: inset 0 0 30px rgba(120,100,60,0.25); }
.paper-head { font: bold 40px "Old English Text MT", "UnifrakturMaguntia", Georgia, serif; text-align: center; border-bottom: 3px double #1e1a12; padding-bottom: 4px; }
.paper-sub { text-align: center; font-size: 11px; border-bottom: 1px solid #1e1a12; padding: 2px 0; margin-bottom: 10px; font-style: italic; }
.paper-title { font: bold 24px Georgia, serif; margin-bottom: 8px; line-height: 1.15; }
.paper-text { font-size: 14px; line-height: 1.5; text-align: justify; }

@media (max-width: 1000px) { .tb-left { display: none; } .tb-mid { gap: 10px; justify-content: flex-start; } #speed { margin-right: 2px; } .spd, .tbtn { padding: 3px 4px; min-width: 20px; } #sidebar { width: 200px; } #minimap { width: 184px; height: 100px; } #mgmt { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 760px) { .fcols { grid-template-columns: 1fr; } .missions { min-width: 0; } .title-box { min-width: 0; padding: 18px; } .logo { font-size: 34px; } .logo-k { font-size: 42px; } }
.intro ol { padding-left: 20px; } .intro li { margin: 3px 0; }
.credits { margin: 6px 0 10px; } .credits td { padding: 4px 8px; }
.title-ai { margin-top: 10px; padding-top: 8px; border-top: 1px solid rgba(216,176,80,0.35); font-size: 11px; color: #c8b88a; font-style: italic; max-width: 460px; margin-left: auto; margin-right: auto; }
.palette summary { cursor: pointer; }
.palette .inp { display: inline-flex; align-items: center; gap: 2px; margin-right: 6px; white-space: nowrap; }
.palette .inp.near { color: var(--ok); font-weight: bold; }
.tbl.cmp { margin: 6px 0; width: auto; min-width: 320px; } .tbl.cmp td.ok { color: var(--ok); }

/* Fenstergröße veränderbar */
.win { resize: both; overflow: hidden; min-width: 240px; min-height: 90px; }
.win-body { flex: 1 1 auto; min-height: 0; }
.win-body > * { flex-shrink: 0; }
.win.sized .win-body > .scroll { flex: 1 1 auto; min-height: 60px; max-height: none; }
.win.sized .win-body > .vbox { flex: 1 1 auto; min-height: 90px; }
.win.sized .vbox .vlist { flex: 1 1 auto; max-height: none; min-height: 40px; }
/* Kompakte Fahrzeugliste im Depot */
.vbox { display: flex; flex-direction: column; }
.vlist { max-height: 260px; overflow-y: auto; border: 1px inset var(--panel-d); background: #f4ecd8; }
.vrow { display: grid; grid-template-columns: 16px minmax(90px, 42%) 1fr; gap: 6px; align-items: center; padding: 2px 4px; border-bottom: 1px solid #e0d8c4; white-space: nowrap; }
.vrow:hover { background: #fff6dc; }
.vrow .vname { font-weight: bold; overflow: hidden; text-overflow: ellipsis; }
.vrow .vstat { font-size: 11px; color: #4e4838; overflow: hidden; text-overflow: ellipsis; }
.pricectl { display: flex; align-items: center; gap: 2px; } .btn.mini { padding: 0 5px; min-width: 18px; line-height: 14px; justify-content: center; }
.tbtn.on { background: linear-gradient(#d8b050, #a07a28); color: #1e1a12; }
.catgrid { display: grid; grid-template-columns: 1fr 1fr; } .tbl.sounds { margin: 6px 0; } .tbl.sounds td { vertical-align: top; } .tbl.sounds .sname { font-weight: bold; white-space: nowrap; }
.tbl th.num { text-align: right; }

/* ================= Smartphone & Tablet ================= */
#app { height: 100vh; height: 100dvh; }
html, body { overscroll-behavior: none; -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; }
#view, #minimap { touch-action: none; }
button, select, input { touch-action: manipulation; }
#btn-tools { display: none; font-size: 16px; }

/* Werkzeugleiste auf der Karte (aktives Werkzeug, Bestätigen, Auto-Route, Abbrechen) */
#toolchip { position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); z-index: 4000; display: flex; align-items: center; gap: 6px; background: rgba(30,26,18,0.92); border: 2px solid var(--gold); padding: 5px 8px; box-shadow: 0 3px 12px rgba(0,0,0,0.5); max-width: calc(100% - 16px); }
#toolchip.hidden { display: none; }
#toolchip .tc-name { color: #f4ecd0; font-weight: bold; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 45vw; }

/* Kompaktes Layout: Seitenleiste als ausklappbare Schublade */
body.compact #btn-tools { display: inline-block; }
body.compact #topbar { height: auto; min-height: 34px; flex-wrap: wrap; row-gap: 3px; padding: 3px 6px; gap: 6px; }
body.compact .tb-left { display: none; }
body.compact .tb-mid { gap: 10px; justify-content: flex-start; font-size: 11px; }
body.compact .tb-item b { font-size: 12px; }
body.compact .tb-right { flex-wrap: wrap; }
body.compact #sidebar { position: absolute; right: 0; top: 0; bottom: 0; z-index: 4500; width: min(300px, 86vw); transform: translateX(105%); transition: transform 0.2s ease; box-shadow: -4px 0 16px rgba(0,0,0,0.5); }
body.compact.drawer-open #sidebar { transform: none; }
body.compact #main { position: relative; }
body.compact #minimap { width: 100%; height: auto; aspect-ratio: 220 / 118; }
body.compact #mgmt { grid-template-columns: repeat(6, 1fr); }
body.compact #ticker { display: none; }
body.compact #status { max-width: 100%; }
body.compact .win { left: 4px !important; width: calc(100% - 8px) !important; height: auto !important; max-height: calc(100% - 70px); resize: none; }
body.compact .win-title { cursor: default; }
body.compact .title-box { min-width: 0; width: calc(100vw - 20px); max-width: 480px; padding: 14px 12px; }
body.compact .logo { font-size: 30px; }
body.compact .logo-k { font-size: 36px; }
body.compact .title-menu { grid-template-columns: 1fr 1fr; gap: 6px; }
body.compact .btn.big { font-size: 13px; padding: 8px 6px; }
body.compact .modal { min-width: 0; width: calc(100vw - 16px); }
body.compact .missions { min-width: 0; }
body.compact .fcols { grid-template-columns: 1fr; }
@media (max-width: 420px) { body.compact .title-menu { grid-template-columns: 1fr; } body.compact .title-foot { display: none; } }

/* Finger-Bedienung: größere Schaltflächen und Regler */
body.touch .btn { min-height: 34px; padding: 5px 10px; }
body.touch .btn.mini { min-width: 32px; }
body.touch .win-close { width: 32px; height: 28px; font-size: 16px; line-height: 20px; }
body.touch .spd, body.touch .tbtn { min-width: 34px; min-height: 30px; padding: 4px 6px; }
body.touch .tool { height: 50px; }
body.touch .tool.small { height: 42px; }
body.touch .subtool { padding: 6px; }
body.touch input[type=checkbox] { width: 20px; height: 20px; }
body.touch .rng { height: 26px; }
body.touch .sel { font-size: 14px; padding: 4px; }
body.touch .vrow { padding: 7px 4px; }
body.touch .row.link, body.touch tr.link td { padding-top: 6px; padding-bottom: 6px; }
body.touch #toolchip .btn { min-height: 38px; font-size: 13px; }
body.compact.touch #btn-zin, body.compact.touch #btn-zout, body.compact.touch #btn-music { display: none; }
body.compact #speed { margin-right: 0; }
/* Kopfleiste schmal: Zeile 1 Bedienung, Zeile 2 Kontostand/Datum/Stimmen */
body.compact #btn-tools { order: 0; }
body.compact .tb-right { order: 1; margin-left: auto; }
body.compact .tb-mid { order: 2; flex: 1 1 100%; justify-content: space-between; }

/* Schmale Bildschirme: nichts darf über den Fensterrand hinausragen */
body.compact .win-body { overflow-x: hidden; }
body.compact .win-body table.tbl { display: block; max-width: 100%; overflow-x: auto; }
body.compact .win-body .scroll table.tbl { display: table; }
body.compact .win-body .scroll { overflow-x: auto; }
body.compact .grow { min-width: 0; }
body.compact select.sel { max-width: 100%; min-width: 0; }
body.compact .row > div.grow select.sel { width: 100%; }
/* Routenzeile: oben der Halt, darunter die Einstellungen */
body.compact .stop { flex-wrap: wrap; row-gap: 4px; }
body.compact .stop > .grow { flex: 1 1 calc(100% - 30px); }
body.compact .stop > select.sel { flex: 1 1 110px; max-width: none; }
body.compact .stop > label { flex: none; }
/* Preisregler im Laden etwas schmaler */
body.compact .pricectl .rng { width: 64px; }
body.compact .stop > select.sel { flex: 1 1 70px; }
body.compact .stop > .btn { flex: none; padding: 4px 8px; min-width: 32px; justify-content: center; }

/* Route: Halt-Auswahl */
body.compact.picking #windows, body.touch.picking #windows { display: none; }
.stoplist { display: flex; flex-direction: column; gap: 3px; max-height: 50vh; overflow-y: auto; min-width: min(420px, 80vw); margin: 6px 0; }
.stoplist .srow { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: #f4ecd8; border: 1px solid #d8d0bc; cursor: pointer; }
.stoplist .srow:hover { background: #fff6dc; }
.stoplist .srow.in { background: #e4eed2; }
.stoplist .srow .grow { flex: 1; min-width: 0; }
.stoplist .snum { background: #3060c0; color: #fff; font-weight: bold; min-width: 20px; padding: 0 4px; text-align: center; border-radius: 10px; font-size: 11px; }
body.touch .stoplist .srow { padding: 10px 8px; }

/* Touch-Wegeplanung: Leiste darf umbrechen */
#toolchip { flex-wrap: wrap; justify-content: center; }
#toolchip .btn:disabled { opacity: 0.5; }
body.touch #toolchip .btn { min-width: 40px; }
body.compact #toolchip .tc-name { flex-basis: 100%; text-align: center; max-width: none; }
body.compact #toolchip { left: 8px; right: 8px; transform: none; width: fit-content; margin: 0 auto; }
