
/* RailPulse 0.2 — map clarity, accessible route controls and consistent light theme */
.train-div-icon{background:transparent;border:0;display:flex;align-items:center;justify-content:center}
.train-pin{position:relative;display:flex;align-items:center;justify-content:center;
 width:var(--pin-size);height:var(--pin-size);flex:0 0 auto;
 background:var(--pin-color);border:1.5px solid rgba(245,252,255,.96);
 border-radius:42%;box-shadow:0 0 0 2px rgba(6,18,28,.7),0 0 9px color-mix(in srgb,var(--pin-color) 40%,transparent);
 transform:rotate(45deg);transition:width .18s,height .18s,border-radius .18s;
}
.train-pin.selected{box-shadow:0 0 0 4px rgba(255,255,255,.35),0 0 17px var(--pin-color);z-index:5;border-radius:33%}
.train-pin-symbol{font-weight:700;font-size:12px;color:#061a23;line-height:1;transform:rotate(-45deg);display:none}
.train-pin.detailed .train-pin-symbol,.train-pin.selected .train-pin-symbol{display:block}
.train-pin:not(.detailed):not(.selected) .train-pin-symbol{display:none}
.leaflet-tooltip.trains-tooltip{font-size:12px}
.train-card{border-left:3px solid var(--card-line,var(--cyan));padding-left:12px}
.train-card:hover{background:var(--surface2)}
.overlays{position:absolute;z-index:525;right:28px;top:300px;display:flex;flex-direction:column;gap:7px;width:146px}
.overlays button{color:#dceff4;background:#10202de6;border:1px solid #3c5969;border-radius:10px;backdrop-filter:blur(14px);
 padding:10px 11px;min-height:39px;display:flex;align-items:center;gap:9px;font-size:11px;text-align:left;box-shadow:0 6px 20px #0004}
.overlays button[aria-pressed=true]{border-color:#4acccf;background:#163840;color:#d8fffc}
.overlays .overlays-icon{font-size:17px;min-width:20px;text-align:center}
.overlays .overlays-label{white-space:nowrap}
.overlays .overlays-count{margin-left:auto;font-size:11px}
.legend{flex-wrap:wrap;max-width:calc(100% - 60px)}
.legend .legend-help{font-weight:500}
.legend .dot{width:9px;height:9px}
.detail-route-block{margin-top:17px;padding:14px 14px 13px;background:#122a34;border:1px solid #275668;border-radius:10px}
.detail-route-block strong{display:block;margin:9px 0;color:#e3f6f9;font-size:12px;line-height:1.5}
.detail-route-block small{display:block;color:#9cbdc8;font-size:10px;line-height:1.6}
.detail-route-block .track-state{margin-top:9px;padding-top:9px;border-top:1px solid #315565;font-size:11px;color:#7ae0cd}
.detail .facts dd{line-height:1.35}
#d-line{font-weight:800}
.side-intro p{max-width:295px}
.train-card .gps{white-space:nowrap}
body.light{
 --bg:#eaf1f5;--side:#f6f9fc;--surface:#fff;--surface2:#eaf3f5;--border:#bfced8;
 --text:#0e2839;--muted:#455e6d;--cyan:#067b83;--violet:#6642a5;--shadow:0 18px 65px #22394a35;
}
body.light #sidebar{background:#f9fbfd;border-right-color:#c9d6de}
body.light .brand{border-bottom-color:#d5e1e7}
body.light .brand small{color:#496572}
body.light .beta{color:#0e6370;background:#dcf4f4;border-color:#96c4cb}
body.light .overline{color:#006873}
body.light .side-intro p{color:#436171}
body.light .search{background:#fff;border-color:#bacdd8;color:#203c4b}
body.light .search input,body.light .search input::placeholder{color:#526b79}
body.light .search input{color:#102d3b}
body.light .search kbd{color:#3f5968;border-color:#b7c9d3}
body.light .tabs{background:#e8f0f5;border-color:#d5e2e8}
body.light .tabs button{color:#3a5564}
body.light .tabs button.active{background:#fff;color:#173647}
body.light .section-title{color:#385566}
body.light .text-btn{color:#087680}
body.light .filters button{background:#fff;color:#1b3b4c;border-color:#c7d7e0}
body.light .filters button.active{color:#07535e;background:#d9f2f3;border-color:#48a9ae}
body.light .filters b{color:#466575}
body.light .refresh-btn{background:#eaf4f6;color:#086d77;border-color:#bdd4db}
body.light .train-card{background:#fff;color:#142b3b;border-color:#c7d7df;border-left-color:var(--card-line)}
body.light .train-card:hover{background:#eff7f8}
body.light .train-card.selected{background:#e1f2f5;border-color:#58a9b0;border-left-color:var(--card-line)}
body.light .train-card .card-body{color:#294959}
body.light .train-card .card-bottom{color:#4a6372}
body.light .train-tag{background:#e0f6f5;color:#065d67;border-color:#a2d1d2}
body.light .train-tag.long{background:#eae3fa;color:#56388d;border-color:#b3a4d3}
body.light .gps{color:#087365}
body.light .side-footer{background:#f2f7f9;border-color:#c5d3dc}
body.light .status,body.light .side-footer a{color:#365765}
body.light .top-label{color:#153240;text-shadow:0 1px 4px #ffffffe0}
body.light .top-label .muted{color:#2b4f60}
body.light .topbar .live{color:#0b6262;background:#d1f2ea;border-color:#83bdb2}
body.light .topbar .live i{background:#159b8b}
body.light .topbuttons time,body.light .icon-button{background:#fff;color:#163f50;border-color:#adc7d2}
body.light .stats{background:#ffffffed;border-color:#c3d6de;box-shadow:0 15px 40px #23425635}
body.light .stats>div{border-color:#cedce3}
body.light .stats small{color:#3f5e6e}
body.light .stats strong{color:#102b3b}
body.light .stats .cyan-text{color:#00737c}
body.light .stats .violet-text{color:#6642a5}
body.light .stats span{color:#496776}
body.light .map-tools{border-color:#abc1ce}
body.light .map-tools button{background:#fff;color:#184051;border-bottom-color:#cad9e0}
body.light .overlays button{background:#fff;color:#213f4f;border-color:#bfd4db;box-shadow:0 4px 18px #2d4d6333}
body.light .overlays button[aria-pressed=true]{background:#dbf4f0;border-color:#319f9a;color:#08635c}
body.light .legend{background:#fffffff0;color:#173646;border-color:#c5d6de}
body.light .legend .legend-help{color:#506c79!important}
body.light .detail{background:#fffffff5;border-color:#c0d3db;color:#142e3e}
body.light .detail h2,body.light .detail .detail-head p{color:#153344}
body.light .detail .detail-head p{color:#486472}
body.light .detail .tag{color:#086653;background:#dff6e9;border-color:#9dcfbb}
body.light .detail .tag.accent{color:#613c93;background:#ede7f7;border-color:#c2b2de}
body.light .detail .facts div{border-color:#d5e0e6}
body.light .detail .facts dt{color:#4c6674}
body.light .detail .facts dd{color:#143646}
body.light .detail .disclaimer{background:#f1f5f7;color:#455f6c;border-left-color:#9f884f}
body.light .detail-route-block{background:#ebf5f7;border-color:#a9cbd2}
body.light .detail-route-block strong{color:#173f4c}
body.light .detail-route-block small{color:#476571}
body.light .detail-route-block .track-state{border-color:#bfd8dd;color:#08766f}
body.light .detail .secondary{background:#fff;color:#173d4c;border-color:#afc6d1}
body.light .detail .close{background:#edf4f7;color:#143445;border-color:#b5cbd7}
body.light .alert{color:#543519;background:#fff4e7;border-color:#d4a16e}
body.light .empty{color:#4f6c7d;border-color:#b8cbd4}
body.light .topbar .live{box-shadow:0 4px 14px #fff6}
body.light .map-shade{background:linear-gradient(#edf5f7d9,transparent)}
body.light .mobile-tabs{background:#fff;color:#234556;border-color:#c5d5de}
@media(max-width:1150px){.overlays{top:315px;right:14px;width:126px}.overlays button{padding:8px;font-size:10px}}
@media(max-width:780px){
 .overlays{right:10px;top:309px;width:117px;gap:5px}
 .overlays button{min-height:35px;padding:8px;font-size:10px}
 .map-tools{right:12px;top:158px}
 .legend{bottom:108px;left:12px;gap:8px;padding:9px;max-width:calc(100% - 24px)}
 .legend .legend-help{width:100%;font-size:9px}
 .detail-route-block{padding:10px}
 body.light .topbar .live{margin-left:0}
}
@media(max-width:360px){.top-label .live{display:none}.overlays{top:286px}}
@media(prefers-reduced-motion:reduce){.train-pin{transition:none!important}}
