:root{--navy:#10243a;--navy2:#173653;--blue:#1769aa;--blue2:#eaf3fb;--gold:#e4ad47;--ink:#172536;--muted:#718093;--line:#dce4eb;--paper:#f4f7fa;--white:#fff;--green:#16835d;--red:#c43d48;--orange:#b76a18;--shadow:0 14px 40px rgba(16,36,58,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px}button,input,select,textarea{font:inherit}button{cursor:pointer}.site-header{height:76px;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1220px)/2));gap:36px;position:sticky;top:0;z-index:20;box-shadow:0 5px 20px #10243a18}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;min-width:210px}.brand-mark,.auth-symbol{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--gold);color:var(--navy);font-family:ui-sans-serif,system-ui,sans-serif;font-weight:800;font-size:22px}.brand strong{display:block;font-family:ui-sans-serif,system-ui,sans-serif;font-size:16px;letter-spacing:-.3px}.brand small{display:block;color:#b8c8d8;font-size:11px;margin-top:2px}.main-nav{display:flex;align-items:center;gap:5px;flex:1}.nav-link{border:0;background:transparent;color:#c5d1dc;padding:11px 13px;border-radius:8px;font-size:13px;font-weight:600}.nav-link:hover,.nav-link.active{background:#ffffff16;color:#fff}.nav-count{display:inline-grid;place-items:center;margin-left:4px;background:var(--gold);color:var(--navy);border-radius:20px;min-width:18px;height:18px;font-size:10px}.admin-link{margin-left:auto;color:#dbe5ed;text-decoration:none;font-size:12px;font-weight:600;white-space:nowrap}.admin-link:hover{color:#fff}.admin-dot,.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#55d6a1;margin-right:7px;vertical-align:1px}.page-shell{max-width:1220px;margin:0 auto;padding:46px 24px 24px}.hero-row{display:flex;justify-content:space-between;align-items:center;margin:8px 0 30px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.5px;color:var(--blue);margin-bottom:10px}.hero-row h1,.admin-welcome h1{font-family:ui-sans-serif,system-ui,sans-serif;font-size:clamp(30px,4vw,44px);letter-spacing:-1.8px;line-height:1.1;margin:0;color:var(--navy)}.hero-row h1 span{color:var(--blue)}.hero-copy{margin:12px 0 0;color:var(--muted);font-size:15px}.hero-side-note{display:flex;align-items:center;gap:13px;color:#7d8da0;font-size:12px;line-height:1.5;padding:14px 20px;border:1px solid var(--line);background:#fff;border-radius:12px}.hero-side-icon{font-size:24px;color:var(--gold)}.view-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:var(--shadow);margin-bottom:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-heading .eyebrow{margin-bottom:5px}.section-heading h2{font:800 23px ui-sans-serif,system-ui,sans-serif;color:var(--navy);letter-spacing:-.6px;margin:0}.section-icon{font-size:28px;color:var(--blue);width:48px;height:48px;border-radius:14px;background:var(--blue2);display:grid;place-items:center}.search-card{display:grid;grid-template-columns:1fr 38px 1fr 180px auto;gap:12px;align-items:end;background:#f7f9fb;border:1px solid #e8edf2;padding:16px;border-radius:12px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field>span{font-size:11px;font-weight:700;color:#657589}.field input,.field select,.field textarea,.input-control{width:100%;min-width:0;border:1px solid #d7e0e8;border-radius:8px;background:#fff;color:var(--ink);padding:11px 12px;outline:none;min-height:43px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#6aa3d1;box-shadow:0 0 0 3px #1769aa18}.swap-button{height:43px;width:38px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--blue);font-size:21px}.primary-button,.secondary-button{border:0;border-radius:8px;padding:12px 16px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:43px}.primary-button{background:var(--blue);color:#fff;box-shadow:0 5px 12px #1769aa25}.primary-button:hover{background:#12588f}.primary-button span{font-size:18px;line-height:10px}.secondary-button{background:#eaf0f5;color:var(--navy)}.search-submit{white-space:nowrap}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.quick-card{display:flex;align-items:center;gap:13px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:11px;padding:15px 17px;color:var(--ink)}.quick-card:hover{border-color:#9ebbd3;background:#fbfdff}.quick-icon{width:40px;height:40px;border-radius:10px;background:var(--blue2);display:grid;place-items:center;color:var(--blue);font-size:21px}.quick-card strong,.quick-card small{display:block}.quick-card strong{font-size:13px}.quick-card small{font-size:11px;color:var(--muted);margin-top:4px}.quick-card b{margin-left:auto;color:var(--blue);font-size:19px}.toolbar-card{display:flex;gap:14px;align-items:end;background:#f7f9fb;border:1px solid #e8edf2;padding:16px;border-radius:12px}.toolbar-card .field{flex:1}.results-area{margin-top:18px}.empty-state{padding:34px 20px;text-align:center;border:1px dashed #cbd6df;border-radius:12px;background:#fbfcfd;color:var(--muted)}.empty-state strong{display:block;color:var(--navy);font-size:14px;margin-bottom:6px}.empty-icon{font-size:26px;color:#9aabba;margin-bottom:9px}.result-card{border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:11px;background:#fff}.result-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.line-pill{display:inline-flex;align-items:center;gap:6px;border-radius:6px;background:var(--blue2);color:var(--blue);padding:5px 8px;font-size:11px;font-weight:800}.status-pill{border-radius:20px;padding:5px 9px;font-size:10px;font-weight:800;background:#e8f6ef;color:var(--green)}.status-pill.warning{background:#fff3df;color:var(--orange)}.status-pill.danger{background:#ffeaeb;color:var(--red)}.result-times{display:grid;grid-template-columns:95px 1fr 95px;gap:12px;align-items:center;margin:15px 0}.time-large{font:800 24px ui-sans-serif,system-ui,sans-serif;color:var(--navy)}.time-caption{font-size:10px;color:var(--muted);margin-top:3px}.route-line{height:2px;background:#c8d5df;position:relative}.route-line:before,.route-line:after{content:'';position:absolute;top:-4px;width:9px;height:9px;border:2px solid var(--blue);background:#fff;border-radius:50%}.route-line:before{left:0}.route-line:after{right:0}.result-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--muted);font-size:11px}.text-button{border:0;background:transparent;color:var(--blue);font-weight:700;font-size:12px;padding:5px}.text-button:hover{text-decoration:underline}.vehicle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.vehicle-card{border:1px solid var(--line);border-radius:12px;padding:18px;background:#fff}.vehicle-card h3{margin:0 0 4px;color:var(--navy);font:800 16px ui-sans-serif,system-ui,sans-serif}.vehicle-card .vehicle-number{color:var(--blue);font-size:11px;font-weight:800}.vehicle-card p{font-size:12px;line-height:1.5;color:var(--muted)}.feature-list{display:flex;flex-wrap:wrap;gap:6px}.feature-chip{font-size:10px;padding:5px 8px;border-radius:20px;background:#f0f4f7;color:#526579}.notice-strip{padding:13px 16px;border-radius:10px;background:#fff4df;border:1px solid #f0d7a8;color:#85520f;margin-bottom:18px;font-size:13px}.trip-detail{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin:22px 0;box-shadow:var(--shadow)}.trip-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}.trip-detail h2{margin:0;color:var(--navy);font:800 23px ui-sans-serif,system-ui,sans-serif}.trip-detail-sub{color:var(--muted);font-size:12px;margin-top:6px}.detail-tabs{display:flex;gap:6px;margin:18px 0}.detail-tab{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 12px;font-size:11px;font-weight:700;color:#5c6c7d}.detail-tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}.timeline{margin:12px 0 0 5px}.timeline-row{display:grid;grid-template-columns:72px 22px 1fr;gap:10px;min-height:67px}.timeline-time{font:700 13px ui-sans-serif,system-ui,sans-serif;color:var(--navy);padding-top:2px}.timeline-marker{position:relative;display:flex;justify-content:center}.timeline-marker:before{content:'';position:absolute;top:0;bottom:0;width:2px;background:#d6e0e8}.timeline-row:first-child .timeline-marker:before{top:8px}.timeline-row:last-child .timeline-marker:before{bottom:calc(100% - 10px)}.timeline-marker:after{content:'';position:absolute;top:2px;width:10px;height:10px;border:2px solid var(--blue);background:#fff;border-radius:50%;z-index:1}.timeline-row.cancelled .timeline-marker:after{border-color:var(--red);background:#ffe5e7}.timeline-station strong{font-size:13px;color:var(--navy)}.timeline-station small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.timeline-station .disruption-text{color:var(--red);font-weight:700}.composition-wrap{border:1px solid var(--line);border-radius:11px;padding:16px;margin:12px 0 18px;background:#fafcfe}.composition-title{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px;font-weight:800;color:var(--navy);margin-bottom:12px}.consist{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 9px}.coach{min-width:105px;border:1px solid #b7c8d7;border-top:4px solid var(--blue);border-radius:8px;background:#fff;padding:10px 9px;text-align:center;flex:0 0 auto}.coach-number{font:800 15px ui-sans-serif,system-ui,sans-serif;color:var(--navy)}.coach-name{font-size:10px;color:var(--muted);margin-top:3px}.coach-features{font-size:9px;color:#52708b;margin-top:7px;line-height:1.5}.coach-range{font-size:9px;color:var(--blue);font-weight:700;margin-top:7px}.composition-empty{font-size:12px;color:var(--muted)}.site-footer{display:flex;justify-content:space-between;gap:12px;color:#8a98a7;font-size:10px;padding:20px 3px 8px}.site-footer a{color:#647b91;text-decoration:none}.hidden{display:none!important}
/* Admin */
.admin-body{background:#f2f5f8;min-height:100vh}.admin-header{position:relative}.admin-header-right{display:flex;align-items:center;gap:22px;margin-left:auto}.secure-label{font-size:11px;color:#c5d1dc}.admin-shell{max-width:1220px;margin:0 auto;padding:42px 24px 70px}.auth-card{max-width:430px;margin:35px auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:var(--shadow)}.auth-symbol{width:48px;height:48px;margin-bottom:24px}.auth-card h1{font:800 27px ui-sans-serif,system-ui,sans-serif;color:var(--navy);margin:0 0 8px}.muted{color:var(--muted);font-size:13px;line-height:1.5}.stack-form{display:grid;gap:14px;margin-top:24px}.full-width{width:100%}.form-message{font-size:12px;color:var(--red);margin-top:12px;min-height:17px}.auth-footnote{font-size:10px;color:#8997a5;margin-top:17px;line-height:1.5}.admin-welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.admin-welcome h1{font-size:32px}.admin-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:20px 0}.stat-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px}.stat-card span{display:block;color:var(--muted);font-size:10px;font-weight:700}.stat-card strong{display:block;color:var(--navy);font:800 25px ui-sans-serif,system-ui,sans-serif;margin-top:7px}.admin-tabs{display:flex;gap:5px;overflow-x:auto;border-bottom:1px solid var(--line);margin:25px 0 20px}.admin-tab{border:0;background:transparent;color:#66788a;font-weight:700;font-size:12px;padding:12px 15px;border-bottom:3px solid transparent;white-space:nowrap}.admin-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.admin-content{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;min-height:300px}.admin-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.admin-section-head h2{font:800 19px ui-sans-serif,system-ui,sans-serif;color:var(--navy);margin:0}.admin-form{background:#f7f9fb;border:1px solid #e7edf2;border-radius:11px;padding:17px;margin-bottom:20px}.admin-form h3{font:800 14px Manrope,sans-serif;color:var(--navy);margin:0 0 15px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field.full{grid-column:1/-1}.field textarea{min-height:75px;resize:vertical}.form-actions{display:flex;gap:9px;margin-top:15px}.table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:12px}.admin-table th{text-align:left;color:#77889a;font-size:10px;text-transform:uppercase;letter-spacing:.7px;padding:11px 10px;border-bottom:1px solid var(--line)}.admin-table td{padding:12px 10px;border-bottom:1px solid #edf1f4;color:#35485b;vertical-align:middle}.admin-table tr:last-child td{border-bottom:0}.row-actions{display:flex;gap:6px}.small-button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 8px;font-size:10px;font-weight:700;color:#516579}.small-button.danger{color:var(--red)}.check-row{display:flex;flex-wrap:wrap;gap:12px;padding:9px 0}.check-row label{font-size:11px;color:#526579;display:flex;gap:5px;align-items:center}.builder-block{border:1px solid var(--line);border-radius:9px;padding:13px;margin-top:12px;background:#fff}.builder-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.builder-head strong{font-size:12px;color:var(--navy)}.builder-row{display:grid;grid-template-columns:1.5fr .7fr .7fr 1fr 1.1fr 32px;gap:7px;align-items:center;margin-bottom:8px}.builder-row.vehicle-row{grid-template-columns:1.3fr 1fr 1fr .5fr 32px}.builder-row select,.builder-row input{width:100%;min-width:0;padding:8px 7px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:10px}.remove-row{width:30px;height:30px;border:0;border-radius:6px;background:#ffedef;color:var(--red);font-size:16px}.form-hint{font-size:10px;color:#8090a0;line-height:1.5;margin:7px 0 0}.toast{position:fixed;bottom:22px;right:22px;z-index:50;background:var(--navy);color:#fff;border-radius:9px;padding:12px 16px;font-size:12px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}.date-exceptions{font-size:11px;color:#6c7d8d}
@media(max-width:900px){.site-header{gap:15px;padding:0 18px}.brand{min-width:170px}.main-nav{gap:1px}.nav-link{padding:10px 8px;font-size:11px}.admin-link{font-size:11px}.search-card{grid-template-columns:1fr 36px 1fr}.date-field{grid-column:1/2}.search-submit{grid-column:2/4}.vehicle-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.site-header{height:auto;min-height:68px;flex-wrap:wrap;padding:12px 15px;gap:9px}.brand{min-width:0;flex:1}.brand-mark{width:36px;height:36px}.admin-link{margin-left:0}.main-nav{order:3;width:100%;overflow-x:auto;flex-basis:100%;padding-bottom:2px}.nav-link{white-space:nowrap}.page-shell{padding:27px 14px 18px}.hero-row{margin:3px 0 20px}.hero-row h1{font-size:30px}.hero-copy{font-size:13px;max-width:290px}.hero-side-note{display:none}.view-panel{padding:18px 14px;border-radius:13px}.section-heading h2{font-size:20px}.search-card{grid-template-columns:1fr 34px 1fr;padding:11px;gap:8px}.search-card .field:first-child{grid-column:1/3}.search-card .swap-button{grid-column:3;grid-row:1;justify-self:end}.search-card .field:nth-of-type(2){grid-column:1/4}.search-card .date-field{grid-column:1/4}.search-submit{grid-column:1/4}.quick-grid{grid-template-columns:1fr}.toolbar-card{display:grid;grid-template-columns:1fr 1fr;padding:12px;gap:10px}.toolbar-card .field:first-child{grid-column:1/3}.toolbar-card .primary-button{grid-column:1/3}.vehicle-grid{grid-template-columns:1fr}.result-times{grid-template-columns:72px 1fr 72px}.time-large{font-size:20px}.result-bottom{align-items:flex-start;flex-direction:column}.trip-detail{padding:16px 12px}.trip-detail-head{flex-direction:column}.timeline-row{grid-template-columns:58px 18px 1fr;gap:7px}.site-footer{flex-direction:column}.admin-header-right{gap:10px}.secure-label{display:none}.admin-shell{padding:25px 12px}.auth-card{margin:20px auto;padding:23px}.admin-stats{grid-template-columns:repeat(2,1fr)}.admin-stats .stat-card:last-child{grid-column:1/3}.admin-content{padding:14px}.form-grid,.form-grid.cols-3{grid-template-columns:1fr}.admin-welcome h1{font-size:27px}.builder-row{grid-template-columns:1fr 1fr 32px}.builder-row>*:nth-child(1){grid-column:1/3}.builder-row>*:nth-child(4),.builder-row>*:nth-child(5){grid-column:auto}.builder-row.vehicle-row{grid-template-columns:1fr 1fr 32px}.builder-row.vehicle-row>*:nth-child(1){grid-column:1/3}.builder-row.vehicle-row>*:nth-child(4){grid-column:1/3}.admin-tabs{margin:18px 0}.admin-section-head{align-items:flex-start;flex-direction:column}}


/* Professionelle Fahrplanübersicht */
.timetable-toolbar { display:grid; grid-template-columns:1.3fr 1fr 1fr auto; }
.timetable-summary { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:22px 0 12px; }
.timetable-summary strong,.timetable-summary span { display:block; }
.timetable-summary strong { color:var(--navy); font-size:14px; }
.timetable-summary span { color:var(--muted); font-size:11px; margin-top:4px; }
.timetable-live { display:flex; align-items:center; gap:7px; color:var(--green)!important; white-space:nowrap; }
.timetable-live i { width:7px; height:7px; background:var(--green); border-radius:50%; }
.timetable-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:11px; }
.timetable-table { width:100%; border-collapse:collapse; background:#fff; font-size:12px; text-align:left; }
.timetable-table th { padding:13px 12px; background:#f3f6f9; color:#657589; font-size:10px; text-transform:uppercase; letter-spacing:.6px; white-space:nowrap; border-bottom:1px solid var(--line); }
.timetable-table td { padding:12px; border-bottom:1px solid #edf1f4; color:#35485b; white-space:nowrap; }
.timetable-table tbody tr:last-child td { border-bottom:0; }
.timetable-table tbody tr:hover { background:#f7fafd; }
.timetable-time-cell strong,.timetable-time-cell small { display:block; }
.timetable-time-cell strong { color:var(--navy); font-size:16px; font-weight:800; font-variant-numeric:tabular-nums; }
.timetable-time-cell small { color:var(--muted); font-size:9px; margin-top:3px; }
.timetable-time-cell .timetable-old-time { color:var(--red); text-decoration:line-through; }
.timetable-trip-cell { font-weight:750; color:var(--navy)!important; }
.timetable-status { display:inline-block; padding:5px 8px; border-radius:5px; background:#e8f6ef; color:var(--green); font-size:10px; font-weight:750; }
.timetable-status.warning { background:#fff3df; color:var(--orange); }
.timetable-status.danger { background:#ffeaeb; color:var(--red); }
.timetable-row-danger { background:#fffafa; }
@media(max-width:760px) {
  .timetable-toolbar { grid-template-columns:1fr 1fr; }
  .timetable-toolbar .field:first-child { grid-column:1/3; }
  .timetable-toolbar .primary-button { grid-column:1/3; }
  .timetable-summary { align-items:flex-start; flex-direction:column; }
  .timetable-table { min-width:850px; }
}

/* =========================================================
   ADVENTSTRAM – NEUES FAHRGASTINFORMATIONSDESIGN
   ========================================================= */

:root {
  --navy: #172333;
  --navy2: #25364a;
  --blue: #315b80;
  --blue2: #e9eff5;
  --gold: #e65b45;
  --ink: #202b38;
  --muted: #788594;
  --line: #dce2e8;
  --paper: #eef1f4;
  --white: #ffffff;
  --green: #16835d;
  --red: #c83e45;
  --orange: #bd711d;
  --shadow: 0 8px 28px rgba(23,35,51,.07);
}

* {
  box-sizing: border-box;
}

body {
  background: #eef1f4;
  color: var(--ink);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: 14px;
  letter-spacing: .05px;
}

/* Kopfbereich und Navigation */

.site-header {
  height: 70px;
  padding: 0 max(28px, calc((100vw - 1320px)/2));
  background: #172333;
  border-bottom: 3px solid #e65b45;
  box-shadow: 0 3px 14px rgba(15,25,38,.18);
  gap: 38px;
}

.brand {
  min-width: 235px;
  gap: 12px;
}

.brand-mark {
  width: 43px;
  height: 43px;
  border-radius: 9px;
  background: #e65b45;
  color: #fff;
  font-size: 23px;
  font-weight: 900;
}

.brand strong {
  font-size: 16px;
  letter-spacing: .1px;
}

.brand small {
  color: #aebac7;
  font-size: 10px;
  letter-spacing: .6px;
  text-transform: uppercase;
}

.main-nav {
  gap: 5px;
}

.nav-link {
  color: #c2ccd6;
  padding: 12px 15px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 700;
  transition: background .18s, color .18s;
}

.nav-link:hover {
  background: #ffffff12;
  color: #fff;
}

.nav-link.active {
  color: #fff;
  background: #ffffff1c;
  box-shadow: inset 0 -2px #e65b45;
}

.nav-count {
  background: #e65b45;
  color: white;
}

/* Seitenlayout und Überschriften */

.page-shell {
  max-width: 1320px;
  padding: 36px 28px 28px;
}

.hero-row {
  margin: 5px 0 26px;
  align-items: center;
}

.hero-row h1 {
  color: #172333;
  font-size: clamp(30px, 3.5vw, 41px);
  font-weight: 800;
  letter-spacing: -1.5px;
}

.hero-row h1 span {
  color: #d94f3c;
}

.hero-copy {
  color: #667484;
  font-size: 14px;
  margin-top: 10px;
}

.eyebrow {
  color: #d94f3c;
  font-size: 10px;
  letter-spacing: 1.6px;
  font-weight: 850;
}

.live-dot {
  background: #e65b45;
}

.hero-side-note {
  border: 1px solid #d9dfe5;
  background: #fff;
  border-radius: 7px;
  padding: 13px 17px;
  color: #647283;
  box-shadow: 0 3px 12px rgba(23,35,51,.04);
}

.hero-side-icon {
  color: #e65b45;
}

/* Hauptbereiche */

.view-panel {
  background: #fff;
  border: 1px solid #dce2e8;
  border-radius: 8px;
  padding: 25px;
  box-shadow: var(--shadow);
  margin-bottom: 20px;
}

.section-heading {
  margin-bottom: 22px;
  padding-bottom: 15px;
  border-bottom: 1px solid #e7ebef;
}

.section-heading h2 {
  color: #172333;
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -.5px;
}

.section-icon {
  color: #d94f3c;
  background: #fbedeb;
  border-radius: 7px;
  width: 42px;
  height: 42px;
}

/* Formulare und Eingabefelder */

.search-card,
.toolbar-card {
  background: #f5f7f9;
  border: 1px solid #e0e5ea;
  border-radius: 7px;
  padding: 18px;
}

.field {
  gap: 8px;
}

.field > span {
  color: #526173;
  font-size: 11px;
  font-weight: 750;
}

.field input,
.field select,
.field textarea,
.input-control {
  min-height: 45px;
  border: 1px solid #ccd5de;
  border-radius: 5px;
  background: #fff;
  color: #202b38;
  padding: 11px 12px;
  font-size: 13px;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: #315b80;
  box-shadow: 0 0 0 3px rgba(49,91,128,.12);
}

.swap-button {
  border-radius: 5px;
  border-color: #d4dce4;
  color: #315b80;
}

.primary-button {
  background: #d94f3c;
  color: #fff;
  border-radius: 5px;
  min-height: 45px;
  padding: 12px 19px;
  font-size: 12px;
  font-weight: 800;
  box-shadow: none;
  transition: background .18s;
}

.primary-button:hover {
  background: #bd3e30;
}

.secondary-button {
  background: #e9edf1;
  color: #25364a;
  border-radius: 5px;
}

/* Schnellzugriffe */

.quick-grid {
  gap: 12px;
  margin-top: 16px;
}

.quick-card {
  border: 1px solid #dce2e8;
  border-radius: 7px;
  padding: 16px;
  transition: border .18s, transform .18s;
}

.quick-card:hover {
  border-color: #d94f3c;
  background: #fffafa;
  transform: translateY(-2px);
}

.quick-icon {
  background: #fbedeb;
  color: #d94f3c;
  border-radius: 6px;
}

.quick-card strong {
  color: #25364a;
  font-size: 13px;
}

.quick-card small {
  color: #788594;
}

.quick-card b {
  color: #d94f3c;
}

/* Abfahrtstafel und Verbindungsergebnisse */

.results-area {
  margin-top: 20px;
}

.results-label {
  color: #647283;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .3px;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.result-card {
  border: 1px solid #dce2e8;
  border-left: 3px solid #315b80;
  border-radius: 5px;
  padding: 15px 18px;
  margin-bottom: 9px;
  background: #fff;
  box-shadow: 0 2px 7px rgba(23,35,51,.035);
  transition: border-color .15s, box-shadow .15s;
}

.result-card:hover {
  border-color: #aebdca;
  border-left-color: #d94f3c;
  box-shadow: 0 5px 15px rgba(23,35,51,.08);
}

.line-pill {
  background: #e9eff5;
  color: #315b80;
  border-radius: 4px;
  padding: 5px 9px;
  font-size: 11px;
  font-weight: 850;
}

.status-pill {
  background: #e7f3ed;
  color: #16734f;
  border-radius: 4px;
  padding: 5px 9px;
  font-size: 10px;
  font-weight: 800;
}

.status-pill.warning {
  background: #fff1dc;
  color: #9c5d12;
}

.status-pill.danger {
  background: #fde9e9;
  color: #b52f38;
}

.result-times {
  margin: 17px 0;
  gap: 16px;
}

.time-large {
  color: #172333;
  font-size: 27px;
  font-weight: 850;
  letter-spacing: -.7px;
  font-variant-numeric: tabular-nums;
}

.time-caption {
  color: #758292;
  font-size: 11px;
}

.route-line {
  background: #cbd4dd;
}

.route-line:before,
.route-line:after {
  border-color: #315b80;
}

.result-bottom {
  border-top: 1px solid #edf0f3;
  padding-top: 11px;
  color: #758292;
  font-size: 11px;
}

.text-button {
  color: #c84736;
  font-size: 11px;
  font-weight: 850;
}

.text-button:hover {
  color: #a52f22;
}

/* Leere Zustände und Meldungen */

.empty-state {
  border: 1px dashed #cbd4dd;
  border-radius: 6px;
  background: #f8f9fa;
  padding: 38px 20px;
}

.empty-state strong {
  color: #25364a;
}

.empty-icon {
  color: #d94f3c;
}

.notice-strip {
  background: #fff2e7;
  border: 1px solid #f0d1b7;
  border-left: 4px solid #d94f3c;
  color: #85501e;
  border-radius: 5px;
}

/* Fahrzeuge */

.vehicle-grid {
  gap: 13px;
}

.vehicle-card {
  border: 1px solid #dce2e8;
  border-radius: 7px;
  padding: 19px;
  background: #fff;
  transition: box-shadow .18s, transform .18s;
}

.vehicle-card:hover {
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}

.vehicle-number {
  color: #d94f3c !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  letter-spacing: .7px;
}

.vehicle-card h3 {
  color: #172333;
  font-size: 16px;
}

.vehicle-card p {
  color: #697787;
  line-height: 1.6;
}

.feature-chip {
  background: #edf1f4;
  color: #526173;
  border-radius: 4px;
}

/* Fahrtendetails */

.trip-detail {
  background: #fff;
  border: 1px solid #dce2e8;
  border-radius: 8px;
  padding: 25px;
  box-shadow: var(--shadow);
}

.trip-detail-head {
  border-bottom: 1px solid #e2e7ec;
}

.trip-detail h2 {
  color: #172333;
  font-size: 22px;
}

.trip-detail-sub {
  color: #758292;
}

.detail-tabs {
  gap: 5px;
  border-bottom: 1px solid #e1e6eb;
  padding-bottom: 0;
}

.detail-tab {
  border: 0;
  border-radius: 4px 4px 0 0;
  padding: 11px 15px;
  color: #657486;
  background: #f2f4f6;
  font-size: 11px;
}

.detail-tab.active {
  background: #172333;
  color: #fff;
  border-color: #172333;
  box-shadow: inset 0 -3px #e65b45;
}

.timeline-row {
  min-height: 72px;
}

.timeline-time {
  color: #172333;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}

.timeline-marker:before {
  background: #d5dde5;
}

.timeline-marker:after {
  border-color: #315b80;
}

.timeline-station strong {
  color: #25364a;
  font-size: 13px;
}

.timeline-station small {
  color: #788594;
  line-height: 1.5;
}

.timeline-station .disruption-text {
  color: #bd3540;
}

.composition-wrap {
  background: #f6f8fa;
  border: 1px solid #dce2e8;
  border-radius: 6px;
}

.composition-title {
  color: #25364a;
}

.coach {
  border: 1px solid #cbd5df;
  border-top: 4px solid #315b80;
  border-radius: 5px;
  box-shadow: 0 2px 5px rgba(23,35,51,.04);
}

.coach-number {
  color: #172333;
}

.coach-range {
  color: #d94f3c;
}

/* Fußbereich */

.site-footer {
  border-top: 1px solid #d8dfe6;
  margin-top: 28px;
  padding: 18px 3px;
  color: #84909d;
}

/* =========================================================
   ADMINISTRATION – GLEICHE DESIGNSPRACHE
   ========================================================= */

.admin-body {
  background: #eef1f4;
}

.admin-header {
  background: #172333;
  border-bottom: 3px solid #e65b45;
}

.admin-shell {
  max-width: 1320px;
}

.auth-card {
  border: 1px solid #dce2e8;
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.auth-symbol {
  background: #e65b45;
  color: white;
  border-radius: 8px;
}

.auth-card h1 {
  color: #172333;
}

.admin-welcome h1 {
  color: #172333;
}

.stat-card {
  border: 1px solid #dce2e8;
  border-radius: 7px;
  box-shadow: 0 2px 8px rgba(23,35,51,.035);
}

.stat-card strong {
  color: #172333;
}

.admin-tabs {
  border-bottom: 1px solid #dce2e8;
}

.admin-tab {
  color: #687789;
}

.admin-tab.active {
  color: #d94f3c;
  border-bottom-color: #d94f3c;
}

.admin-content {
  border: 1px solid #dce2e8;
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.admin-section-head h2 {
  color: #172333;
}

.admin-form {
  background: #f5f7f9;
  border: 1px solid #e0e5ea;
  border-radius: 6px;
}

.admin-form h3 {
  color: #25364a;
}

.admin-table th {
  color: #657486;
  background: #f5f7f9;
}

.admin-table td {
  color: #354354;
}

.small-button {
  border-radius: 4px;
}

.small-button:hover {
  border-color: #d94f3c;
  color: #c84736;
}

.builder-block {
  border-radius: 6px;
  border-color: #dce2e8;
  background: #f9fafb;
}

.builder-head strong {
  color: #25364a;
}

.builder-row select,
.builder-row input {
  border-radius: 4px;
}

.toast {
  background: #172333;
  border-left: 4px solid #e65b45;
  border-radius: 5px;
}

/* Responsive */

@media (max-width: 900px) {
  .site-header {
    padding: 0 18px;
    gap: 15px;
  }

  .brand {
    min-width: 185px;
  }

  .nav-link {
    padding: 10px 9px;
  }

  .page-shell {
    padding: 28px 18px 20px;
  }
}

@media (max-width: 650px) {
  .site-header {
    padding: 10px 14px;
    gap: 8px;
  }

  .brand {
    min-width: 0;
  }

  .main-nav {
    padding: 5px 0 2px;
  }

  .nav-link {
    padding: 10px 12px;
    font-size: 11px;
  }

  .page-shell {
    padding: 23px 12px 16px;
  }

  .hero-row h1 {
    font-size: 29px;
  }

  .view-panel {
    padding: 17px 13px;
    border-radius: 6px;
  }

  .section-heading h2 {
    font-size: 19px;
  }

  .search-card,
  .toolbar-card {
    border-radius: 5px;
  }

  .result-card {
    padding: 13px 12px;
  }

  .time-large {
    font-size: 22px;
  }

  .trip-detail {
    padding: 17px 12px;
  }

  .detail-tab {
    padding: 10px 9px;
    font-size: 10px;
  }

  .site-footer {
    font-size: 10px;
  }
}

/* ===== Fahrplan: tabellarische Abfahrtstafel ===== */
.departure-board-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:26px 0 14px;
}
.departure-board-heading h2 {
  margin:4px 0;
  font-size:25px;
  letter-spacing:-.5px;
}
.departure-count {
  min-width:66px;
  text-align:center;
  font-size:25px;
  font-weight:750;
  color:var(--navy);
}
.departure-count small {
  display:block;
  font-size:10px;
  font-weight:600;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.board-wrap {
  width:100%;
  overflow-x:auto;
  background:#fff;
  border:1px solid #dce1e7;
  border-radius:8px;
}
.departure-board {
  width:100%;
  min-width:690px;
  border-collapse:collapse;
  text-align:left;
  font-size:13px;
}
.departure-board thead {
  background:#eef1f4;
}
.departure-board th {
  padding:12px 14px;
  color:#596575;
  font-size:10px;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.075em;
  white-space:nowrap;
  border-bottom:1px solid #dce1e7;
}
.departure-board td {
  padding:13px 14px;
  border-bottom:1px solid #e9edf1;
  vertical-align:middle;
}
.departure-board tbody tr:last-child td {
  border-bottom:0;
}
.board-row {
  cursor:pointer;
  transition:background .13s ease;
}
.board-row:hover,
.board-row:focus-visible {
  background:#f1f5f8;
  outline:none;
}
.board-row:focus-visible {
  box-shadow:inset 0 0 0 2px #3975a8;
}
.board-time {
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.board-time strong {
  display:block;
  font-size:20px;
  line-height:1.15;
  font-weight:750;
  color:#172536;
}
.board-time small,
.board-destination small {
  display:block;
  margin-top:4px;
  color:#778392;
  font-size:10px;
}
.board-line {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  padding:5px 9px;
  border-left:4px solid var(--line-color, #66788a);
  border-radius:3px;
  background:#edf1f5;
  color:#233246;
  font-weight:800;
  white-space:nowrap;
}
.board-destination {
  min-width:150px;
  font-weight:650;
  color:#1c2c3e;
}
.board-status {
  display:inline-block;
  padding:5px 8px;
  border-radius:3px;
  background:#edf1f4;
  color:#526170;
  font-size:10px;
  font-weight:750;
  white-space:nowrap;
}
.board-status.ok {
  background:#e8f2ec;
  color:#286344;
}
.board-status.warning {
  background:#fff2d9;
  color:#875a12;
}
.board-status.danger {
  background:#fbe8e6;
  color:#a3332c;
}
.board-arrow {
  width:28px;
  color:#8b98a6;
  font-size:22px;
  text-align:right;
}
.board-hint {
  margin:10px 2px 0;
  color:#778392;
  font-size:11px;
}
.results-label {
  margin:24px 0 12px;
  color:#596575;
  font-size:12px;
  font-weight:700;
}
.journey-board {
  min-width:850px;
}
.journey-board .board-time strong {
  font-size:18px;
}
@media(max-width:700px) {
  .departure-board-heading h2 {font-size:21px}
  .departure-board td {padding:11px 10px}
  .departure-board th {padding:10px}
  .board-time strong {font-size:18px}
}
