:root {
  --yellow: #ffd500;
  --yellow-strong: #f7ca00;
  --ink: #111827;
  --navy: #16243d;
  --muted: #64748b;
  --line: #dce3ec;
  --surface: #ffffff;
  --soft: #f3f6fa;
  --green: #129447;
  --red: #d72d3c;
  --blue: #1687e7;
  --purple: #7736b7;
  --radius: 18px;
  --shadow: 0 12px 32px rgba(20, 32, 54, .10);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: #edf1f6;
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; background: #f4f6f9; color: var(--ink); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
img { max-width: 100%; }

.topbar { position: sticky; top: 0; z-index: 50; height: 72px; display: flex; align-items: center; justify-content: space-between; padding: 0 max(20px, calc((100vw - 1180px)/2)); background: var(--yellow); border-bottom: 1px solid rgba(0,0,0,.09); }
.brand { display: flex; align-items: center; gap: 10px; min-width: max-content; }
.brand-mark { width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: 12px; background: var(--ink); color: var(--yellow); font-size: 24px; transform: rotate(0deg); }
.brand strong { display: block; font-size: 20px; line-height: 1; }
.brand small { display: block; margin-top: 3px; font-size: 11px; font-weight: 700; letter-spacing: .04em; }
.desktop-nav { display: flex; gap: 6px; }
.desktop-nav a { padding: 10px 14px; border-radius: 10px; font-weight: 750; font-size: 14px; }
.desktop-nav a:hover { background: rgba(255,255,255,.55); }
.top-actions { display: flex; gap: 10px; align-items: center; }
.icon-button { width: 42px; height: 42px; position: relative; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.72); }
.icon-button b { position: absolute; right: -2px; top: -3px; min-width: 18px; height: 18px; display: grid; place-items: center; background: var(--red); color: white; border-radius: 12px; font-size: 10px; }
.profile-menu { position: relative; }
.profile-menu summary { list-style: none; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: white; font-weight: 800; cursor: pointer; }
.profile-menu summary::-webkit-details-marker { display: none; }
.profile-menu > div { position: absolute; right: 0; top: 50px; width: 230px; padding: 16px; background: white; border-radius: 15px; box-shadow: var(--shadow); border: 1px solid var(--line); }
.profile-menu strong,.profile-menu small { display: block; }
.profile-menu small { margin: 3px 0 12px; color: var(--muted); }
.profile-menu a,.profile-menu button { display: block; width: 100%; padding: 9px 0; border: 0; background: transparent; color: var(--ink); text-align: left; }

.app-main { min-height: calc(100vh - 72px); }
.page { width: min(1120px, calc(100% - 32px)); margin: 0 auto; padding: 30px 0 110px; }
.page.narrow { width: min(760px, calc(100% - 32px)); }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.page-heading h1 { margin: 2px 0 4px; font-size: clamp(32px, 5vw, 52px); line-height: 1; letter-spacing: -.04em; }
.page-heading p { margin: 0; color: var(--muted); }
.eyebrow { display: block; color: #927900; font-size: 12px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.muted { color: var(--muted); }
.panel { padding: 22px; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 28px rgba(22,36,61,.06); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 28px 0 12px; }
.section-heading h2 { margin: 0; font-size: 22px; letter-spacing: -.02em; }
.section-heading p { margin: 3px 0 0; color: var(--muted); font-size: 14px; }
.section-heading > a { color: #735e00; font-weight: 800; font-size: 14px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 0; border-radius: 12px; font-weight: 850; }
.button.primary { background: var(--yellow); color: var(--ink); }
.button.secondary { background: white; border: 1px solid var(--line); }
.button.dark { background: var(--ink); color: white; }
.button.light { background: white; color: var(--ink); }
.button.success { background: #e5f8ed; color: #067437; }
.button.danger { background: #fff0f1; color: #b52230; }
.button.full { width: 100%; }
.back-link { color: var(--muted); font-weight: 750; }
.empty-state { padding: 24px; color: var(--muted); background: var(--soft); border-radius: 14px; text-align: center; }
.span-all { grid-column: 1/-1; }

.messages { position: fixed; z-index: 100; top: 80px; right: 18px; width: min(420px, calc(100% - 36px)); }
.message { margin-bottom: 8px; padding: 14px 16px; border-radius: 12px; box-shadow: var(--shadow); background: white; border-left: 5px solid var(--blue); }
.message.success { border-left-color: var(--green); }
.message.warning { border-left-color: var(--yellow-strong); }
.message.error { border-left-color: var(--red); }

/* Auth */
.auth-page { background: #e8edf3; }
.auth-shell { min-height: 100svh; display: grid; grid-template-columns: minmax(520px, 1.7fr) minmax(340px, .8fr); }
.auth-visual { position: relative; min-height: 100svh; padding: clamp(30px, 5vw, 76px); display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; color: white; background: linear-gradient(180deg, rgba(10,25,42,.04), rgba(10,25,42,.76)), url("../img/bus-hero-v2.png") 62% center/cover no-repeat; }
.auth-visual:after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,.16), transparent 60%); pointer-events:none; }
.auth-brand,.auth-copy { position: relative; z-index: 1; }
.auth-brand { display: flex; align-items: center; gap: 12px; }
.auth-brand strong { display: block; font-size: 29px; }.auth-brand small { display:block; font-size:13px; font-weight:750; }
.auth-copy { max-width: 570px; }
.auth-copy h1 { margin: 0 0 16px; font-size: clamp(52px, 7vw, 92px); line-height: .92; letter-spacing: -.06em; }
.auth-copy p { max-width: 420px; margin: 0; font-size: 20px; line-height: 1.45; }
.auth-card-wrap { display: grid; place-items: center; padding: 24px; background: #fff; }
.auth-card { width: min(350px, 100%); }
.auth-card h2 { margin: 5px 0 3px; font-size: 36px; letter-spacing: -.04em; }
.auth-card label,.registration-card label,.stack-form label { display: block; margin: 11px 0 5px; font-size: 12px; font-weight: 850; }
.auth-card input,.registration-card input:not([type=checkbox]),.registration-card select,.stack-form input,.stack-form select,.stack-form textarea,.filter-panel input,.filter-panel select { width: 100%; min-height: 44px; padding: 9px 12px; border: 1px solid #cbd5e1; border-radius: 11px; background: white; outline: none; }
.auth-card input:focus,.registration-card input:focus,.registration-card select:focus,.filter-panel input:focus,.filter-panel select:focus { border-color: #bf9e00; box-shadow: 0 0 0 4px rgba(255,213,0,.18); }
.auth-card .button { margin-top: 15px; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 14px 0 0; color: var(--muted); font-size: 12px; }.auth-divider:before,.auth-divider:after { content:""; height:1px; flex:1; background:var(--line); }
.trust-line { margin: 14px 0 0; text-align:center; color:var(--muted); font-size:11px; }
.form-error,.errorlist { padding: 10px 12px; border-radius: 10px; background:#fff1f2; color:#a61e2b; font-size:13px; list-style:none; }
.registration-shell { width: min(720px, calc(100% - 24px)); min-height:100svh; margin:0 auto; padding:12px 0; display:flex; flex-direction:column; justify-content:center; }
.registration-card { margin-top:8px; padding:18px 22px; border-radius:20px; background:white; box-shadow:var(--shadow); }
.registration-card h1 { margin:3px 0 2px; font-size:31px; }
.registration-card > .muted { margin:0 0 2px; font-size:12px; line-height:1.35; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; }.span-2 { grid-column:1/-1; }
.consent-box { margin:12px 0; padding:10px 12px; background:#fffbea; border:1px solid #ead57a; border-radius:12px; }
.consent-box label { display:flex; gap:8px; margin:0 0 8px; font-size:11px; line-height:1.3; font-weight:550; }.consent-box label:last-of-type { margin-bottom:0; }.consent-box input { width:18px; height:18px; flex:0 0 auto; accent-color:var(--ink); }
.simple-auth { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at top,var(--yellow),#f4f6f9 46%); }
.status-card { width:min(520px,100%); padding:46px; text-align:center; background:white; border-radius:24px; box-shadow:var(--shadow); }.status-card h1 { margin:8px 0; }.status-card p { color:var(--muted); line-height:1.6; }.status-icon { width:66px;height:66px;display:grid;place-items:center;margin:0 auto 18px;border-radius:50%;background:#e6f8ed;color:var(--green);font-size:34px;font-weight:900; }

/* Dashboard */
.dashboard-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 28px; background:white; border-radius:22px; box-shadow:var(--shadow); }
.live-clock { font-size:clamp(46px,8vw,78px); line-height:.9; font-weight:900; letter-spacing:-.06em; }.live-date { margin-top:10px; font-size:18px; }
.weather { display:grid; grid-template-columns:auto auto; column-gap:7px; text-align:right; }.weather span { grid-row:1/3;font-size:42px;color:#e6b900; }.weather strong { font-size:30px;line-height:1; }.weather small { color:var(--muted); }
.announcement { display:flex; gap:12px; margin-top:12px; padding:14px 18px; border-radius:13px; background:#eaf4ff; border-left:5px solid var(--blue); }.announcement.warning { background:#fff8dc;border-color:var(--yellow-strong); }.announcement.success { background:#e9f9ef;border-color:var(--green); }.announcement span { color:#475569; }
.current-duty { display:flex; align-items:center; gap:17px; margin-top:16px; padding:20px; background:white; border:1px solid var(--line); border-radius:18px; box-shadow:0 8px 25px rgba(15,23,42,.06); }.current-duty > div { flex:1; }.current-duty small { color:var(--muted);font-weight:700; }.current-duty h2 { margin:2px 0;font-size:25px; }.current-duty p { margin:0;color:#475569; }.bus-badge { width:54px;height:54px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:var(--yellow);font-size:28px; }.bus-badge.dark { background:var(--yellow);color:var(--ink); }.status-pill { padding:8px 13px;border-radius:999px;background:#e5f8ec;color:#07783a;font-weight:800;font-size:12px; }
.next-card { display:block;margin-top:14px;padding:20px;border-radius:20px;color:white;background:linear-gradient(135deg,#111318,#232932);box-shadow:var(--shadow); }.next-card-top { display:flex;align-items:center;justify-content:space-between;margin-bottom:12px; }.next-card-top strong { font-size:22px; }.next-card-top span { color:var(--yellow);font-weight:900; }.next-card-body { display:flex;align-items:center;gap:14px; }.next-card-body > div { flex:1; }.next-card-body b { font-size:20px; }.next-card-body em { margin-left:10px;padding:5px 9px;border-radius:8px;background:#343b46;font-style:normal;font-size:12px; }.next-card-body p { margin:5px 0 0;color:#dbe2eb; }.next-card-body i { font-size:38px;font-style:normal; }
.garage-grid { display:grid;grid-template-columns:1fr 1fr;gap:14px; }.garage-card { display:flex;align-items:center;gap:14px;padding:20px;background:white;border:1px solid var(--line);border-radius:17px;box-shadow:0 7px 20px rgba(15,23,42,.05); }.garage-card > div { flex:1; }.garage-card strong,.garage-card small { display:block; }.garage-card small { margin-top:4px;color:var(--muted); }.garage-icon { width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#edf2f8;color:var(--navy);font-size:27px; }.garage-icon.large { width:66px;height:66px;font-size:34px; }
.quick-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px; }.quick-grid a { display:flex;align-items:center;gap:10px;padding:17px;background:white;border:1px solid var(--line);border-radius:15px; }.quick-grid span { font-size:24px;color:var(--navy); }.quick-grid strong { font-size:14px; }
.favorite-list { display:grid;gap:8px; }.favorite-list a { display:grid;grid-template-columns:28px 54px 135px 1fr 20px;align-items:center;gap:7px;padding:13px 15px;background:white;border:1px solid #e3e8ef;border-radius:12px; }.favorite-list .star { color:#e9bd00;font-size:19px; }.favorite-list time { color:#334155;font-variant-numeric:tabular-nums; }.favorite-list em { color:#475569;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }.favorite-list i { font-size:24px;font-style:normal; }

/* Garage, duties */
.garage-hero { display:flex;align-items:center;gap:20px;padding:27px;border-radius:22px;background:linear-gradient(120deg,var(--yellow),#ffe873); }.garage-hero > div { flex:1; }.garage-hero h1 { margin:2px 0;font-size:34px; }.garage-hero p { margin:0; }
.filter-panel { margin:22px 0;padding:14px;background:white;border:1px solid var(--line);border-radius:16px; }.filter-panel.compact { display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:10px; }.day-tabs { display:grid;grid-template-columns:repeat(4,1fr);gap:8px; }.day-tabs button { padding:11px 7px;border:0;border-radius:10px;background:#eef2f6;font-weight:800; }.day-tabs button.active { background:var(--yellow); }.search-row { display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px; }
.duty-number-grid { display:grid;grid-template-columns:repeat(6,1fr);gap:10px; }.duty-number-grid a { padding:16px 10px;text-align:center;border-radius:12px;background:linear-gradient(135deg,#43b65b,#209e40);color:white;box-shadow:0 5px 12px rgba(18,148,71,.18); }.duty-number-grid strong,.duty-number-grid small { display:block; }.duty-number-grid strong { font-size:22px; }.duty-number-grid small { margin-top:3px;font-size:11px; }
.duty-list-cards { display:grid;gap:10px; }.duty-list-cards a { display:flex;align-items:center;gap:15px;padding:15px;background:white;border:1px solid var(--line);border-radius:14px; }.duty-list-cards a > div { flex:1; }.duty-list-cards p { margin:3px 0 0;color:var(--muted); }.duty-no { width:64px;height:54px;display:grid;place-items:center;border-radius:12px;background:var(--yellow);font-size:22px;font-weight:900; }
.duty-title-row { display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:16px; }.duty-title-row > div { text-align:center; }.duty-title-row h1 { margin:0;font-size:36px; }.duty-title-row form { justify-self:end; }.favorite-button { border:0;background:transparent;color:#e3b800;font-size:38px; }
.duty-summary { display:grid;grid-template-columns:repeat(4,1fr);gap:12px; }.duty-summary div { padding:10px;border-left:3px solid var(--yellow); }.duty-summary small,.duty-summary strong { display:block; }.duty-summary small { color:var(--muted); }.duty-summary strong { margin-top:4px;font-size:20px; }
.duty-warning,.vehicle-banner { display:flex;align-items:center;gap:13px;margin-top:12px;padding:14px 17px;border-radius:14px;color:white; }.duty-warning { background:linear-gradient(120deg,#6622a0,#8a43c6); }.duty-warning > span { width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:white;color:#6622a0;font-weight:900; }.duty-warning p { margin:2px 0 0; }.vehicle-banner { background:#d8eeff;color:#153657; }.vehicle-banner > span { font-size:27px; }.vehicle-banner small,.vehicle-banner strong { display:block; }
.timeline { position:relative;padding:3px 0; }.timeline:before { content:"";position:absolute;left:91px;top:12px;bottom:12px;width:3px;background:#d4dbe4; }.timeline-step { position:relative;display:grid;grid-template-columns:72px 28px 1fr;align-items:start;gap:6px;margin-bottom:8px; }.timeline-step > time { padding-top:13px;text-align:right;font-weight:800;font-variant-numeric:tabular-nums; }.timeline-dot { z-index:1;width:15px;height:15px;margin:15px auto 0;border:4px solid white;border-radius:50%;background:#7c8898;box-shadow:0 0 0 2px #7c8898; }.timeline-card { position:relative;padding:11px 15px;border-radius:11px;background:linear-gradient(90deg,var(--accent),#f5f7fa); }.timeline-label { display:flex;align-items:center;justify-content:space-between;gap:12px; }.timeline-label b { padding:4px 8px;border-radius:7px;background:rgba(255,255,255,.65);font-size:12px; }.timeline-card p { margin:5px 0 0;color:#344258; }.timeline-card small { color:var(--muted); }.timeline-step.kind-start .timeline-dot { background:var(--yellow);box-shadow:0 0 0 2px var(--yellow); }.timeline-step.kind-break .timeline-dot { background:var(--green);box-shadow:0 0 0 2px var(--green); }.timeline-step.kind-end .timeline-dot { background:#667085;box-shadow:0 0 0 2px #667085; }.timeline-step.is-current .timeline-dot { width:21px;height:21px;margin-top:12px;background:var(--blue);box-shadow:0 0 0 4px #bfe1ff; }.timeline-step.is-current .timeline-card:after { content:"Jetzt";position:absolute;right:9px;top:9px;padding:5px 9px;border-radius:999px;background:var(--blue);color:white;font-size:11px;font-weight:900; }.note-panel { margin-top:18px; }.note-panel h3 { margin-top:0; }

/* Cards, contacts, management */
.card-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:14px; }.info-card { display:flex;align-items:flex-start;gap:14px;padding:18px;background:white;border:1px solid var(--line);border-radius:16px; }.info-card > div { flex:1; }.info-card h2 { margin:2px 0; }.info-card p { margin:4px 0;color:var(--muted); }.card-icon { width:48px;height:48px;display:grid;place-items:center;border-radius:13px;background:var(--yellow);font-size:25px; }.call-button { align-self:center;padding:9px 11px;border-radius:10px;background:#e8f7ef;color:#086c36;font-weight:800;font-size:13px; }
.contact-list { display:grid;gap:9px; }.contact-list article { display:flex;align-items:center;gap:12px;padding:13px 15px;background:white;border:1px solid var(--line);border-radius:13px; }.contact-list article > div { flex:1; }.contact-list strong,.contact-list small { display:block; }.contact-list small { color:var(--muted);margin-top:2px; }.contact-list article > a { font-weight:800;color:#13538b; }.avatar { width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--navy);color:white;font-weight:850; }.avatar.yellow { background:var(--yellow);color:var(--ink); }
.info-link-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:12px; }.info-link-card { display:flex;align-items:center;gap:14px;padding:18px;background:white;border:1px solid var(--line);border-radius:15px; }.info-link-card > span { width:47px;height:47px;display:grid;place-items:center;border-radius:12px;background:var(--yellow);font-size:23px; }.info-link-card > div { flex:1; }.info-link-card strong,.info-link-card small { display:block; }.info-link-card small { margin-top:3px;color:var(--muted); }.info-link-card i { font-style:normal;font-size:26px; }
.notification-list { display:grid;gap:10px; }.notification-list a { display:flex;gap:13px;padding:17px;background:white;border:1px solid var(--line);border-radius:15px; }.notification-list a > span { font-size:24px; }.notification-list strong { display:block; }.notification-list p { margin:4px 0;color:#475569; }.notification-list small { color:var(--muted); }
.legal-page { line-height:1.7; }.legal-page h1 { font-size:42px; }.legal-page h2 { margin-top:30px; }
.form-panel { max-width:650px; }.switch-line { display:flex;gap:13px;align-items:flex-start;margin-bottom:20px; }.switch-line input { width:22px;height:22px;accent-color:var(--ink); }.switch-line span,.switch-line small { display:block; }.switch-line small { margin-top:4px;color:var(--muted); }
.stat-grid { display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px; }.stat-grid div { padding:18px;background:var(--ink);color:white;border-radius:15px; }.stat-grid strong,.stat-grid small { display:block; }.stat-grid strong { font-size:31px;color:var(--yellow); }.stat-grid small { color:#cbd5e1; }
.management-grid { display:grid;grid-template-columns:1.5fr .75fr;gap:16px;margin-bottom:16px; }.management-grid .section-heading { margin-top:0; }.approval-list { display:grid;gap:10px; }.approval-list article { display:flex;align-items:center;gap:12px;padding:12px;background:var(--soft);border-radius:13px; }.approval-list article > div:nth-child(2) { flex:1; }.approval-list strong,.approval-list small { display:block; }.approval-list small { color:var(--muted);margin-top:2px; }.approval-actions { display:flex;gap:6px; }.stack-form p { margin:0 0 12px; }.stack-form label { margin-top:0; }.recent-users { display:grid;gap:7px; }.recent-users > div { display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid var(--line); }.recent-users b { padding:5px 9px;border-radius:999px;font-size:12px; }.status-approved { background:#e7f8ee;color:#087039; }.status-rejected { background:#fff0f1;color:#a51c29; }

.bottom-nav { display:none; }
.setup-card { position:fixed; z-index:60; right:20px; bottom:20px; width:min(390px,calc(100% - 40px)); display:grid; grid-template-columns:46px 1fr auto; gap:10px; align-items:center; padding:15px; border:1px solid #d7dee8; border-radius:18px; background:rgba(255,255,255,.98); box-shadow:0 18px 50px rgba(15,23,42,.22); }
.setup-card[hidden] { display:none; }
.setup-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:13px; background:var(--yellow); color:var(--ink); font-size:25px; font-weight:900; }
.setup-copy strong,.setup-copy small { display:block; }.setup-copy small { margin-top:3px; color:var(--muted); line-height:1.3; }
.setup-actions { grid-column:1/-1; display:flex; gap:8px; }.setup-actions .button { flex:1; min-height:40px; padding:8px 12px; font-size:12px; }
.setup-close { position:absolute; top:5px; right:7px; width:28px; height:28px; border:0; background:transparent; color:#64748b; font-size:23px; line-height:1; }

@media (max-width: 800px) {
  .topbar { height:60px;padding:0 14px; }.brand-mark { width:34px;height:34px;border-radius:10px;font-size:20px; }.brand strong { font-size:17px; }.brand small { display:none; }.desktop-nav { display:none; }.profile-menu > div { right:-4px; }
  .app-main { min-height:calc(100vh - 60px); }.page { width:min(100% - 22px,680px);padding:16px 0 92px; }.page-heading { align-items:flex-start; }.page-heading h1 { font-size:34px; }
  .bottom-nav { position:fixed;z-index:40;left:0;right:0;bottom:0;height:70px;padding:5px max(7px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.97);border-top:1px solid #dbe2ea;box-shadow:0 -7px 22px rgba(15,23,42,.08); }.bottom-nav a { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:9px;color:#526078;font-size:10px;font-weight:750; }.bottom-nav a span { font-size:21px;line-height:1; }.bottom-nav a.active { background:var(--yellow);color:var(--ink); }
  .setup-card { left:11px; right:11px; bottom:82px; width:auto; padding:13px; }
  .auth-shell { display:block; }.auth-visual { min-height:40svh;padding:20px;background-position:69% center; }.auth-brand strong { font-size:24px; }.auth-copy h1 { font-size:46px; }.auth-copy p { font-size:14px;max-width:300px; }.auth-card-wrap { min-height:60svh;align-items:start;padding:20px 22px 28px;border-radius:26px 26px 0 0;margin-top:-24px;position:relative;z-index:2; }.auth-card { margin:0 auto; }.auth-card h2 { font-size:31px; }
  .registration-shell { padding:9px 0; }.registration-card { padding:15px 14px; }.registration-card h1 { font-size:28px; }.form-grid { grid-template-columns:1fr 1fr;gap:0 9px; }.span-2 { grid-column:1/-1; }
  .dashboard-head { padding:20px; }.live-clock { font-size:53px; }.live-date { font-size:14px; }.weather span { font-size:31px; }.weather strong { font-size:25px; }
  .current-duty { align-items:flex-start;padding:15px; }.current-duty .status-pill { display:none; }.bus-badge { width:45px;height:45px;font-size:22px; }.current-duty h2 { font-size:21px; }.current-duty p { font-size:12px; }
  .next-card { padding:17px; }.next-card-top strong { font-size:19px; }.next-card-body b { font-size:17px; }.next-card-body em { display:inline-block;margin:5px 0 0; }.next-card-body p { font-size:13px; }
  .garage-grid { grid-template-columns:1fr; }.garage-card { padding:15px; }.quick-grid { grid-template-columns:repeat(2,1fr); }.quick-grid a { padding:14px; }
  .favorite-list a { grid-template-columns:24px 45px 105px 1fr 14px;padding:11px 9px;font-size:12px; }
  .garage-hero { padding:19px; }.garage-hero .button { display:none; }.garage-hero h1 { font-size:26px; }
  .filter-panel.compact { grid-template-columns:1fr 1fr; }.filter-panel.compact input { grid-column:1/-1; }.filter-panel.compact button { grid-column:1/-1; }.duty-number-grid { grid-template-columns:repeat(4,1fr);gap:7px; }.duty-number-grid a { padding:13px 5px; }
  .duty-title-row { grid-template-columns:80px 1fr 45px; }.duty-title-row h1 { font-size:27px; }.duty-summary { grid-template-columns:1fr 1fr;padding:13px; }.duty-summary div { padding:7px; }.duty-summary strong { font-size:17px; }
  .timeline:before { left:66px; }.timeline-step { grid-template-columns:50px 25px 1fr; }.timeline-step > time { font-size:12px; }.timeline-card { padding:10px 11px; }.timeline-label { display:block; }.timeline-label b { display:inline-block;margin-top:5px; }.timeline-step.is-current .timeline-card { padding-right:52px; }
  .card-grid,.info-link-grid { grid-template-columns:1fr; }.vehicle-card { flex-wrap:wrap; }.call-button { margin-left:62px; }
  .contact-list article { align-items:flex-start; }.contact-list article > a { font-size:0; }.contact-list article > a:before { content:"☎";font-size:22px; }
  .stat-grid { grid-template-columns:repeat(2,1fr); }.stat-grid div:last-child { grid-column:1/-1; }.management-grid { grid-template-columns:1fr; }.approval-list article { align-items:flex-start;flex-wrap:wrap; }.approval-actions { width:100%;padding-left:54px; }
  .page-heading > .button { white-space:nowrap;padding:9px 11px;font-size:12px; }
}

@media (max-width: 430px) {
  .day-tabs { grid-template-columns:1fr 1fr; }.duty-number-grid { grid-template-columns:repeat(3,1fr); }
  .favorite-list a { grid-template-columns:22px 38px 92px 1fr 10px;gap:4px; }.favorite-list em { font-size:11px; }
  .garage-icon.large { display:none; }
}

@media (max-height: 720px) {
  .auth-visual { padding-top:16px; padding-bottom:38px; }
  .auth-copy h1 { margin-bottom:8px; font-size:40px; }
  .auth-copy p { font-size:13px; }
  .auth-card-wrap { padding-top:14px; padding-bottom:18px; }
  .auth-card h2 { font-size:28px; }
  .auth-card label { margin-top:8px; }
  .auth-card input { min-height:40px; }
  .registration-shell { padding:6px 0; }
  .registration-card { padding:12px 14px; }
  .registration-card h1 { font-size:25px; }
  .registration-card label { margin-top:7px; }
  .registration-card input:not([type=checkbox]),.registration-card select { min-height:38px; padding:7px 9px; }
  .consent-box { margin:9px 0; padding:8px 10px; }
  .consent-box label { font-size:10px; line-height:1.2; }
  .registration-card .button { min-height:38px; padding:8px 14px; }
}
