body.app-page{width:100%;max-width:100vw;height:100dvh;min-height:100dvh;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none}html.app-shell-page{width:100%;max-width:100%;min-height:100%;overflow:hidden;overscroll-behavior:none}html.app-shell-page body.app-page{position:relative;width:100%;max-width:100%;height:100dvh;min-height:100dvh;max-height:none;overflow:hidden}button,input,select,textarea{font:inherit}.topbar{height:var(--topbar-height, 64px);min-height:var(--topbar-height, 64px);padding:calc(8px + var(--topbar-safe-top, 0px)) clamp(12px,2vw,22px) 8px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:3000;background:#102832;color:#fff}.brand,.account,.field-row,.form-actions,.coords,.inline-heading,.report-card-header{display:flex;align-items:center}.brand{gap:8px;min-width:0;flex:1 1 auto;overflow:hidden}.brand>div{min-width:0}.brand[href]{color:#fff;text-decoration:none}.brand h1{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap}.brand-mark{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border:2px solid rgba(255,255,255,.55);border-radius:7px;font-weight:800;letter-spacing:0;background:#c94f2f}.eyebrow{margin:0 0 3px;color:#82919e;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.topbar .eyebrow{color:#b8c7d1}.pwa-refresh-button{width:40px;height:36px;display:grid;place-items:center;flex:0 0 auto;padding:0;border:0;border-radius:8px;background:#ffffff1f;color:#fff;cursor:pointer}.pwa-refresh-button:hover{background:#fff3}.pwa-refresh-button:focus-visible{outline:3px solid #6fd4ca;outline-offset:2px}.pwa-refresh-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pwa-refresh-button.is-refreshing svg{animation:pwa-refresh-spin .7s linear infinite}.menu-account-status{padding:10px;border-bottom:1px solid var(--line);color:#526371;font-size:.86rem;font-weight:800;overflow-wrap:anywhere;word-break:break-word}.account-display-settings h3,.account-display-settings .helper{margin:0}.account-display-settings .helper{margin-top:3px}.header-menu{position:relative}.header-menu summary{min-height:36px;width:40px;display:grid;place-items:center;padding:0;border-radius:8px;background:#ffffff1f;color:#fff;cursor:pointer;font-weight:900;list-style:none}.header-menu summary::-webkit-details-marker{display:none}.hamburger-icon,.hamburger-icon:before,.hamburger-icon:after{display:block;width:18px;height:2px;border-radius:999px;background:currentColor}.hamburger-icon{position:relative}.hamburger-icon:before,.hamburger-icon:after{content:"";position:absolute;left:0}.hamburger-icon:before{top:-6px}.hamburger-icon:after{top:6px}.header-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:3100;width:250px;max-width:calc(100vw - 24px);display:grid;gap:8px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);overflow:hidden;contain:paint}.header-menu-section{min-width:0;display:grid;gap:4px;padding:0 0 8px;border-bottom:1px solid var(--line)}.header-menu-section:last-child{padding-bottom:0;border-bottom:0}.header-menu-section--account{gap:6px}.header-menu-panel a,.header-menu-action{min-width:0;min-height:38px;display:grid;align-items:center;padding:0 10px;border:0;border-radius:6px;background:transparent;color:#24323c;cursor:pointer;font:inherit;font-weight:850;text-align:left;text-decoration:none;overflow:hidden;overflow-wrap:anywhere;word-break:break-word}.header-menu-panel a:hover,.header-menu-action:hover,.header-menu-action.active{background:#e8f1ef;color:var(--primary-dark)}.header-menu-panel .header-account-action{width:100%;justify-items:start;text-align:left}.header-menu-panel .header-menu-action.nav-button{width:100%;min-height:38px;display:grid;place-items:center start;padding:0 10px;border:0;border-radius:6px;background:transparent;color:#24323c;font:inherit;font-weight:850;text-align:left}.header-menu-panel .header-menu-action.nav-button:hover,.header-menu-panel .header-menu-action.nav-button.active{background:#e8f1ef;color:var(--primary-dark)}.shell{position:relative;flex:1 1 auto;width:100%;max-width:100vw;contain:none;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);overflow:hidden}.map-panel{position:relative;min-width:0;min-height:420px;overflow:hidden}.map-search-control{position:absolute;top:12px;left:62px;z-index:1050;width:min(480px,calc(100% - 126px))}.map-search-control form{display:grid;grid-template-columns:minmax(0,1fr) 42px;border:1px solid rgba(0,0,0,.2);border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 8px 24px #14233033}.map-search-control input{min-height:42px;border:0;border-radius:0;background:transparent}.map-search-button{position:relative;border:0;border-left:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}.map-search-button:before{content:"";width:13px;height:13px;position:absolute;left:12px;top:11px;border:2px solid currentColor;border-radius:50%}.map-search-button:after{content:"";width:8px;height:2px;position:absolute;left:25px;top:27px;transform:rotate(45deg);background:currentColor}.map-search-results{max-height:min(360px,48vh);margin-top:6px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 12px 30px #14233038}.map-search-result{width:100%;display:grid;gap:3px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;text-align:left}.map-search-result:last-child{border-bottom:0}.map-search-result:hover,.map-search-result:focus-visible,.map-search-result.active{background:#e8f1ef}.map-search-result strong{font-size:.86rem;overflow-wrap:anywhere}.map-search-result span,.map-search-empty{color:var(--muted);font-size:.76rem}.map-search-empty{margin:0;padding:11px 12px}.map-search-status{border-top:1px solid var(--line)}.map-search-status:first-child{border-top:0}.map-search-empty{margin:0;padding:12px}.leaflet-container{overflow:hidden;position:relative;z-index:0}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{user-select:none;-webkit-user-drag:none}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-control{position:relative;z-index:800;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control-zoom{margin:12px 0 0 12px;border:1px solid rgba(0,0,0,.18);border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 8px 24px #1423302e}.leaflet-left .leaflet-control-zoom{margin-left:12px}.leaflet-top .leaflet-control-zoom{margin-top:12px}.leaflet-control-zoom a{width:32px;height:32px;display:grid;place-items:center;color:var(--ink);text-decoration:none;font-size:1.2rem;font-weight:800;line-height:1;background:#fff}.leaflet-control-zoom a+a{border-top:1px solid var(--line)}.leaflet-control-attribution{margin:0 6px 4px 0;padding:2px 6px;border-radius:4px;background:#ffffffd1;color:#46535e;font-size:.68rem}.leaflet-control-layers{margin:12px 12px 0 0;padding:9px 10px;border:1px solid rgba(0,0,0,.15);border-radius:8px;background:#fffffff0;box-shadow:0 8px 24px #14233029;color:#24323c;font-size:.82rem;font-weight:750}.leaflet-control-layers label{display:flex;align-items:center;gap:7px;margin:0;color:inherit;font-size:inherit;font-weight:inherit}.leaflet-control-layers input{width:auto;min-height:auto;margin:0;padding:0}.freight-station-marker{color:#12313a;font-weight:900}.freight-station-marker-hit{width:38px;height:38px;border-radius:999px;background:#8ed8c803;cursor:pointer;pointer-events:auto;touch-action:manipulation}.current-location-dot{filter:drop-shadow(0 1px 4px rgba(13,38,35,.35))}.freight-station-popup{display:grid;gap:3px}.freight-station-popup strong{color:var(--ink)}.freight-station-popup span{color:var(--muted);font-size:.82rem;font-weight:750}.leaflet-control-layers-separator,.leaflet-control-layers-base{display:none}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:10px 12px;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.leaflet-popup-content{margin:0;line-height:1.35}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:14px;height:14px;margin:-7px auto 0;transform:rotate(45deg);background:#fff;box-shadow:var(--shadow)}.train-marker-shell{background:transparent;border:0}.train-marker{width:112px;box-sizing:border-box;min-height:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;position:relative;border:3px solid #fff;border-radius:10px;background:var(--accent);padding:5px 8px;box-shadow:0 8px 20px #1423304d;opacity:var(--marker-opacity, 1)}.train-marker__railroad,.train-marker__main{color:#fff;font-weight:900;letter-spacing:0;line-height:1;text-align:center;max-width:94px}.train-marker__railroad{font-size:.56rem;opacity:.86}.train-marker__main{font-size:.76rem;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.train-marker__main.compact{font-size:.66rem}.train-marker__special{position:absolute;top:-5px;right:-5px;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:#d3222a;box-shadow:0 2px 7px #14233047}.train-marker--passenger{border-color:#dbeafe;box-shadow:0 8px 20px #0a6fba47}.train-marker--official{border-color:#facc15;background:linear-gradient(135deg,#0b3b75,#0057a8);box-shadow:0 0 0 3px #facc154d,0 8px 20px #0b3b7559}.train-marker--feed-stale{border-style:dashed;filter:grayscale(.35) saturate(.72);box-shadow:0 0 0 3px #4d4f5238,0 8px 20px #14233038}.train-marker--feed-stale:after{content:"STALE";position:absolute;left:50%;bottom:-16px;transform:translate(-50%);padding:2px 5px;border-radius:4px;background:#111f27;color:#e8eef2;font-size:.52rem;font-weight:900;line-height:1;box-shadow:0 2px 7px #14233040}.train-marker--feed-unavailable{border-style:dotted;filter:grayscale(.55) opacity(.82)}.train-marker--northbound{background:#087e8b}.train-marker--southbound{background:#9c2c77}.train-marker--eastbound{background:#315da8}.train-marker--westbound{background:#6546a6}.train-marker--unknown{border-color:#111;background:#fff}.train-marker--unknown .train-marker__railroad,.train-marker--unknown .train-marker__main{color:#111}.train-cluster{width:70px;height:46px;display:grid;place-items:center;align-content:center;border:3px solid #fff;border-radius:14px;background:#102832;color:#fff;box-shadow:0 10px 24px #14233052}.train-cluster--mixed{background:#0a4f7a}.train-cluster strong,.train-cluster span{display:block;line-height:1;letter-spacing:0}.train-cluster strong{font-size:1.05rem}.train-cluster span{margin-top:2px;font-size:.58rem;font-weight:900;text-transform:uppercase}.train-cluster-popup-shell .leaflet-popup-content-wrapper{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}.train-cluster-popup-shell .leaflet-popup-content{width:auto!important;margin:12px}.train-cluster-popup-shell .leaflet-popup-tip{background:var(--panel)}.train-cluster-popup-shell .leaflet-popup-close-button{width:34px;height:34px;color:var(--muted);font-size:1.35rem}.train-cluster-popup{width:min(320px,calc(100vw - 80px));display:grid;gap:10px}.train-cluster-popup__heading{display:grid;gap:2px;padding-right:24px}.train-cluster-popup__heading strong{color:var(--ink);font-size:.92rem}.train-cluster-popup__heading span,.train-cluster-popup__remaining{margin:0;color:var(--muted);font-size:.75rem}.train-cluster-popup__list{max-height:min(330px,48vh);display:grid;gap:5px;overflow-y:auto;overscroll-behavior:contain}.train-cluster-popup__report{width:100%;min-width:0;display:grid;gap:3px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.train-cluster-popup__report:hover,.train-cluster-popup__report:focus-visible{border-color:var(--primary);background:var(--primary-soft, #e8f1ef);outline:none}.train-cluster-popup__report strong,.train-cluster-popup__report span{overflow-wrap:anywhere}.train-cluster-popup__report strong{font-size:.78rem;line-height:1.25}.train-cluster-popup__report span{color:var(--muted);font-size:.7rem;line-height:1.3}.train-cluster-popup__zoom{width:100%}.button.map-locate-button{position:absolute;left:10px;top:92px;z-index:850;width:34px;height:34px;min-height:0;display:grid;place-items:center;padding:0;border-color:#0000002e;border-radius:8px;line-height:1;box-shadow:0 8px 24px #1423302e}.map-locate-button:hover .locate-icon,.map-locate-button:focus-visible .locate-icon{border-color:var(--primary)}.map-locate-button:hover .locate-icon:before,.map-locate-button:hover .locate-icon:after,.map-locate-button:focus-visible .locate-icon:before,.map-locate-button:focus-visible .locate-icon:after{background:var(--primary)}.map-style-control{position:absolute;left:10px;top:134px;z-index:850}.button.map-style-button{position:static;width:34px;height:34px;min-height:0;display:grid;place-items:center;padding:0;border-color:#0000002e;border-radius:8px;line-height:1;box-shadow:0 8px 24px #1423302e;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.map-style-icon{width:19px;height:19px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.map-style-button:hover,.map-style-button:focus-visible,.map-style-button[aria-expanded=true]{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.map-style-menu{width:182px;display:grid;gap:3px;position:absolute;top:0;left:44px;margin:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}.map-style-menu:before{content:"";width:8px;height:8px;position:absolute;left:-5px;top:12px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);transform:rotate(45deg)}.map-style-menu[hidden]{display:none}.map-style-menu-title{display:block;padding:3px 7px 6px;color:var(--muted);font-size:.68rem;font-weight:900;line-height:1.2;letter-spacing:0;text-transform:uppercase}.map-style-menu-section{margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}.map-style-menu label{min-height:36px;display:flex;grid-template-columns:none;align-items:center;gap:8px;position:relative;z-index:1;padding:6px 8px;border:1px solid transparent;border-radius:6px;color:var(--ink);cursor:pointer;font-size:.82rem;font-weight:750}.map-style-menu label:hover{background:var(--primary-soft)}.map-style-menu label:has(input:checked){border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.map-style-menu label:focus-within{outline:2px solid var(--primary);outline-offset:1px}.map-style-menu input{width:16px;min-height:16px;margin:0;accent-color:var(--primary)}.map-style-menu small{color:var(--muted);font-size:.72rem;font-weight:800}.map-style-menu-status{min-height:1.1em;padding:0 8px 2px;color:var(--muted);font-size:.72rem;font-weight:800;line-height:1.25}.map-direction-legend{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;padding:0 7px 2px}.map-direction-legend span{min-width:0;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.72rem;font-weight:850;line-height:1.2}.map-direction-legend .direction-legend-swatch{width:16px;height:14px;flex:0 0 16px;border:2px solid rgba(17,31,39,.82);border-radius:4px;font-size:0;box-shadow:0 1px 2px #08171e2e}.map-direction-legend .direction-legend-swatch--northbound{background:#087e8b}.map-direction-legend .direction-legend-swatch--southbound{background:#9c2c77}.map-direction-legend .direction-legend-swatch--eastbound{background:#315da8}.map-direction-legend .direction-legend-swatch--westbound{background:#6546a6}.map-direction-legend .direction-legend-swatch--unknown{border-color:#111f27;background:#fff}.drop-pin-shell{background:transparent;border:0}.drop-pin{width:28px;height:28px;display:block;position:relative;border:3px solid #fff;border-radius:50% 50% 50% 0;background:var(--primary);box-shadow:0 8px 20px #14233057;transform:rotate(-45deg)}.drop-pin:after{content:"";width:9px;height:9px;position:absolute;left:50%;top:50%;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.side-panel{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;background:var(--surface);border-left:1px solid var(--line)}.side-tabs{position:static;width:90%;max-width:calc(100% - 24px);margin:8px auto 6px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));box-sizing:border-box}.side-tabs:has(.side-tab[hidden]){grid-template-columns:1fr}.side-tab{min-width:0;min-height:42px;display:grid;place-items:center;padding:8px 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;font-size:.84rem;font-weight:900;text-align:center}.side-tab.active{border-color:#cfe1de;background:#e8f1ef;color:var(--primary-dark)}.app-panel{display:none}.app-panel.active-panel{display:block}.sheet-handle{display:none}.panel-section{margin:8px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.panel-section+.panel-section{margin-top:8px}.app-nav{display:none}.section-heading{margin-bottom:14px}.inline-heading{justify-content:space-between;gap:12px}.helper{margin:-6px 0 14px;color:var(--muted);font-size:.9rem;line-height:1.45}.account-summary{margin-bottom:14px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f8fafb;color:#33414b;font-size:.88rem;font-weight:750;line-height:1.4}.form-grid{display:grid;gap:13px;min-width:0}.account-tools{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.account-tools h3{margin:0;font-size:.98rem}.account-data-tools{display:grid;gap:12px;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.account-data-tools>.button{width:fit-content}.account-delete-tools{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.account-delete-tools summary{padding:11px 12px;color:var(--danger);cursor:pointer;font-weight:850}.account-delete-tools form{margin:0 12px 12px;padding-top:12px;border-top:1px solid var(--line)}.form-grid label,.form-grid>*,.panel-section,.side-panel{min-width:0}label{display:grid;gap:6px;color:#35424d;font-size:.86rem;font-weight:750}.form-field{display:grid;gap:6px}.form-field>label:first-child{display:block}.field-label{color:var(--ink);font-size:.86rem;font-weight:750}.train-identity-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start}.train-identity-row .unknown-toggle,.train-identity-row .origin-date-field{grid-column:1 / -1}.inline-checkbox{width:fit-content;display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:.82rem}.inline-checkbox input{width:17px;min-height:17px;margin:0}input,select,textarea{width:100%;max-width:100%;min-width:0;min-height:var(--field-height);font-size:16px;border:1px solid var(--field-border);border-radius:var(--field-radius);padding:var(--field-padding-block) var(--field-padding-inline);color:var(--field-text);background:var(--field-bg);transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}textarea{resize:vertical}input[type=datetime-local]{min-width:0;max-width:100%;-webkit-appearance:none;appearance:none}input:not([type=checkbox]):not([type=radio]):focus-visible,select:focus-visible,textarea:focus-visible,.custom-select-input:focus-visible,.custom-datalist-input:focus-visible{outline:0;border-color:var(--field-focus)!important;box-shadow:0 0 0 3px var(--field-focus-ring)}input::placeholder,textarea::placeholder{color:var(--field-placeholder);opacity:1}input:not([type=checkbox]):not([type=radio])[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true],.custom-select-input[aria-invalid=true],.custom-datalist-input[aria-invalid=true]{border-color:var(--field-invalid)!important;box-shadow:0 0 0 3px var(--field-invalid-ring)}.custom-select-native{position:absolute!important;display:none!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important}.custom-select,.custom-datalist{position:relative;min-width:0;width:100%}.custom-select-field{position:relative;min-width:0}.custom-select-input,.custom-datalist-input{padding-right:36px}.custom-datalist-input--plain{padding-right:10px}.custom-select-input{cursor:text}.custom-select-icon{position:absolute;top:50%;right:12px;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);pointer-events:none;transform:translateY(-65%) rotate(45deg)}.custom-select.is-open .custom-select-icon{transform:translateY(-25%) rotate(225deg)}.custom-select.is-disabled{opacity:.68}.custom-select-list{position:fixed;z-index:4200;top:0;left:0;right:auto;max-height:min(280px,46vh);width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 18px 40px #0f202b2e;overflow-x:hidden;contain:paint}.custom-select-list[hidden]{display:none}.custom-select-list--phone{right:auto;max-width:calc(100vw - 24px);border-radius:12px;box-shadow:0 20px 56px #0f202b47}.custom-select-list--tablet{border-radius:10px;box-shadow:0 16px 42px #0f202b33}.custom-select-option{min-width:0;width:100%;min-height:42px;display:grid;gap:2px;align-content:center;padding:9px 11px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);cursor:pointer;font:inherit;text-align:left;overflow:hidden;overflow-wrap:anywhere;word-break:break-word}.custom-select-option:last-of-type{border-bottom:0}.custom-select-option strong,.custom-select-option span{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.custom-select-option span{color:var(--muted);font-size:.78rem;line-height:1.25}.custom-select-option:hover,.custom-select-option:focus-visible,.custom-select-option.is-active{outline:0;background:#0d6b631a}.custom-select-option.is-selected:after{content:"Selected";width:fit-content;margin-top:2px;padding:2px 6px;border-radius:999px;background:#0d6b631f;color:var(--primary);font-size:.68rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.custom-select-empty{margin:0;padding:13px 11px;color:var(--muted);font-size:.84rem;line-height:1.35}.custom-select-status{border-top:1px solid var(--line)}.coords{gap:10px}.coords label{flex:1 1 0}.location-grid,.search-grid{display:grid;gap:10px}.location-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.field-hint{min-height:18px;color:var(--muted);font-size:.78rem;font-weight:650;line-height:1.35}.field-row{gap:8px;align-items:end}.field-row label{flex:1 1 auto}.checkbox-line{display:flex;align-items:center;gap:8px;font-weight:700}.checkbox-line input{width:auto}.report-checkbox{justify-content:flex-start;padding:2px 0}.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.consist-builder{display:grid;gap:6px}.consist-builder .field-row{display:grid;grid-template-columns:minmax(0,1fr) 42px}.consist-chips{min-height:36px;align-items:center;margin-top:2px}.consist-empty{color:var(--muted);font-size:.8rem}.chip button{width:20px;height:20px;border:0;border-radius:50%;color:inherit;background:#0d6b6321;cursor:pointer}.consist-chip{display:grid;grid-template-columns:auto auto 20px;gap:5px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink)}.consist-chip small{color:var(--muted);font-size:.65rem;font-weight:900;text-transform:uppercase}.consist-chip strong{font-size:.8rem}.consist-chip.lead-loco-chip{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.button,.icon-button{border:1px solid transparent;border-radius:8px;cursor:pointer;font-weight:800}button{min-width:0;box-sizing:border-box;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:9px 13px;line-height:1.2;text-align:center;white-space:normal}.button-primary{background:var(--primary);color:#fff}.button-primary:hover{background-color:var(--primary-dark)}.button-secondary{border-color:var(--line);background:#fff;color:var(--primary-dark)}.button.active,.button[aria-pressed=true]{background:var(--primary-dark);color:#fff}.button-ghost{border:1px solid var(--line);background:#fff;color:#24323c}.button-danger{background:var(--danger);color:#fff}.button-danger:not(:disabled):hover{background-color:#a92d2d}.icon-button{width:42px;height:42px;flex:0 0 42px;background:#102832;color:#fff;font-size:1.35rem;line-height:1}.form-actions .button{width:100%;min-width:0;padding-inline:10px;line-height:1.15}.form-actions button[type=submit]{grid-column:1 / -1}.locked{opacity:.55}.locked form{pointer-events:none}.locked #lastReportButton{pointer-events:auto}.report-list{display:grid;gap:10px}.older-reports-button{justify-self:center;width:auto;max-width:100%}.admin-page-button{width:40px;height:40px;padding:0;font-size:1.35rem;line-height:1}.consent-dialog{width:min(520px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);box-shadow:0 18px 60px #00000047}.consent-dialog::backdrop{background:#040f14b8}.consent-dialog-card{display:grid;gap:14px;padding:22px}.consent-dialog-card h2,.consent-dialog-card p{margin:0}.consent-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.consent-dialog-actions .button{width:auto}.app-action-dialog{width:min(92vw,520px)}.app-action-dialog .consent-dialog-card{gap:12px}.app-action-dialog h2,.app-action-dialog p{margin:0}.app-action-result{min-height:1.2rem}.app-action-result.form-result--error{color:var(--danger)}.app-action-input{display:grid;gap:6px}.app-action-input[hidden]{display:none}.app-action-input span{font-weight:800}.app-action-input small{color:var(--muted)}.app-toast-region{position:fixed;right:16px;bottom:16px;z-index:1400;display:grid;gap:8px;width:min(360px,calc(100vw - 32px))}.app-toast{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:start;padding:12px 14px;border:1px solid var(--line);border-left:4px solid #27645e;border-radius:8px;background:var(--panel);box-shadow:0 14px 36px #0003}.app-toast--success{border-left-color:#247243}.app-toast--error{border-left-color:#b13b2d}.app-toast p{margin:0;color:var(--ink);font-size:.9rem;font-weight:800}.app-toast a{grid-column:1 / -1;overflow-wrap:anywhere;color:#1b756d;font-weight:800}.app-toast button{width:28px;height:28px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:1rem;line-height:1;cursor:pointer}.app-dialog-backdrop{position:fixed;inset:0;z-index:1450;display:grid;place-items:center;padding:16px;background:#040f14b8}.app-dialog{display:grid;gap:12px;width:min(460px,100%);padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);box-shadow:0 18px 60px #00000047}.app-dialog h2,.app-dialog p{margin:0}.app-dialog textarea{min-height:110px;resize:vertical}.app-dialog-message{min-height:1.1em;color:#9d3428;font-size:.88rem;font-weight:800}.app-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.app-dialog-actions .button{width:auto}.search-grid .button{grid-column:1 / -1}.tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:-4px 0 14px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#f8fafb}.history-filter{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-4px 0 12px;font-size:.86rem;font-weight:800;color:var(--muted)}.history-filter select{width:auto;min-width:118px}.passenger-toggle{min-height:40px;display:block;margin:-3px 0 2px;cursor:pointer}.passenger-toggle input{width:1px;height:1px;position:absolute;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;opacity:0}.passenger-toggle-button{min-height:40px;display:grid;place-items:center;padding:9px 12px;border:2px solid #6fd4ca;border-radius:8px;background:#0b1a22;color:#f3fbfb;font-size:.78rem;font-weight:900;line-height:1.15;text-align:center;box-shadow:inset 0 0 0 1px #ffffff38,0 1px #08171e40;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease}.passenger-toggle input:checked+.passenger-toggle-button{border-color:#073f3a;background:var(--primary);color:#fff;box-shadow:inset 0 0 0 1px #ffffff57,0 8px 16px #22817a38}.passenger-toggle input:focus-visible+.passenger-toggle-button{outline:3px solid var(--primary);outline-offset:3px}.passenger-status{margin:0 0 10px}.report-search{margin:0 0 12px;border:1px solid var(--line);border-radius:8px;background:#fff}.report-search summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;color:#24323c;cursor:pointer;font-weight:900;list-style:none}.report-search summary::-webkit-details-marker{display:none}.report-search summary:after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}.report-search[open] summary:after{transform:rotate(225deg) translateY(-2px)}.tab-button{min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-weight:850}.tab-button.active{background:#fff;color:var(--primary-dark);box-shadow:0 4px 14px #1423301a}.report-card{width:100%;min-width:0;max-width:100%;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;overflow:hidden;scroll-margin-top:calc(var(--topbar-height, 64px) + 18px)}.report-card.selected-report{border-color:#86b7ad;box-shadow:0 10px 28px #0d6b6324}.report-train-more-info{color:var(--primary);font-size:inherit;font-weight:850;text-decoration:underline;text-underline-offset:2px}.report-train-more-info:hover,.report-train-more-info:focus-visible{color:var(--primary-dark)}.passenger-report-card{border-color:#bfdbfe}.official-report-card{border-color:#d6a900}.asset-row-actions .button{width:auto;min-height:32px;padding:0 10px;font-size:.8rem}.report-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.report-card-actions .button{flex:1 1 150px}.report-loco-source{display:inline-block;margin-top:3px;color:var(--muted);font-size:.76rem;font-weight:700;line-height:1.3}.passenger-loco-form{display:grid;gap:8px;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-strong)}.passenger-loco-form[hidden]{display:none}.passenger-loco-form label{display:grid;gap:5px;color:var(--muted);font-size:.75rem;font-weight:850;text-transform:uppercase}.passenger-loco-form .checkbox-row{display:flex;align-items:center;gap:8px;text-transform:none}.passenger-loco-form .checkbox-row input{width:18px;min-height:18px;flex:0 0 18px;margin:0}.passenger-loco-message{min-height:1em;margin:0;color:#8a4d55;font-size:.78rem;font-weight:800}.passenger-loco-actions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px}.report-ratings{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.report-ratings[hidden]{display:none}.report-ratings-label{color:var(--muted);font-size:.78rem;font-weight:800}.report-rating-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--control-gap);border:1px solid var(--control-border);border-radius:var(--control-group-radius);background:var(--control-border);overflow:hidden}.report-rating-button{min-height:var(--control-height-compact);padding:7px var(--control-padding-inline);border:0;border-radius:0;background:var(--control-bg);color:var(--control-text);display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:var(--control-font-size-compact);font-weight:var(--control-font-weight);cursor:pointer}.report-rating-icon{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.report-rating-button:hover,.report-rating-button.selected-rating{border-color:var(--control-focus);background-color:var(--control-selected-bg);color:var(--control-selected-text)}.report-rating-button:disabled{cursor:wait;opacity:.6}.report-history{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.report-history[hidden]{display:none}.report-history:before{content:"Train history";display:block;margin-bottom:8px;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.report-history-heading{display:grid;gap:2px}.train-run-identity{display:grid;gap:2px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}.train-run-identity strong{color:var(--ink);font-size:.92rem}.train-run-identity span{color:var(--muted);font-size:.76rem}.report-history-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.report-history-actions .button{flex:1 1 140px}.report-history-heading strong{color:var(--ink);font-size:.9rem}.report-history-heading span,.report-history-message{margin:0;color:var(--muted);font-size:.78rem}.report-history-list{display:grid;gap:0;margin:12px 0 0;padding:0;list-style:none}.report-history-item{display:grid;grid-template-columns:14px minmax(0,1fr);gap:8px;min-width:0}.report-history-focus{display:grid;gap:2px;min-width:0;padding:0 0 12px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.report-history-item strong,.report-history-item span{overflow-wrap:anywhere}.report-history-item strong{color:var(--ink);font-size:.82rem}.report-history-focus>span{color:var(--muted);font-size:.76rem}.report-history-focus:hover strong,.report-history-focus:focus-visible strong{color:var(--primary-dark)}.report-history-marker{position:relative;width:10px;height:10px;margin-top:3px;border:2px solid var(--primary);border-radius:50%;background:var(--panel)}.report-history-item:not(:last-child) .report-history-marker:after{content:"";position:absolute;top:8px;left:2px;width:2px;height:calc(100% + 26px);background:var(--line)}.report-history-item--current .report-history-marker{background:var(--primary)}.admin-page-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:16px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#f8fafb}.admin-filter-tabs{grid-template-columns:repeat(auto-fit,minmax(108px,1fr));margin:10px 0 12px}.admin-edit-form,.report-edit-form{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.report-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-edit-form[hidden],.admin-edit-form[hidden]{display:none}.report-edit-location-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.report-edit-location-tools .button{width:auto}.report-card-header{justify-content:space-between;gap:10px}.report-summary{width:100%;min-width:0;max-width:100%;height:auto;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:0;border-left:5px solid var(--accent);background:var(--panel);color:inherit;cursor:pointer;text-align:left;overflow:hidden}.report-summary>span:first-child{min-width:0;overflow:hidden}.selected-report .report-summary{border-left-color:var(--primary);background:var(--surface)}.report-title{display:-webkit-box;overflow:hidden;color:var(--ink);font-size:.98rem;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.report-direction{color:var(--primary-dark);font-size:.8rem;font-weight:850}.report-meta{display:-webkit-box;margin-top:3px;overflow:hidden;color:var(--muted);font-size:.87rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.report-chevron{width:10px;height:10px;flex:0 0 auto;border-right:2px solid #64717f;border-bottom:2px solid #64717f;transform:rotate(45deg)}.selected-report .report-chevron{transform:rotate(225deg)}.report-card-body{padding:0 12px 13px 17px;background:var(--panel)}.report-reliability{margin:0;border-bottom:1px solid var(--line)}.report-reliability[hidden]{display:none}.report-reliability summary{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;cursor:pointer;font-size:.78rem;font-weight:850;list-style:none}.report-reliability summary::-webkit-details-marker{display:none}.report-reliability-status{min-width:0;display:inline-flex;align-items:center;gap:7px}.report-reliability-mark{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#7a8791}.report-reliability[data-level=high] .report-reliability-mark{background:#16836f}.report-reliability[data-level=supported] .report-reliability-mark{background:#3179a8}.report-reliability[data-level=developing] .report-reliability-mark{background:#9a6a12}.report-reliability[data-level=limited] .report-reliability-mark{background:#8a4d55}.report-reliability-score{color:var(--muted);font-size:.74rem;white-space:nowrap}.report-reliability-score:after{content:" +";color:var(--ink)}.report-reliability[open] .report-reliability-score:after{content:" -"}.report-reliability-reasons{margin:0;padding:0 0 10px 15px;color:var(--muted);font-size:.78rem;line-height:1.45}.side-panel .reports-panel{margin:0;padding:14px;border:0;border-radius:0;background:transparent}.side-panel .reports-panel .section-heading{margin-bottom:12px}.side-panel .reports-panel .tabs{margin-bottom:12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.side-panel .reports-panel .tab-button.active{border-bottom:2px solid var(--primary);border-radius:0;background:transparent;box-shadow:none}.side-panel .reports-panel .report-search{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent}.side-panel .reports-panel .report-search summary{padding-inline:0;background:transparent}.side-panel .reports-panel .search-grid{margin-top:0;padding:4px 0 12px;border:0;border-radius:0;background:transparent}.side-panel .reports-panel .report-list{width:100%;min-width:0;max-width:100%;gap:0;border-top:1px solid var(--line)}.side-panel .reports-panel,.side-panel .reports-panel .report-list-section{min-width:0;max-width:100%}.side-panel .reports-panel .report-list-section{grid-template-columns:minmax(0,1fr)}.side-panel .reports-panel .report-card{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.side-panel .reports-panel .report-card.selected-report{border-color:var(--line);box-shadow:none}.side-panel .reports-panel .report-summary{background:transparent}.side-panel .reports-panel .selected-report .report-summary{background:var(--primary-soft)}.side-panel .reports-panel .report-card-body{background:transparent}.side-panel .reports-panel .report-history{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.report-data-table{width:100%;margin-top:10px;padding-top:10px;border-collapse:collapse;border-top:1px solid var(--line);table-layout:fixed}.report-data-table th{width:88px;padding:7px 10px 7px 0;color:var(--muted);font-size:.72rem;font-weight:900;text-align:left;text-transform:uppercase;vertical-align:top}.report-data-table td{padding:7px 0;color:#33414b;font-size:.88rem;font-weight:650;vertical-align:top;word-break:break-word}.report-data-table tr+tr th,.report-data-table tr+tr td{border-top:1px solid rgba(137,151,163,.22)}.report-center{margin-top:0}.content-brand{display:inline-flex;align-items:center;gap:7px;font-size:1.05rem}.content-home-button{min-height:38px;width:40px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:#ffffff1a;color:#dff5f1;cursor:pointer;font:inherit;text-decoration:none}.content-home-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.content-home-button:hover{background:#ffffff2e}.content-menu .header-menu-panel{width:230px}.leaflet-popup-content{min-width:190px}.popup-title{margin:0 0 6px;font-weight:850}.popup-meta{margin:0;color:#52616d}@media(prefers-color-scheme:dark){.topbar{background:#07161c}.side-panel,.panel-section,.header-menu-panel,.report-search,.report-card,.report-card-body,.content-section,.standalone-card,.leaflet-popup-content-wrapper,.leaflet-popup-tip{border-color:var(--line);background:var(--panel);color:var(--ink)}.map-panel,#map{background:#1a303a}input,select,textarea,.button-secondary,.button-ghost,.tab-button.active,.sheet-handle,.app-nav{border-color:var(--line);background:#0c1a22;color:var(--ink)}input::placeholder,textarea::placeholder{color:#7f8f9a}label,.report-data-table td,.report-title,.report-notes,.popup-title{color:var(--ink)}.helper,.field-hint,.report-meta,.popup-meta,.report-data-table th{color:var(--muted)}.button-primary{background:#1b716b;color:#fff}.button-primary:hover{background:#246f6c}.account-summary,.empty-state,.report-search summary,.admin-page-tabs,.tabs,.side-tabs{border-color:var(--line);background:#0c1a22;color:var(--ink)}.header-menu-panel a,.header-menu-action,.menu-account-status{color:var(--ink)}.header-menu-panel a:hover,.header-menu-action:hover,.header-menu-action.active,.side-tab.active{border-color:#1b4d58;background:#11313a;color:var(--primary-dark)}.side-tab{color:var(--muted)}.report-summary,.selected-report .report-summary,.nav-button.active,.tab-button.active{background:#11313a;color:var(--primary-dark)}.passenger-report-card{border-color:#1d5e86}.leaflet-control-zoom{background:#0c1a22}.leaflet-control-zoom a{color:var(--ink)}}@media(max-width:1100px){body.app-page{overflow:hidden;padding-bottom:0}.side-tabs{display:none}.app-page .shell{min-height:0;grid-template-columns:1fr;overflow:hidden}.map-panel{height:100%;min-height:0}.nav-button{display:grid;place-items:center;min-width:0;min-height:46px;padding:0 4px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-size:.74rem;font-weight:900;line-height:1.1;text-align:center}.nav-button.active{background:#e8f1ef;color:var(--primary-dark)}.locked{opacity:1}.locked:before{content:"Sign in from Account to post reports.";display:block;margin-bottom:12px;padding:10px;border-radius:8px;background:#fff5df;color:#7b4e00;font-size:.86rem;font-weight:800}.locked form{opacity:.5}.side-panel{border-left:0}}@media(max-width:620px){.admin-page-tabs{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.report-ratings{grid-template-columns:1fr}.report-ratings-label{grid-column:auto}.report-rating-actions,.report-rating-button{width:100%}.topbar{min-height:var(--topbar-height, 60px);align-items:center;flex-direction:row;gap:8px;padding:calc(8px + var(--topbar-safe-top, 0px)) 10px 8px}.brand{gap:7px}.brand-mark{width:34px;height:34px}.brand h1{gap:6px;font-size:clamp(1.12rem,5.4vw,1.45rem)}.header-menu-panel{width:min(260px,calc(100vw - 24px))}.coords,.location-grid,.form-actions{align-items:stretch}.location-grid,.search-grid,.report-edit-grid{grid-template-columns:1fr}.form-actions .button,.search-grid .button,.admin-actions .button,.report-card-actions .button{max-width:100%;width:100%}.map-locate-button{width:34px;height:34px;max-width:none}.map-search-control{left:58px;width:calc(100% - 70px)}.consent-dialog-actions{display:grid}.consent-dialog-actions .button{width:100%}}@media(max-width:1100px)and (prefers-color-scheme:dark){.app-nav{border-color:var(--line)!important;background:#0c1a22f7!important;box-shadow:0 12px 34px #0000006b!important}.nav-button{color:var(--muted)!important;background:transparent!important}.nav-button.active{background:#11313a!important;color:var(--primary-dark)!important}}:root[data-theme=dark] .topbar{background:#07161c}:root[data-theme=dark] .side-panel,:root[data-theme=dark] .panel-section,:root[data-theme=dark] .header-menu-panel,:root[data-theme=dark] .report-search,:root[data-theme=dark] .report-card,:root[data-theme=dark] .report-card-body,:root[data-theme=dark] .content-section,:root[data-theme=dark] .standalone-card,:root[data-theme=dark] .leaflet-popup-content-wrapper,:root[data-theme=dark] .leaflet-popup-tip,:root[data-theme=dark] .admin-card,:root[data-theme=dark] .user-card,:root[data-theme=dark] .info-page,:root[data-theme=dark] .moderation-tools{border-color:var(--line);background:var(--panel);color:var(--ink)}:root[data-theme=dark] .admin-metrics>div,:root[data-theme=dark] .suspension-controls,:root[data-theme=dark] .account-delete-tools{border-color:var(--line);background:var(--panel)}:root[data-theme=dark] .report-history{border-color:var(--line);background:#0c1a22}:root[data-theme=dark] .report-rating-button{border-color:var(--line);background:#0c1a22;color:var(--ink)}:root[data-theme=dark] .report-rating-button:hover,:root[data-theme=dark] .report-rating-button.selected-rating{border-color:var(--primary);background:#123b3a;color:#a7eee7}:root[data-theme=dark] .map-panel,:root[data-theme=dark] #map{background:#1a303a}:root[data-theme=dark] .map-search-control form,:root[data-theme=dark] .map-search-results,:root[data-theme=dark] .map-search-button{border-color:var(--line);background:#0c1a22;color:var(--ink)}:root[data-theme=dark] .map-search-result:hover,:root[data-theme=dark] .map-search-result:focus-visible{background:#11313a}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea,:root[data-theme=dark] .custom-select-input,:root[data-theme=dark] .custom-datalist-input,:root[data-theme=dark] .button-secondary,:root[data-theme=dark] .button-ghost,:root[data-theme=dark] .tab-button.active,:root[data-theme=dark] .sheet-handle,:root[data-theme=dark] .app-nav,:root[data-theme=dark] .search-grid{border-color:var(--line);background:#0c1a22;color:var(--ink)}:root[data-theme=dark] .custom-select-list{border-color:var(--line);background:#0c1a22;box-shadow:0 18px 40px #0000005c}:root[data-theme=dark] .custom-select-option:hover,:root[data-theme=dark] .custom-select-option:focus-visible,:root[data-theme=dark] .custom-select-option.is-active{background:#11313a}:root[data-theme=dark] label,:root[data-theme=dark] .report-data-table td,:root[data-theme=dark] .report-title,:root[data-theme=dark] .report-notes,:root[data-theme=dark] .popup-title,:root[data-theme=dark] .flag-reason,:root[data-theme=dark] .content-section p,:root[data-theme=dark] .content-section li,:root[data-theme=dark] .checkbox-row,:root[data-theme=dark] .checkbox-row span{color:var(--ink)}:root[data-theme=dark] .helper,:root[data-theme=dark] .field-hint,:root[data-theme=dark] .report-meta,:root[data-theme=dark] .popup-meta,:root[data-theme=dark] .report-data-table th,:root[data-theme=dark] .admin-card p,:root[data-theme=dark] .user-card p,:root[data-theme=dark] .info-page p,:root[data-theme=dark] .moderation-tools p,:root[data-theme=dark] .admin-meta{color:var(--muted)}:root[data-theme=dark] .button-primary{background:#1b716b;color:#fff}:root[data-theme=dark] .button-primary:hover{background:#246f6c}:root[data-theme=dark] .account-summary,:root[data-theme=dark] .empty-state,:root[data-theme=dark] .report-search summary,:root[data-theme=dark] .admin-page-tabs,:root[data-theme=dark] .tabs,:root[data-theme=dark] .side-tabs{border-color:var(--line);background:#0c1a22;color:var(--ink)}:root[data-theme=dark] .header-menu-panel a,:root[data-theme=dark] .header-menu-action,:root[data-theme=dark] .menu-account-status{color:var(--ink)}:root[data-theme=dark] .header-menu-panel .header-menu-action.nav-button{background:transparent;color:var(--ink)}:root[data-theme=dark] .header-menu-panel a:hover,:root[data-theme=dark] .header-menu-action:hover,:root[data-theme=dark] .header-menu-action.active,:root[data-theme=dark] .side-tab.active{border-color:#1b4d58;background:#11313a;color:var(--primary-dark)}:root[data-theme=dark] .header-menu-panel .header-menu-action.nav-button:hover,:root[data-theme=dark] .header-menu-panel .header-menu-action.nav-button.active{border-color:#1b4d58;background:#11313a;color:var(--primary-dark)}:root[data-theme=dark] .side-tab,:root[data-theme=dark] .tab-button,:root[data-theme=dark] .nav-button{color:var(--muted)}:root[data-theme=dark] .report-summary,:root[data-theme=dark] .selected-report .report-summary,:root[data-theme=dark] .nav-button.active,:root[data-theme=dark] .tab-button.active{background:#11313a;color:var(--primary-dark)}:root[data-theme=dark] .passenger-report-card{border-color:#1d5e86}:root[data-theme=dark] .official-report-card{border-color:#9b7a00}:root[data-theme=dark] .leaflet-control-zoom,:root[data-theme=dark] .leaflet-control-zoom a,:root[data-theme=dark] .leaflet-control-layers,:root[data-theme=dark] .leaflet-control-attribution{border-color:var(--line);background:#0c1a22;color:var(--ink)}:root[data-theme=dark] .leaflet-control-attribution a{color:#8de0d6}:root[data-theme=dark] .account-result--error p,:root[data-theme=dark] .locked:before{background:#3a1d17;color:#ffd2c4}@media(max-width:1100px){:root[data-theme=dark] .side-panel{background:#0c1a22fa}:root[data-theme=dark] .app-nav{border-color:var(--line)!important;background:#0c1a22f7!important;box-shadow:0 12px 34px #0000006b!important}:root[data-theme=dark] .nav-button{color:var(--muted)!important;background:transparent!important}:root[data-theme=dark] .nav-button.active{background:#11313a!important;color:var(--primary-dark)!important}}:root[data-theme=light] .topbar,:root[data-theme=light] .content-header{background:#102832;color:#fff}:root[data-theme=light] .header-menu-panel,:root[data-theme=light] .report-search,:root[data-theme=light] .report-card,:root[data-theme=light] .report-card-body,:root[data-theme=light] .content-section,:root[data-theme=light] .standalone-card,:root[data-theme=light] .panel-section,:root[data-theme=light] .admin-card,:root[data-theme=light] .user-card,:root[data-theme=light] .info-page,:root[data-theme=light] .moderation-tools{background:#fff;color:var(--ink)}:root[data-theme=light] .side-panel{background:var(--surface);color:var(--ink)}:root[data-theme=light] input,:root[data-theme=light] select,:root[data-theme=light] textarea,:root[data-theme=light] .custom-select-input,:root[data-theme=light] .custom-datalist-input,:root[data-theme=light] .button-secondary,:root[data-theme=light] .button-ghost,:root[data-theme=light] .tab-button.active,:root[data-theme=light] .sheet-handle,:root[data-theme=light] .search-grid{border-color:#cbd5de;background:#fff;color:var(--ink)}:root[data-theme=light] .custom-select-list{border-color:#cbd5de;background:#fff}:root[data-theme=light] label,:root[data-theme=light] .eyebrow,:root[data-theme=light] .report-data-table td,:root[data-theme=light] .report-title,:root[data-theme=light] .report-notes,:root[data-theme=light] .popup-title,:root[data-theme=light] .flag-reason,:root[data-theme=light] .content-section p,:root[data-theme=light] .content-section li,:root[data-theme=light] .checkbox-row,:root[data-theme=light] .checkbox-row span{color:#344450}:root[data-theme=light] .helper,:root[data-theme=light] .field-hint,:root[data-theme=light] .report-meta,:root[data-theme=light] .popup-meta,:root[data-theme=light] .report-data-table th,:root[data-theme=light] .admin-card p,:root[data-theme=light] .user-card p,:root[data-theme=light] .info-page p,:root[data-theme=light] .moderation-tools p,:root[data-theme=light] .admin-meta{color:var(--muted)}:root[data-theme=light] .button-primary{background:var(--primary);color:#fff}:root[data-theme=light] .button-primary:hover{background:var(--primary-dark)}:root[data-theme=light] .account-summary,:root[data-theme=light] .empty-state,:root[data-theme=light] .report-search summary,:root[data-theme=light] .admin-page-tabs,:root[data-theme=light] .tabs,:root[data-theme=light] .side-tabs{border-color:var(--line);background:#f8fafb;color:var(--ink)}:root[data-theme=light] .header-menu-panel a,:root[data-theme=light] .header-menu-action,:root[data-theme=light] .menu-account-status{color:#24323c}:root[data-theme=light] .header-menu-panel a:hover,:root[data-theme=light] .header-menu-action:hover,:root[data-theme=light] .header-menu-action.active,:root[data-theme=light] .side-tab.active{border-color:#cfe1de;background:#e8f1ef;color:var(--primary-dark)}:root[data-theme=light] .side-tab,:root[data-theme=light] .tab-button,:root[data-theme=light] .nav-button{color:var(--muted)}:root[data-theme=light] .report-summary{background:#fff;color:inherit}:root[data-theme=light] .selected-report .report-summary,:root[data-theme=light] .nav-button.active,:root[data-theme=light] .tab-button.active{background:#e8f1ef;color:var(--primary-dark)}:root[data-theme=light] .leaflet-control-zoom,:root[data-theme=light] .leaflet-control-zoom a,:root[data-theme=light] .leaflet-control-layers,:root[data-theme=light] .leaflet-control-attribution{border-color:#0000002e;background:#fff;color:#46535e}@media(max-width:1100px){:root[data-theme=light] .side-panel{background:#f3f6f8fa}:root[data-theme=light] .app-nav{border-color:var(--line)!important;background:#fffffff7!important;box-shadow:0 12px 34px #14233033!important}:root[data-theme=light] .nav-button{color:var(--muted)!important;background:transparent!important}:root[data-theme=light] .nav-button.active{background:#e8f1ef!important;color:var(--primary-dark)!important}:root[data-theme=light] .locked:before{background:#fff5df;color:#7b4e00}}:where(a,button,summary):focus-visible{outline:3px solid var(--primary);outline-offset:3px}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.68}:root[data-theme=dark] button:disabled,:root[data-theme=dark] input:disabled,:root[data-theme=dark] select:disabled,:root[data-theme=dark] textarea:disabled{opacity:1;color:#bfd2d9;border-color:#3d5966;background-color:#1a3039}.content-section a,.standalone-card a,.panel-section .helper a{color:var(--primary-dark);font-weight:750;text-underline-offset:.16em}.content-section a:hover,.standalone-card a:hover,.panel-section .helper a:hover{text-decoration-thickness:2px}@media(max-width:620px){.content-brand{min-width:0;font-size:1rem}.content-home-button{min-height:36px}}@media(max-width:1100px){html.app-shell-page body.app-page{max-height:none;overflow:hidden}html.app-shell-page .shell{height:auto;max-height:none;overflow:hidden}.side-panel{position:absolute;inset:auto 10px 0;width:auto;max-width:calc(100vw - 20px);height:min(88%,calc(100% - 16px));max-height:none;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px);border-radius:18px 18px 0 0}.side-panel.sheet-collapsed{top:auto;height:auto;max-height:none;overflow:hidden;grid-template-rows:auto auto}.sheet-handle{position:relative;min-height:46px;border-radius:0}.side-panel .app-panel.active-panel{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scroll-padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}.side-panel.sheet-collapsed .app-panel{display:none}.app-nav{position:relative;inset:auto;z-index:3;width:100%;max-width:none;min-height:58px;padding:6px;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none!important}.leaflet-bottom.leaflet-right{top:auto;right:12px;bottom:3px}.leaflet-bottom.leaflet-right .leaflet-control-attribution{width:auto;max-width:calc(100vw - 24px);margin:0;padding:2px 5px;overflow-x:auto;overflow-y:hidden;border-radius:4px;font-size:.55rem;line-height:1.15;scrollbar-width:none;text-align:right;white-space:nowrap;-webkit-overflow-scrolling:touch}.leaflet-bottom.leaflet-right .leaflet-control-attribution::-webkit-scrollbar{display:none}body.mobile-sheet-collapsed .leaflet-bottom.leaflet-right{bottom:calc(112px + env(safe-area-inset-bottom,0px))}.side-panel.sheet-collapsed .app-nav{display:grid}.side-panel .panel-section{margin:0;padding-bottom:18px;border-radius:0}}@media(max-width:620px){.side-panel{left:12px;right:12px}.map-search-control{z-index:1050}}.report-flow,.report-step{display:grid;gap:10px}.report-access-prompt,.report-login-card{min-width:0;display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.report-access-prompt{grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-bottom:12px}.report-access-prompt[hidden],.report-login-card[hidden]{display:none}.report-access-prompt strong,.report-login-card strong{display:block;color:var(--ink);font-size:.92rem;line-height:1.25}.report-access-prompt span,.report-login-card p{display:block;margin:3px 0 0;color:var(--muted);font-size:.84rem;line-height:1.35}.report-login-card{margin-bottom:14px}.report-login-card .button{justify-self:start}.report-panel.locked{opacity:1}.report-panel.locked:before{content:none;display:none}.report-panel.locked .report-progress,.report-panel.locked .report-flow,.report-step[hidden]{display:none}.report-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 10px}.report-progress-step{min-width:0;padding:8px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:.76rem;font-weight:800;text-align:center;transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}.report-progress-step:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.report-progress-step:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.report-progress-step span{display:block;margin-top:2px}.report-progress-step.active{border-color:var(--primary);background:var(--panel);color:var(--ink)}.report-progress-step.complete{color:var(--primary)}.report-draft-status{min-height:16px;margin:-2px 0 2px;color:var(--muted);font-size:.72rem;font-weight:650;line-height:1.3}.report-validation-summary{display:grid;gap:4px;padding:9px 10px;border:1px solid var(--danger);border-left-width:4px;border-radius:6px;background:var(--surface);color:var(--ink)}.report-validation-summary strong{font-size:.84rem}.report-validation-summary p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.35}.report-validation-link{justify-self:start;padding:0;border:0;background:transparent;color:var(--primary-dark);font:inherit;font-size:.78rem;font-weight:750;text-decoration:underline;cursor:pointer}.report-validation-summary:focus-visible,.report-validation-link:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.report-step-heading h3{margin:0;font-size:1.1rem}.report-step-heading p:last-child{margin:3px 0 0;color:var(--muted);line-height:1.4}.report-place-search{display:grid;gap:6px;margin-top:8px}.report-place-search>label{font-size:.82rem;font-weight:800}.report-place-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px;padding:1px;border:1px solid var(--line);border-radius:8px;background:var(--line);overflow:hidden}.report-place-search-form input,.report-place-search-form .button{min-width:0;margin:0;border:0;border-radius:0}.report-place-search-results{max-height:240px;margin-top:0}.toggle-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;font-weight:850;text-align:center}.toggle-button input{width:1px;height:1px;position:absolute;opacity:0;pointer-events:none}.toggle-button.active{border-color:var(--control-focus);background:var(--control-selected-bg);color:var(--control-selected-text)}.toggle-button.unknown-toggle{width:100%;min-height:var(--control-height-large);padding:10px var(--control-padding-inline);font-size:var(--control-font-size);line-height:1.2}.direction-button-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:6px}.direction-choice:last-child{grid-column:1 / -1}.direction-choice{min-width:0;min-height:var(--control-height-default);padding:8px 4px;border:0;border-radius:0;background:var(--control-bg);color:var(--control-text);cursor:pointer;font:inherit;font-size:var(--control-font-size);font-weight:var(--control-font-weight);line-height:1.15;white-space:normal;overflow-wrap:anywhere}.direction-choice.active{border-color:var(--control-focus);background:var(--control-selected-bg);color:var(--control-selected-text)}.direction-choice:focus-visible,.toggle-button:focus-within{outline:3px solid var(--control-focus);outline-offset:2px}.visually-hidden-select{width:1px;height:1px;position:absolute;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:620px){.report-access-prompt{grid-template-columns:1fr}}.adjust-location-button{display:none}.report-step-actions{display:grid;margin-top:3px}.report-step-actions.split-actions{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:8px}.report-step-actions--cancel{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px}.report-step-actions.split-actions.report-step-actions--cancel{grid-template-columns:minmax(0,.78fr) minmax(0,.78fr) minmax(0,1.28fr)}.report-step-actions .button{width:100%;min-width:0}.report-review{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:6px;background:var(--panel)}.report-review strong,.report-review span{overflow-wrap:anywhere}.report-review span{color:var(--muted);font-size:.86rem;line-height:1.4}.recent-report-controls select,.recent-report-controls .button{min-width:0}.report-field-group{min-width:0;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;background:transparent}.report-field-group legend{width:auto;max-width:calc(100% - 16px);margin:0 0 0 12px;padding:0 7px;background:var(--panel);color:var(--ink);font-size:.72rem;font-weight:900;line-height:1.5;letter-spacing:0;text-transform:uppercase}.report-field-group-body{display:grid;gap:9px;padding:7px 10px 10px}.report-flow .movement-fields{grid-template-columns:minmax(0,1fr)}.account-access-card .helper{margin:0 0 9px}body .account-access-card .account-summary{margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.account-access-card .form-grid[hidden]{display:none}.report-field-group .location-confirmation,.report-field-group .report-review{background:var(--surface)}@media(max-width:420px){.report-progress-step{font-size:.7rem}.report-step-actions--cancel:not(.split-actions){grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr)}.report-step-actions.split-actions.report-step-actions--cancel{grid-template-columns:minmax(0,.8fr) minmax(0,.82fr) minmax(0,1.18fr)}.report-step-actions.split-actions.report-step-actions--cancel .button{padding-inline:8px;font-size:.88rem}}@media(max-width:620px){.report-flow,.report-step{gap:11px}.report-progress{margin-bottom:12px}.report-step-heading h3{font-size:1rem}.report-step-heading p:last-child{font-size:.86rem}.consist-builder .field-row{grid-template-columns:minmax(0,1fr) 50px}.consist-builder .field-row .icon-button{min-height:42px}#directionHint{max-width:none}}@media(max-width:1100px){.adjust-location-button{display:inline-flex}.side-panel.sheet-collapsed .sheet-handle{display:grid;grid-template-columns:22px auto;align-items:center;justify-content:center;gap:7px;min-height:46px}.side-panel:not(.sheet-collapsed) .sheet-handle{grid-template-columns:22px auto;justify-content:center;gap:7px}.side-panel.sheet-collapsed .sheet-label{line-height:1}}body .side-panel>.panel-section{margin:0;padding:14px;border:0;border-radius:0;background:transparent;box-shadow:none}body .side-panel .reports-panel .tabs,body .side-panel .reports-panel .report-search,body .side-panel .reports-panel .search-grid,body .side-panel .reports-panel .report-card,body .side-panel .reports-panel .report-card-body,body .side-panel .reports-panel .report-history{background:var(--surface);box-shadow:none}body .side-panel .reports-panel .report-card{border-width:0 0 1px;border-radius:0}body .side-panel .reports-panel .report-search{border-width:1px 0;border-radius:0}body .side-panel .reports-panel{padding:12px}body .side-panel .reports-panel .section-heading{margin:0 2px 10px}.reports-tools{margin-bottom:10px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}body .side-panel .reports-panel .reports-tools .tabs{margin:0 0 8px;gap:var(--control-gap);padding:0;border:1px solid var(--control-border);border-radius:var(--control-group-radius);background:var(--control-border);overflow:hidden}body .side-panel .reports-panel .reports-tools .tab-button.active{border:0;border-radius:0;background:var(--control-selected-bg);color:var(--control-selected-text);box-shadow:none}body .side-panel .reports-panel .reports-tools .tab-button{border-radius:0}.reports-tools-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px}.reports-tools-row .history-filter,.reports-tools-row .passenger-toggle{min-width:0;margin:0}.reports-tools-row .history-filter{display:grid;grid-template-columns:1fr;gap:5px}.reports-tools-row .history-filter select{width:100%;min-width:0}.reports-tools-row .passenger-toggle{align-self:end;min-height:40px}.reports-tools .passenger-status{margin:6px 0 8px;font-size:.76rem}body .side-panel .reports-panel .reports-tools .report-search{margin:0;border:1px solid var(--line);border-radius:7px;background:var(--panel);overflow:hidden}body .side-panel .reports-panel .reports-tools .report-search summary{min-height:36px;display:grid;grid-template-columns:18px minmax(0,1fr) 10px;gap:8px;padding:0 9px;color:var(--ink)}body .side-panel .reports-panel .reports-tools .report-search summary:before{content:"";width:16px;height:16px;background:radial-gradient(circle at 6px 6px,transparent 4px,currentColor 4.5px 6px,transparent 6.5px),linear-gradient(45deg,transparent 43%,currentColor 44% 58%,transparent 59%) 9px 9px / 7px 7px no-repeat;opacity:.72}body .side-panel .reports-panel .reports-tools .report-search summary:after{grid-column:3;justify-self:end}body .side-panel .reports-panel .reports-tools .report-search[open] summary{border-bottom:1px solid var(--line);background:var(--surface)}body .side-panel .reports-panel .reports-tools .report-search .search-grid{padding:10px}body .side-panel .reports-panel .reports-tools .report-search summary:focus-visible{outline-offset:-3px}body .side-panel .reports-panel .report-list{display:grid;gap:8px;border:0}body .side-panel .reports-panel .report-list-section{display:grid;gap:8px}body .side-panel .reports-panel .report-list-section+.report-list-section{margin-top:8px}body .side-panel .reports-panel .report-list-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 0}body .side-panel .reports-panel summary.report-list-section-heading{cursor:pointer;list-style:none}body .side-panel .reports-panel summary.report-list-section-heading::-webkit-details-marker{display:none}body .side-panel .reports-panel .report-list-section--collapsible .report-list-section-heading{padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}body .side-panel .reports-panel .report-list-section--collapsible[open] .report-list-section-heading{margin-bottom:8px}body .side-panel .reports-panel .report-list-section--collapsible[open] .report-card+.report-card{margin-top:8px}body .side-panel .reports-panel .report-list-section--collapsible .report-list-section-heading span:after{content:" +"}body .side-panel .reports-panel .report-list-section--collapsible[open] .report-list-section-heading span:after{content:" -"}body .side-panel .reports-panel .report-list-section-heading h3{margin:0;color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}body .side-panel .reports-panel .report-list-section-heading span{flex:0 0 auto;color:var(--muted);font-size:.78rem;font-weight:800}body .side-panel .reports-panel .report-card{border:1px solid var(--line);border-radius:7px;background:var(--panel);overflow:hidden}body .side-panel .reports-panel .report-card.selected-report{border-color:#86b7ad;box-shadow:0 6px 18px #0d6b631a}body .side-panel .reports-panel .report-summary,body .side-panel .reports-panel .report-card-body{background:var(--panel)}body .side-panel .reports-panel .selected-report .report-summary{background:var(--primary-soft)}body .side-panel .reports-panel .report-history{margin-top:10px}@media(max-width:520px){.reports-tools-row{grid-template-columns:1fr;gap:6px}.reports-tools-row .passenger-toggle{min-height:34px}}html.app-shell-page,body.app-page{width:100%;min-width:0;height:100dvh;min-height:100dvh;max-height:100dvh;margin:0;overflow:hidden}body.app-page{display:flex;flex-direction:column}body.app-page .topbar{flex:0 0 auto}body.app-page .shell{position:relative;flex:1 1 auto;min-height:0;width:100%;max-width:100vw;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);overflow:hidden}body.app-page .map-panel,body.app-page #map{min-width:0;min-height:0;width:100%;height:100%}body.app-page .side-panel{position:relative;z-index:10;min-width:0;min-height:0;width:auto;height:auto;max-width:none;max-height:none;display:block;overflow-x:hidden;overflow-y:auto;padding:0;border-radius:0;border-left:1px solid var(--line);background:var(--surface);box-shadow:none;-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}body.app-page .side-panel::-webkit-scrollbar,body.app-page .side-panel .app-panel.active-panel::-webkit-scrollbar{display:none}body.app-page .side-panel .app-panel.active-panel{-ms-overflow-style:none;scrollbar-width:none}body.app-page .sheet-handle,body.app-page .app-nav{display:none}body.app-page .side-tabs{display:grid}@media(max-width:1100px){body.app-page .shell{display:block}body.app-page .map-panel{position:absolute;inset:0}body.app-page .side-tabs{display:none}body.app-page .side-panel{position:absolute;left:12px;right:12px;bottom:0;z-index:900;width:auto;max-width:none;height:min(88%,calc(100% - 16px));max-height:none;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;padding:0 0 env(safe-area-inset-bottom,0px);border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;background:#f3f6f8fa;box-shadow:0 18px 48px #1423302e}body.app-page .side-panel.sheet-collapsed{height:auto;grid-template-rows:auto auto}body.app-page .side-panel:has(.report-flow :is(input,select,textarea):focus){height:min(94%,calc(100% - 8px))}body.app-page .side-panel:has(.report-flow :is(input,select,textarea):focus) .report-flow{padding-bottom:min(34dvh,280px)}body.app-page .sheet-handle{min-height:46px;display:grid;grid-template-columns:22px auto;align-items:center;justify-content:center;gap:7px;border:0;border-bottom:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;font-size:1rem;font-weight:900}body.app-page .side-panel .app-panel.active-panel{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}body.app-page .side-panel.sheet-collapsed .app-panel{display:none}body.app-page .app-nav{min-height:58px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:6px;border-top:1px solid var(--line);background:var(--panel)}body.app-page .app-nav:has(.nav-button[hidden]){grid-template-columns:1fr}body.mobile-sheet-collapsed .leaflet-bottom.leaflet-right{bottom:calc(112px + env(safe-area-inset-bottom,0px))}}body .side-panel>.panel-section,body .side-panel .reports-panel{padding:10px}body .side-panel .section-heading{margin-bottom:8px}body .side-panel .section-heading h2{font-size:1.05rem}body .side-panel .helper{margin:-2px 0 8px;font-size:.82rem;line-height:1.35}body .side-panel .form-grid,body .side-panel .report-flow,body .side-panel .report-step,body .side-panel .report-field-group-body,body .side-panel .passenger-loco-form,body .side-panel .report-card-actions{gap:7px}body .side-panel label,body .side-panel .form-field{gap:4px;font-size:.8rem}body .side-panel .account-summary,body .side-panel .account-tools,body .side-panel .account-data-tools,body .side-panel .report-access-prompt,body .side-panel .report-login-card,body .side-panel .report-field-group-body,body .side-panel .passenger-loco-form{padding:8px}body .side-panel .account-summary,body .side-panel .account-tools,body .side-panel .account-data-tools{margin-bottom:9px}body .side-panel .reports-tools{margin-bottom:7px;padding:6px}body .side-panel .reports-tools .tabs{margin-bottom:6px}body .side-panel .reports-tools-row{gap:6px}body .side-panel .reports-tools-row .history-filter{gap:3px}body .side-panel .reports-tools-row .passenger-toggle,body .side-panel .passenger-toggle-button{min-height:var(--control-height-compact)}body .side-panel .reports-tools .passenger-status{margin:4px 0 6px;font-size:.72rem}body .side-panel .reports-tools .report-search .search-grid{padding:7px}body .side-panel .report-list,body .side-panel .report-list-section{gap:6px}body .side-panel .report-list-section+.report-list-section,body .side-panel .report-list-section--collapsible[open] .report-list-section-heading,body .side-panel .report-list-section--collapsible[open] .report-card+.report-card{margin-top:6px}body .side-panel .report-list-section--collapsible .report-list-section-heading{padding:7px 9px}body .side-panel .report-card-actions,body .side-panel .report-ratings{margin-top:8px}body .side-panel .report-ratings,body .side-panel .report-history{gap:6px;padding-top:8px}body .side-panel .button,body .side-panel .tab-button,body .side-panel .passenger-toggle-button,body .side-panel .nav-button{font-size:var(--control-font-size-compact);font-weight:var(--control-font-weight)}body .side-panel .report-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}body .side-panel .report-card-actions .button:only-child{grid-column:1 / -1}body .side-panel .report-card-actions,body .side-panel .report-step-actions,body .side-panel .passenger-loco-actions,body .side-panel .report-history-actions{gap:var(--control-gap);padding:0;border:1px solid var(--control-border);border-radius:var(--control-group-radius);background:var(--control-border);overflow:hidden}body .side-panel .report-card-actions .button,body .side-panel .report-step-actions .button,body .side-panel .passenger-loco-actions .button,body .side-panel .report-history-actions .button{min-height:var(--control-height-compact);margin:0;border:0;border-radius:0}.location-actions,.direction-button-group,.report-card-actions,.report-step-actions,.passenger-loco-actions,.report-history-actions,.tabs,.side-tabs,.admin-actions,.app-nav{gap:1px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--line);overflow:hidden}.location-actions>.button,.direction-button-group>.direction-choice,.report-card-actions>.button,.report-step-actions>.button,.passenger-loco-actions>.button,.report-history-actions>.button,.tabs>.tab-button,.side-tabs>.side-tab,.admin-actions>.button,.app-nav>.nav-button{margin:0;border:0;border-radius:0}.tabs>.tab-button:not(.active),.side-tabs>.side-tab:not(.active),body.app-page .app-nav>.nav-button:not(.active){background:var(--surface)}button:not(.button-primary):not(.button-danger):not(.active):not(.selected-rating):not([aria-pressed=true]):not(:disabled):hover{background-color:var(--primary-soft);color:var(--primary-dark)}body.app-page .app-nav>.nav-button:not(.active){background:var(--surface)!important}body.app-page .app-nav>.nav-button:not(.active):hover{background-color:var(--control-bg-hover)!important;color:var(--control-selected-text)!important}body .side-panel :is(.button,.tab-button,.nav-button,.direction-choice,.report-rating-button,.passenger-toggle-button):focus-visible{outline:3px solid var(--control-focus);outline-offset:2px}@media(max-width:620px){.header-menu summary{width:44px;min-height:44px}.header-menu-panel a,.header-menu-action,.header-menu-panel .header-menu-action.nav-button,body .side-panel .reports-panel .reports-tools .tab-button,body .side-panel .reports-panel .reports-tools .report-search summary,.report-edit-location-tools .button{min-height:44px}body.app-page .leaflet-control-zoom a{position:relative;width:44px;height:44px;font-size:0}body.app-page .leaflet-control-zoom a:before,body.app-page .leaflet-control-zoom-in:after{content:"";position:absolute;top:50%;left:50%;width:14px;height:2px;border-radius:999px;background:currentColor;transform:translate(-50%,-50%)}body.app-page .leaflet-control-zoom-in:after{width:2px;height:14px}.map-search-control{left:64px;width:calc(100% - 76px)}.button.map-locate-button{top:68px;right:64px;left:auto;width:44px;height:44px}.map-style-control{top:68px;right:12px;left:auto}.button.map-style-button{width:44px;height:44px}.map-style-menu{top:52px;right:0;left:auto}.map-style-menu:before{top:-5px;right:16px;left:auto;border-top:1px solid var(--line);border-bottom:0}}@media(max-width:1100px){.side-panel.sheet-collapsed,body.app-page .side-panel.sheet-collapsed{grid-template-rows:auto}.side-panel.sheet-collapsed .app-nav,body.app-page .side-panel.sheet-collapsed .app-nav{display:none}body.mobile-sheet-collapsed .leaflet-bottom.leaflet-right{bottom:calc(52px + env(safe-area-inset-bottom,0px))}}.report-edit-form{scroll-margin-top:12px}.report-card--northbound .report-summary{border-left-color:#087e8b}.report-card--southbound .report-summary{border-left-color:#9c2c77}.report-card--eastbound .report-summary{border-left-color:#315da8}.report-card--westbound .report-summary{border-left-color:#6546a6}body .side-panel .reports-panel .report-card--direction-zebra .report-summary{border-left-color:transparent;background-image:repeating-linear-gradient(135deg,#111 0 4px,#fff 4px 8px);background-repeat:repeat-y;background-position:left top;background-size:5px 12px;background-origin:border-box;background-clip:border-box}
