:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page-bg:#f7f8fb;--text:#172033;--muted:#5f6b7d;--muted-strong:#42526b;--surface:#fff;--surface-soft:#f1f5f9;--surface-accent:#eef2f7;--border:#d8dee9;--border-strong:#bfcbda;--button-hover-border:#8595ab;--header-bg:#fffffff0;--shadow:0 14px 32px #17203312;--focus:#2d9cdb;--detail-border:#e3e8f0;--danger-bg:#fff5f6;--danger-border:#f3b3bb;--danger-text:#a81729;--badge-bg:#e7ecf4;--badge-text:#243044;--good-bg:#e2f5eb;--good-text:#166534;--warning-bg:#fff3d7;--warning-text:#8a4b08;--bad-bg:#ffe4e6;color:var(--text);background:var(--page-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#111827;--text:#eef2ff;--muted:#b5c0d4;--muted-strong:#d5dcec;--surface:#182233;--surface-soft:#253149;--surface-accent:#233047;--border:#32425c;--border-strong:#4d5f7c;--button-hover-border:#70819d;--header-bg:#111827f0;--shadow:0 16px 36px #00000059;--focus:#6fc3ff;--detail-border:#33435d;--danger-bg:#3b1720;--danger-border:#823040;--danger-text:#ffb3bf;--badge-bg:#2b374d;--badge-text:#e6edf9;--good-bg:#123823;--good-text:#98e6b5;--warning-bg:#3d2e12;--warning-text:#ffd37a;--bad-bg:#431923}*{box-sizing:border-box}body{background:var(--page-bg);min-width:320px;color:var(--text);margin:0}button,a{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.app-shell{min-height:100vh}.site-header{z-index:10;border-bottom:1px solid var(--border);background:var(--header-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:1rem;padding:1rem clamp(1rem,4vw,3rem);display:flex;position:sticky;top:0}.brand{align-items:center;gap:.75rem;font-weight:800;display:inline-flex}.roundel{background:#fff;border:.36rem solid #d71920;border-radius:999px;width:2rem;height:2rem;display:inline-block;position:relative}.roundel:after{content:"";background:#1c3f95;border-radius:999px;width:2.9rem;height:.48rem;position:absolute;top:50%;left:-.45rem;transform:translateY(-50%)}nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}nav a{color:var(--muted-strong);border-radius:6px;padding:.55rem .75rem;font-weight:700}nav a:hover{background:var(--surface-accent);color:var(--text)}.theme-toggle{border:1px solid var(--border-strong);background:var(--surface);min-height:2.35rem;color:var(--text);border-radius:6px;align-items:center;gap:.5rem;padding:0 .75rem;font-weight:800;display:inline-flex}.theme-toggle:hover{border-color:var(--button-hover-border);background:var(--surface-soft)}.theme-mark{background:currentColor;border:2px solid;border-radius:999px;width:1rem;height:1rem;position:relative}:root[data-theme=dark] .theme-mark{background:0 0;box-shadow:inset -.28rem 0}main{width:min(1120px,100% - 2rem);margin:0 auto;padding:clamp(1.5rem,5vw,3.5rem) 0 4rem}.page-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.75rem;display:flex}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0 0 .35rem;font-size:.82rem;font-weight:800}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(2rem,7vw,4.5rem);line-height:1}h2{font-size:1.1rem;line-height:1.2}.timestamp{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.timestamp span{background:var(--badge-bg);min-height:1.5rem;color:var(--badge-text);border-radius:999px;align-items:center;padding:.15rem .45rem;font-size:.78rem;font-weight:800;display:inline-flex}.secondary-action,.state-panel button,.route-summary button,.detail-toggle{border:1px solid var(--border-strong);background:var(--surface);min-height:2.6rem;color:var(--text);border-radius:6px;font-weight:800}.secondary-action,.state-panel button,.detail-toggle{padding:0 1rem}.secondary-action:hover,.state-panel button:hover,.route-summary button:hover,.detail-toggle:hover{border-color:var(--button-hover-border);background:var(--surface-soft)}.line-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem;display:grid}.line-card,.route-card,.state-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.line-card{min-height:12rem;padding:1.2rem;position:relative;overflow:hidden}.line-card:before,.route-card:before{content:"";background:var(--line-colour);height:.45rem;display:block}.line-card:before{position:absolute;top:0;left:0;right:0}.line-card header,.route-summary{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.line-card h2{margin-bottom:.75rem}.line-card p{color:var(--muted);margin-bottom:0;line-height:1.5}.detail-toggle{margin-top:1rem}.line-detail{border-top:1px solid var(--detail-border);margin-top:1rem;padding-top:1rem}.line-detail p{color:var(--muted-strong)}.status-badge{background:var(--badge-bg);min-height:1.85rem;color:var(--badge-text);white-space:nowrap;border-radius:999px;align-items:center;padding:.3rem .55rem;font-size:.82rem;font-weight:800;display:inline-flex}.status-badge.good-service{background:var(--good-bg);color:var(--good-text)}.status-badge.minor-delays,.status-badge.reduced-service{background:var(--warning-bg);color:var(--warning-text)}.status-badge.severe-delays,.status-badge.part-closure,.status-badge.service-closed,.status-badge.suspended{background:var(--bad-bg);color:var(--danger-text)}.route-list{gap:1rem;display:grid}.route-card{overflow:hidden}.route-summary{padding:1rem}.route-summary h2{margin-bottom:.5rem}.route-summary button{flex:none;padding:0 .85rem}.route-panel{padding:0 1rem 1.25rem}.route-panel ol{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.55rem 1.5rem;margin:0;padding-left:1.3rem;display:grid}.route-panel li{line-height:1.45}.state-panel{color:var(--muted);padding:1.25rem}.state-panel.error{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.state-panel p{margin-bottom:1rem}.muted{color:var(--muted);margin-bottom:0}.error-text{color:var(--danger-text);margin-bottom:0}@media (width<=640px){.site-header,.page-heading,.line-card header,.route-summary{flex-direction:column;align-items:stretch}.site-header{position:static}nav{justify-content:flex-start}.header-actions{justify-content:flex-start;align-items:stretch;width:100%}.secondary-action,.route-summary button,.detail-toggle,.theme-toggle{width:100%}}
