:root {--nav-height:68px;--nav-space:calc(var(--nav-height) + 24px + env(safe-area-inset-bottom));--line-green:#063B2B;--line-muted:#B8C9BB}
.main-nav {position:fixed;z-index:710;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:0;height:var(--nav-height);padding:5px;background:#0B3025;border:1px solid #83E5A433;border-radius:999px;color:var(--color-ivory);box-shadow:0 4px 16px #04251A1F;touch-action:pan-y;user-select:none;-webkit-user-select:none;transform-origin:50% 100%;transition:transform 320ms var(--ease),opacity 180ms ease,visibility 0s;isolation:isolate}
.main-nav button {position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:56px;padding:4px 8px;border:0;border-radius:999px;background:transparent;color:#B8C9BB;font:400 12px/16px var(--font-body);touch-action:pan-y}
.nav-selection {position:absolute;z-index:0;left:5px;top:5px;bottom:5px;width:calc((100% - 10px) / 3);border-radius:999px;background:var(--color-mint);pointer-events:none;transition:transform 300ms var(--ease)}
.is-scrubbing .nav-selection {transition:none}
.main-nav {overflow:hidden}
.main-nav button:focus-visible {outline-offset:-3px}
.main-nav img {width:26px;height:26px;filter:brightness(0) invert(1);opacity:.75}
.main-nav [aria-current='page'] {color:var(--color-forest);font-weight:600}
.main-nav [aria-current='page'] img {filter:brightness(0) saturate(100%) invert(16%) sepia(23%) saturate(1602%) hue-rotate(108deg);opacity:1}
.main-nav button {transition:background-color 160ms ease,color 160ms ease,transform 120ms ease}
.main-nav button:active {transform:scale(.96)}
.is-scrubbing button:active {transform:none}
body:not([data-theme='dark']) .main-nav {background:var(--color-mint);color:var(--color-forest);border-top-color:#063B2B26}
body:not([data-theme='dark']) .main-nav button {color:var(--color-forest)}
body:not([data-theme='dark']) .main-nav img {filter:brightness(0) saturate(100%) invert(16%) sepia(23%) saturate(1602%) hue-rotate(108deg);opacity:1}
body:not([data-theme='dark']) .nav-selection {background:#063B2B14;border:1px solid #063B2B26}
.vehicle-open .main-nav {transform:translateY(calc(100% + 24px + env(safe-area-inset-bottom))) scale(.94);opacity:0;visibility:hidden;pointer-events:none;transition:transform 260ms var(--ease),opacity 140ms ease,visibility 0s 260ms}
.search-active .main-nav,.report-open .main-nav,.line-picking .main-nav {visibility:hidden;pointer-events:none}
body:not(.details-open) .vehicle-sheet {bottom:0}
#map .leaflet-control-attribution {margin-bottom:var(--nav-space)}
.my-lines-view {position:fixed;z-index:700;inset:0;padding-bottom:var(--nav-space);display:flex;flex-direction:column;background:var(--line-green);color:var(--color-ivory);isolation:isolate}
.my-lines-view[hidden],#line-stop-picker[hidden] {display:none}
.lines-open .brand-header,.lines-open #search-launcher,.lines-open #selected-route,.lines-open .map-actions {visibility:hidden}
.lines-header {flex:none;background:var(--color-mint);color:var(--color-forest);padding:calc(16px + env(safe-area-inset-top)) 20px 20px}
.lines-title {display:flex;align-items:center;justify-content:space-between;gap:12px}
.lines-header h1 {font:700 28px/36px var(--font-heading);letter-spacing:-1px;margin:0;overflow-wrap:anywhere}
.lines-header h1:focus {outline:none}
.main-nav button:focus:not(:focus-visible) {outline:none}
.main-nav button {appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;box-shadow:none}
.lines-header p {margin:8px 0 0;font-size:16px;line-height:24px}
.my-lines-view button {cursor:pointer}
.lines-add {display:grid;place-items:center;flex:none;width:48px;height:48px;border:2px solid currentColor;border-radius:50%;background:transparent;color:inherit}
.lines-back {display:flex;align-items:center;gap:8px;flex-direction:row-reverse;justify-content:flex-end;min-height:48px;padding:0;margin-bottom:12px;border:0;background:transparent;color:inherit;font-weight:600;font-size:16px}
.lines-body {flex:1;min-height:0;overflow:auto;overscroll-behavior-y:contain;padding:20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.lines-body::-webkit-scrollbar {display:none}
.lines-body h2 {font:700 22px/28px var(--font-heading);letter-spacing:-.6px;margin:0 0 12px;overflow-wrap:anywhere}
.lines-body h3 {font:700 22px/28px var(--font-heading);letter-spacing:-.6px;margin:8px 0}
.lines-body p {margin:0 0 12px}
.line-muted {color:var(--line-muted);font:400 14px/20px var(--font-body)}
.line-loading {display:grid;gap:20px;padding-top:12px}
.line-loading span {height:116px;border-bottom:1px solid #83E5A426;background:linear-gradient(#83E5A414,#83E5A414) 0 16px/44% 16px no-repeat,linear-gradient(#83E5A40B,#83E5A40B) 0 48px/65% 12px no-repeat}
.line-arrival-caption {font-size:12px;line-height:16px;margin-top:-6px!important;margin-bottom:8px!important}
.lines-empty {display:flex;flex-direction:column;align-items:stretch;justify-content:center;min-height:100%;text-align:left}
.lines-empty-art {display:block;object-fit:contain;width:100%;height:auto;aspect-ratio:2;max-height:260px;margin:0 0 24px}
.lines-empty .mint-button {margin-top:20px}
.my-lines-view .mint-button,#line-stop-picker .mint-button {display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 16px;border:0;border-radius:16px;background:var(--color-mint);color:var(--color-forest);font:600 16px/24px var(--font-body);text-align:left}
.my-lines-view .mint-button:disabled {opacity:.45}
.my-lines-view .mint-button img {flex:none}
.saved-line {position:relative;padding:20px 0;border-bottom:1px solid #83E5A433}
.saved-line.primary-line {padding-left:16px}
.primary-line::before {content:'';position:absolute;left:0;top:20px;bottom:20px;width:4px;border-radius:4px;background:var(--color-mint)}
.saved-line-main {position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,46%);column-gap:8px;width:100%;padding:0 22px 0 0;text-align:left;border:0;background:none;color:inherit}
.saved-line-main .line-primary {grid-column:1/-1;grid-row:1;justify-self:start}
.saved-line-main h3 {grid-column:1/-1;grid-row:2;padding-right:24px}
.saved-line-main .line-origin {grid-column:1/-1;grid-row:3}
.saved-line-main .line-destination {grid-column:1/-1;grid-row:4}
.line-primary {display:inline-block;padding:2px 10px;border-radius:20px;background:var(--color-mint);color:var(--color-forest);font:600 12px/20px var(--font-body)}
.lines-header .line-primary {background:#063B2B18;margin-top:8px}
.line-menu {position:absolute;right:-8px;top:12px;display:grid;place-items:center;width:48px;height:48px;border:0;background:none;color:inherit}
.line-menu img,.saved-line-main>img,.line-nearest-row>img,.line-link>img {filter:brightness(0) invert(1);opacity:.8}
.saved-line-main>img {position:absolute;right:0;bottom:30px;width:20px;height:20px}
.line-origin,.line-destination {font:400 14px/20px var(--font-body);margin:4px 0!important;color:var(--line-muted);max-width:95%;overflow-wrap:anywhere}
.line-origin img,.line-destination img {display:inline-block;width:16px;height:16px;vertical-align:-3px;margin-right:6px;filter:brightness(0) invert(1);opacity:.75}
.line-arrival {grid-column:1;grid-row:5;align-self:center;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-top:12px;min-width:0}
.line-empty-label {font:600 14px/20px var(--font-body);color:var(--line-muted);overflow-wrap:anywhere}
.line-eta {font:700 24px/32px var(--font-heading);letter-spacing:-.8px;display:block}
.line-load {display:inline-flex;align-items:center;gap:7px;font:600 14px/20px var(--font-body)}
.line-load::before {content:'';width:10px;height:10px;border-radius:50%;background:var(--load-color);flex:none}
.line-tram {display:block;position:relative;width:100%;aspect-ratio:2.5}
.line-tram img {display:block;width:100%;height:100%;object-fit:contain}
.line-tram.unknown {opacity:1}
.saved-line .line-tram {grid-column:2;grid-row:5;align-self:end;width:100%;max-width:240px;pointer-events:none}
.line-opposite {grid-column:1/-1;grid-row:6;font-size:12px;line-height:18px;color:var(--color-mint);margin:10px 0 0!important}
.line-no-trams {padding:12px 0 8px;text-align:center}
.line-no-trams-art {display:block;width:min(100%,320px);height:140px;object-fit:contain;margin:0 auto 8px}
.line-no-trams h3 {font-size:20px;line-height:26px}
.line-search {display:flex;align-items:center;gap:12px;border-radius:16px;background:var(--color-ivory);padding:0 16px;margin-top:16px;min-height:52px}
.line-search input {width:100%;min-width:0;height:52px;border:0;background:transparent;color:var(--color-forest);font:400 16px/24px var(--font-body);outline:none}
.line-route-list {padding-bottom:12px}
.line-route-option {display:flex;align-items:center;gap:10px;width:100%;min-height:100px;padding:12px;margin-bottom:12px;border:1px solid #83E5A455;border-radius:16px;text-align:left;color:var(--color-ivory);background:none}
.line-route-option.checked {border:2px solid var(--color-mint);padding:11px}
.line-route-option>img {width:24px;height:24px;filter:brightness(0) saturate(100%) invert(84%) sepia(25%) saturate(770%) hue-rotate(85deg)}
.line-route-option>.route-badge {width:40px;height:44px;border-radius:10px;background:var(--color-mint)!important;color:var(--color-forest);font-size:24px}
.line-route-option>img:first-child {width:30px;height:36px}
.line-route-option small img {display:inline-block;width:16px;height:16px;margin-right:5px;vertical-align:-3px;filter:brightness(0) invert(1);opacity:.75}
.line-route-option>span {flex:1;min-width:0}
.line-route-option strong,.line-route-option span span,.line-route-option small {display:block;overflow-wrap:anywhere;font-size:14px;line-height:20px}
.line-route-option strong {font-size:16px;margin-bottom:4px}
.line-route-option small,.line-route-option span span {color:var(--line-muted)}
.line-fixed-footer {position:sticky;bottom:-20px;background:var(--line-green);padding:12px 0 0;box-shadow:0 -12px 0 var(--line-green)}
.line-plain {border:0;background:none;color:var(--line-muted);min-height:48px;padding:8px 12px;font-size:16px}
.line-fixed-footer .line-plain {display:block;margin:auto}
.line-stop-summary,.line-nearest,.line-quality,.line-boost-counts {padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #83E5A433}
.line-stop-summary h2 {margin-bottom:8px}
.line-nearest-row {display:flex;align-items:center;gap:12px;min-height:110px;width:100%;border:0;border-bottom:1px solid #83E5A433;background:none;color:inherit;text-align:left;padding:12px 0}
.line-nearest-row>span:first-child {flex:1;min-width:0}
.line-nearest-row .line-tram {width:44%;flex:none}
.line-nearest-row .line-load {margin-top:8px}
.line-link {display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:56px;border:0;border-bottom:1px solid #83E5A433;padding:12px 0;background:none;color:inherit;font:400 16px/24px var(--font-body);text-align:left}
.line-link img {width:20px;height:20px}
.line-quality .mint-button {margin-top:16px}
.line-referral-art {display:block;width:100%;height:auto;aspect-ratio:2.5;object-fit:contain;margin:20px 0}
.line-boost-intro {padding-bottom:8px}
.line-big-number {display:block;font:700 40px/48px var(--font-heading);margin-bottom:8px}
.line-boost-counts .mint-button {margin-top:20px}
.line-delete {min-height:48px;color:#FFB3A3;border:1px solid #FFB3A366;border-radius:16px;background:none;padding:12px 16px;margin:16px 0;font-size:16px}
.line-delete-confirm {margin-top:16px;padding-top:16px;border-top:1px solid #83E5A433}
.line-copy-url {width:100%;min-height:48px;padding:12px;background:var(--color-ivory);color:var(--color-forest);border:0;border-radius:12px;font-size:16px}
.line-error {padding:12px 16px;border:1px solid #FFB3A366;border-radius:12px;color:#FFD2BD;background:#063B2B;margin-bottom:16px!important}
.profile-placeholder {padding-top:40px;color:var(--line-muted);text-align:center}
#line-stop-picker {position:fixed;inset:0;z-index:720;pointer-events:none}
.stop-picker-top,.stop-picker-bottom {position:absolute;left:16px;right:16px;pointer-events:auto;border-radius:20px;padding:16px;background:var(--color-forest);color:var(--color-ivory);border:1px solid #83E5A455}
.stop-picker-top {top:calc(12px + env(safe-area-inset-top))}
.stop-picker-top button {min-height:48px;border:0;padding:0;background:none;color:var(--color-mint);float:right;font-size:16px}
.stop-picker-top h1 {font:700 20px/28px var(--font-heading);margin:0 0 4px;padding-right:70px}
.stop-picker-top p {margin:0 0 8px;color:var(--line-muted);font-size:14px}
.stop-picker-top select {min-height:48px;width:100%;padding:8px 12px;border:1px solid #83E5A455;border-radius:12px;background:var(--color-forest);color:var(--color-ivory);font:400 16px/24px var(--font-body)}
.stop-select-label {display:block;margin:10px 0 4px;font-size:14px;line-height:20px;color:var(--color-ivory)}
.stop-picker-zoom {position:absolute;right:16px;top:calc(320px + env(safe-area-inset-top));display:grid;pointer-events:auto;border:1px solid #83E5A455;border-radius:12px;overflow:hidden}
.stop-picker-zoom button {width:48px;height:48px;border:0;background:var(--color-forest);color:var(--color-ivory);font-size:26px}
.stop-picker-zoom button+button {border-top:1px solid #83E5A455}
.stop-picker-top button:focus-visible,.stop-picker-top select:focus-visible,.stop-picker-zoom button:focus-visible {outline:3px solid var(--color-mint);outline-offset:-3px}
@media(max-height:600px){.stop-picker-top{max-height:calc(100dvh - 175px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}.stop-picker-zoom{display:none}}
.stop-picker-bottom {bottom:calc(16px + env(safe-area-inset-bottom))}
.stop-picker-bottom strong {display:block;margin-bottom:12px;font:600 16px/24px var(--font-body)}
.line-picking .brand-header,.line-picking #search-launcher,.line-picking #selected-route,.line-picking .map-actions,.line-picking .tram-icon {visibility:hidden}
.line-picking #map {inset:0;height:100%}
.line-picking #map .leaflet-control-attribution {margin-bottom:0}
.line-stop {display:grid!important;place-items:center}
.line-stop-dot {width:16px;height:16px;background:var(--color-ivory);border:3px solid var(--color-forest);border-radius:50%;box-shadow:0 0 0 3px var(--color-mint)}
.chosen-stop .line-stop-dot {background:var(--color-mint);width:22px;height:22px;box-shadow:0 0 0 5px #83E5A466}
@media(min-width:600px){.my-lines-view {right:auto;width:480px;border-right:1px solid #83E5A433}.main-nav {left:20px;right:auto;width:440px}body:not(.details-open) .vehicle-sheet {bottom:20px}.stop-picker-top,.stop-picker-bottom {right:auto;width:420px}.lines-empty-art {max-height:280px}}
@media(max-width:359px){.lines-header,.lines-body {padding-left:16px;padding-right:16px}.lines-header h1 {font-size:26px;line-height:34px}.line-route-option>img:first-child {width:24px;height:32px}.line-eta {font-size:22px;line-height:30px}.line-load {font-size:12px;line-height:18px}.saved-line h3 {font-size:20px;line-height:28px}.saved-line-main {grid-template-columns:minmax(0,1fr) minmax(110px,44%)}}
@media(prefers-reduced-motion:reduce){.my-lines-view *,.main-nav,.main-nav * {animation:none!important;transition:none!important}}
@media(max-height:580px){.map-actions{display:grid;grid-template-columns:48px 48px;gap:8px}.map-actions .zoom-buttons{grid-column:2;grid-row:1 / span 2}.map-actions #theme{grid-column:1;grid-row:1}.map-actions #locate{grid-column:1;grid-row:2}.map-actions #choose-position{grid-column:1;grid-row:3}.route-chip{max-width:calc(100% - 140px)}}
