@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");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}:root{font-family:Inter Variable,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color-scheme:light;--navy-50: #f3f5fb;--navy-100: #e8edf8;--navy-200: #ccd7ee;--navy-300: #a3b6e0;--navy-400: #7590c8;--navy-500: #44619f;--navy-600: #274a94;--navy-700: #1c3775;--navy-800: #1d2d5f;--navy-900: #131f47;--navy-950: #0d1735;--orange-50: #fef5ec;--orange-100: #fdeedd;--orange-200: #fad8b3;--orange-300: #f6b675;--orange-400: #f0913a;--orange-500: #e87413;--orange-600: #d16609;--orange-700: #b45106;--orange-800: #8f4107;--orange-900: #6f3409;--gray-0: #ffffff;--gray-25: #fafbfd;--gray-50: #f5f7fb;--gray-100: #edf0f7;--gray-150: #e4e8f1;--gray-200: #dde2ec;--gray-250: #cbd2e0;--gray-300: #b9c2d4;--gray-400: #99a3ba;--gray-500: #656f89;--gray-600: #525d75;--gray-700: #38466a;--gray-800: #242f4a;--gray-850: #1a2440;--gray-900: #141c31;--gray-925: #101728;--gray-950: #0c1120;--gray-975: #090d19;--bg: var(--gray-50);--bg-deep: var(--gray-100);--surface: var(--gray-0);--surface-soft: var(--gray-25);--surface-raised: var(--gray-0);--text: var(--gray-900);--text-soft: var(--gray-600);--text-faint: var(--gray-500);--border: var(--gray-200);--border-strong: var(--gray-250);--primary: var(--navy-700);--primary-hover: var(--navy-600);--primary-soft: var(--navy-100);--on-primary: #ffffff;--accent: var(--orange-500);--accent-hover: var(--orange-600);--accent-soft: var(--orange-100);--on-accent: #241505;--accent-strong: var(--orange-700);--success: #157a53;--success-soft: #e4f4ec;--warning: #a1590d;--warning-soft: #fdf0dc;--danger: #b2423a;--danger-soft: #fcebea;--info: #2f6f8f;--info-soft: #e8f3f8;--brand-surface: var(--navy-900);--brand-surface-deep: var(--navy-950);--brand-surface-raised: var(--navy-800);--brand-text-strong: #ffffff;--brand-text: #eef1fa;--brand-text-soft: rgba(238, 241, 250, .64);--brand-text-faint: rgba(238, 241, 250, .45);--brand-border: rgba(255, 255, 255, .12);--brand-hover: rgba(255, 255, 255, .07);--brand-accent: var(--orange-400);--brand-accent-soft: rgba(240, 145, 58, .16);--brand-positive: #6fd3a5;--brand-negative: #e79689;--theme-color-meta: #131f47;--chart-series: var(--navy-500);--chart-series-soft: color-mix(in srgb, var(--navy-500) 10%, transparent);--text-2xs: .68rem;--text-xs: .74rem;--text-sm: .82rem;--text-md: .9rem;--text-lg: 1.05rem;--text-xl: 1.3rem;--text-2xl: 1.6rem;--display-sm: clamp(1.7rem, 2.6vw, 2.1rem);--display: clamp(2rem, 3.2vw, 2.7rem);--w-regular: 450;--w-medium: 550;--w-semibold: 650;--w-bold: 720;--w-display: 640;--track-tight: -.035em;--track-display: -.045em;--track-caps: .12em;--ease: cubic-bezier(.2, .7, .3, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .15s;--dur: .25s;--dur-slow: .4s;--shadow-xs: 0 1px 2px rgba(13, 23, 53, .04);--shadow-sm: 0 1px 2px rgba(13, 23, 53, .04), 0 2px 6px rgba(13, 23, 53, .04);--shadow-md: 0 2px 4px rgba(13, 23, 53, .05), 0 8px 24px rgba(13, 23, 53, .07);--shadow-lg: 0 4px 8px rgba(13, 23, 53, .06), 0 24px 56px rgba(13, 23, 53, .16);--edge-highlight: none;--ring-accent: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);--ring-primary: 0 0 0 3px color-mix(in srgb, var(--primary) 20%, transparent);--ring-danger: 0 0 0 3px color-mix(in srgb, var(--danger) 20%, transparent);--backdrop: rgba(9, 13, 25, .55);--radius-xs: 6px;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--radius-full: 999px;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sidebar: 244px;--topbar: 72px;font-synthesis:none;text-rendering:optimizeLegibility}:root[data-theme=dark]{color-scheme:dark;--bg: var(--gray-950);--bg-deep: var(--gray-975);--surface: var(--gray-900);--surface-soft: var(--gray-925);--surface-raised: var(--gray-850);--text: #eaeef7;--text-soft: #aab4c9;--text-faint: #8892a8;--border: var(--gray-800);--border-strong: var(--gray-700);--primary: #a8bff0;--primary-hover: #c2d3f7;--primary-soft: #1c2a4d;--on-primary: #0e1730;--accent: var(--orange-400);--accent-hover: #f5a355;--accent-soft: #382413;--accent-strong: var(--orange-400);--success: #65c99e;--success-soft: #17382c;--warning: #e1a751;--warning-soft: #372b18;--danger: #ef8b83;--danger-soft: #3c211f;--info: #78b9d7;--info-soft: #17313d;--theme-color-meta: #0c1120;--chart-series: #5d7fd0;--chart-series-soft: color-mix(in srgb, #5d7fd0 14%, transparent);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .25);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 2px 4px rgba(0, 0, 0, .3), 0 10px 30px rgba(0, 0, 0, .35);--shadow-lg: 0 24px 64px rgba(0, 0, 0, .55);--edge-highlight: inset 0 1px 0 rgba(255, 255, 255, .045)}@media(max-width:1250px){:root{--sidebar: 210px}}@media(max-width:1000px){:root{--sidebar: 76px}}@media(max-width:760px){:root{--sidebar: 0px;--topbar: 52px}}*{box-sizing:border-box}html{min-width:320px;background:var(--bg);scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text);font-weight:var(--w-regular)}body:has(dialog[open]){overflow:hidden}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a{color:inherit}svg{width:1.15rem;height:1.15rem;stroke-width:1.8}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:var(--track-tight);font-weight:var(--w-display)}h1{font-size:var(--display);line-height:1.05;letter-spacing:var(--track-display);margin-bottom:.5rem}h2{font-size:1.28rem;line-height:1.2;margin-bottom:.45rem}h3{font-size:1rem;line-height:1.3}p{color:var(--text-soft);line-height:1.55}::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.num,.journey-times strong,.availability-count>strong,.connection-price>strong,.stat-card strong,.watch-metrics strong,.watch-current-metrics strong,.data-table td,.chart-label,.date-tile strong{font-variant-numeric:tabular-nums}.num{letter-spacing:var(--track-display)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:9999;top:-60px;left:1rem;padding:.7rem 1rem;background:var(--accent);color:var(--on-accent);border-radius:0 0 8px 8px;font-weight:750;transition:top var(--dur-fast)}.skip-link:focus{top:0}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.muted-copy,.muted-icon{color:var(--text-faint)}.eyebrow{display:flex;align-items:center;gap:.35rem;margin:0 0 .4rem;color:var(--accent-strong);font-size:var(--text-2xs);font-weight:var(--w-bold);letter-spacing:var(--track-caps);text-transform:uppercase}.page-header{display:flex;justify-content:space-between;gap:2rem;align-items:flex-end;margin-bottom:1.55rem}.page-header h1{margin:0}.page-description{margin:.55rem 0 0;max-width:670px;font-size:.92rem}@media(max-width:760px){.page-header{align-items:flex-start;flex-direction:column;gap:.9rem;margin-bottom:1.2rem}.page-header .page-actions,.page-header .button-row{width:100%}.page-header .page-actions>*,.page-header .button-row>*{flex:1}.page-description{font-size:var(--text-sm)}}@media(max-width:480px){h1{font-size:1.75rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:var(--radius-sm);padding:.62rem 1rem;font-size:.87rem;font-weight:var(--w-bold);text-decoration:none;cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);white-space:nowrap}.button:active:not(:disabled){transform:scale(.99)}.button:disabled{opacity:.55;cursor:not-allowed}.button.primary{background:var(--primary);color:var(--on-primary);box-shadow:inset 0 1px #ffffff14,var(--shadow-xs)}.button.primary:hover:not(:disabled){background:var(--primary-hover)}.button.accent{background:var(--accent);color:var(--on-accent);box-shadow:inset 0 1px #ffffff2e,0 2px 8px color-mix(in srgb,var(--accent) 22%,transparent)}.button.accent:hover:not(:disabled){background:var(--accent-hover);box-shadow:inset 0 1px #ffffff2e,0 4px 14px color-mix(in srgb,var(--accent) 28%,transparent)}.button.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.button.secondary:hover:not(:disabled){border-color:color-mix(in srgb,var(--text-soft) 40%,var(--border-strong));background:var(--surface-soft)}.button.ghost{background:transparent;color:var(--text-soft)}.button.ghost:hover:not(:disabled){background:var(--surface-soft);color:var(--text)}.button.danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 22%,transparent)}.button.danger:focus-visible{box-shadow:var(--ring-danger)}.button-row,.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.icon-button{width:40px;height:40px;padding:0;display:inline-grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);cursor:pointer;transition:var(--dur-fast)}.icon-button:hover{background:var(--surface-soft);border-color:var(--border-strong)}.icon-button.small{width:32px;height:32px}.icon-button.small svg{width:.95rem}.text-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--primary);font-size:.84rem;font-weight:var(--w-bold);text-decoration:none}.text-link:hover{color:var(--accent-strong)}.text-link svg{width:.95rem}.back-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-soft);font-size:.86rem;font-weight:var(--w-semibold);text-decoration:none;margin-bottom:1.2rem}.field{display:grid;gap:.42rem;min-width:0}.field>span:first-child,.field>label:first-child,.field>legend,fieldset>legend{color:var(--text-soft);font-size:var(--text-2xs);font-weight:var(--w-bold);letter-spacing:var(--track-caps);text-transform:uppercase}input,select,textarea{width:100%;min-height:43px;padding:.65rem .75rem;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background:var(--surface-soft)}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--border))}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:var(--ring-accent)}input::placeholder{color:var(--text-faint)}input[type=checkbox],input[type=radio]{width:17px;height:17px;min-height:0;accent-color:var(--primary)}.date-input{position:relative;display:block;width:100%;min-width:0}.date-input-face{display:flex;align-items:center;width:100%;min-height:43px;padding:.65rem .75rem;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}:root[data-theme=dark] .date-input-face{background:var(--surface-soft)}.date-input:hover .date-input-face{border-color:color-mix(in srgb,var(--primary) 40%,var(--border))}.date-input:focus-within .date-input-face{border-color:var(--accent);box-shadow:var(--ring-accent)}.date-input-native{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:0;padding:0;opacity:0;cursor:pointer}fieldset{border:0;margin:0;padding:0;min-width:0}.suffix-input,.input-leading,.input-with-action{display:flex;position:relative;align-items:center}.suffix-input b{position:absolute;right:.8rem;color:var(--text-faint);font-size:var(--text-xs)}.suffix-input input{padding-right:3.2rem}.input-leading>svg{position:absolute;left:.7rem;z-index:1;color:var(--text-faint)}.input-leading input{padding-left:2.35rem}.input-with-action input{padding-right:3rem}.input-with-action button{position:absolute;right:.3rem;width:36px;height:36px;padding:0;display:grid;place-items:center;border:0;background:transparent;color:var(--text-soft);cursor:pointer}.chip-group,.filter-chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{min-height:39px;padding:.5rem .72rem;display:inline-flex;align-items:center;gap:.35rem;color:var(--text-soft);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-xs);font-weight:var(--w-semibold);transition:border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}.chip:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.chip.selected{color:var(--primary);background:color-mix(in srgb,var(--primary) 6%,var(--surface));border-color:var(--primary)}.chip svg{width:.8rem}.segmented{display:flex;min-height:43px;padding:3px;background:var(--bg-deep);border-radius:var(--radius-sm)}.segmented button{flex:1;padding:.4rem .65rem;border:0;border-radius:var(--radius-xs);color:var(--text-soft);background:transparent;cursor:pointer;font-size:var(--text-2xs);font-weight:var(--w-medium);transition:color var(--dur-fast),background var(--dur-fast)}.segmented button.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-xs);font-weight:var(--w-bold)}.tabs{display:flex;gap:.3rem;margin-bottom:1rem;border-bottom:1px solid var(--border)}.tabs button{position:relative;display:flex;align-items:center;gap:.4rem;padding:.7rem .8rem;color:var(--text-soft);background:transparent;border:0;cursor:pointer;font-size:var(--text-xs);font-weight:var(--w-semibold);transition:color var(--dur-fast)}.tabs button:hover{color:var(--text)}.tabs button:after{content:"";position:absolute;left:.5rem;right:.5rem;bottom:-1px;height:2px;background:transparent}.tabs button.active{color:var(--text)}.tabs button.active:after{background:var(--accent)}.tabs button span{min-width:20px;padding:.15rem .35rem;background:var(--bg-deep);border-radius:var(--radius-full);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.compact-tabs{display:flex;padding:3px;background:var(--bg-deep);border-radius:var(--radius-sm)}.compact-tabs button{padding:.38rem .55rem;color:var(--text-soft);background:transparent;border:0;border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-2xs)}.compact-tabs button.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-xs);font-weight:var(--w-bold)}.menu-anchor{position:relative}.menu-popover{position:absolute;z-index:100;top:calc(100% + .55rem);right:0;min-width:160px;padding:.35rem;display:grid;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--edge-highlight),var(--shadow-md);animation:pop-in var(--dur-fast) var(--ease-out)}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}}.menu-popover header{display:grid;padding:.45rem .55rem .6rem;border-bottom:1px solid var(--border);margin-bottom:.3rem}.menu-popover .popover-caption{color:var(--text-faint);font-size:var(--text-2xs)}.menu-popover header strong{margin-top:.15rem;font-size:.85rem;overflow:hidden;text-overflow:ellipsis}.menu-item{width:100%;display:flex;align-items:center;gap:.5rem;padding:.55rem;color:var(--text);background:transparent;border:0;border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-sm);text-align:left}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-soft)}.menu-item.danger{color:var(--danger)}.menu-item svg{width:.85rem}@media(max-width:480px){.button{font-size:.78rem}.page-actions .button{width:100%}}.inline-notice{display:flex;align-items:center;gap:.65rem;padding:.75rem .9rem;margin:.9rem 0;border:1px solid var(--border);border-left:3px solid var(--info);border-radius:var(--radius-sm);color:var(--info);background:var(--info-soft);font-size:.83rem;font-weight:var(--w-semibold)}.inline-notice svg{flex:none}.inline-notice small{display:block;margin-left:auto;color:inherit;opacity:.8}.inline-notice .button{margin-left:auto;min-height:34px;padding:.35rem .7rem;font-size:var(--text-xs)}.inline-notice small+.button{margin-left:.6rem}.inline-notice.success{color:var(--success);background:var(--success-soft);border-left-color:var(--success)}.inline-notice.warning{color:var(--warning);background:var(--warning-soft);border-left-color:var(--warning)}.inline-notice.error{color:var(--danger);background:var(--danger-soft);border-left-color:var(--danger)}.loading-state{min-height:45vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.8rem;color:var(--text-soft)}.loading-state svg{width:1.8rem;height:1.8rem;color:var(--accent)}.loading-state.compact{min-height:0;flex-direction:row}.message-state{min-height:250px;padding:2.5rem;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-soft)}.message-state .message-icon{display:grid;place-items:center;margin-bottom:.9rem;color:var(--text-faint)}.message-state .empty-illustration{max-height:130px;width:auto;margin-bottom:1rem}.message-state .message-icon svg{width:1.55rem;height:1.55rem}.message-state h2{margin-bottom:.35rem;font-size:var(--text-lg)}.message-state p{max-width:460px;margin:0 0 1.1rem;font-size:.88rem}.error-state .message-icon{color:var(--danger)}.boot-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem;padding:2rem}.boot-logo{width:54px;height:54px;display:grid;place-items:center;border-radius:var(--radius-lg);background:var(--primary);color:var(--on-primary);font-size:1.5rem;font-weight:var(--w-bold)}.skeleton-line{display:block;height:10px;border-radius:var(--radius-full);background:linear-gradient(90deg,color-mix(in srgb,var(--text) 7%,transparent) 25%,color-mix(in srgb,var(--text) 4%,transparent),color-mix(in srgb,var(--text) 7%,transparent) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-line.short{width:65%}@keyframes shimmer{to{background-position:-200% 0}}.source-badge{width:fit-content;display:inline-flex;align-items:center;gap:.3rem;padding:.24rem .5rem;border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-soft);background:var(--surface-soft);font-size:var(--text-2xs);font-weight:var(--w-bold);letter-spacing:.02em;white-space:nowrap}.source-badge svg{width:.67rem;height:.67rem}.source-badge.source-exact{color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,transparent);background:var(--success-soft)}.source-badge.source-frequency{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 35%,transparent);background:var(--warning-soft)}.source-badge.source-price{color:var(--info);border-color:color-mix(in srgb,var(--info) 35%,transparent);background:var(--info-soft)}@media(max-width:480px){.inline-notice{align-items:flex-start}.inline-notice small{margin-left:0}}.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:50;inset:0 auto 0 0;width:var(--sidebar);display:flex;flex-direction:column;padding:1.4rem 1rem;background:var(--surface);color:var(--text);border-right:1px solid var(--border)}.brand{display:flex;align-items:center;gap:.72rem;padding:0 .55rem 1.5rem;text-decoration:none}.brand-mark{width:38px;height:38px;flex:none;display:grid;place-items:center;color:var(--on-accent);background:var(--brand-accent);border-radius:12px 12px 12px 5px}.brand-mark svg{width:1.3rem;height:1.3rem}.brand>span:last-child,.auth-brand>span:last-child{display:grid}.brand strong{color:var(--text);font-size:1.1rem;letter-spacing:-.02em}.brand small{color:var(--text-faint);font-size:var(--text-2xs);letter-spacing:var(--track-caps);text-transform:uppercase}.auth-brand strong{color:var(--brand-text-strong);font-size:1.1rem;letter-spacing:-.02em}.auth-brand small{color:var(--brand-text-soft);font-size:var(--text-2xs);letter-spacing:var(--track-caps);text-transform:uppercase}.side-nav{display:grid;gap:.28rem}.nav-item{display:flex;align-items:center;gap:.78rem;min-height:46px;padding:0 .78rem;color:var(--text-soft);border-radius:var(--radius-sm);font-size:.87rem;font-weight:var(--w-medium);text-decoration:none;transition:var(--dur-fast)}.nav-item:hover{color:var(--text);background:var(--surface-soft)}.nav-item.active{color:var(--primary);background:var(--primary-soft);box-shadow:inset 3px 0 var(--accent);font-weight:var(--w-bold)}.nav-item.active svg{color:var(--accent-strong)}.sidebar-foot{margin-top:auto;padding:1rem .55rem .2rem}.sidebar-foot p{margin:.7rem 0 0;color:var(--text-faint);font-size:var(--text-2xs);line-height:1.5}.service-pill{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-faint);font-size:var(--text-2xs)}.service-pill>span{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 10%,transparent)}.service-pill.offline>span{background:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 10%,transparent)}.app-column{min-height:100vh;margin-left:var(--sidebar)}.topbar{position:sticky;z-index:40;top:0;height:calc(var(--topbar) + env(safe-area-inset-top));display:flex;align-items:center;justify-content:flex-end;padding:env(safe-area-inset-top) clamp(1.1rem,3vw,2.5rem) 0;background:color-mix(in srgb,var(--bg) 88%,transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-brand{display:none;align-items:center;gap:.55rem;margin-right:auto}.mobile-brand .brand-mark{width:34px;height:34px}.topbar-actions{display:flex;align-items:center;gap:.55rem}.notification-button,.profile-menu{position:relative}.profile-button{min-height:42px;display:flex;align-items:center;gap:.6rem;padding:.25rem .4rem .25rem .3rem;border:0;background:transparent;border-radius:var(--radius-full);cursor:pointer}.profile-button:hover{background:var(--surface)}.avatar,.large-avatar{display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-weight:var(--w-bold)}.avatar{width:34px;height:34px;border-radius:50%;font-size:var(--text-xs)}.profile-label{max-width:150px;overflow:hidden;text-overflow:ellipsis;font-size:.79rem;font-weight:var(--w-bold)}.profile-button>svg{width:.85rem;color:var(--text-faint)}.popover-caption{color:var(--text-faint);font-size:var(--text-2xs)}.offline-strip{position:sticky;z-index:39;top:calc(var(--topbar) + env(safe-area-inset-top));min-height:32px;display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.3rem .9rem;color:var(--warning);background:var(--warning-soft);border-bottom:1px solid color-mix(in srgb,var(--warning) 25%,transparent);font-size:var(--text-xs);font-weight:var(--w-semibold)}.offline-strip svg{width:.85rem;height:.85rem;flex:none}.app-content{width:100%;max-width:1580px;min-height:calc(100vh - var(--topbar));margin:0 auto;padding:clamp(1.35rem,3vw,2.4rem);padding-bottom:4rem}.bottom-nav{display:none}@media(max-width:1250px){.profile-label{display:none}}@media(max-width:1000px){.sidebar{align-items:center;padding-inline:.65rem}.sidebar .brand{padding-inline:0}.sidebar .brand>span:last-child,.nav-item span,.sidebar-foot p{display:none}.side-nav{width:100%}.nav-item{justify-content:center;padding:0}.nav-item.active{box-shadow:inset 0 -3px var(--accent)}.sidebar-foot{padding-inline:0}.service-pill{font-size:0}}@media(max-width:760px){.sidebar{display:none}.app-column{margin-left:0}.topbar{justify-content:space-between;padding-inline:.9rem}.mobile-brand{display:flex}.topbar-actions{gap:.35rem}.theme-toggle{display:none}.profile-label,.profile-button>svg{display:none}.profile-button{padding:0}.topbar-actions>.icon-button{width:36px;height:36px}.app-content{padding:1.1rem .85rem 6.3rem}.bottom-nav{position:fixed;z-index:80;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);padding:0 4px env(safe-area-inset-bottom);background:color-mix(in srgb,var(--surface) 94%,transparent);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-nav a{position:relative;min-height:56px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.18rem;color:var(--text-faint);text-decoration:none;font-size:var(--text-2xs);font-weight:var(--w-medium)}.bottom-nav a:before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:transparent;transition:background var(--dur-fast)}.bottom-nav a svg{width:1.2rem}.bottom-nav a.active{color:var(--primary);font-weight:var(--w-bold)}.bottom-nav a.active:before{background:var(--accent)}.bottom-nav a.active svg{color:var(--primary)}}@media(max-width:480px){.mobile-brand strong{display:none}}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(430px,.95fr);background:var(--surface)}.auth-visual{position:relative;min-height:700px;overflow:hidden;display:flex;flex-direction:column;padding:clamp(2rem,5vw,4rem);color:var(--brand-text);background:url(/assets/pattern-rails-C1qFIk7j.webp) center / 900px auto repeat var(--brand-surface)}.auth-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.055) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 70%);mask-image:linear-gradient(to bottom,black,transparent 70%)}.auth-brand{position:relative;z-index:3;display:flex;align-items:center;gap:.7rem}.visual-copy{position:relative;z-index:3;max-width:650px;margin:auto 0 17%}.visual-copy .eyebrow{color:var(--brand-accent)}.visual-copy h1{max-width:620px;color:var(--brand-text-strong);font-size:clamp(2.3rem,4vw,4rem);font-weight:600;letter-spacing:-.055em}.visual-copy h1 em{color:var(--brand-accent);font-style:normal;font-weight:var(--w-medium)}.visual-copy>p{max-width:520px;color:var(--brand-text-soft);font-size:1rem}.visual-feature{display:flex;align-items:center;gap:.75rem;margin-top:2rem}.visual-feature>svg{width:2.2rem;height:2.2rem;padding:.5rem;background:#ffffff17;border-radius:10px;color:var(--brand-accent)}.visual-feature span{display:grid}.visual-feature strong{font-size:.79rem}.visual-feature small{color:var(--brand-text-faint);font-size:var(--text-2xs)}.auth-route-art{position:absolute;z-index:2;left:clamp(2rem,5vw,4rem);right:clamp(2rem,5vw,4rem);bottom:9%;height:40px}.auth-route-art .route-line{position:absolute;left:4px;right:4px;top:50%;height:1px;background:var(--brand-border)}.auth-route-art .route-dot{position:absolute;top:50%;width:9px;height:9px;transform:translateY(-50%);border:2px solid var(--brand-text-soft);border-radius:50%;background:var(--brand-surface)}.auth-route-art .route-dot.start{left:0}.auth-route-art .route-dot.end{right:0}.auth-route-art .route-dot.glide{width:7px;height:7px;border:0;background:var(--brand-accent);animation:auth-glide 7s var(--ease) infinite}@keyframes auth-glide{0%{left:6px;opacity:0}8%{opacity:1}92%{opacity:1}to{left:calc(100% - 13px);opacity:0}}@media(prefers-reduced-motion:reduce){.auth-route-art .route-dot.glide{animation:none;left:50%;opacity:1}}.auth-panel{position:relative;display:grid;place-items:center;padding:3rem;background:var(--surface)}.auth-theme{position:absolute;top:1.5rem;right:1.5rem}.auth-mobile-brand{display:none}.auth-card{width:min(100%,410px)}.auth-card>h2{margin-bottom:.45rem;font-size:1.75rem}.auth-card>p{margin-bottom:1.7rem;font-size:.88rem}.auth-form{display:grid;gap:1rem}.auth-submit{width:100%;margin-top:.35rem}.auth-footnote{display:block;margin-top:1.8rem;color:var(--text-faint);text-align:center;font-size:var(--text-2xs)}.password-rules{display:flex;flex-wrap:wrap;gap:.4rem .65rem;margin:-.35rem 0 0;padding:0;list-style:none}.password-rules li{display:flex;align-items:center;gap:.25rem;color:var(--text-faint);font-size:var(--text-2xs)}.password-rules svg{width:.75rem}.password-rules li.met{color:var(--success)}@media(max-width:760px){.auth-page{display:block;min-height:100vh;background:var(--surface)}.auth-visual{display:none}.auth-mobile-brand{display:flex;align-items:center;gap:.55rem;padding:1.1rem 1.2rem 0}.auth-mobile-brand .brand-mark{width:34px;height:34px}.auth-panel{min-height:100vh;padding:1.2rem 1.2rem 3rem;align-items:start;align-content:start;justify-items:start}.auth-theme{top:1.1rem;right:1rem}.auth-card{margin-top:2.2rem}.auth-card>h2{font-size:1.5rem}}.station-combobox{position:relative;display:grid;gap:.42rem;min-width:0}.station-combobox>label{color:var(--text-soft);font-size:var(--text-xs);font-weight:720;letter-spacing:.035em}.combobox-input{position:relative;display:flex;align-items:center}.combobox-input>svg:first-child{position:absolute;z-index:1;left:.78rem;color:var(--accent-hover)}.combobox-input input{padding-left:2.55rem;padding-right:2.4rem;font-weight:620}.combobox-input>button{position:absolute;right:.35rem;width:34px;height:34px;display:grid;place-items:center;padding:0;background:transparent;border:0;border-radius:50%;color:var(--text-faint);cursor:pointer}.combobox-input>button:hover{background:var(--bg)}.combobox-input>button svg,.combobox-status{width:.95rem}.combobox-status{position:absolute;right:.8rem;color:var(--text-faint)}.combobox-popover{position:absolute;z-index:150;top:calc(100% + .45rem);left:0;right:0;min-width:260px;overflow:hidden;background:var(--surface-raised);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-md)}.combobox-popover ul{max-height:320px;overflow-y:auto;margin:0;padding:.35rem;list-style:none}.combobox-popover li button{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.6rem;text-align:left;background:transparent;border:0;border-radius:9px;cursor:pointer}.combobox-popover li[aria-selected=true] button,.combobox-popover li button:hover{background:var(--primary-soft)}.station-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--accent-soft);color:var(--accent-hover)}.station-icon svg{width:.9rem}.combobox-popover li button>span:nth-child(2){min-width:0;display:grid}.combobox-popover strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.combobox-popover small{color:var(--text-faint);font-size:var(--text-2xs)}.combobox-popover code{color:var(--text-faint);font:600 var(--text-2xs)/1.2 inherit}.combobox-popover>p{margin:0;padding:.5rem .8rem;border-top:1px solid var(--border);font-size:var(--text-2xs)}.combobox-empty{padding:1rem;color:var(--text-faint);text-align:center;font-size:var(--text-xs)}.combobox-empty.error{color:var(--danger)}.search-panel{position:relative;z-index:20;margin-bottom:1rem;padding:1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.search-route-fields{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:.7rem}.search-route-fields .combobox-input input{min-height:50px;font-size:.95rem}.swap-button{width:40px;height:40px;display:grid;place-items:center;margin-bottom:.32rem;padding:0;color:var(--text-soft);background:var(--surface-soft);border:1px solid var(--border);border-radius:50%;cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast),transform var(--dur) var(--ease)}.swap-button:hover{color:var(--accent-hover);border-color:var(--accent)}.swap-button:active{transform:rotate(180deg)}.swap-button span{position:relative;width:20px;height:20px;display:block}.swap-button svg{position:absolute;width:.8rem;height:.8rem}.swap-button svg:first-child{top:1px;right:0}.swap-button svg:last-child{bottom:1px;left:0}.search-essentials{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,auto);align-items:end;gap:.7rem;padding-top:.9rem;margin-top:.9rem;border-top:1px solid var(--border)}.search-preferences{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:start;gap:1.1rem;padding-top:.9rem;margin-top:.9rem;border-top:1px solid var(--border)}.time-cluster{display:flex;align-items:center;gap:.5rem}.time-cluster .segmented{min-height:43px}.threshold-field{display:grid;gap:.42rem;justify-items:start}.threshold-field small{color:var(--text-faint);font-size:var(--text-2xs);line-height:1.4}.date-stepper>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto}.date-stepper>div>button{width:35px;padding:0;background:var(--surface-soft);border:1px solid var(--border-strong);cursor:pointer}.date-stepper>div>button:first-child{border-radius:9px 0 0 9px;border-right:0}.date-stepper>div>button:last-child{border-radius:0 9px 9px 0;border-left:0}.date-stepper button svg{width:.8rem}.date-stepper label{position:relative;display:flex;align-items:center}.date-stepper label svg{position:absolute;left:.6rem;z-index:1;width:.9rem;color:var(--text-faint)}.date-stepper input,.date-stepper .date-input-face{padding-left:1.9rem;border-radius:0}.date-stepper .date-input-native{padding-left:0}.time-inputs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.25rem}.time-inputs span{color:var(--text-faint)}.segmented-field,.class-field{display:grid;gap:.42rem}.search-submit{height:43px}.mini-spinner{width:14px;height:14px;display:inline-block;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.advanced-toggle{width:100%;display:flex;align-items:center;gap:.5rem;margin-top:.8rem;padding:.55rem 0 0;color:var(--text-soft);background:transparent;border:0;border-top:1px solid var(--border);cursor:pointer;font-size:var(--text-xs);font-weight:680}.advanced-toggle svg:last-child{margin-left:auto;transition:transform var(--dur) var(--ease)}.rotated{transform:rotate(180deg)}.active-filter-count:not(:empty){min-width:20px;height:20px;display:grid;place-items:center;color:var(--on-accent);background:var(--accent);border-radius:50%;font-size:var(--text-2xs)}.advanced-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem 1.8rem;padding-top:1.1rem}.advanced-filters legend{margin-bottom:.65rem}.modal .advanced-filters{grid-template-columns:1fr;gap:1.2rem;padding-top:0}.check-row{display:flex;align-items:flex-start;gap:.45rem;font-size:.72rem}.check-row span{display:grid}.check-row small{color:var(--text-faint);font-size:var(--text-2xs)}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-top:.65rem}.inline-fields select{min-height:38px;font-size:.72rem}.filter-checks{display:grid;gap:.45rem}.filter-checks label{display:flex;align-items:center;gap:.4rem;color:var(--text-soft);font-size:.72rem}.seat-threshold,.mini-threshold{display:flex;gap:4px}.seat-threshold button,.mini-threshold button{width:34px;height:36px;padding:0;color:var(--text-soft);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-xs);font-weight:var(--w-semibold);font-variant-numeric:tabular-nums;transition:background var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}.seat-threshold button:hover:not(.active),.mini-threshold button:hover:not(.active){border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.seat-threshold button.active,.mini-threshold button.active{color:var(--on-primary);background:var(--primary);border-color:var(--primary)}.mini-threshold button{width:29px;height:31px}.range-filter>small{display:block;margin-top:.45rem;color:var(--text-faint);font-size:var(--text-2xs);line-height:1.4}.price-input>span{position:relative;display:flex;align-items:center}.price-input b{position:absolute;right:.7rem;color:var(--text-faint);font-size:.72rem}.price-input input{min-height:38px;padding-right:3rem;font-size:.72rem}.price-input button{position:absolute;right:2.7rem;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--text-faint)}.price-input button svg{width:.75rem}.results-section{position:relative;margin-top:1.25rem}.stream-progress{position:absolute;top:-2px;left:0;right:0;height:2px;overflow:hidden;border-radius:var(--radius-full);background:color-mix(in srgb,var(--accent) 18%,transparent)}.stream-progress:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:34%;border-radius:inherit;background:var(--accent);animation:stream-slide 1.4s var(--ease) infinite}@keyframes stream-slide{0%{transform:translate(-120%)}to{transform:translate(400%)}}@media(prefers-reduced-motion:reduce){.stream-progress:after{animation:none;width:100%;opacity:.55}}.results-toolbar{position:sticky;z-index:30;top:calc(var(--topbar) + env(safe-area-inset-top));display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:.8rem;padding:.55rem 0;background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.results-toolbar h2{margin:0}.results-toolbar .eyebrow svg{width:.7rem}.results-controls{display:flex;align-items:center;gap:.55rem}.live-status{display:flex;align-items:center;padding-right:.6rem;border-right:1px solid var(--border);color:var(--text-faint);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;white-space:nowrap}.sort-control{min-height:40px;display:flex;align-items:center;gap:.4rem;padding:0 .45rem 0 .65rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.sort-control span{color:var(--text-faint);font-size:.72rem}.sort-control select{width:auto;min-height:30px;padding:0 1.6rem 0 .25rem;border:0;background-color:transparent;font-size:.72rem;font-weight:650}.connection-list{display:grid;gap:.7rem}.connection-card{overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.connection-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.connection-card.threshold-met{border-left:3px solid var(--success)}.connection-card-main{min-height:132px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.9fr) minmax(170px,auto);align-items:center;gap:1.1rem;padding:1rem 1.1rem}.connection-side{display:grid;gap:.6rem;justify-items:stretch}.journey-times{display:grid;grid-template-columns:minmax(75px,auto) minmax(100px,1fr) minmax(75px,auto);align-items:start;gap:.7rem}.journey-times>div:first-child,.journey-times>div:last-child{display:grid}.journey-times>div:last-child{text-align:right}.journey-times strong{font-size:var(--display-sm);font-weight:var(--w-display);line-height:1;letter-spacing:var(--track-display)}.journey-times span{margin-top:.27rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);font-weight:670}.journey-times small{color:var(--text-faint);font-size:var(--text-2xs)}.journey-line{display:grid;grid-template-rows:auto 8px auto;text-align:center;color:var(--text-faint)}.journey-line>span,.journey-line>small{font-size:var(--text-2xs)}.journey-line i{position:relative;height:1px;margin:4px 0;background:var(--border-strong)}.journey-line i:before,.journey-line i:after{content:"";position:absolute;top:-3px;width:7px;height:7px;border:2px solid var(--primary);border-radius:50%;background:var(--surface)}.journey-line i:before{left:0}.journey-line i:after{right:0}.train-labels{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.7rem}.train-labels>span{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .42rem;border-radius:6px;color:var(--text-soft);background:var(--surface-soft);font-size:var(--text-2xs);font-weight:650}.train-labels>span svg{width:.68rem;height:.68rem}.train-labels .amenity{padding:.2rem;color:var(--text-faint);background:transparent}.connection-availability{min-height:78px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.4rem;padding-left:1rem;border-left:1px solid var(--border)}.availability-count{display:flex;align-items:center;gap:.5rem}.availability-count>strong{font-size:var(--display-sm);font-weight:var(--w-display);line-height:1;letter-spacing:var(--track-display)}.availability-count>.source-badge{margin-left:.15rem}.threshold-note{display:inline-flex;align-items:center;gap:.3rem;color:var(--success);font-size:var(--text-2xs);font-weight:var(--w-bold)}.threshold-note svg{width:.75rem;height:.75rem}.amenity-more{color:var(--text-faint);font-size:var(--text-2xs);font-weight:var(--w-semibold)}.availability-count.good>strong{color:var(--success)}.availability-count.low>strong{color:var(--warning)}.availability-count.bad>strong{color:var(--danger)}.availability-count>span{display:grid;font-size:var(--text-2xs);font-weight:650}.availability-count small{color:var(--text-faint);font-size:var(--text-2xs);font-weight:500}.availability-estimate,.availability-unknown,.availability-loading{display:grid}.availability-estimate strong,.availability-unknown strong{font-size:var(--text-xs)}.availability-estimate>span,.availability-unknown>span{color:var(--text-faint);font-size:var(--text-2xs)}.availability-loading{width:100%;gap:.3rem}.availability-loading small{color:var(--text-faint);font-size:var(--text-2xs)}.recent-searches{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.7rem}.recent-searches-label{display:inline-flex;align-items:center;gap:.3rem;color:var(--text-faint);font-size:var(--text-2xs);font-weight:var(--w-semibold)}.recent-searches-label svg{width:.8rem;height:.8rem}.recent-chip{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);overflow:hidden}.recent-chip-fill{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .3rem .3rem .65rem;border:0;background:transparent;color:var(--text-soft);cursor:pointer;font-size:var(--text-2xs);font-weight:var(--w-semibold)}.recent-chip-fill svg{width:.7rem;height:.7rem;color:var(--text-faint)}.recent-chip-fill small{color:var(--text-faint);font-weight:500}.recent-chip-fill:hover{color:var(--primary)}.recent-chip-remove{display:inline-flex;align-items:center;padding:0 .45rem;border:0;background:transparent;color:var(--text-faint);cursor:pointer}.recent-chip-remove svg{width:.7rem;height:.7rem}.recent-chip-remove:hover{color:var(--danger)}.class-meters{width:100%;display:grid;gap:.3rem}.class-meter-row{display:grid;grid-template-columns:2.2rem minmax(56px,1fr) auto;align-items:center;gap:.5rem;font-size:var(--text-2xs)}.class-meter-label{color:var(--text-soft);font-weight:var(--w-semibold)}.class-meter-value{color:var(--text-soft);white-space:nowrap;font-variant-numeric:tabular-nums}.occupancy-meter{height:6px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-full);overflow:hidden}.occupancy-meter>span{display:block;height:100%;border-radius:var(--radius-full);background:var(--success);transition:width var(--dur) var(--ease)}.occupancy-meter.mid>span{background:var(--warning)}.occupancy-meter.low>span,.occupancy-meter.bad>span{background:var(--danger)}.release-hint{display:flex;align-items:flex-start;gap:.4rem;margin:0;padding:.4rem .55rem;color:var(--info);background:var(--info-soft);border-radius:8px;font-size:var(--text-2xs);font-weight:600}.release-hint svg{width:.8rem;height:.8rem;flex-shrink:0;margin-top:.1rem}.release-hint time{color:var(--text-faint);font-weight:500;white-space:nowrap}.special-seats-row{display:flex;flex-wrap:wrap;gap:.3rem}.special-seat-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .45rem;color:var(--info);background:var(--info-soft);border-radius:999px;font-size:var(--text-2xs);font-weight:680}.special-seat-chip svg{width:.7rem;height:.7rem}.special-seat-chip.matched{color:var(--success);background:var(--success-soft)}.connection-price{display:grid;align-content:center;justify-items:start}.connection-price>small{color:var(--text-faint);font-size:var(--text-2xs)}.connection-price>strong{font-size:1.2rem}.connection-price>span{color:var(--text-faint);font-size:var(--text-2xs)}.connection-actions{display:grid;gap:.45rem}.connection-actions .button{min-height:38px;padding:.5rem .75rem;font-size:.72rem}.connection-actions .button svg{width:.8rem}.purchase-pending{color:var(--text-faint);text-align:center;font-size:var(--text-2xs)}.connection-card-foot{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.4rem 1.1rem;background:var(--surface-soft);border-top:1px solid var(--border)}.foot-notes button{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem 0;color:var(--text-soft);background:transparent;border:0;cursor:pointer;font-size:var(--text-2xs);font-weight:var(--w-semibold)}.foot-notes svg{width:.75rem}.foot-notes{display:flex;align-items:center;gap:.9rem;color:var(--text-faint);font-size:var(--text-2xs)}.foot-notes>span{display:inline-flex;align-items:center;gap:.3rem}.compare-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;color:var(--text-soft);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);cursor:pointer;font-size:var(--text-2xs);font-weight:var(--w-semibold);transition:border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}.compare-toggle input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.compare-toggle svg{width:.7rem;height:.7rem;opacity:.35}.compare-toggle:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.compare-toggle.on{color:var(--primary);background:color-mix(in srgb,var(--primary) 6%,var(--surface));border-color:var(--primary)}.compare-toggle.on svg{opacity:1}.compare-toggle:has(input:disabled:not(:checked)){opacity:.45;cursor:not-allowed}.connection-details{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.6fr);gap:1.5rem;padding:1.15rem;border-top:1px solid var(--border)}.segment-timeline{display:grid;gap:0}.segment{display:grid;grid-template-columns:22px minmax(0,1fr);gap:.55rem}.segment-rail{position:relative;display:flex;justify-content:center}.segment-rail i{position:absolute;top:12px;bottom:-12px;width:2px;background:var(--border-strong)}.segment:last-child .segment-rail i{bottom:12px}.segment-dot{position:relative;z-index:1;width:10px;height:10px;margin-top:6px;border:2px solid var(--primary);border-radius:50%;background:var(--surface)}.transfer-dot{position:absolute;z-index:2;bottom:2px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.segment-content{padding-bottom:1rem}.segment-head{display:flex;justify-content:space-between;gap:.7rem}.segment-head>div{display:grid}.segment-head strong,.segment-arrival strong{font-size:var(--text-xs)}.segment-head span{display:flex;align-items:center;gap:.3rem;margin-top:.2rem;color:var(--text-soft);font-size:.72rem}.segment-head span svg{width:.72rem}.segment-head>small{color:var(--text-faint);font-size:var(--text-2xs)}.segment-arrival{display:flex;gap:.6rem;margin-top:.7rem}.segment-arrival span{color:var(--text-faint);font-size:.72rem}.segment-classes{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.segment-availability{display:flex;align-items:center;gap:.45rem;padding:.35rem .5rem;color:var(--success);background:var(--success-soft);border-radius:7px;font-size:var(--text-2xs)}.segment-availability>span{color:var(--text-soft)}.segment-availability.empty{color:var(--danger);background:var(--danger-soft)}.transfer-note{display:flex;align-items:center;gap:.35rem;margin-top:.8rem;padding:.5rem .65rem;color:var(--warning);background:var(--warning-soft);border-radius:8px;font-size:.72rem;font-weight:650}.transfer-note svg{width:.72rem}.details-aside{padding:.8rem;background:var(--surface-soft);border-radius:var(--radius)}.details-aside h3{margin-bottom:.65rem}.details-aside>.segment-availability{margin-bottom:.4rem;justify-content:space-between}.release-schedule{margin:.6rem 0 0;padding:0;list-style:none;display:grid;gap:.35rem}.release-schedule li{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:.5rem;padding:.45rem .55rem;background:var(--info-soft);border-radius:8px;font-size:var(--text-2xs)}.release-schedule time{color:var(--info);font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}.release-schedule span{color:var(--text-soft)}.release-schedule .release-count{color:var(--info);font-weight:700}.release-group+.release-group{margin-top:.5rem}.release-class-head{margin:.6rem 0 0;color:var(--text-faint);font-size:var(--text-2xs);font-weight:var(--w-bold);letter-spacing:var(--track-caps);text-transform:uppercase}.release-rule-note{margin:.5rem 0 0;color:var(--text-faint);font-size:var(--text-2xs)}.confidence-note{display:flex;align-items:center;gap:.4rem;margin-top:.6rem;color:var(--text-faint);font-size:var(--text-2xs)}.confidence-note i{width:7px;height:7px;border-radius:50%;background:var(--text-faint)}.confidence-note.high i{background:var(--success)}.confidence-note.medium i{background:var(--warning)}.confidence-note.low i{background:var(--danger)}.data-provenance{margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--border)}.data-provenance h3{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem;color:var(--text-soft);font-size:var(--text-2xs);font-weight:var(--w-bold);letter-spacing:var(--track-caps);text-transform:uppercase}.data-provenance h3 svg{width:.75rem;height:.75rem}.data-provenance p{margin:0;color:var(--text-soft);font-size:var(--text-2xs)}.data-provenance p strong{color:var(--text)}.more-results{display:flex;align-items:center;justify-content:center;gap:.7rem;padding:1rem;color:var(--text-soft)}.more-results>span:last-child{display:grid}.more-results strong{font-size:.72rem}.more-results small{color:var(--text-faint);font-size:var(--text-2xs)}.connection-skeleton{min-height:132px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.9fr) minmax(0,.6fr);align-items:center;gap:1.1rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.connection-skeleton .time{height:30px}.connection-skeleton .route{height:8px}.connection-skeleton .seats,.connection-skeleton .price{height:38px}.search-welcome{min-height:230px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:2rem;margin-top:1rem;padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.route-motif{position:relative;width:165px;height:90px;display:block}.route-motif .route-line{position:absolute;left:6px;right:6px;top:50%;height:1px;background:var(--border-strong)}.route-motif .route-dot{position:absolute;top:50%;width:9px;height:9px;transform:translateY(-50%);border:2px solid var(--primary);border-radius:50%;background:var(--surface)}.route-motif .route-dot.start{left:2px}.route-motif .route-dot.end{right:2px}.route-motif .route-dot.glide{width:7px;height:7px;border:0;background:var(--accent);animation:route-glide 4.5s var(--ease) infinite}@keyframes route-glide{0%{left:8px;opacity:0}12%{opacity:1}88%{opacity:1}to{left:calc(100% - 16px);opacity:0}}@media(prefers-reduced-motion:reduce){.route-motif .route-dot.glide{animation:none;left:50%;opacity:1}}.search-welcome h2{margin-bottom:.35rem}.search-welcome p{max-width:600px;margin:0;font-size:.83rem}.search-welcome ul{display:grid;gap:.55rem;margin:0;padding:0;list-style:none;color:var(--text-soft);font-size:var(--text-xs)}.search-welcome li{display:flex;align-items:center;gap:.4rem}.search-welcome li svg{width:.8rem;color:var(--success)}.compare-dock{position:fixed;z-index:90;left:calc(var(--sidebar) + 50%);bottom:1.2rem;transform:translate(-50%);width:min(760px,calc(100vw - var(--sidebar) - 3rem));display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .8rem;color:var(--brand-text);background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:15px;box-shadow:var(--shadow-lg)}.compare-dock>div{display:flex;align-items:center;gap:.65rem;min-width:0}.compare-dock>div>svg{color:var(--brand-accent)}.compare-dock>div>span{display:grid}.compare-dock strong{font-size:.72rem}.compare-dock small{color:var(--brand-text-soft);font-size:var(--text-2xs)}.compare-thumbs{display:flex;gap:.35rem;overflow:hidden}.compare-thumbs>span{display:flex;align-items:center;gap:.25rem;padding:.3rem .4rem;color:var(--brand-text);background:var(--brand-hover);border-radius:7px;font-size:var(--text-2xs)}.compare-thumbs button{width:18px;height:18px;display:grid;place-items:center;padding:0;color:inherit;background:transparent;border:0;cursor:pointer}.compare-thumbs svg{width:.65rem}@media(max-width:1250px){.search-preferences{grid-template-columns:auto minmax(0,1fr)}.connection-card-main{grid-template-columns:minmax(280px,1.4fr) minmax(180px,.8fr);row-gap:.7rem}.connection-side{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);align-items:center;padding-top:.7rem;border-top:1px solid var(--border)}.connection-side .connection-actions{display:flex;justify-content:flex-end}}@media(max-width:760px){.search-route-fields{grid-template-columns:1fr}.search-route-fields .swap-button{justify-self:center;margin:-.2rem 0;transform:rotate(90deg);background:var(--surface)}.search-route-fields .swap-button:active{transform:rotate(270deg)}.search-essentials{grid-template-columns:1fr}.search-preferences{grid-template-columns:1fr;gap:.9rem}.time-cluster{flex-wrap:wrap}.time-cluster .time-inputs{flex:1;min-width:180px}.results-toolbar{align-items:flex-start;flex-direction:column}.results-controls{width:100%;flex-wrap:wrap}.live-status,.sort-control{flex:1}.results-controls>.button{width:100%}.connection-card-main{grid-template-columns:minmax(0,1fr);gap:.7rem;padding:.8rem}.connection-availability{min-height:0;padding:.7rem 0 0;border-left:0;border-top:1px solid var(--border);flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.connection-side{grid-template-columns:1fr;gap:.5rem;padding-top:.7rem;border-top:1px solid var(--border)}.connection-side .connection-actions{display:grid;grid-template-columns:1fr 1fr}.connection-card-foot{align-items:flex-start;flex-direction:column;gap:.3rem}.foot-notes{flex-wrap:wrap}.connection-details{grid-template-columns:1fr;padding:.9rem}.journey-times strong{font-size:1.25rem}.search-welcome{grid-template-columns:1fr;text-align:center}.route-motif{margin:auto}.search-welcome ul{justify-self:center;text-align:left}.compare-dock{left:calc(.65rem + env(safe-area-inset-left));right:calc(.65rem + env(safe-area-inset-right));bottom:calc(72px + env(safe-area-inset-bottom));width:auto;transform:none}.compare-thumbs{display:none}}@media(max-width:480px){.journey-times{gap:.4rem}.journey-times strong{font-size:1.12rem}.journey-times span{font-size:.72rem}.connection-side .connection-actions{grid-template-columns:1fr}.connection-actions>*{width:100%}}.connection-row{overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.connection-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.connection-row.threshold-met{border-left:3px solid var(--success)}.connection-row.sold-out,.connection-card.sold-out{border-left:3px solid var(--danger)}.connection-row.sold-out:not(.has-release) .row-times,.connection-card.sold-out:not(.has-release) .journey-times{opacity:.55}.connection-row-main{display:grid;grid-template-areas:"times meta verdict price actions";grid-template-columns:minmax(0,1.3fr) auto minmax(150px,auto) auto auto;align-items:center;gap:.9rem;padding:.55rem .9rem}.row-times{grid-area:times;display:grid;min-width:0}.row-times strong{font-size:var(--text-lg);font-weight:var(--w-display);letter-spacing:var(--track-display);font-variant-numeric:tabular-nums}.row-times span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-soft);font-size:var(--text-2xs);font-weight:650}.row-meta{grid-area:meta;color:var(--text-faint);font-size:var(--text-2xs);white-space:nowrap}.row-verdict{grid-area:verdict;min-width:0}.row-price{grid-area:price;white-space:nowrap}.row-price small{color:var(--text-faint);font-size:var(--text-2xs)}.row-price strong{font-size:var(--text-md)}.row-actions{grid-area:actions;display:flex;align-items:center;gap:.3rem}.row-buy{width:34px;height:34px;display:grid;place-items:center;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);transition:background var(--dur-fast)}.row-buy:hover{background:var(--accent-hover)}.row-buy svg{width:.85rem;height:.85rem}.row-icon-button{width:34px;height:34px;display:grid;place-items:center;padding:0;color:var(--text-soft);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--dur-fast),color var(--dur-fast)}.row-icon-button:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.row-icon-button svg{width:.85rem;height:.85rem;transition:transform var(--dur) var(--ease)}.compare-toggle.icon-only{padding:.45rem;border-radius:var(--radius-sm)}.compare-toggle.icon-only svg{width:.85rem;height:.85rem}.connection-row .connection-details{border-top:1px solid var(--border)}.seat-verdict{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;padding:.32rem .6rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--w-semibold);font-variant-numeric:tabular-nums}.seat-verdict svg{width:.8rem;height:.8rem;flex-shrink:0}.seat-verdict.count.good{color:var(--success);background:var(--success-soft)}.seat-verdict.count.low{color:var(--warning);background:var(--warning-soft)}.seat-verdict.soldout{color:var(--danger);background:var(--danger-soft)}.seat-verdict.soldout.release{color:var(--info);background:var(--info-soft)}.seat-verdict.soldout em{font-style:normal;font-weight:600}.seat-verdict.estimate{color:var(--text-soft);background:var(--surface-soft)}.seat-verdict.estimate.bad{color:var(--danger);background:var(--danger-soft)}.seat-verdict.loading,.seat-verdict.unknown{color:var(--text-faint);background:var(--surface-soft)}.availability-count .capacity{color:var(--text-faint);font-weight:600;font-variant-numeric:tabular-nums}.availability-count.soldout>strong.soldout-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .55rem;color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--w-bold);letter-spacing:normal;line-height:1.2}.soldout-badge svg{width:.85rem;height:.85rem}.availability-count.soldout em{font-style:normal;color:var(--info);font-size:var(--text-2xs);font-weight:650}.seat-type-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem}.seat-type-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .5rem;color:var(--text-soft);background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:650;font-variant-numeric:tabular-nums}.seat-type-chip.heuristic{border-style:dashed;border-color:var(--border-strong)}.release-notify{display:inline-flex;align-items:center;gap:.3rem;min-height:28px;padding:.25rem .55rem;color:var(--info);background:var(--surface);border:1px solid color-mix(in srgb,var(--info) 45%,var(--border));border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-2xs);font-weight:var(--w-semibold);white-space:nowrap;transition:background var(--dur-fast),color var(--dur-fast)}.release-notify:hover:not(:disabled){background:var(--info-soft)}.release-notify:disabled{cursor:default}.release-notify.done{color:var(--success);border-color:color-mix(in srgb,var(--success) 45%,var(--border))}.release-notify svg{width:.75rem;height:.75rem}.release-schedule li{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.class-detail+.class-detail{margin-top:.55rem}.class-detail .special-seats-row{margin-top:.4rem}.checkbox-field{display:flex;flex-direction:row;align-items:center;gap:.5rem}.checkbox-field input{width:auto}@media(max-width:1250px){.connection-row-main{grid-template-areas:"times verdict price actions" "meta verdict price actions";grid-template-columns:minmax(0,1.4fr) minmax(140px,auto) auto auto;row-gap:.1rem}}@media(max-width:760px){.connection-row-main{grid-template-areas:"times price" "meta meta" "verdict actions";grid-template-columns:minmax(0,1fr) auto;row-gap:.45rem;padding:.65rem .8rem}.row-meta{white-space:normal}.row-actions{justify-content:flex-end}}@media(max-width:480px){.connection-row-main{grid-template-areas:"times price" "meta meta" "verdict verdict" "actions actions"}.seat-verdict{width:100%;justify-content:center}}.dashboard-hero{position:relative;z-index:20;margin-bottom:1rem;display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,34%,470px);background:var(--brand-surface);color:var(--brand-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.dashboard-hero .hero-main{min-width:0;display:grid;gap:1.25rem;padding:clamp(1.3rem,3vw,2rem)}.dashboard-hero .hero-art{position:relative;overflow:hidden;border-radius:0 var(--radius-lg) var(--radius-lg) 0}.dashboard-hero .hero-art img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:38% 60%}.dashboard-hero .hero-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--brand-surface) 0%,transparent 26%)}.dashboard-hero .eyebrow{color:var(--brand-accent)}.dashboard-hero h1{margin:0 0 .3rem;color:var(--brand-text-strong)}.hero-description{max-width:560px;margin:0;color:var(--brand-text-soft);font-size:var(--text-sm)}.quick-search-form{display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(160px,1fr) minmax(130px,.7fr) auto;align-items:end;gap:.65rem}.quick-search-form label,.quick-search-form .field>span{color:var(--brand-text-soft)}.quick-search-form input{color:var(--gray-900);background:#fffffff5;border-color:transparent}:root[data-theme=dark] .quick-search-form input{color:var(--gray-900);background:#fffffff5}.quick-search-form .date-input-face,:root[data-theme=dark] .quick-search-form .date-input-face{color:var(--gray-900);background:#fffffff5;border-color:transparent}.quick-search-form input::placeholder{color:var(--gray-500)}.quick-search-form .combobox-popover{color:var(--text)}.route-arrow{align-self:center;margin-top:1.35rem;color:var(--brand-text-faint)}.quick-search-form .button{min-height:43px}.status-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.4rem}.status-item{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .85rem;color:var(--text-soft);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-xs);font-size:var(--text-xs);font-weight:var(--w-medium);text-decoration:none;cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}button.status-item{font:inherit;font-size:var(--text-xs);font-weight:var(--w-medium)}.status-item:hover{border-color:var(--border-strong);background:var(--surface-soft)}.status-item svg{width:.95rem;height:.95rem;color:var(--text-faint)}.status-item strong{font-size:var(--text-md);font-variant-numeric:tabular-nums;color:var(--text)}.status-item.service{cursor:default}.status-item.service:hover{border-color:var(--border);background:var(--surface)}.dot{width:7px;height:7px;flex:none;display:inline-block;border-radius:50%;background:var(--success)}.dot.red{background:var(--danger)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:1rem;align-items:start}.dashboard-section{padding:1.15rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.section-heading h2{margin:0}.watch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.watch-grid.full{grid-template-columns:repeat(3,minmax(250px,1fr))}.watch-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--edge-highlight),var(--shadow-xs);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.watch-card:hover{border-color:var(--border-strong);box-shadow:var(--edge-highlight),var(--shadow-md)}.watch-card.paused{opacity:.72}.watch-card-top{display:flex;align-items:center;justify-content:space-between;padding:.7rem .8rem 0}.watch-status{display:inline-flex;align-items:center;gap:.38rem;color:var(--success);font-size:var(--text-2xs);font-weight:740}.watch-status>span{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 12%,transparent)}.watch-status.degraded{color:var(--warning)}.watch-status.paused{color:var(--text-faint)}.watch-card-link{display:block;padding:.5rem .8rem .75rem;text-decoration:none}.watch-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.4rem;margin-bottom:.55rem;font-size:.83rem;font-weight:760}.watch-route span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watch-route span:last-child{text-align:right}.watch-route svg{width:.85rem;color:var(--accent)}.watch-meta{display:flex;flex-wrap:wrap;gap:.35rem .65rem;color:var(--text-faint);font-size:var(--text-2xs)}.watch-meta span{display:inline-flex;align-items:center;gap:.25rem}.watch-meta svg{width:.7rem;height:.7rem}.watch-metrics{display:grid;grid-template-columns:1fr 1.4fr;gap:.5rem;margin-top:.75rem;padding-top:.7rem;border-top:1px solid var(--border)}.watch-metrics>div{display:grid}.watch-metrics>div+div{padding-left:.7rem;border-left:1px solid var(--border)}.watch-metrics small{color:var(--text-faint);font-size:var(--text-2xs)}.watch-metrics strong{margin:.15rem 0;font-size:1.3rem;font-weight:var(--w-display);letter-spacing:var(--track-display);line-height:1.1}.watch-metrics>div+div strong{font-size:.95rem;letter-spacing:0}.watch-metrics strong.metric-good{color:var(--success)}.watch-metrics strong.metric-bad{color:var(--danger)}.watch-metrics span{color:var(--text-soft);font-size:var(--text-2xs)}.watch-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-top:.7rem;color:var(--text-faint);font-size:var(--text-2xs)}.watch-card-error{color:var(--danger);font-weight:var(--w-medium, 500)}.departure-list{display:grid;margin:0;padding:0;list-style:none}.departure-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.68rem 0;border-bottom:1px solid var(--border)}.departure-list li:last-child{border:0}.date-tile{min-width:52px;display:grid;padding:.4rem;text-align:center;background:var(--surface-soft);border-radius:9px}.date-tile strong{font-size:.85rem}.date-tile span{color:var(--text-faint);font-size:var(--text-2xs)}.departure-route{min-width:0;display:grid}.departure-route strong{display:flex;align-items:center;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs)}.departure-route svg{width:.65rem}.departure-route span{color:var(--text-faint);font-size:var(--text-2xs)}.seat-chip{padding:.25rem .4rem;color:var(--success);background:var(--success-soft);border-radius:999px;font-size:var(--text-2xs);font-weight:700}.alerts-section{margin-top:1rem}.alert-timeline{display:grid;grid-template-columns:repeat(2,1fr);gap:0 1.3rem}.alert-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:start;padding:.65rem .65rem .65rem .8rem;border-left:2px solid transparent;border-bottom:1px solid var(--border)}.alert-row:not(.read){border-left-color:var(--accent)}.alert-row.read{opacity:.68}.alert-icon{width:31px;height:31px;display:grid;place-items:center;color:var(--info);background:var(--info-soft);border-radius:10px}.alert-icon.success{color:var(--success);background:var(--success-soft)}.alert-icon.warning{color:var(--warning);background:var(--warning-soft)}.alert-icon.error{color:var(--danger);background:var(--danger-soft)}.alert-icon svg{width:.88rem}.alert-row h3{margin:.1rem 0 .15rem;font-size:var(--text-xs);letter-spacing:-.015em}.alert-row p{margin:0;font-size:var(--text-2xs)}.alert-row time{color:var(--text-faint);font-size:var(--text-2xs)}@media(max-width:1250px){.watch-grid.full{grid-template-columns:repeat(2,minmax(250px,1fr))}}@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.upcoming-section{order:-1}.dashboard-hero{grid-template-columns:1fr}.dashboard-hero .hero-art{display:none}.quick-search-form{grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr) minmax(130px,.65fr)}.quick-search-form .button{grid-column:1/-1}}@media(max-width:760px){.dashboard-hero .hero-main{padding:1.1rem}.quick-search-form{grid-template-columns:1fr}.quick-search-form .route-arrow{display:none}.quick-search-form .button{grid-column:auto}.status-strip{gap:.45rem}.dashboard-section{padding:.9rem}.watch-grid.full{grid-template-columns:1fr}.watch-carousel{display:flex;gap:.75rem;margin-inline:-.9rem;padding:0 .9rem .4rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.watch-carousel::-webkit-scrollbar{display:none}.watch-carousel>*{flex:0 0 78%;scroll-snap-align:start}.departure-list li:nth-child(n+4){display:none}.alert-timeline{grid-template-columns:1fr}}.watch-hero-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;padding:1.4rem;margin-bottom:1rem;color:var(--brand-text);background:url(/assets/pattern-rails-C1qFIk7j.webp) center / 720px auto repeat var(--brand-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.watch-route-large>.watch-status{color:var(--brand-positive)}.watch-route-large>div{display:grid;grid-template-columns:minmax(100px,auto) minmax(90px,180px) minmax(100px,auto);align-items:center;gap:.65rem;margin-top:.9rem}.watch-route-large>div>strong{font-size:1.2rem;font-weight:var(--w-display);letter-spacing:var(--track-tight)}.watch-route-large>div>strong:last-child{text-align:right}.watch-route-large .rail{display:flex;align-items:center}.watch-route-large .rail i{height:1px;flex:1;background:var(--brand-border)}.watch-route-large .rail svg{color:var(--brand-accent)}.watch-route-large p{margin:.6rem 0 0;color:var(--brand-text-soft);font-size:var(--text-2xs)}.watch-provenance{display:flex;align-items:center;gap:.45rem}.watch-provenance .source-badge{background:var(--brand-hover);border-color:var(--brand-border);color:var(--brand-text)}.watch-route-large .watch-error-note{color:var(--brand-negative, var(--danger));font-size:var(--text-2xs)}.watch-current-metrics{display:grid;grid-template-columns:repeat(2,minmax(125px,1fr));align-items:center}.watch-current-metrics>div{min-height:72px;display:grid;align-content:center;padding:0 1.1rem;border-left:1px solid var(--brand-border)}.watch-current-metrics small{color:var(--brand-text-soft);font-size:var(--text-2xs)}.watch-current-metrics strong{margin:.18rem 0;color:var(--brand-text-strong);font-size:var(--display-sm);font-weight:var(--w-display);letter-spacing:var(--track-display);line-height:1.05}.watch-current-metrics span{color:var(--brand-text-soft);font-size:var(--text-2xs)}.watch-current-metrics[data-flash]>div{animation:metric-flash 1.2s var(--ease-out)}@keyframes metric-flash{0%{background:var(--brand-accent-soft)}to{background:transparent}}.card-section{padding:1.15rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.history-actions{display:flex;align-items:center;gap:.5rem}.history-chart{position:relative;height:270px;padding:0 1.5rem 1rem}.history-chart svg{width:100%;height:100%;overflow:visible}.grid-line{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}.chart-area{fill:var(--chart-series-soft)}.chart-line{fill:none;stroke:var(--chart-series);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:var(--surface);stroke:var(--chart-series);stroke-width:2;vector-effect:non-scaling-stroke}.chart-point:hover{stroke-width:4}.chart-point:focus-visible{outline:0;stroke:var(--accent);stroke-width:4}.threshold-line{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.chart-label{position:absolute;left:0;color:var(--text-faint);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.chart-label.max{top:40px}.chart-label.zero{bottom:28px}.threshold-label{position:absolute;right:0;padding:.15rem .3rem;color:var(--accent-strong);background:var(--accent-soft);border-radius:var(--radius-xs);font-size:var(--text-2xs);transform:translateY(-50%)}.chart-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:.7rem;border-top:1px solid var(--border);color:var(--text-soft);font-size:var(--text-2xs)}.chart-summary>span{display:flex;align-items:center;gap:.35rem}.chart-summary svg{width:.8rem}.chart-summary .positive{color:var(--success)}.chart-summary .negative{color:var(--danger)}.chart-summary small{color:var(--text-faint);font-size:var(--text-2xs)}.chart-empty{height:180px;display:grid;place-items:center;color:var(--text-faint);font-size:var(--text-xs)}.watch-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:1rem;margin-top:1rem;align-items:start}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-2xs)}.data-table th{padding:.55rem;color:var(--text-faint);text-align:left;font-size:var(--text-2xs);border-bottom:1px solid var(--border)}.data-table td{padding:.62rem .55rem;border-bottom:1px solid var(--border)}.data-table tr:last-child td{border:0}.compact-events{display:grid}.compact-events article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.compact-events article:last-child{border:0}.event-dot{width:29px;height:29px;display:grid;place-items:center;color:var(--info);background:var(--info-soft);border-radius:50%}.event-dot.success{color:var(--success);background:var(--success-soft)}.event-dot.warning{color:var(--warning);background:var(--warning-soft)}.event-dot svg{width:.75rem}.compact-events strong{font-size:var(--text-2xs)}.compact-events p{margin:.15rem 0;font-size:var(--text-2xs)}.compact-events time{color:var(--text-faint);font-size:var(--text-2xs)}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.4rem;padding:.8rem 0 0;border-top:1px solid var(--border)}.danger-zone strong{color:var(--danger);font-size:var(--text-xs)}.danger-zone p{margin:.15rem 0 0;color:var(--text-faint);font-size:var(--text-2xs)}.danger-zone .button{min-height:36px}.export-menu{position:relative}@media(max-width:1000px){.watch-hero-card{grid-template-columns:1fr}.watch-current-metrics{border-top:1px solid var(--brand-border);padding-top:1rem}.watch-current-metrics>div:first-child{border-left:0}}@media(max-width:760px){.watch-detail-grid{grid-template-columns:1fr}.watch-current-metrics{grid-template-columns:1fr 1fr}.history-actions{align-items:flex-end;flex-direction:column}.history-chart{height:220px}.chart-summary{align-items:flex-start;flex-direction:column}}@media(max-width:480px){.watch-route-large>div{grid-template-columns:minmax(70px,auto) minmax(50px,1fr) minmax(70px,auto)}.watch-route-large>div>strong{font-size:var(--text-md)}.watch-current-metrics{grid-template-columns:1fr}.watch-current-metrics>div,.watch-current-metrics>div:first-child{border:0;border-top:1px solid var(--brand-border);padding:.65rem 0}.history-section .section-heading{align-items:flex-start;flex-direction:column}.history-actions{width:100%;align-items:stretch}.compact-tabs{justify-content:space-between}.compact-tabs button{flex:1}}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.settings-card{padding:1.2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.settings-card.wide{grid-column:1/-1}.settings-card-head{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.settings-card-head h2{margin:.15rem 0 .25rem;font-size:1rem}.settings-card-head p{margin:0;font-size:var(--text-xs)}.settings-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;color:var(--primary);background:var(--primary-soft);border-radius:12px}.settings-icon.gold{color:var(--warning);background:var(--warning-soft)}.settings-icon.blue{color:var(--info);background:var(--info-soft)}.settings-icon.green{color:var(--success);background:var(--success-soft)}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.theme-options>button{position:relative;display:grid;gap:.55rem;padding:.5rem;text-align:left;background:transparent;border:1px solid var(--border);border-radius:12px;cursor:pointer}.theme-options>button.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 13%,transparent)}.theme-options>button>span:last-of-type{display:flex;align-items:center;gap:.4rem;padding:0 .25rem .2rem;font-size:var(--text-2xs);font-weight:650}.theme-options>button>svg{position:absolute;right:.65rem;bottom:.7rem;width:.75rem;color:var(--success)}.theme-preview{height:74px;display:grid;grid-template-columns:25% 1fr;grid-template-rows:22% 1fr 1fr;gap:5px;padding:7px;border-radius:var(--radius-sm);border:1px solid #dde2ec;background:#f5f7fb}.theme-preview.dark{border-color:#242f4a;background:#0c1120}.theme-preview i{display:block;border-radius:3px;border:1px solid #edf0f7;background:#fff}.theme-preview i:first-child{grid-row:1/-1;background:#fff}.theme-preview i:nth-child(2){grid-column:2;border:0;background:#e8edf8}.theme-preview.dark i{border-color:#1a2440;background:#141c31}.theme-preview.dark i:first-child{background:#141c31}.theme-preview.dark i:nth-child(2){background:#1a2440}.theme-preview:after{content:"";grid-column:2;justify-self:end;align-self:end;width:10px;height:10px;border-radius:50%;background:#e87413}.theme-preview.dark:after{background:#f0913a}.push-status,.device-row,.account-row{display:flex;align-items:center;gap:.75rem;padding:.8rem;margin-bottom:.75rem;background:var(--surface-soft);border-radius:var(--radius)}.push-status>span,.device-row>span{width:37px;height:37px;flex:none;display:grid;place-items:center;color:var(--text-faint);background:var(--bg-deep);border-radius:11px}.push-status.active>span{color:var(--success);background:var(--success-soft)}.push-status.blocked>span{color:var(--danger);background:var(--danger-soft)}.push-status>div,.device-row>div,.account-row>div{display:grid}.push-status strong,.device-row strong,.account-row strong{font-size:var(--text-xs)}.push-status p,.device-row p,.account-row p{margin:.15rem 0 0;font-size:var(--text-2xs)}.success-icon{margin-left:auto;color:var(--success)}.setting-hint{margin:0;font-size:var(--text-2xs)}.large-avatar{width:45px;height:45px;border-radius:14px;font-size:var(--text-xs)}.setting-list{display:grid;margin-bottom:.8rem}.setting-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.65rem 0;border-bottom:1px solid var(--border)}.setting-list>div>svg{color:var(--text-faint)}.setting-list>div>span{display:grid}.setting-list strong{font-size:var(--text-2xs)}.setting-list small{color:var(--text-faint);font-size:var(--text-2xs)}.setting-state{display:flex!important;grid-auto-flow:column;align-items:center;gap:.25rem;color:var(--success);font-size:var(--text-2xs)}.setting-state svg{width:.65rem}.logout-button{color:var(--danger)}.system-statuses{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.system-statuses>div{display:flex;align-items:center;gap:.55rem;padding:.7rem;background:var(--surface-soft);border-radius:10px}.status-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px var(--success-soft)}.system-statuses>div>span:last-child{display:grid}.system-statuses strong{font-size:var(--text-2xs)}.system-statuses small{color:var(--text-faint);font-size:var(--text-2xs)}.version-info{margin:.8rem 0 0;color:var(--text-faint);text-align:right;font-size:var(--text-2xs)}.change-password-form{display:grid;gap:.7rem;margin-bottom:.8rem}.change-password-form .form-actions{display:flex;justify-content:flex-end;gap:.5rem}.invite-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:end;margin-bottom:.8rem}.invite-link-row{display:flex;gap:.5rem;margin-bottom:.8rem}.invite-link-row input{flex:1;min-width:0;padding:.5rem .65rem;border:1px dashed var(--border);border-radius:10px;background:var(--surface-soft);color:var(--text-soft);font-size:var(--text-2xs)}.admin-list{display:grid;gap:.1rem;margin-bottom:.8rem}.admin-list h3{margin:0 0 .3rem;font-size:var(--text-2xs);color:var(--text-soft);letter-spacing:var(--track-caps);text-transform:uppercase}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--border)}.admin-row>span:first-child{display:grid;min-width:0}.admin-row strong{font-size:var(--text-xs);overflow-wrap:anywhere}.admin-row small{color:var(--text-faint);font-size:var(--text-2xs)}.admin-row.disabled strong{color:var(--text-faint);text-decoration:line-through}.admin-row-actions{display:flex;gap:.3rem;flex:none}.button.small{padding:.35rem .6rem;font-size:var(--text-2xs)}@media(max-width:760px){.settings-grid{grid-template-columns:1fr}.settings-card.wide{grid-column:auto}.system-statuses{grid-template-columns:1fr}.invite-form{grid-template-columns:1fr;align-items:stretch}}@media(max-width:480px){.theme-options{grid-template-columns:1fr}}.modal{width:min(560px,calc(100vw - 2rem));max-width:none;max-height:calc(100vh - 2rem);padding:0;color:var(--text);background:transparent;border:0;overflow:visible}.modal.modal-wide{width:min(980px,calc(100vw - 2rem))}.modal::backdrop{background:#090d198c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-card{max-height:calc(100vh - 2rem);display:flex;flex-direction:column;overflow:hidden;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--edge-highlight),var(--shadow-lg);animation:modal-in var(--dur) var(--ease-out)}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}}.modal-head{display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 1.2rem .9rem;border-bottom:1px solid var(--border)}.modal-head h2{margin:0}.modal-head p{margin:.25rem 0 0;font-size:var(--text-xs)}.modal-body{overflow-y:auto;padding:1.1rem 1.2rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.8rem 1.2rem;background:var(--surface-soft);border-top:1px solid var(--border)}.watch-form{display:grid;gap:.9rem}.watch-route-summary{display:flex;align-items:center;gap:.7rem;padding:.75rem;background:var(--primary-soft);border-radius:var(--radius);color:var(--primary)}.watch-route-summary>svg{flex:none}.watch-route-summary>div{display:grid}.watch-route-summary strong{display:flex;align-items:center;gap:.3rem;font-size:var(--text-xs)}.watch-route-summary strong svg{width:.7rem}.watch-route-summary span{color:var(--text-soft);font-size:var(--text-2xs)}.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.form-grid .field>legend{margin-bottom:.42rem}.seat-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.seat-map-toolbar label{display:flex;align-items:center;gap:.5rem;color:var(--text-soft);font-size:.72rem}.seat-map-toolbar select{width:auto;min-width:140px}.seat-map-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin:.8rem 0;color:var(--text-soft);font-size:var(--text-2xs)}.seat-map-legend span{display:flex;align-items:center;gap:.3rem}.seat{width:11px;height:11px;display:inline-block;border-radius:3px}.seat.free{background:var(--success)}.seat.occupied{background:var(--border-strong)}.seat.special{background:var(--warning)}.seat-map-frame{min-height:260px;max-height:58vh;overflow:auto;display:grid;place-items:center;padding:1rem;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius)}.seat-map-frame img{max-width:100%;max-height:52vh;object-fit:contain}.seat-map-error{display:grid;place-items:center;gap:.35rem;color:var(--text-soft)}.seat-map-error>svg{width:2rem;height:2rem;color:var(--danger)}.seat-map-error span{font-size:.72rem}.map-disclaimer{display:flex;align-items:center;gap:.45rem;margin:.7rem 0 0;font-size:var(--text-2xs)}.map-disclaimer svg{width:.75rem}.comparison-scroll{overflow-x:auto}.comparison-table{min-width:650px;width:100%;border-collapse:collapse}.comparison-table th,.comparison-table td{padding:.75rem;font-size:var(--text-xs);text-align:left;border-bottom:1px solid var(--border)}.comparison-table th+th,.comparison-table th+td,.comparison-table td+td,.comparison-table td+th{border-left:1px solid var(--border)}.comparison-table thead th{background:var(--primary-soft);color:var(--primary)}.comparison-table th[scope=row]{width:145px;color:var(--text-soft);font-weight:720}.comparison-table tr.actions td,.comparison-table tr.actions th{border-bottom:0}.comparison-table tr.actions td>*{display:flex;justify-content:center}@media(max-width:760px){.modal.sheet{width:100vw;max-height:92vh;margin:auto 0 0}.modal.sheet .modal-card{max-height:92vh;border-radius:20px 20px 0 0;animation:sheet-in var(--dur-slow) var(--ease-out)}.modal.sheet .modal-head{position:relative;padding-top:1.4rem}.modal.sheet .modal-head:before{content:"";position:absolute;top:.5rem;left:50%;width:36px;height:4px;transform:translate(-50%);border-radius:var(--radius-full);background:var(--border-strong)}.modal.sheet .modal-footer{position:sticky;bottom:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(28px)}}@media(max-width:480px){.modal{width:100vw;max-height:94vh;margin:auto 0 0}.modal-card{max-height:94vh;border-radius:20px 20px 0 0}.form-grid.two{grid-template-columns:1fr}.modal-footer .button{flex:1}.comparison-table{min-width:560px}}@media print{.sidebar,.topbar,.bottom-nav,.page-actions,.button,.compare-dock{display:none!important}.app-column{margin:0}.app-content{max-width:none;padding:0}.card-section,.watch-hero-card{box-shadow:none;break-inside:avoid}}
