@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/barlow-semi-condensed-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/barlow-semi-condensed-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/barlow-semi-condensed-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Barlow Semi Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/barlow-semi-condensed-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/source-sans-3-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/source-sans-3-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
.jt{
--ground:#F1F4F3; --surface:#FFFFFF; --surface-2:#E8EDEC; --row-alt:#F6F8F8;
--ink:#101A1C; --muted:#56656A; --line:#D3DBDA;
--accent:#0B7285; --accent-ink:#FFFFFF; --accent-soft:#E0EFF1;
--ok:#1D7A46; --ok-soft:#E2F1E8;
--warn:#985A00; --warn-soft:#FAEFD9; --warn-line:#E2C68E;
--alert:#B3261E; --alert-soft:#FAE6E4; --alert-line:#E9AFA9;
--board-bg:#0E1618; --board-ink:#F2F6F6; --board-time:#FFC266; --board-muted:#8FA3A8;
--board-line:#1F2C2F; --board-row:#121D20;
--f-head:"Barlow Semi Condensed","Arial Narrow",sans-serif;
--f-body:"Source Sans 3",system-ui,sans-serif;
--f-mono:"IBM Plex Mono",ui-monospace,monospace;
--r-s:4px; --r-m:8px; --r-l:12px;
background:var(--ground); color:var(--ink);
font-family:var(--f-body); font-size:16px; line-height:1.5;
-webkit-font-smoothing:antialiased;
}
.jt.dark{
--ground:#0C1213; --surface:#141B1D; --surface-2:#1B2427; --row-alt:#171F22;
--ink:#E4EBEB; --muted:#97A6AA; --line:#28343A;
--accent:#4CC2D6; --accent-ink:#0C1213; --accent-soft:#123038;
--ok:#5CC88A; --ok-soft:#122A1D;
--warn:#F0AC4A; --warn-soft:#2B2012; --warn-line:#5C4320;
--alert:#F08A80; --alert-soft:#2E1715; --alert-line:#5E2A26;
--board-bg:#0A1012; --board-line:#1A2528; --board-row:#0E1618;
}
.jt *,.jt *::before,.jt *::after{box-sizing:border-box}
.jt a{color:var(--accent); text-underline-offset:3px}
.jt :focus-visible{outline:3px solid var(--accent); outline-offset:2px; border-radius:4px}
.jt h1,.jt h2,.jt h3,.jt h4,.jt p{margin:0}
.jt del{color:var(--muted); text-decoration-thickness:1.5px}
.jt button{font:inherit}
@media (prefers-reduced-motion:reduce){.jt *{transition:none!important; animation:none!important; scroll-behavior:auto!important}}
.x-sb{background:#3C5A9F; color:#fff}
.x-pk{background:#DC2420; color:#fff}
.x-pb{background:#018000; color:#fff}
.x-ip{background:#1964B7; color:#fff}
.x-ss{background:#0A3D7A; color:#fff}
.x-ets{background:#FFC72C; color:#101A1C}
.x-ic{background:#6E6E6E; color:#fff}
.x-ag{background:#E57200; color:#101A1C}
.x-sp{background:#76232F; color:#fff}
.x-kj{background:#D50032; color:#fff}
.x-sa{background:#FF00FF; color:#101A1C}
.x-kg{background:#047940; color:#fff}
.x-py{background:#FFCD00; color:#101A1C}
.x-mr{background:#84BD00; color:#101A1C}
.x-brt{background:#115740; color:#fff}
.lc-sb{--lc:#3C5A9F} .lc-pk{--lc:#DC2420} .lc-pb{--lc:#018000} .lc-ip{--lc:#1964B7} .lc-ss{--lc:#0A3D7A}
.lc-ets{--lc:#FFC72C} .lc-ic{--lc:#6E6E6E} .lc-ag{--lc:#E57200} .lc-sp{--lc:#76232F} .lc-kj{--lc:#D50032}
.lc-sa{--lc:#FF00FF} .lc-kg{--lc:#047940} .lc-py{--lc:#FFCD00} .lc-mr{--lc:#84BD00} .lc-brt{--lc:#115740}
.h1{font-family:var(--f-head); font-weight:700; font-size:30px; line-height:1.08; letter-spacing:-.01em}
.h2{font-family:var(--f-head); font-weight:700; font-size:22px; line-height:1.15}
.h3{font-family:var(--f-head); font-weight:600; font-size:17px; line-height:1.2}
.lead{font-size:16px; color:var(--muted)}
.lbl{font-size:13px; color:var(--muted); line-height:1.35}
.eyebrow{font-size:12px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--muted)}
.t{font-family:var(--f-mono); font-weight:500; font-variant-numeric:tabular-nums; letter-spacing:-.01em}
.muted{color:var(--muted)}
.sec{display:flex; flex-direction:column; gap:12px}
.sec-hd{display:flex; align-items:baseline; justify-content:space-between; gap:12px}
.more{display:inline-flex; align-items:center; min-height:44px; font-family:var(--f-head); font-weight:600; font-size:15px; text-decoration:none; white-space:nowrap}
.hdr{display:flex; align-items:center; gap:4px; height:56px; padding:0 6px 0 16px; background:var(--surface); border-bottom:1px solid var(--line)}
.brand{display:inline-flex; align-items:center; gap:8px; min-height:44px; font-family:var(--f-head); font-weight:700; font-size:21px; letter-spacing:-.01em; color:var(--ink)!important; text-decoration:none; white-space:nowrap}
.mark{display:inline-flex; align-items:center; height:22px; padding:0 6px; border-radius:11px; background:var(--ink); color:var(--surface); font-size:13px; font-weight:700; letter-spacing:.05em}
.ibtn{display:inline-flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; padding:0; border:0; border-radius:var(--r-m); background:transparent; color:var(--ink); cursor:pointer}
.lang{display:inline-flex; align-items:center; font-family:var(--f-head); font-weight:600; font-size:15px}
.lang a{display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; color:var(--muted); text-decoration:none}
.lang a[aria-current]{color:var(--ink); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:7px; text-decoration-color:var(--accent)}
.lang span{color:var(--line)}
.nav{display:flex; align-items:center; gap:2px}
.nav a{display:inline-flex; align-items:center; height:44px; padding:0 12px; border-radius:var(--r-m); font-family:var(--f-head); font-weight:600; font-size:17px; color:var(--ink); text-decoration:none}
.crumbs{display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:13px; color:var(--muted)}
.crumbs a{color:var(--muted)}
.upd{display:inline-flex; align-items:center; gap:8px; padding:6px 12px 6px 10px; border-radius:16px; background:var(--surface); border:1px solid var(--line); font-size:13px; line-height:1.3; color:var(--muted)}
.upd b{color:var(--ink); font-weight:600}
.dot{flex:none; width:8px; height:8px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 3px var(--ok-soft)}
.b{display:inline-flex; align-items:center; height:22px; padding:0 7px; border-radius:var(--r-s); font-family:var(--f-head); font-weight:600; font-size:13.5px; line-height:1; letter-spacing:.01em; white-space:nowrap}
.b.lg{height:30px; padding:0 10px; border-radius:5px; font-size:18px}
.c{display:inline-flex; align-items:center; height:20px; padding:0 7px; border-radius:10px; font-family:var(--f-head); font-weight:700; font-size:13px; line-height:1; letter-spacing:.03em; white-space:nowrap}
.pills{display:inline-flex; flex-wrap:wrap; align-items:center; gap:4px}
.sw{display:inline-block; flex:none; width:10px; height:10px; border-radius:2px}
.jt.dark .b,.jt.dark .c,.jt.dark .sw{box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.tb{display:inline-flex; align-items:center; gap:6px; height:24px; padding:0 8px; border-radius:var(--r-s); font-size:13px; font-weight:600; white-space:nowrap}
.tb::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor}
.tb.warn{background:var(--warn-soft); color:var(--warn)}
.tb.ok{background:var(--ok-soft); color:var(--ok)}
.tb.alert{background:var(--alert-soft); color:var(--alert)}
.tb.acc{background:var(--accent-soft); color:var(--accent)}
.dc{display:inline-flex; align-items:center; height:18px; padding:0 6px; border:1px dashed currentColor; border-radius:var(--r-s); font-family:var(--f-body); font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); white-space:nowrap; vertical-align:middle}
.tag{display:inline-flex; align-items:center; height:20px; padding:0 6px; border-radius:var(--r-s); background:var(--ok-soft); color:var(--ok); font-family:var(--f-body); font-size:12px; font-weight:600; white-space:nowrap}
.tag.n{background:var(--surface-2); color:var(--muted)}
.tag.a{background:var(--accent-soft); color:var(--accent)}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:0 18px; border-radius:var(--r-m); border:1px solid transparent; font-family:var(--f-head); font-weight:600; font-size:17px; line-height:1; text-decoration:none; white-space:nowrap; cursor:pointer}
.btn.pri{background:var(--accent); color:var(--accent-ink)!important}
.btn.sec{background:var(--surface); color:var(--ink)!important; border-color:var(--line)}
.btn.lg{min-height:52px; font-size:19px}
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:0 14px; border-radius:22px; border:1px solid var(--line); background:var(--surface); color:var(--ink)!important; font-size:15px; text-decoration:none; white-space:nowrap; cursor:pointer}
.chip .arr{color:var(--muted)}
.chip[aria-pressed="true"]{background:var(--ink); border-color:var(--ink); color:var(--surface)!important}
.fld{display:flex; flex-direction:column; gap:4px; min-width:0}
.fld label{font-size:13px; font-weight:600; color:var(--muted)}
.inp{width:100%; height:52px; padding:0 14px; border:1px solid var(--line); border-radius:var(--r-m); background:var(--surface); color:var(--ink); font-family:var(--f-body); font-size:17px}
.inp::placeholder{color:var(--muted)}
.inp.focus{border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); outline:0}
.search{display:flex; flex-direction:column; gap:12px; padding:16px; border-radius:var(--r-l); border:1px solid var(--line); background:var(--surface)}
.swap{display:inline-flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; padding:0; border-radius:50%; border:1px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer}
.sugg{border:1px solid var(--line); border-radius:var(--r-m); background:var(--surface); box-shadow:0 14px 36px rgba(16,26,28,.18); overflow:hidden}
.sugg a{display:flex; flex-direction:column; justify-content:center; gap:5px; min-height:56px; padding:10px 14px; border-top:1px solid var(--line); color:var(--ink)!important; text-decoration:none}
.sugg a:first-child{border-top:0}
.sugg a.on{background:var(--accent-soft)}
.sugg .nm{font-family:var(--f-head); font-weight:600; font-size:17px; line-height:1.1}
.sugg mark{background:none; color:inherit; font-weight:700; text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:2px; text-underline-offset:3px}
.card{display:flex; flex-direction:column; gap:8px; padding:14px; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--ink)!important; text-decoration:none}
a.card:hover,a.stn:hover{border-color:var(--accent)}
.grid2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
.stn{display:flex; flex-direction:column; gap:6px; min-height:44px; padding:12px; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--ink)!important; text-decoration:none}
.stn .nm{font-family:var(--f-head); font-weight:600; font-size:17px; line-height:1.15}
.ico{display:inline-flex; align-items:center; justify-content:center; flex:none; width:40px; height:40px; border-radius:10px; background:var(--accent-soft); color:var(--accent)}
.tbox{border-radius:10px; border:1px solid var(--line); background:var(--surface); overflow:hidden}
.xs{overflow-x:auto}
.tbl{width:100%; border-collapse:collapse; font-size:15px}
.tbl th{position:sticky; top:0; padding:8px 10px; background:var(--surface-2); color:var(--muted); font-size:12.5px; font-weight:600; line-height:1.2; text-align:left; white-space:nowrap}
.tbl td{padding:10px; border-top:1px solid var(--line); vertical-align:middle}
.tbl tbody tr:nth-child(even) td{background:var(--row-alt)}
.tbl .r{text-align:right}
.tbl .t{font-size:15px}
.tbl a{color:var(--ink); font-weight:600; text-decoration:none}
.tbl tr.next td{background:var(--accent-soft)!important}
.tbl tr.next td:first-child{box-shadow:inset 4px 0 0 var(--accent)}
.tbl tr.past td{color:var(--muted)}
.tbl tr.exp td{background:var(--surface)!important; border-top:0; padding-top:0}
.stops{display:flex; flex-wrap:wrap; gap:4px 0; font-size:13px; color:var(--muted)}
.stops span{white-space:nowrap}
.stops span::after{content:"·"; margin:0 6px}
.stops span:last-child::after{content:""}
.board{border-radius:var(--r-l); border:1px solid var(--board-line); background:var(--board-bg); color:var(--board-ink); overflow:hidden}
.board a{color:var(--board-time)}
.board .dc{color:var(--board-muted)}
.board-hd{display:flex; flex-direction:column; gap:10px; padding:14px 14px 12px}
.board-ttl{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px; font-family:var(--f-head); font-weight:600; font-size:18px}
.board-ttl .t{color:var(--board-time); font-size:16px}
.bchips{display:flex; gap:6px; overflow-x:auto}
.bchip{display:inline-flex; align-items:center; flex:none; min-height:44px; padding:0 14px; border-radius:22px; border:1px solid #33454A; background:transparent; color:var(--board-ink); font-family:var(--f-head); font-weight:600; font-size:15px; white-space:nowrap; cursor:pointer}
.bchip[aria-pressed="true"]{background:var(--board-ink); border-color:var(--board-ink); color:var(--board-bg)}
.brow{display:grid; grid-template-columns:4px 62px minmax(0,1fr) auto; column-gap:12px; align-items:center; min-height:58px; padding:8px 14px 8px 0; border-top:1px solid var(--board-line)}
.bbar{align-self:stretch; width:4px; margin:-8px 0}
.btime{font-family:var(--f-mono); font-weight:600; font-size:24px; line-height:1; letter-spacing:-.03em; color:var(--board-time); font-variant-numeric:tabular-nums}
.bmain{display:flex; flex-direction:column; gap:4px; min-width:0}
.bline{display:flex; align-items:center; gap:8px; min-width:0}
.bdest{font-family:var(--f-head); font-weight:600; font-size:18px; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.bno{font-family:var(--f-mono); font-size:12px; color:var(--board-muted)}
.bsub{font-size:13px; line-height:1.3; color:var(--board-muted)}
.bcount{font-family:var(--f-mono); font-weight:600; font-size:17px; text-align:right; white-space:nowrap}
.bcount small{font-size:12px; font-weight:500; color:var(--board-muted)}
.bsec{padding:6px 14px; border-top:1px solid var(--board-line); background:var(--board-row); font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--board-muted)}
.board-ft{display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; padding:10px 14px; border-top:1px solid var(--board-line); font-size:13px; color:var(--board-muted)}
.strip{display:flex; flex-wrap:wrap; row-gap:8px; padding:10px 0; border-radius:10px; border:1px solid var(--line); background:var(--surface)}
.strip > div{display:flex; flex-direction:column; padding:0 14px; border-left:1px solid var(--line)}
.strip > div:first-child{border-left:0}
.strip .v{font-family:var(--f-mono); font-weight:600; font-size:17px; font-variant-numeric:tabular-nums}
.strip .k{font-size:12.5px; color:var(--muted)}
.seg{display:inline-flex; gap:2px; padding:3px; border-radius:10px; background:var(--surface-2)}
.seg button{min-height:44px; padding:0 12px; border:0; border-radius:8px; background:transparent; color:var(--muted); font-family:var(--f-head); font-weight:600; font-size:15px; white-space:nowrap; cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--surface); color:var(--ink); box-shadow:0 1px 2px rgba(16,26,28,.14)}
.fbar{display:flex; gap:2px; height:30px; border-radius:6px; overflow:hidden}
.fbar span{display:flex; align-items:center; justify-content:center; overflow:hidden; font-family:var(--f-mono); font-size:12px; font-weight:600; white-space:nowrap}
.fbar .off{background-image:linear-gradient(rgba(255,255,255,.62),rgba(255,255,255,.62)); color:#101A1C}
.jt.dark .fbar .off{background-image:linear-gradient(rgba(12,18,19,.5),rgba(12,18,19,.5)); color:#E4EBEB}
.fbar .none{background:var(--surface-2)}
.faxis{display:flex; justify-content:space-between; font-family:var(--f-mono); font-size:11.5px; color:var(--muted)}
.smap{list-style:none; margin:0; padding:0}
.smap li{display:grid; grid-template-columns:24px minmax(0,1fr) auto; column-gap:12px; align-items:center; min-height:46px}
.smap .rail{position:relative; align-self:stretch; display:flex; align-items:center; justify-content:center}
.smap .rail::before{content:""; position:absolute; top:0; bottom:0; left:9px; width:6px; background:var(--lc)}
.smap li:first-child .rail::before{top:50%}
.smap li:last-child .rail::before{bottom:50%}
.stop{position:relative; flex:none; width:14px; height:14px; border-radius:50%; border:3px solid var(--lc); background:var(--surface)}
.stop.x{width:20px; height:20px; border:3px solid var(--ink); background:#fff}
li.cur .stop{width:20px; height:20px; border-width:4px; box-shadow:0 0 0 4px var(--accent-soft)}
li.cur .nm{color:var(--accent)}
.smap .nm{display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-family:var(--f-head); font-weight:600; font-size:16px; line-height:1.15}
.smap .min{font-family:var(--f-mono); font-size:13px; color:var(--muted)}
.hmap{display:flex; list-style:none; margin:0; padding:8px 0 4px; overflow-x:auto}
.hmap li{position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; flex:none; width:96px; text-align:center}
.hmap li::before{content:""; position:absolute; top:9px; left:0; right:0; height:6px; background:var(--lc)}
.hmap li:first-child::before{left:50%}
.hmap li:last-child::before{right:50%}
.hmap .stop{margin-top:5px}
.hmap .stop.x,.hmap li.cur .stop{margin-top:2px}
.hmap .nm{font-family:var(--f-head); font-weight:600; font-size:14px; line-height:1.15}
.hmap .min{font-family:var(--f-mono); font-size:12px; color:var(--muted)}
.note{display:flex; align-items:flex-start; gap:12px; padding:12px 14px; border-radius:10px; border:1px solid; font-size:15px; line-height:1.45}
.note.warn{background:var(--warn-soft); border-color:var(--warn-line)}
.note.alert{background:var(--alert-soft); border-color:var(--alert-line)}
.note .ic{flex:none; margin-top:1px}
.note.warn .ic{color:var(--warn)}
.note.alert .ic{color:var(--alert)}
.note small{display:block; margin-top:4px; font-size:13px; color:var(--muted)}
.tg{display:flex; flex-direction:column; gap:12px; padding:18px; border-radius:var(--r-l); border:1px solid var(--line); background:var(--surface)}
.tg .btns{display:flex; flex-wrap:wrap; gap:8px}
.src{display:flex; flex-direction:column; gap:8px; padding:16px; border-radius:var(--r-l); background:var(--surface-2); font-size:14px}
.faq{border-radius:var(--r-l); border:1px solid var(--line); background:var(--surface); overflow:hidden}
.faq details{border-top:1px solid var(--line)}
.faq details:first-child{border-top:0}
.faq summary{display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:10px 16px; font-family:var(--f-head); font-weight:600; font-size:17px; line-height:1.2; list-style:none; cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq details[open] summary svg{transform:rotate(180deg)}
.faq .ans{padding:0 16px 14px; font-size:15px}
.ad{position:relative; display:flex; align-items:center; justify-content:center; flex:none; margin:0 auto; border-radius:6px; border:1px dashed var(--line); background:var(--surface-2); color:var(--muted); font-family:var(--f-mono); font-size:12px}
.ad-l{position:absolute; top:4px; left:8px; font-family:var(--f-body); font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase}
.chg{display:flex; flex-direction:column; gap:6px; padding:12px 14px; border-top:1px solid var(--line)}
.chg:first-child{border-top:0}
.chg .top{display:flex; flex-wrap:wrap; align-items:center; gap:6px}
.chg .date{margin-left:auto; font-size:13px; color:var(--muted)}
.ftr{display:flex; flex-direction:column; gap:20px; padding:28px 16px 36px; border-top:1px solid var(--line); background:var(--surface); font-size:14px}
.ftr .fh{margin-bottom:2px; font-size:12px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--muted)}
.ftr ul{display:flex; flex-wrap:wrap; gap:0 16px; list-style:none; margin:0; padding:0}
.ftr li a{display:inline-flex; align-items:center; min-height:44px; color:var(--ink); text-decoration:none}
.tabs{display:flex; gap:4px; overflow-x:auto; border-bottom:1px solid var(--line)}
.tabs button{flex:none; min-height:44px; margin-bottom:-1px; padding:0 12px; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--muted); font-family:var(--f-head); font-weight:600; font-size:16px; white-space:nowrap; cursor:pointer}
.tabs button[aria-selected="true"]{color:var(--ink); border-bottom-color:var(--accent)}
.chev{position:relative; width:44px; height:44px; padding:0; border:0; background:transparent; vertical-align:middle; cursor:pointer}
.chev::after{content:""; position:absolute; left:50%; top:50%; width:8px; height:8px; border-right:2px solid var(--muted); border-bottom:2px solid var(--muted); transform:translate(-50%,-70%) rotate(45deg)}
.chev[aria-expanded="true"]::after{transform:translate(-50%,-25%) rotate(225deg)}
.tbl.compact td{height:44px; padding-top:0; padding-bottom:0}
.tbl td.cv{width:48px; padding:0 2px; text-align:right}
.tag.w{background:var(--warn-soft); color:var(--warn)}
.brow.past .btime,.brow.past .bdest{color:var(--board-muted)}
.brow.nx{background:#15282D}
.board.off .btime{color:var(--board-muted)}
.board .fbar .off{background-image:linear-gradient(rgba(14,22,24,.5),rgba(14,22,24,.5)); color:#F2F6F6}
.board .faxis{color:var(--board-muted)}
.live{display:inline-flex; align-items:center; gap:5px; height:20px; padding:0 7px; border-radius:10px; background:rgba(92,200,138,.16); color:#5CC88A; font-size:12px; font-weight:600; white-space:nowrap}
.live::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor}
.fq{font-family:var(--f-mono); font-weight:600; font-size:26px; line-height:1; letter-spacing:-.03em; color:var(--board-time)}
.bmsg{padding:16px 14px; border-top:1px solid var(--board-line); font-size:16px; line-height:1.45}
.lcard{display:flex; flex-direction:column; gap:8px; padding:14px; border-radius:10px; border:1px solid var(--line); background:var(--surface)}
.adj{display:flex; justify-content:space-between; gap:12px; font-size:14px}
.adj a{display:inline-flex; align-items:center; gap:6px; min-height:44px; color:var(--ink); text-decoration:none; font-weight:600}
.toc{list-style:none; margin:0; padding:0; display:flex; flex-direction:column}
.toc a{display:flex; align-items:center; min-height:40px; padding:0 12px; border-left:2px solid var(--line); color:var(--ink); text-decoration:none; font-size:15px}
.toc a[aria-current]{border-left-color:var(--accent); color:var(--accent); font-weight:600}
.hide{display:none!important}
.tbl.tight th,.tbl.tight td{padding-left:6px; padding-right:6px}
.tbl .sub{display:block; margin-top:3px; font-family:var(--f-body); font-size:12px; line-height:1.25; color:var(--muted)}
.note.info{background:var(--accent-soft); border-color:transparent}
.note.info .ic{color:var(--accent)}
.opt{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 12px; padding:14px; border-top:1px solid var(--line)}
.opt:first-child{border-top:0}
.leg{display:grid; grid-template-columns:52px 6px minmax(0,1fr); column-gap:12px}
.leg .lt{display:flex; flex-direction:column; justify-content:space-between; gap:18px; font-family:var(--f-mono); font-weight:600; font-size:15px; font-variant-numeric:tabular-nums}
.leg .lb{border-radius:3px}
.leg .ld{display:flex; flex-direction:column; justify-content:space-between; gap:6px; padding:2px 0}
.xfer{display:flex; align-items:center; gap:8px; margin:8px 0 8px 70px; padding:6px 10px; border-radius:8px; background:var(--surface-2); font-size:13px; color:var(--muted)}
.smap li.big .stop{width:20px; height:20px; border:3px solid #fff; background:var(--lc); box-shadow:0 0 0 2px var(--ink)}
.smap a.nm{color:var(--ink); text-decoration:none}
.fold{position:relative}
.fold::after{content:""; position:absolute; left:0; right:0; bottom:0; height:56px; background:linear-gradient(rgba(255,255,255,0),var(--surface)); pointer-events:none}
.tbl.matrix th:first-child,.tbl.matrix td:first-child{position:sticky; left:0; z-index:1; background:var(--surface); box-shadow:1px 0 0 var(--line); min-width:150px}
.tbl.matrix th:first-child{background:var(--surface-2); z-index:2}
.tbl.matrix tbody tr:nth-child(even) td:first-child{background:var(--row-alt)}
.tbl.matrix th,.tbl.matrix td{min-width:84px}
.icard{display:flex; flex-direction:column; gap:8px; padding:14px; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--ink)!important; text-decoration:none}
.smap li.ext .rail::before{bottom:-23px; background:repeating-linear-gradient(to bottom,var(--lc) 0 6px,transparent 6px 11px)}
.smap li.ext .stop,.hmap li.ext .stop{border-style:dashed}
.smap li.ext-next .rail::before{top:50%}
.smap li.branch .nm{position:relative; padding-left:34px; font-weight:600}
.smap li.branch .nm::before{content:""; position:absolute; left:-24px; top:50%; margin-top:-3px; width:46px; height:6px; background:var(--lc)}
.smap li.branch .nm .stop{position:absolute; left:14px; top:50%; margin-top:-7px}
.smap li.hub .stop,.hmap li.hub .stop{width:20px; height:20px; border:3px solid var(--ink); background:#fff}
.smap .grp{font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted)}
.hmap.tight li{width:64px}
.hmap.tight .nm{font-size:13px}
.hmap li.ext::before{right:-50%; background:repeating-linear-gradient(90deg,var(--lc) 0 6px,transparent 6px 11px)}
.hmap li.ext-next::before{left:50%}
.hmap li.branch::after{content:""; position:absolute; top:12px; left:50%; margin-left:-3px; width:6px; height:30px; background:var(--lc)}
.hmap li.branch .stop{margin-top:36px}
.deps{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:16px}
.dep{display:grid; grid-template-columns:46px 40px minmax(0,1fr); gap:6px; align-items:baseline; padding:7px 0; border-top:1px solid var(--line); font-size:14px; line-height:1.25}
.dep .tm{font-family:var(--f-mono); font-weight:600; font-variant-numeric:tabular-nums}
.dep .no{font-family:var(--f-mono); font-size:12px; color:var(--muted)}
.dep.past{color:var(--muted)}
.dep.next{color:var(--accent); font-weight:600}
.lnc{display:grid; grid-template-columns:6px minmax(0,1fr); column-gap:14px; padding:14px 14px 14px 0; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--ink)!important; text-decoration:none; overflow:hidden}
.lnc .bar{margin:-14px 0}
.pm-solo{width:360px; height:520px}
.pm-wrap{width:100%; height:100%}
.pm{display:block; width:100%; height:100%}
.pm-bg{fill:var(--surface)}
.pm-lbl{fill:var(--ink); font-family:var(--f-head); font-weight:600; font-size:9.5px; paint-order:stroke; stroke:var(--surface); stroke-width:3px; stroke-linejoin:round}
.pm-lbl.sm{font-size:4.6px; stroke-width:1.4px}
.pm-lbl.xs{font-size:4px; font-weight:500; stroke-width:1.2px}
.pm-x{fill:#fff; stroke:#101A1C; stroke-width:1.8}
.pm-x.sm{stroke-width:.9}
.pm-sel{fill:none; stroke:var(--accent); stroke-width:3}
.pm-pill{font-family:var(--f-head); font-weight:700; font-size:8px}
.mapbox{position:relative; overflow:hidden; background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.maptools{position:absolute; left:12px; right:12px; top:12px; z-index:2; display:flex; flex-direction:column; gap:8px}
.maptools .inp{height:44px; box-shadow:0 4px 14px rgba(16,26,28,.12)}
.mapchips{display:flex; gap:6px; overflow-x:auto}
.mapchips .chip{box-shadow:0 2px 8px rgba(16,26,28,.1)}
.mapchips .chip[aria-pressed="true"]{background:var(--accent-soft); border-color:var(--accent); color:var(--ink)!important}
.mapchips .chip[aria-pressed="false"]{color:var(--muted)!important}
.mapchips .chip[aria-pressed="true"]::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--accent)}
.zoom{position:absolute; right:12px; top:124px; z-index:2; display:flex; flex-direction:column; align-items:flex-end; gap:8px}
.zoom .grp{display:flex; flex-direction:column; overflow:hidden; border-radius:10px; border:1px solid var(--line); background:var(--surface); box-shadow:0 4px 14px rgba(16,26,28,.12)}
.zoom .grp button{display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; border-top:1px solid var(--line); background:transparent; color:var(--ink); font-family:var(--f-head); font-weight:600; font-size:22px; cursor:pointer}
.zoom .grp button:first-child{border-top:0}
.zoom .btn{min-height:40px; padding:0 12px; font-size:15px; box-shadow:0 4px 14px rgba(16,26,28,.12)}
.sheet{position:absolute; left:0; right:0; bottom:0; z-index:3; display:flex; flex-direction:column; gap:12px; padding:8px 16px 16px; border-radius:16px 16px 0 0; background:var(--surface); box-shadow:0 -10px 30px rgba(16,26,28,.22)}
.sheet .grip{align-self:center; width:40px; height:4px; border-radius:2px; background:var(--line)}
.legend{display:grid; grid-template-columns:52px minmax(0,1fr); gap:12px 14px; align-items:center}
.qa{display:flex; flex-direction:column; gap:6px; padding:16px; border-radius:12px; border:2px solid var(--accent); background:var(--surface); font-size:17px; line-height:1.45}
.wk{background:var(--warn-soft)!important; color:var(--warn); font-weight:600}
.wkn{display:inline-flex; align-items:center; gap:4px; margin-top:4px; padding:2px 6px; border-radius:4px; font-family:var(--f-body); font-size:12px; font-weight:600; background:var(--warn-soft); color:var(--warn); white-space:nowrap}
.wkn.n{background:var(--surface-2); color:var(--muted)}
.meta{display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; font-size:13px; color:var(--muted)}
.steps{display:flex; flex-direction:column; gap:28px; list-style:none; margin:0; padding:0}
.step{display:grid; grid-template-columns:36px minmax(0,1fr); column-gap:14px; row-gap:8px}
.step .n{display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:var(--ink); color:var(--surface); font-family:var(--f-head); font-weight:700; font-size:18px}
.step .body{display:flex; flex-direction:column; gap:8px}
.shot{display:flex; align-items:center; justify-content:center; height:180px; border-radius:10px; border:1px dashed var(--line); background:var(--surface-2); color:var(--muted); font-size:13px}
.tip{display:flex; gap:12px; align-items:flex-start; padding:14px; border-radius:10px; background:var(--surface-2); font-size:15px}
.toc-d{border-radius:10px; border:1px solid var(--line); background:var(--surface)}
.toc-d summary{display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:0 14px; font-family:var(--f-head); font-weight:600; font-size:16px; list-style:none; cursor:pointer}
.toc-d summary::-webkit-details-marker{display:none}
.toc-d ol{margin:0; padding:0 14px 12px 34px; font-size:15px}
.toc-d li{padding:6px 0}
.mapsvg{display:block; width:100%; height:auto; color:var(--ink); background:var(--surface)}
.jt{
--sb:#3C5A9F; --pk:#DC2420; --pb:#018000; --ip:#1964B7; --ss:#0A3D7A; --ets:#FFC72C; --sh:#6E6E6E; --ert:#6E6E6E; --st:#6E6E6E;
--ag:#E57200; --sp:#76232F; --kj:#D50032; --sa:#FF00FF; --kg:#047940; --py:#FFCD00; --mr:#84BD00; --brt:#115740;
--gut:16px; --maxw:1120px;
scroll-padding-top:12px; text-size-adjust:100%; -webkit-text-size-adjust:100%;
scrollbar-color:var(--line) transparent; accent-color:var(--accent); color-scheme:light;
}
.jt.dark{color-scheme:dark}
html.jt{min-height:100%}
.jt body{margin:0; min-height:100vh; display:flex; flex-direction:column; background:var(--ground); color:var(--ink); caret-color:var(--accent)}
.jt ::selection{background:var(--accent-soft); color:var(--ink)}
.jt img,.jt svg{max-width:100%}
.jt ul,.jt ol{margin:0}
.jt input,.jt select,.jt textarea{font:inherit}
.jt a:hover{text-decoration-thickness:2px}
.vh{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap}
.skip{position:absolute; left:8px; top:-60px; z-index:50; padding:10px 14px; border-radius:8px; background:var(--ink); color:var(--surface)!important; text-decoration:none; font-weight:600}
.skip:focus{top:8px}
.grow{flex:1}
.h2s{font-size:.7em; font-weight:600}
.hdr-wrap{position:relative; z-index:30; background:var(--surface); border-bottom:1px solid var(--line); padding-top:env(safe-area-inset-top,0px)}
.hdr{max-width:var(--maxw); margin:0 auto; height:56px; display:flex; align-items:center; gap:4px; padding:0 6px 0 var(--gut)}
.brand{gap:10px}
.brand .logo{flex:none}
.jt.dark .logo-bg{stroke:#33454A; stroke-width:1}
.nav a[aria-current]{color:var(--accent)}
.nav a:hover{background:var(--surface-2)}
.ibtn:hover{background:var(--surface-2)}
@media (max-width:899px){
.nav{display:none; position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; gap:0; padding:6px var(--gut) 14px; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:0 14px 24px -10px rgba(16,26,28,.25)}
.nav.open{display:flex}
.nav a{height:48px; border-bottom:1px solid var(--line); border-radius:0; padding:0 4px}
.nav a:last-child{border-bottom:0}
}
@media (min-width:900px){
.hdr{height:64px; gap:24px; padding:0 var(--gut)}
.hdr .brand{font-size:23px}
.menu-btn{display:none}
}
.srch{border-top:1px solid var(--line); background:var(--surface)}
.srch-in{position:relative; max-width:760px; margin:0 auto; padding:12px var(--gut) 14px}
.srch .sugg{left:var(--gut); right:var(--gut); top:calc(100% - 10px)}
.wrap{flex:1; width:100%; max-width:calc(var(--maxw) + 2 * var(--gut)); margin:0 auto; padding:20px var(--gut) 56px; display:grid; grid-template-columns:minmax(0,1fr); gap:40px; align-items:start}
.main{display:flex; flex-direction:column; gap:32px; min-width:0}
.side{display:none}
.only-m{display:block}
@media (min-width:1024px){
.wrap{grid-template-columns:minmax(0,760px) 320px; justify-content:space-between; padding-top:28px}
.wrap.one{grid-template-columns:minmax(0,1fr)}
.main{gap:40px}
.side{display:flex; flex-direction:column; gap:28px; padding-top:44px; height:100%}
.side-stick{position:sticky; top:16px; display:flex; flex-direction:column; gap:28px}
.only-m{display:none}
}
.wrap.one.narrow .main{max-width:760px}
.pghd{display:flex; flex-direction:column; gap:12px}
.pghd .lead{color:var(--ink); font-size:17px; max-width:70ch}
.pghd .lead.muted{color:var(--muted)}
.h1{text-wrap:balance; font-size:28px}
.h2,.h3{text-wrap:balance}
@media (min-width:1024px){ .h1{font-size:36px} }
.sec.tight{gap:8px}
.sec-hd.wrapr{flex-wrap:wrap; align-items:center}
.sec-hd .h2{flex:1 1 auto}
.toc-nav{display:flex; flex-direction:column; gap:8px}
.toc-h{font-size:13px; font-weight:600; color:var(--muted)}
.toc a:hover{border-left-color:var(--muted)}
.c.clg{height:26px; font-size:15px; padding:0 10px; border-radius:13px}
.lbl a{color:inherit}
.linkish{border:0; background:none; padding:0; color:var(--accent); cursor:pointer; text-decoration:underline; text-underline-offset:3px; font-family:var(--f-body); font-weight:600; font-size:15px}
.vr{width:1px; height:20px; background:var(--line)}
.big{font-size:17px}
.search .srow{display:flex; flex-direction:column; gap:10px}
.search .srow .swap{align-self:center; margin:-4px 0}
.search .srow .btn{width:100%}
.search .srow2{display:flex; align-items:center; gap:12px 16px; flex-wrap:wrap}
@media (min-width:760px){
.search{padding:20px}
.search .srow{flex-direction:row; align-items:flex-end; gap:12px}
.search .srow .fld{flex:1}
.search .srow .swap{align-self:flex-end; margin:0 0 4px}
.search .srow .btn{width:auto; padding:0 32px}
}
.search.one{padding:12px}
.acw{position:relative}
.sugg{position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:40; max-height:min(60vh,420px); overflow-y:auto}
.sugg a,.sugg .empty{display:flex}
.sugg a:hover{background:var(--surface-2)}
.sugg .empty{flex-direction:column; gap:6px; padding:14px; font-size:15px}
.inp:focus{border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); outline:0}
.inp[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
.board{scroll-margin-top:12px}
.board-hd{gap:10px}
.brows:empty{display:none}
.brow{grid-template-columns:4px 62px minmax(0,1fr) auto; grid-template-areas:"bar time bl cnt" "bar time main cnt"; row-gap:3px; min-height:62px}
.brow .bbar{grid-area:bar}
.brow .btime{grid-area:time}
.brow .bl{grid-area:bl; display:flex; min-width:0}
.brow .bmain{grid-area:main; flex-direction:row; align-items:baseline; gap:8px}
.brow .bcount{grid-area:cnt}
.brow .bdest{font-size:17px}
.brow .bno{flex:none}
.bcount.now{color:var(--board-time)}
.brow.fq-row{grid-template-columns:4px 44px minmax(0,1fr); grid-template-areas:"bar bl main"}
.brow.fq-row .bmain{flex-direction:column; align-items:flex-start; gap:2px}
.brow.fq-row .bsub .t{color:var(--board-ink)}
.brow[hidden],.brow.hid{display:none}
.board-hd .bchips{margin:0 -14px; padding:0 14px}
.board .bmsg b{color:var(--board-time)}
@media (min-width:640px){
.board-hd{flex-direction:row; align-items:center; justify-content:space-between; padding:14px 18px}
.board-hd .bchips{margin:0; padding:0}
.board-ttl{font-size:20px}
.brow{grid-template-columns:4px 76px 150px minmax(0,1fr) 84px; grid-template-areas:"bar time bl main cnt"; padding-right:18px}
.brow .btime{font-size:26px}
.brow .bdest{font-size:19px}
.brow .bcount{font-size:19px}
.brow.fq-row{grid-template-columns:4px 76px minmax(0,1fr); grid-template-areas:"bar bl main"; padding-left:0}
.brow.fq-row .bl{padding-left:0}
.brow.fq-row .bmain{flex-direction:row; align-items:baseline; gap:14px}
.brow.fq-row .bsub{font-size:15px}
.bsec,.board-ft{padding-left:18px; padding-right:18px}
}
.tbl.fl .fl-l{display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px}
.tbl.fl .fl-d{min-width:0}
@media (max-width:559px){ .tbl.fl .fl-l{flex-direction:column; align-items:flex-start} .tbl.fl .fl-d{font-size:14px} }
.two{display:grid; grid-template-columns:minmax(0,1fr); gap:20px; align-items:start}
@media (min-width:700px){ .two{grid-template-columns:repeat(2,minmax(0,1fr))} }
.tbl th.cv,.tbl td.cv{width:48px; padding:0 2px; text-align:right}
.tbl tr.exp td{padding:2px 10px 12px}
.tbl tr.exp .stops{color:var(--ink)}
.tbl tr.exp .stops .cur{font-weight:700; color:var(--accent)}
.tbl.matrix tbody th{position:sticky; left:0; z-index:1; padding:0 10px; height:40px; background:var(--surface); color:var(--ink); border-top:1px solid var(--line); box-shadow:1px 0 0 var(--line); font-size:14px; font-weight:600; text-align:left; white-space:nowrap}
.tbl.matrix tbody th a{color:var(--ink); font-weight:600}
.tbl.matrix tbody tr:nth-child(even) th{background:var(--row-alt)}
.tbl.matrix td{text-align:center; min-width:62px; white-space:nowrap}
.tbl.matrix thead th{text-align:center}
.tbl.matrix thead th:first-child{text-align:left}
.mx{max-height:70vh; overflow:auto}
.xs{-webkit-overflow-scrolling:touch}
.tbl td .tag{vertical-align:1px}
.fcard{display:flex; flex-direction:column; gap:12px; padding:16px; border-radius:var(--r-l); border:1px solid var(--line); background:var(--surface)}
.fbig{display:flex; align-items:baseline; gap:8px; color:var(--muted)}
.fcard .fq,.fbig .fq{color:var(--ink); font-size:30px}
.strip.sm{padding:6px 0}
.strip.sm .v{font-size:16px}
.bands{list-style:none; padding:0; display:flex; flex-direction:column; gap:4px; font-size:14px; color:var(--muted)}
.bands li{display:flex; gap:8px; flex-wrap:wrap}
.dayset{display:flex; flex-direction:column; gap:10px}
.dayset[hidden]{display:none}
.dayset > .h3{margin-top:8px}
.tbl.rt td:first-child{min-width:150px}
.bands .t{color:var(--ink)}
.fbar span{color:#fff}
.fbar .x-ets,.fbar .x-ag,.fbar .x-sa,.fbar .x-py,.fbar .x-mr{color:#101A1C}
.fbar.sm{height:20px}
.lcard .lhd{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.lend{color:var(--ink)!important; font-weight:600; text-decoration:none}
.lend:hover{text-decoration:underline}
.lcard.walk{background:var(--surface-2); border-color:transparent}
.wrow{display:flex; align-items:center; gap:10px; min-height:44px}
.wrow a{flex:1; color:var(--ink); font-weight:600}
@media (max-width:559px){ .grid2.cards1{grid-template-columns:minmax(0,1fr)} .main > .sec .grid2:has(.lcard){grid-template-columns:minmax(0,1fr)} }
.locbox{display:grid; grid-template-columns:minmax(0,1fr)}
.locinfo{display:flex; flex-direction:column; justify-content:center; gap:14px; padding:18px; border-top:1px solid var(--line)}
.btncol{display:flex; flex-direction:column; gap:8px}
.okus{display:flex; flex-wrap:wrap; gap:8px}
@media (min-width:760px){ .locbox{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)} .locinfo{border-top:0; border-left:1px solid var(--line)} }
.minimap{display:block; width:100%; height:auto; aspect-ratio:16/10}
.mm-bg{fill:var(--surface-2)}
.mm-l{fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round}
.mm-l.k{stroke-width:2.6}
.mm-n{fill:var(--surface); stroke:var(--ink); stroke-width:.5}
.mm-n.k{stroke-width:1}
.mm-n.me{fill:var(--accent); stroke:var(--surface); stroke-width:.8}
.mm-t{fill:var(--ink); font-family:var(--f-head); font-weight:600; font-size:3.2px; paint-order:stroke; stroke:var(--surface-2); stroke-width:.9px; stroke-linejoin:round}
.mm-t.k{font-size:7.5px; stroke-width:2px}
.mm-t.me{font-size:4.4px; font-weight:700}
.mm-t.k.me{font-size:9.5px}
.tg h2{font-size:20px}
.tg.big{padding:22px; border-color:var(--accent)}
.tg .btn svg{flex:none}
.faq summary:hover{background:var(--row-alt)}
.faq summary svg{flex:none; transition:transform .2s}
.faq .ans{max-width:70ch}
.src p{max-width:72ch}
.chip:hover,.card:hover{border-color:var(--accent)}
.chip .arr{margin:0 -2px}
.unfold{align-self:flex-start; margin-top:8px}
.smap li.more{display:none}
.smap.open li.more{display:grid}
.smap .nm .c,.smap .nm .b{flex:none}
.smap .nm a{color:var(--ink); text-decoration:none}
.smap .nm a:hover{text-decoration:underline}
.ad{width:min(100%,var(--aw)); height:var(--ah)}
.statusln{display:flex; gap:10px; align-items:center; padding:10px 14px; border-radius:10px; background:var(--surface-2); font-size:14px}
.home2{display:grid; grid-template-columns:minmax(0,1fr); gap:40px; align-items:start}
.home2 > div,.home2 > aside{display:flex; flex-direction:column; gap:36px; min-width:0}
@media (min-width:1024px){ .home2{grid-template-columns:minmax(0,760px) 320px; justify-content:space-between} }
.svc{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
@media (min-width:760px){ .svc{grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px} }
.svc .card{font-size:14px; line-height:1.35}
.svc .ln{display:flex; flex-direction:column; gap:4px}
.svc .ln span{display:flex; gap:6px; align-items:center}
.stns{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
@media (min-width:760px){ .stns{grid-template-columns:repeat(5,minmax(0,1fr))} }
.mapcard{padding:0; overflow:hidden}
.mapcard .mapsvg{width:100%; flex:none}
.mapcard .mtxt{display:flex; flex-direction:column; justify-content:center; gap:14px; padding:18px; border-top:1px solid var(--line)}
@media (min-width:760px){ .mapcard{flex-direction:row; gap:0} .mapcard .mapsvg{width:56%} .mapcard .mtxt{border-top:0; border-left:1px solid var(--line); padding:24px} }
.guides{display:grid; grid-template-columns:minmax(0,1fr); gap:10px}
@media (min-width:760px){ .guides{grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px} }
.guides .card{flex-direction:row; align-items:center; gap:12px; padding:16px}
.guides .card .h3{flex:1; font-size:18px}
.how{display:grid; grid-template-columns:minmax(0,1fr); gap:16px}
.how > div{display:flex; gap:12px; align-items:center; font-weight:600}
@media (min-width:760px){ .how{grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px} }
.home-full{display:flex; flex-direction:column; gap:36px}
.tripmeta{display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px}
.rev{display:inline-flex; align-items:center; gap:6px; min-height:44px; font-weight:600}
.tbl .fast{background:var(--ok-soft); color:var(--ok)}
.tbl tr.exp[hidden]{display:none}
.opts{border-radius:var(--r-l); border:1px solid var(--line); background:var(--surface)}
.opt .ot{display:flex; flex-direction:column; gap:2px}
.leg-note{font-size:13px; color:var(--muted)}
.mapwrap{position:relative; height:min(78vh,720px); min-height:420px; border-radius:var(--r-l); border:1px solid var(--line); background:var(--surface); overflow:hidden; touch-action:none; user-select:none}
.mapwrap svg.net{display:block; width:100%; height:100%; cursor:grab}
.mapwrap svg.net:active{cursor:grabbing}
.net .ln{fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-width:3.2; vector-effect:non-scaling-stroke}
.net .ln.k{stroke-width:2}
.ln{fill:none; stroke-linecap:round; stroke-linejoin:round}
.pm-lbl.mini{font-size:6px; stroke-width:2px}
.mapcard .mapsvg{background:var(--surface)}
.net .nd{fill:var(--surface); stroke:var(--ink); stroke-width:1.2; vector-effect:non-scaling-stroke; cursor:pointer}
.net .nd.x{stroke-width:2}
.net .nd.sel{fill:var(--accent)}
.net .lb{fill:var(--ink); font-family:var(--f-head); font-weight:600; paint-order:stroke; stroke:var(--surface); stroke-linejoin:round; pointer-events:none}
.net.dim .ln:not(.on),.net.dim .nd:not(.on){opacity:.15}
.net .lb.minor{display:none}
.net.z2 .lb.minor{display:inline}
.maptools{right:auto; width:min(420px,calc(100% - 24px))}
.zoom{top:auto; bottom:12px}
@media (min-width:900px){ .zoom{top:12px; bottom:auto} }
.mapsheet{position:absolute; left:0; right:0; bottom:0; z-index:3; display:flex; flex-direction:column; gap:10px; padding:10px 16px 16px; border-radius:16px 16px 0 0; background:var(--surface); box-shadow:0 -10px 30px rgba(16,26,28,.22); max-height:60%; overflow:auto}
.mapsheet[hidden]{display:none}
.mapsheet .grip{align-self:center; width:40px; height:4px; border-radius:2px; background:var(--line)}
.mapsheet .row{display:flex; flex-wrap:wrap; gap:8px}
@media (min-width:900px){ .mapsheet{left:auto; top:12px; bottom:12px; right:72px; width:320px; max-height:none; border-radius:var(--r-l); box-shadow:0 10px 30px rgba(16,26,28,.2)} .mapsheet .grip{display:none} }
.legend-l{display:grid; grid-template-columns:52px minmax(0,1fr); gap:12px 14px; align-items:center}
.qa{border-color:var(--accent)}
.prose{display:flex; flex-direction:column; gap:14px; max-width:70ch; font-size:17px}
.prose h2{margin-top:12px}
.prose ul,.prose ol{padding-left:22px; display:flex; flex-direction:column; gap:6px}
.wkh{font-weight:700; color:var(--warn)}
.chday{display:flex; flex-direction:column; gap:8px}
.chday h2{display:flex; align-items:baseline; gap:10px}
.ftr-wrap{background:var(--surface); border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom,0px)}
.ftr{max-width:var(--maxw); margin:0 auto; border-top:0; background:none; padding:28px var(--gut) 36px}
.ftr .col{flex-direction:column}
.ftr-brand{display:flex; flex-direction:column; gap:8px}
.ftr-last{display:flex; flex-direction:column; gap:12px}
.ftr .src{padding:14px}
.ftr li a:hover{text-decoration:underline}
@media (min-width:900px){ .ftr{display:grid; grid-template-columns:1.2fr 1fr 1fr 1.6fr; gap:40px; padding:36px var(--gut) 44px} }
@media (max-width:899px){ .ftr .fh[aria-hidden]{display:none} .ftr .col{flex-direction:row} }
@media print{ .hdr-wrap,.side,.ftr-wrap,.tg,.ad,.bchips,.seg,.tabs{display:none!important} .board{border:1px solid #000} }
.lines-c{display:grid; grid-template-columns:minmax(0,1fr); gap:10px}
@media (min-width:760px){ .lines-c{grid-template-columns:repeat(2,minmax(0,1fr))} }
.lnc .lnb{display:flex; flex-direction:column; gap:6px; min-width:0; font-size:15px}
.lnc .lhd,.icard .lhd,.fcard .lhd{display:flex; align-items:center; flex-wrap:wrap; gap:8px; justify-content:space-between}
.lnc .lhd{justify-content:flex-start}
.lnc:hover,.icard:hover{border-color:var(--accent)}
.deps{display:grid; grid-template-columns:minmax(0,1fr); gap:20px}
@media (min-width:560px){ .deps{grid-template-columns:repeat(2,minmax(0,1fr))} }
.deps1{display:flex; flex-direction:column}
.natl{padding:8px; display:flex; justify-content:center}
.natl svg.net{width:100%; max-width:560px; height:auto; aspect-ratio:auto; cursor:default}
.natl .lb.l1,.natl .lb.l2{display:none}
.net .lb{font-size:12px; stroke-width:3px}
.net .lb.l1,.net .lb.l2{display:none}
.net.z1 .lb.l1{display:inline}
.net.z2 .lb.l1,.net.z2 .lb.l2{display:inline}
.sgc{gap:10px; padding:16px}
.tip a{font-weight:600}
.tpanel,#destinasi,#laluan,#lokasi,#soalan,.mx{content-visibility:auto; contain-intrinsic-size:auto 900px}
.daysame{margin-top:-4px}
.qa p{margin:0}
.qa .btn{margin-top:4px}
@media (max-width:759px){ .strip.sumtop{display:none} }
@media (max-width:359px){
.hdr{padding-left:12px}
.hdr .brand{font-size:18px; gap:8px}
.hdr .brand .logo{width:28px; height:17px}
.lang a{min-width:34px}
}
.tbl td a,.stops a,.crumbs a,.board-ft a,.lbl a{display:inline-block; padding-block:11px; margin-block:-11px}
.wrow{flex-wrap:wrap; row-gap:0}
.wrow .t{white-space:nowrap}
@media (max-width:759px){ .tbl.rt th,.tbl.rt td{padding-left:6px; padding-right:6px} .tbl.rt td:first-child{min-width:118px} }
@media (max-width:759px){
.pghd.st{display:contents}
.pghd.st > *{order:-3}
.pghd.st > * + *{margin-top:-20px}
.pghd.st > .lead{order:-1; margin-top:-12px}
.pghd.st ~ .board{order:-2; margin-top:-16px}
}
.btn.sec{display:inline-flex; flex-direction:row; align-items:center; gap:8px}
.jt.dark .fbar .x-py.off,.jt.dark .fbar .x-ets.off,.jt.dark .fbar .x-mr.off,.jt.dark .fbar .x-ag.off{background-image:linear-gradient(rgba(12,18,19,.62),rgba(12,18,19,.62))}
.fcard .strip{border:0; background:none; padding:0}
.pghd .lead{max-width:64ch}
.bno,.tbl .sub{font-size:13px}
.tbl .sub,.tbl .tag,.tbl .sub .tag{letter-spacing:0}
.tbl td.t,.strip .v{white-space:nowrap}
.inp:focus-visible{outline:2px solid var(--accent); outline-offset:1px}
.ferr{margin:0; font-size:14px; font-weight:600; color:var(--alert)}
.inp[aria-invalid="true"]{border-color:var(--alert)}
.h3.dirh{display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px}
.tbl.hrs .lnrow th{position:static; padding:12px 10px 4px; background:var(--surface); color:var(--ink); font-size:15px; font-weight:600; white-space:normal; border-top:1px solid var(--line)}
.tbl.hrs .lnrow th a{color:var(--ink); text-decoration:none}
.tbl.hrs .lnrow th .sub{display:block; margin-top:4px; font-weight:400}
.tbl.hrs tbody tr:not(.lnrow) td{border-top:0; padding-top:4px}
.tbl.hrs tbody:nth-of-type(even) .lnrow th,.tbl.hrs tbody:nth-of-type(even) td{background:var(--row-alt)}
.tbl.hrs tbody tr:nth-child(even) td{background:inherit}
.ovf{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent); mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}
@media (max-width:420px){ .tbl.rt{font-size:14px} .tbl.rt .t{font-size:14px} .tbl.rt th,.tbl.rt td{padding-left:5px; padding-right:5px} .tbl.rt td:first-child{min-width:112px} }
.mapsheet .row .btn{min-height:44px}
.mapsheet .btn[aria-pressed="true"]{border-color:var(--accent); color:var(--accent)!important}
.tbl.hrs td.t{font-size:14px; letter-spacing:-.02em; padding-left:4px; padding-right:4px}
.stph{margin:0; display:flex; flex-direction:column; gap:6px; min-width:0}
.stph img,.stn.ph img{display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; background:var(--surface-2)}
.stph img{border-radius:var(--r-l)}
.stph figcaption,.phcred{font-size:12.5px; line-height:1.4; color:var(--muted)}
.stph figcaption a,.phcred a{color:inherit}
@media (max-width:759px){ .pghd.st > .stph{order:-1; margin-top:-16px} }
@media (min-width:760px){
.pghd.st{display:grid; grid-template-columns:minmax(0,1fr) 296px; grid-template-rows:repeat(5,auto) 1fr; column-gap:28px; row-gap:12px; align-items:start}
.pghd.st > *{grid-column:1}
.pghd.st > .stph{grid-column:2; grid-row:1 / -1}
}
.lstack{display:flex; flex-direction:column; gap:12px}
.hwrap{margin:2px -14px -8px; min-width:0}
.hmap.ln{padding:10px 14px 8px; scrollbar-width:thin; overscroll-behavior-x:contain}
.hmap.ln li{width:84px; gap:4px}
.hmap.ln .nm{padding:0 3px; font-size:14px; line-height:1.15}
.hmap.ln .nm a{color:var(--ink); text-decoration:none}
.hmap.ln .nm a::after{content:""; position:absolute; inset:0}
.hmap.ln li:hover .nm a{text-decoration:underline}
.hmap.ln .min{display:flex; flex-direction:column; align-items:center; gap:1px; font-size:12px; line-height:1.3}
.hmap.ln .cd{color:var(--ink); font-weight:600}
.hmap.ln li.cur .min{color:var(--accent); font-weight:600}
.hmap.ln.ovfl{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px); mask-image:linear-gradient(to right,transparent,#000 28px)}
.hmap.ln.ovf.ovfl{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent); mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent)}
.hc{display:flex; flex-direction:column; gap:8px}
.hc-read{font-size:15px; min-height:1.5em}
.hc-read b{font-weight:600}
.hc-plot{position:relative; height:172px; margin:6px 0 0 28px}
.hc-g{position:absolute; left:0; right:0; height:0; border-top:1px dashed var(--line)}
.hc-g > span{position:absolute; left:-28px; top:-8px; width:22px; text-align:right; font-family:var(--f-mono); font-size:11.5px; line-height:1.2; color:var(--muted)}
.hc-g.z{border-top:1px solid var(--muted)}
.hc-cols{position:absolute; inset:0; display:grid; grid-template-columns:repeat(var(--n),minmax(0,1fr)); gap:3px; align-items:end}
.hc-col{display:flex; flex-direction:column; justify-content:flex-end; gap:2px; height:100%; cursor:pointer; transition:opacity .15s}
.hc-col > span{display:block; width:100%; min-height:2px}
.hc-col > span:first-child{border-radius:3px 3px 0 0}
.hc-cols:hover .hc-col:not(:hover),.hc-cols.sel .hc-col:not(.on){opacity:.45}
.jt:not(.dark) .hc-col > .x-ets,.jt:not(.dark) .hc-col > .x-py,.jt:not(.dark) .hc-col > .x-mr{box-shadow:inset 0 0 0 1px rgba(16,26,28,.3)}
.hc-x{display:grid; grid-template-columns:repeat(var(--n),minmax(0,1fr)); gap:3px; margin-left:28px; font-family:var(--f-mono); font-size:11.5px; color:var(--muted)}
.hc-x span{overflow:visible; white-space:nowrap}
.hc-leg{display:flex; flex-wrap:wrap; gap:6px}
.hc-tbl summary{display:flex; align-items:center; min-height:44px; color:var(--accent); font-size:15px; cursor:pointer}
.hc-tbl .tbox{max-width:520px}
.poster{display:flex; flex-direction:column; gap:12px; margin:0}
.poster .pimg{position:relative; display:block; max-height:540px; overflow:hidden; border-radius:var(--r-l); border:1px solid var(--board-line); background:var(--board-bg)}
.poster .pimg img{display:block; width:100%; height:auto}
.poster .pimg::after{content:""; position:absolute; left:0; right:0; bottom:0; height:96px; background:linear-gradient(rgba(14,22,24,0),var(--board-bg)); pointer-events:none}
.pbtns{display:flex; flex-wrap:wrap; gap:8px}
@media (min-width:760px){
.poster{display:grid; grid-template-columns:340px minmax(0,1fr); gap:20px; align-items:start}
.pbtns{flex-direction:column; align-items:flex-start}
}
.stn.ph{gap:0; padding:0; overflow:hidden}
.stn.ph .phb{display:flex; flex-direction:column; gap:6px; padding:10px 12px 12px}
.phcred summary{display:inline-flex; align-items:center; min-height:44px; cursor:pointer}
.phcred ul{margin:4px 0 0; padding-left:18px}
.hc-col > span.fq,.hc-fq i{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.4) 0 2px,transparent 2px 6px)}
.hc-fq{display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--muted)}
.hc-fq i{display:inline-block; width:18px; height:14px; border-radius:3px; background-color:var(--muted)}
.pair{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
.stn.ph .phb .lbl{margin-bottom:-2px}
.mapbar{display:flex; flex-direction:column; gap:10px; margin-bottom:12px}
.mapbar .acw{max-width:440px}
.mapbar .inp{height:46px}
.mapchips{padding-bottom:2px}
@media (min-width:900px){ .mapchips{flex-wrap:wrap; overflow:visible} }
.mapchips .lchip{gap:8px; padding-left:8px; box-shadow:none}
.mapchips .lchip::before{display:none!important}
.mapchips .lchip[aria-pressed="true"]{background:var(--surface); border-color:var(--ink)}
.mapchips .lchip[aria-pressed="false"]{background:var(--surface); border-color:var(--line)}
.mapchips .lchip[aria-pressed="false"] .c,.mapchips .lchip[aria-pressed="false"] .kbar{filter:grayscale(1); opacity:.45}
.kbar{display:inline-flex; gap:2px}
.kbar i{display:block; width:7px; height:16px; border-radius:2px}
.net .lb.hid{display:none}
.net .lb.mj{font-weight:700}
.mapchips .lchip{min-height:40px; padding:0 12px 0 6px; font-size:14.5px; gap:6px}
@media (max-width:899px){ .mapchips .lchip{min-height:44px} }
.natlwrap{display:grid; grid-template-columns:minmax(0,1fr); gap:16px}
@media (min-width:900px){ .natlwrap{grid-template-columns:minmax(0,500px) minmax(0,1fr); gap:32px; align-items:start} }
.natl{padding:6px}
.natl svg.natlsvg{display:block; width:100%; max-width:none; height:auto; cursor:default}
.natlsvg .ln{stroke-width:3.5}
.natlsvg .nd{stroke-width:1}
.natlsvg .nd.x{stroke-width:2}
.natlleg{display:flex; flex-direction:column; gap:10px}
.klist{list-style:none; margin:0; padding:0; display:flex; flex-direction:column}
.klist li{display:grid; grid-template-columns:30px minmax(0,1fr); column-gap:12px; align-items:center; min-height:52px; padding:8px 0; border-top:1px solid var(--line)}
.klist li:first-child{border-top:0}
.klist .kb{width:30px; height:6px; border-radius:3px}
.klist a{color:var(--ink); font-weight:600; text-decoration:none}
.klist a:hover{text-decoration:underline}
.klist .sub{display:block; font-size:13.5px; color:var(--muted)}
.natlsvg .ln{stroke-width:3}
.natlsvg .ln.l-ets{stroke-width:8}
.natlsvg .ldr{stroke:var(--ink); stroke-width:1.2; vector-effect:non-scaling-stroke}
.lang a{gap:6px; padding:0 6px}
.lang .flag{flex:none; border-radius:2px; box-shadow:0 0 0 1px rgba(16,26,28,.18)}
.jt.dark .lang .flag{box-shadow:0 0 0 1px rgba(228,235,235,.25)}
.lang a:not([aria-current]) .flag{opacity:.8}
.lang a:hover .flag{opacity:1}
@media (max-width:389px){ .lang a{padding:0 4px; gap:5px} .lang .flag{width:20px; height:10px} }
.lang a > span{color:inherit}
@media (max-width:359px){ .lang a > span{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%)} .lang a{min-width:40px} .lang > span{display:none} }
@media (max-width:359px){ .lang a[aria-current] .flag{box-shadow:0 0 0 2px var(--accent)} }
