/* Blaue Stunde: blue night surfaces and warm amber accents.
   2.22.5: Der :root-Block ist entfallen. Er hat genau die Werte gesetzt, die style.css
   zuvor hell definiert hatte – jede Farbe stand doppelt im Projekt. Die Palette liegt
   jetzt in assets/tokens.css, die Abbildung der alten Namen in style.css.
   Die Regeln unten bleiben: sie färben einzelne Bauteile und sind keine Werte-Definition. */
body {
  min-height: 100vh;
  background:
    radial-gradient(ellipse at 88% 3%, #3868a080 0%, transparent 55%),
    linear-gradient(125deg, #071225 0%, #10274b 42%, #244c82 78%, #102343 100%);
  background-attachment: fixed;
  color: var(--ink);
}
button, input, select { font-family: inherit; }
button:disabled { opacity: .62; }
a { color: var(--blue); }
h1, h2, .brand { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; }
h1 { font-size: 2.1rem; letter-spacing: -.025em; }
h2 { font-size: 1.4rem; }
.topbar {
  background: linear-gradient(110deg, #080f23 0%, #16365f 58%, #2d5283 100%);
  border-bottom: 1px solid #7596c455;
  padding-top: 22px;
  padding-bottom: 22px;
}
.brand { font-size: 1.65rem; color: var(--ink); }
.brand-icon { background: transparent; color: var(--blue); border: 1px solid #edbc7466; border-radius: 3px; }
.topnote { color: #c7d5ed; letter-spacing: .045em; }
.search-panel {
  background: linear-gradient(115deg, #10203d 0%, #1c3e69 65%, #2d588b 100%);
  border-color: #6486b166;
  border-radius: 5px;
  box-shadow: 0 12px 40px #030a1830;
}
.eyebrow { color: #bfd0ed; font-weight: 500; letter-spacing: .13em; }
.workspace { background: var(--night-panel); border-color: var(--line); border-radius: 5px; }
.results-panel { background: linear-gradient(155deg, #122747, #162f54); }
.workspace > .tour-panel { background: linear-gradient(160deg, #162d50, #244778); }
.results-panel, .workspace > .tour-panel { border-color: var(--line); }
.tour-panel p, .muted, .point-meta, .interest-meta, .route-status { color: var(--muted); }
.point-title, .empty h3, label { color: var(--ink); }
.point-title:hover { color: var(--blue); }
.point-description { color: #cedbf0; }
.result, #tour-list li, .ranking, .route-settings { border-color: var(--line); }
.result.active { background: #294870; border-radius: 3px; }
.badge, .rank-number, #tour-list li:before { background: #263d60; color: #f1c68a; border-radius: 3px; }
.tour-name { color: var(--ink); }
.empty { color: var(--muted); }
.empty-icon { color: #819dc5; }
.primary, .results-panel > .tour-button {
  background: linear-gradient(110deg, #e8ac59, #f1c98c);
  color: var(--night-amber-ink);
  border-radius: 3px;
  box-shadow: none;
}
.primary:hover, .results-panel > .tour-button:hover { background: #f8d6a1; color: var(--night-amber-ink); }
.secondary { background: #29466f; color: var(--ink); border: 1px solid #5b78a0; border-radius: 3px; }
.secondary:hover { background: #355781; }
.tour-button span { background: #152a48; color: #f1ca91; border-radius: 3px; }
.mini-button, .order-button, .icon-button {
  color: #f0c68c;
  background: #172d4e;
  border: 1px solid #55739b;
  border-radius: 3px;
}
.mini-button:hover, .order-button:hover, .icon-button:hover { background: #2a476f; }
.mini-button.selected { background: #eabd7b; color: #12213b; border-color: #eabd7b; }
.map-tools .mini-button { background: #112442f5; color: #f4d3a3; box-shadow: 0 2px 10px #06102240; }
input[type=search], input[type=number], form#search-form select, .route-settings select, #email-form input {
  background: var(--night-input);
  color: var(--ink);
  border: 1px solid #617da5;
  border-radius: 3px;
}
input::placeholder { color: #a7bad9; opacity: 1; }
input:focus, select:focus { border-color: var(--blue); }
.switch input { accent-color: #edbc74; }
.category-options span { background: #122744; border-color: #57739a; color: #c2d1e8; border-radius: 3px; }
.category-options input:checked + span { background: #e5b779; border-color: #e5b779; color: #12213b; }
.text-button { color: #f1c88c; }
.place-choices { background: #10213d; border-color: #718aad; border-radius: 4px; box-shadow: 0 12px 36px #02081780; }
.place-choice { background: #10213d; color: var(--ink); border-radius: 2px; }
.place-choice:hover, .place-choice[aria-selected=true] { background: #294c78; color: #ffe2b3; }
.status { background: #1a355d; color: #d7e3f7; border: 1px solid #54739a; border-radius: 3px; }
.status.busy { background: #244976; color: #eaf2ff; }
.status.success { background: #1d3953; color: #d6e8f5; border-color: #66869e; }
.status.warning, .map-error { background: #493827; color: #ffe0a7; border-color: #ad8750; }
.status.error { background: #4b2a39; color: #ffd3d8; border-color: #a66c7d; }
.route-status.error, #email-status.error { color: #ffc2cd; }
#email-status.success { color: #c7e4f4; }
.route-metrics { background: #112747; color: var(--ink); border-radius: 3px; border: 1px solid #55739b; }
dialog { background: #112544; color: var(--ink); border-color: #6483ac; border-radius: 5px; }
dialog::backdrop { background: #030914aa; }
.poi-dialog-head { background: linear-gradient(105deg, #102341, #2b5180); }
.poi-detail-body, .poi-image-wrap { background: #112544; }
.poi-image-empty, .poi-attribution { color: var(--muted); }
.poi-attribution a { color: #efc487; }
.poi-dialog.hover-preview { box-shadow: 0 14px 48px #030a1870; }
#search-progress { background: linear-gradient(135deg, #112644, #294d7b); }
#search-progress progress { accent-color: #edbc74; }
.export-progress { background: #050e22b3; }
.export-progress div { background: #172e51; color: var(--ink); border: 1px solid #617fa9; border-radius: 5px; }
.map-legend { background: #10213df5; color: #e9f0ff; border: 1px solid #58769c; border-radius: 3px; }
.legend-dot { background: #477ec0; }
.legend-dot.navy { background: #edbc74; }
#map { background: #1c355b; }
#map .pin-inner { background: #285584; color: #fff; border-color: #e0eaff; }
#map .pin-inner.selected { background: #edbc74; color: #12213b; }
#map .leaflet-popup-content-wrapper, #map .leaflet-popup-tip { background: #132949; color: #eef3ff; }
#map .leaflet-popup-close-button { color: #d5e1f4; }
#map .leaflet-bar a { background: #142b4c; color: #f1c98b; border-color: #53749d; }
#map .leaflet-bar a:hover { background: #294d77; }
#map .leaflet-control-attribution { background: #132949ed; color: #c2d3ed; }
#map .leaflet-control-attribution a { color: #f0c588; }
footer { color: #c0cfe8; }
footer a { color: #f2c78b; }
@media(max-width:700px) {
  .topbar { padding-top: 16px; padding-bottom: 16px; }
  .brand { font-size: 1.35rem; }
  h1 { font-size: 1.7rem; }
  .results-panel { border-top-color: var(--line); }
}
