body[data-page="home"], body[data-page="search"] {
  --ink: #202b31; --muted: #52636e; --green: #176954; --line: #d8e0e2;
  color: var(--ink); background: #fff; font-family: "Segoe UI", Arial, sans-serif; letter-spacing: 0;
}
body[data-page="home"] *, body[data-page="search"] * { letter-spacing: 0; }
.header { height: 64px; padding: 0 max(24px, calc((100% - 1280px) / 2)); gap: 40px; background: #fff; color: var(--ink); border-bottom: 1px solid var(--line); }
.header .logo { font-size: 26px; font-weight: 750; }
.header .logo span { color: var(--green); }
.header nav { gap: 30px; }
.header nav a { font-size: 14px; padding: 21px 0 18px; }
.header nav .active, .header nav a:hover { border-color: var(--green); }
.header nav a.active { box-shadow: inset 0 -2px 0 var(--green); }
.header nav a::before, .header nav a::after { content: none; }
.head-actions .user { background: none; padding: 10px 0; border-radius: 0; font-size: 14px; }
.header .menu { color: var(--ink); width: 44px; height: 44px; }
.map-search { position: relative; isolation: isolate; padding: 250px 24px 22px; min-height: 350px; background: #e8f0f2; border-bottom: 1px solid var(--line); }
.regional-map { position: absolute; inset: 0 0 88px; background: #dce9ec; z-index: -1; }
.search-intro { position: absolute; top: 28px; left: max(24px, calc((100% - 1280px) / 2)); max-width: 340px; pointer-events: none; z-index: 2; }
.search-intro h1 { margin: 0; font-size: 26px; font-weight: 650; line-height: 1.25; text-shadow: 0 1px 2px #fff; }
.search-intro p { margin: 10px 0 0; font-size: 14px; color: #344e5b; }
.map-city { border: 0; background: none; white-space: nowrap; }
.map-city::before { content: ""; position: absolute; width: 5px; height: 5px; left: -3px; top: -3px; background: #285261; border: 1px solid #fff; border-radius: 50%; }
.map-city span { position: absolute; left: 8px; top: -7px; color: #243f4c; font: 600 12px/1.25 "Segoe UI", Arial, sans-serif; text-shadow: -1px -1px #fff, 1px -1px #fff, -1px 1px #fff, 1px 1px #fff; }
.map-city-polyarny span { top: -28px; left: 10px; }
.map-city-snezhnogorsk span { top: -24px; left: -104px; }
.map-city-severomorsk span { top: -6px; left: 32px; }
.map-city-murmansk span { top: 4px; left: -74px; font-size: 14px; }
.map-city-monchegorsk span { left: -106px; }
.map-city-apatity span { left: -57px; top: 5px; }
.map-city-kirovsk span { left: 9px; top: -15px; }
.map-city-kandalaksha span { top: 6px; }
.regional-map .leaflet-control-attribution { font: 10px/1.5 "Segoe UI", Arial, sans-serif; background: #fffffff0; color: #40515b; padding: 1px 5px; }
.map-search .searchbar { margin: 0 auto; max-width: 1280px; width: 100%; height: auto; min-height: 82px; grid-template-columns: minmax(140px, 1.2fr) 36px minmax(140px, 1.2fr) minmax(135px, .8fr) minmax(110px, .65fr) auto; gap: 12px; padding: 14px 16px; border: 1px solid #b7c6cb; border-radius: 4px; background: #fff; box-shadow: none; }
.map-search .searchbar > label { min-width: 0; padding: 0; border: 0; grid-template-columns: 24px minmax(0, 1fr); gap: 2px 6px; }
.map-search .searchbar small { color: #52636e; font-size: 12px; }
.map-search .searchbar input { width: 100%; min-height: 27px; padding: 2px 0; background: #fff; font-size: 15px; font-weight: 500; color: #202b31; }
.map-search .searchbar .swap-btn { display: grid; width: 36px; height: 36px; color: #38545f; border-radius: 4px; background: #f1f5f6; }
.map-search .primary, .search-page .primary, .section .primary { background: #176954; color: #fff; border-radius: 4px; font-size: 14px; box-shadow: none; }
.map-search .primary:hover, .search-page .primary:hover { background: #104e3e; }
.map-search .searchbar input:focus-visible { outline: 2px solid #1d628d; outline-offset: 3px; border-radius: 0; }
body[data-page="home"] :focus-visible, body[data-page="search"] :focus-visible { outline: 2px solid #1d628d; outline-offset: 3px; }
body[data-page="home"] .section, .search-page { max-width: 1328px; margin: 0 auto; padding: 24px; background: #fff; }
.section-title { margin-bottom: 16px; }
.section-title h2, .results-head h1 { margin: 0; font-size: 21px; font-weight: 650; }
.search-results-wide .results-head { height: auto; min-height: 44px; padding: 0 0 18px; margin: 0; gap: 12px; align-items: baseline; border-radius: 0; }
.search-results-wide #search-results-list { gap: 0; }
.search-results-wide { max-width: none; margin: 0; }
.search-trip.card { box-shadow: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 22px 0; margin: 0; min-height: 144px; }
.search-trip .trip-time strong { font-size: 26px; font-weight: 650; }
.search-trip .trip-action strong { font-size: 22px; }
.search-trip .trip-time span, .search-trip .trip-company { min-width: 0; overflow-wrap: anywhere; }
.search-trip .trip-duration { color: #52636e; }
.search-trip .trip-action { min-width: 0; }
.trip-grid { gap: 18px; }
.trip-grid .card { box-shadow: none; border-radius: 4px; border: 1px solid var(--line); padding: 20px; }
.trip-grid .card:hover { border-color: #7b989e; }
.trip-grid .card em { padding: 0; background: none; border-radius: 0; color: #52636e; }
.trip-grid .card h3 { margin: 10px 0; font-size: 17px; font-weight: 650; }
.trip-grid .card strong { font-size: 22px; }
.results-status { margin: 0; font-size: 13px; color: var(--muted); }
.results-status:empty { display: none; }
.results-status.error-state { padding: 12px 0; color: #a42c20; }
.search-page button, .map-search button { min-height: 44px; }
.search-page [aria-busy="true"] { cursor: progress; }
body[data-page="home"] footer, body[data-page="search"] footer { background: #f3f6f7; color: #354951; border-top: 1px solid var(--line); min-height: 120px; }
body[data-page="home"] footer a, body[data-page="home"] footer small, body[data-page="search"] footer a, body[data-page="search"] footer small { color: #52636e; }
@media (max-width: 1000px) {
  .header { gap: 22px; }
  .map-search { padding-top: 224px; }
  .regional-map { bottom: 145px; }
  .map-search .searchbar { grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1fr); gap: 12px; }
  .map-search .searchbar > label:nth-of-type(3) { grid-column: 1; }
  .map-search .searchbar > label:nth-of-type(4) { grid-column: 3; }
  .map-search .searchbar > button { grid-column: 1 / -1; }
  .map-search .searchbar > b { display: grid; }
  .search-intro h1 { font-size: 23px; }
  .search-intro { max-width: 280px; }
}
@media (max-width: 620px) {
  .header { padding: 0 16px; height: 60px; }
  .header .logo { font-size: 23px; }
  .head-actions .user { display: block; font-size: 12px; }
  .map-search { padding: 168px 12px 16px; }
  .regional-map { bottom: 175px; }
  .search-intro { left: 16px; top: 15px; max-width: calc(100% - 32px); }
  .search-intro h1 { font-size: 20px; }
  .search-intro p { display: none; }
  .map-search .searchbar { gap: 10px 8px; padding: 12px; }
  .map-search .searchbar input { font-size: 14px; }
  .map-search .searchbar > label { grid-template-columns: minmax(0, 1fr); }
  .map-search .searchbar > label i { display: none; }
  .map-search .searchbar .swap-btn { width: 32px; }
  .map-city span { font-size: 10px; }
  .map-city-murmansk span { font-size: 12px; left: -65px; }
  .map-city-snezhnogorsk, .map-city-severomorsk, .map-city-kirovsk { display: none; }
  body[data-page="home"] .section, .search-page { padding: 20px 16px; }
  .results-head { flex-wrap: wrap; padding-bottom: 10px; }
  .results-head h1, .section-title h2 { font-size: 19px; }
  .search-trip.card { grid-template-columns: minmax(0, 1fr) 72px minmax(0, 1fr); gap: 15px 8px; padding: 18px 0; }
  .search-trip .trip-time strong { font-size: 23px; }
  .search-trip .trip-duration { display: block; font-size: 12px; }
  .search-trip .trip-company { display: flex; grid-column: 1 / 3; font-size: 12px; }
  .search-trip .trip-action { grid-column: 3; flex-direction: column; align-items: stretch; text-align: right; }
  .search-trip .trip-action strong { font-size: 20px; }
  .search-trip .trip-action .btn { padding: 10px 6px; width: 100%; font-size: 12px; }
  .search-results-wide .results-head span { display: block; font-size: 12px; }
  .section-title a { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
