:root{--background: #fafafa;--background-elevated: #f4f4f6;--foreground: #18181b;--card: #ffffff;--card-foreground: #18181b;--muted: #f4f4f5;--muted-foreground: #71717a;--border: #e4e4e7;--border-strong: #d4d4d8;--primary: #6366f1;--primary-hover: #4f46e5;--primary-foreground: #ffffff;--primary-soft: rgba(99, 102, 241, .1);--primary-soft-strong: rgba(99, 102, 241, .18);--violet: #8b5cf6;--violet-hover: #7c3aed;--violet-soft: rgba(139, 92, 246, .12);--success: #16a34a;--success-soft: #dcfce7;--warn: #d97706;--warn-soft: #fef3c7;--danger: #dc2626;--danger-soft: #fee2e2;--accent: var(--muted);--accent-foreground: var(--foreground);--destructive: var(--danger);--ring: rgba(99, 102, 241, .42);--radius-lg: .75rem;--radius-md: calc(.75rem - 2px) ;--radius-sm: calc(.75rem - 4px) ;--shadow-xs: 0 1px 2px rgba(24, 24, 27, .04);--shadow-sm: 0 1px 2px rgba(24, 24, 27, .04), 0 1px 3px rgba(24, 24, 27, .06);--shadow-md: 0 4px 6px -1px rgba(24, 24, 27, .07), 0 2px 4px -2px rgba(24, 24, 27, .05);--shadow-lg: 0 10px 15px -3px rgba(24, 24, 27, .08), 0 4px 6px -4px rgba(24, 24, 27, .05);--sidebar: #ffffff;--sidebar-foreground: #3f3f46;--sidebar-border: #e4e4e7;--sidebar-accent: var(--primary-soft);--sidebar-accent-active: var(--primary-soft-strong);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:var(--foreground);background:var(--background);font-feature-settings:"cv02","cv03","cv04","cv11","ss01"}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.layout{max-width:100%;margin:0;padding:0;min-height:100vh}.app-shell{display:flex;min-height:100vh;align-items:stretch;background:var(--background);--sidebar-width: 248px}.app-shell--sidebar-collapsed{--sidebar-width: 60px}.app-sidebar{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--sidebar);color:var(--sidebar-foreground);padding:1rem .65rem .75rem;display:flex;flex-direction:column;gap:.5rem;border-right:1px solid var(--sidebar-border);position:sticky;top:0;height:100vh;overflow:hidden;transition:width .28s cubic-bezier(.4,0,.2,1),flex-basis .28s cubic-bezier(.4,0,.2,1),padding .28s cubic-bezier(.4,0,.2,1)}.app-sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:.2rem .5rem .85rem;border-bottom:1px solid var(--sidebar-border);color:var(--foreground);line-height:1.2;min-height:3rem}.app-sidebar-collapsible-text{overflow:hidden;white-space:nowrap;opacity:1;max-width:12rem;transition:opacity .2s ease,max-width .28s cubic-bezier(.4,0,.2,1),margin .28s cubic-bezier(.4,0,.2,1)}.app-shell--sidebar-collapsed .app-sidebar-collapsible-text{display:none}.app-shell--sidebar-collapsed .app-sidebar,.app-sidebar--collapsed{padding:.75rem .45rem;align-items:center}.app-shell--sidebar-collapsed .app-sidebar-brand,.app-sidebar--collapsed .app-sidebar-brand{flex-direction:column;align-items:center;gap:.5rem;width:100%;padding:0 0 .65rem;border-bottom:1px solid var(--sidebar-border)}.app-shell--sidebar-collapsed .app-sidebar nav,.app-sidebar--collapsed nav{width:100%;align-items:center;gap:.2rem}.app-shell--sidebar-collapsed .app-sidebar a,.app-sidebar--collapsed .app-sidebar a{justify-content:center;align-items:center;gap:0;width:2.5rem;height:2.5rem;margin:0 auto;padding:0;flex-shrink:0}.app-shell--sidebar-collapsed .app-sidebar a svg,.app-sidebar--collapsed .app-sidebar a svg{flex:0 0 18px;width:18px;height:18px;opacity:.85}.app-shell--sidebar-collapsed .app-sidebar-meta,.app-sidebar--collapsed .app-sidebar-meta{width:100%;align-items:center;padding-left:0;padding-right:0}.app-shell--sidebar-collapsed .app-sidebar-meta .user-card,.app-sidebar--collapsed .app-sidebar-meta .user-card{justify-content:center;width:2.5rem;height:2.5rem;padding:0;margin:0 auto;border:none;background:transparent}.app-shell--sidebar-collapsed .user-avatar,.app-sidebar--collapsed .user-avatar{width:2.25rem;height:2.25rem;flex:0 0 2.25rem;font-size:.72rem}.app-shell--sidebar-collapsed .user-card-logout,.app-sidebar--collapsed .user-card-logout{display:none}.app-sidebar-toggle{flex-shrink:0;display:inline-grid;place-items:center;width:2rem;height:2rem;margin-left:auto;padding:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--muted-foreground);cursor:pointer;box-shadow:none;transition:background .15s ease,color .15s ease,border-color .15s ease}.app-sidebar-toggle:hover{background:#e2e8f0;color:var(--foreground);border-color:#cbd5e1}.app-sidebar-toggle:focus-visible{outline:none;box-shadow:0 0 0 2px var(--background),0 0 0 4px var(--ring)}.app-shell--sidebar-collapsed .app-sidebar-toggle,.app-sidebar--collapsed .app-sidebar-toggle{margin-left:0;width:2.25rem;height:2.25rem}.app-sidebar-nav-label{min-width:0}.app-main-header-row{display:flex;align-items:flex-start;gap:.65rem}.app-main-header-row--with-help{align-items:center;justify-content:space-between;width:100%;gap:1rem}.app-main-header-title{display:flex;align-items:flex-start;gap:.65rem;min-width:0}.app-main-header-row--with-help .context-help-link{flex-shrink:0}.direction-section-nav{position:relative;display:flex;justify-content:center;align-items:center;margin-bottom:.75rem;min-height:2.5rem}.direction-section-nav .segmented-tabs-wrap{margin-bottom:0}.direction-section-help{position:absolute;right:0;top:50%;transform:translateY(-50%)}.direction-help-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-bottom:.75rem}.context-help-link{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;font-size:.82rem;font-weight:500;color:var(--muted-foreground);text-decoration:none;white-space:nowrap}.context-help-link:hover{color:var(--primary)}.context-help-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.app-sidebar-toggle--header{margin-top:.15rem;flex-shrink:0}.app-sidebar-brand-logo{flex:0 0 32px;width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--primary) 0%,var(--violet) 100%);display:grid;place-items:center;color:#fff;box-shadow:0 1px 2px #6366f14d}.app-sidebar-brand-text{display:flex;flex-direction:column;min-width:0}.app-sidebar-brand-title{font-size:.9rem;font-weight:700;letter-spacing:-.02em;color:var(--foreground)}.app-sidebar-brand-sub{font-size:.7rem;font-weight:500;color:var(--muted-foreground);letter-spacing:0;margin-top:.1rem}.app-sidebar-section-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);padding:.65rem .6rem .3rem;margin:0}.app-sidebar nav{display:flex;flex-direction:column;gap:.125rem;align-items:stretch;padding:0 .15rem;flex:1;min-height:0;overflow-y:auto}.app-sidebar-footer-nav{padding:.35rem .15rem .25rem;flex-shrink:0}.app-sidebar-footer-link{color:var(--sidebar-foreground);text-decoration:none;padding:.5rem .65rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:.6rem;transition:background .12s ease,color .12s ease}.app-sidebar-footer-link:hover{background:var(--accent);color:var(--accent-foreground);text-decoration:none}.app-sidebar-footer-link svg{flex:0 0 16px;opacity:.7}.app-sidebar-footer-link--active{background:var(--accent);color:var(--accent-foreground)}.app-sidebar-footer-link--active svg{opacity:1}.sidebar-footer-nav-badge{margin-left:auto;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.6875rem;font-weight:700;line-height:1.25rem;text-align:center;flex-shrink:0}.app-sidebar--collapsed .sidebar-footer-nav-badge{position:absolute;top:.15rem;right:.15rem;margin-left:0;min-width:1rem;height:1rem;padding:0 .2rem;font-size:.625rem;line-height:1rem}.app-sidebar--collapsed .app-sidebar-footer-link{position:relative}.user-avatar-wrap{position:relative;flex-shrink:0}.user-avatar-badge{position:absolute;top:-4px;right:-4px;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.625rem;font-weight:700;line-height:1.1rem;text-align:center;box-shadow:0 0 0 2px var(--card)}.app-sidebar a{color:var(--sidebar-foreground);text-decoration:none;padding:.5rem .65rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:.6rem;transition:background .12s ease,color .12s ease}.app-sidebar a svg{flex:0 0 16px;opacity:.7;transition:opacity .12s ease}.app-sidebar a:hover{background:var(--accent);color:var(--accent-foreground);text-decoration:none}.app-sidebar a:hover svg{opacity:.9}.app-sidebar a.nav-active{background:var(--sidebar-accent-active);color:var(--primary);font-weight:600}.app-sidebar a.nav-active svg{opacity:1}.app-sidebar-meta{margin-top:auto;padding:.65rem .3rem 0;border-top:1px solid var(--sidebar-border);font-size:.75rem;color:var(--muted-foreground);display:flex;flex-direction:column;gap:.55rem}.user-card{display:flex;align-items:center;gap:.55rem;padding:.5rem .55rem;border-radius:var(--radius-md);background:var(--background-elevated);border:1px solid var(--border)}.user-avatar{flex:0 0 32px;width:32px;height:32px;border-radius:999px;background:linear-gradient(135deg,var(--primary) 0%,var(--violet) 100%);color:#fff;display:grid;place-items:center;font-size:.78rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.user-card-info{display:flex;flex-direction:column;min-width:0;flex:1}.user-card-name{font-size:.82rem;font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card-role{font-size:.68rem;color:var(--muted-foreground)}.user-card-logout{flex:0 0 28px;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--muted-foreground);display:grid;place-items:center;cursor:pointer;padding:0;transition:background .12s ease,color .12s ease,border-color .12s ease}.user-card-logout:hover{background:var(--card);color:var(--danger);border-color:var(--border)}.app-sidebar-footer-notes{display:flex;flex-direction:column;gap:.12rem}.app-sidebar-footer-note{padding:0 .45rem .15rem;font-size:.6875rem;line-height:1.35;color:var(--muted-foreground)}.app-sidebar-footer-credit{padding:0 .45rem;font-size:.625rem;line-height:1.35;font-weight:500;color:color-mix(in srgb,var(--muted-foreground) 78%,var(--background))}.btn-sidebar{width:100%;font:inherit;font-size:.8125rem;font-weight:600;padding:.5rem .75rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--card);color:var(--foreground);cursor:pointer;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.btn-sidebar:hover{background:var(--muted);border-color:var(--border-strong)}.btn-sidebar:focus-visible{outline:none;box-shadow:0 0 0 2px var(--background),0 0 0 4px var(--ring)}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.app-main-inner{max-width:1280px;width:100%;margin:0 auto;padding:1rem 1.5rem 3rem;flex:1}header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:0;padding:.4rem 0 1rem;border-bottom:1px solid var(--border);background:var(--background)}header h1{margin:0;font-size:1.15rem;font-weight:650;letter-spacing:-.02em}header .header-sub{font-size:.78rem;color:var(--muted-foreground);font-weight:500}.stale-data-banner{background:linear-gradient(90deg,#991b1b,#dc2626);color:#fff;padding:.55rem 1rem;font-size:.875rem;font-weight:600;margin:0 0 .85rem;border-radius:8px;border:1px solid #fca5a5}.stale-data-banner ul{margin:.35rem 0 0 1rem;padding:0;font-weight:500;font-size:.82rem;line-height:1.35}.skeleton{border-radius:6px;background:linear-gradient(90deg,#e2e8f0,#f1f5f9,#e2e8f0);background-size:220% 100%;animation:skel 1.15s ease-in-out infinite}@keyframes skel{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-line{height:13px;width:100%}.skeleton-line-xs{height:10px}.skeleton-line-sm{height:11px;width:70%}.skeleton-line-lg{height:16px;width:85%}.skeleton-title{height:22px;width:60%}.skeleton-chip{height:32px;width:88px;border-radius:8px;display:inline-block;margin-right:6px}.skeleton-chart{margin-top:1.25rem;height:220px;width:100%;border-radius:8px}nav{display:flex;gap:1rem;align-items:center}.card-grid{display:grid;gap:1.15rem;grid-template-columns:repeat(auto-fill,minmax(288px,1fr))}.card{background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem 1.2rem;box-shadow:var(--shadow-sm);transition:box-shadow .18s ease,border-color .18s ease}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.card h2,.card h3{margin:0 0 .55rem;font-size:1rem;font-weight:650;letter-spacing:-.01em}.muted{color:var(--muted-foreground);font-size:.85rem}.section-kicker{margin:0 0 .6rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground);font-weight:600}.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);line-height:1.5;letter-spacing:.01em;white-space:nowrap}.pill code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95em;color:inherit;background:transparent}.pill-rzd{color:var(--primary-hover);border-color:#6366f159;background:var(--primary-soft)}.pill-avia{color:var(--violet-hover);border-color:#8b5cf659;background:var(--violet-soft)}.pill-success{color:#166534;background:var(--success-soft);border-color:#16a34a4d}.pill-warn{color:#92400e;background:var(--warn-soft);border-color:#d977064d}.pill-danger{color:#991b1b;background:var(--danger-soft);border-color:#dc26264d}.pill-muted{color:#52525b;background:var(--muted);border-color:var(--border)}.stat-tile-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem;margin:.25rem 0 .5rem}.stat-tile{padding:.7rem .8rem;background:var(--background-elevated);border:1px solid var(--border);border-radius:var(--radius-md)}.stat-tile-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground);margin-bottom:.3rem}.stat-tile-value{font-size:1.45rem;font-weight:700;letter-spacing:-.02em;color:var(--foreground);font-variant-numeric:tabular-nums;line-height:1.15}.stat-tile-value-sm{font-size:1.05rem}.stat-tile-hint{margin-top:.3rem;font-size:.72rem;color:var(--muted-foreground);line-height:1.4}.stat-tile-success .stat-tile-value{color:var(--success)}.stat-tile-danger .stat-tile-value{color:var(--danger)}.stat-tile-warn .stat-tile-value{color:var(--warn)}.stat-tile-info .stat-tile-value{color:var(--primary)}.info-tooltip{position:relative;display:inline-flex;vertical-align:middle;cursor:help}.info-tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;background:transparent;color:var(--muted-foreground);border:1px solid var(--border);font-size:11px;font-weight:700;font-family:inherit;cursor:help;padding:0;line-height:1;transition:color .12s ease,border-color .12s ease,background .12s ease}.info-tooltip-trigger:hover,.info-tooltip-trigger:focus-visible{color:var(--primary);border-color:var(--primary);background:var(--primary-soft);outline:none}.info-tooltip-bubble{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);min-width:240px;max-width:360px;background:#1f1f23;color:#f4f4f5;padding:.6rem .75rem;border-radius:8px;font-size:.78rem;font-weight:400;line-height:1.5;letter-spacing:0;text-transform:none;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:50;box-shadow:0 6px 16px #0000002e;white-space:normal}.info-tooltip-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1f1f23}.info-tooltip:hover .info-tooltip-bubble,.info-tooltip:focus-within .info-tooltip-bubble{opacity:1;pointer-events:auto}.spec-tariff-badge{margin-left:5;font-size:10px;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;border-radius:4px;padding:1px 4px;font-weight:600;vertical-align:middle;cursor:help;font-family:inherit;line-height:1.3}.spec-tariff-badge:hover,.spec-tariff-badge:focus-visible{background:#fde68a;outline:none}.timeframe-bar{display:inline-flex;align-items:center;background:var(--background-elevated);border:1px solid var(--border);border-radius:8px;padding:2px;gap:1px}.timeframe-bar button{background:transparent;color:var(--muted-foreground);border:none;padding:4px 11px;font-size:12px;font-weight:600;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease;font-variant-numeric:tabular-nums;letter-spacing:.01em}.timeframe-bar button:hover{color:var(--foreground);background:var(--card)}.timeframe-bar button.active{background:var(--card);color:var(--primary);box-shadow:var(--shadow-xs)}.departure-date-range{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.4rem .65rem}.departure-date-range input[type=date]{margin-left:2px;padding:4px 8px;font-size:12px;font-weight:500;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--foreground);min-height:30px}.departure-date-range-clear{background:transparent;border:none;color:var(--primary);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px;padding:2px 4px}.departure-date-range-clear:hover{color:var(--primary-hover)}.dashboard-card-link{display:block;color:inherit;text-decoration:none;border-radius:var(--radius-lg);height:100%}.dashboard-card-link:hover{text-decoration:none}.dashboard-card-link .card{height:100%;display:flex;flex-direction:column;min-height:148px;position:relative;overflow:hidden}.dashboard-card-link .card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--primary),var(--violet));opacity:0;transition:opacity .18s ease}.dashboard-card-link:hover .card:before{opacity:1}.dashboard-card-link:hover .card{border-color:#6366f159;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.dashboard-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem;margin-bottom:.65rem}.dashboard-card-title{margin:0;font-size:1rem;font-weight:650;letter-spacing:-.02em;line-height:1.3;color:var(--card-foreground)}.card h2.dashboard-card-title{margin-bottom:0}.dashboard-card-badges{display:flex;flex-wrap:wrap;gap:.35rem;flex-shrink:0}.dashboard-card-body{flex:1;display:flex;flex-direction:column;gap:.45rem;font-size:.8125rem;color:var(--muted-foreground)}.dashboard-card-row{display:flex;align-items:baseline;gap:.35rem}.dashboard-card-row dt{margin:0;font-weight:500;color:#a1a1aa;min-width:5.5rem;font-size:.75rem;display:flex;align-items:center;gap:.35rem}.dashboard-card-row dd{margin:0;font-variant-numeric:tabular-nums}.dashboard-freshness-dot{display:inline-block;width:.45rem;height:.45rem;border-radius:999px;flex-shrink:0}.dashboard-freshness-dot--fresh{background:var(--success)}.dashboard-freshness-dot--warn{background:var(--warn)}.dashboard-freshness-dot--stale{background:var(--danger);opacity:.9}.dashboard-freshness-dot--none{background:#cbd5e1}.ml-status-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.02em}.ml-status-pill--ok{background:var(--success-soft);color:#166534}.ml-status-pill--warn{background:var(--warn-soft);color:#854d0e}.ml-status-pill--err{background:var(--danger-soft);color:#991b1b}.ml-status-pill--off{background:var(--muted);color:#52525b}.ml-status-pill--muted{background:var(--primary-soft);color:var(--primary-hover)}.ml-status-grid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-bottom:1rem}.ml-status-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:.85rem 1rem;background:var(--card)}.ml-status-card .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground);margin-bottom:.35rem}.ml-status-card .value{font-size:.95rem;font-weight:650;word-break:break-word}.ml-parquet-files-card{margin-top:1.25rem;width:100%;max-width:none}.ml-parquet-files-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.ml-parquet-files-busy{margin:0 0 .75rem;font-size:.85rem}.ml-parquet-table{width:100%;font-size:.875rem}.ml-parquet-table th{text-align:left;font-weight:600;color:var(--muted-foreground);padding:.45rem .5rem;border-bottom:1px solid var(--border)}.ml-parquet-table td{padding:.55rem .5rem;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);vertical-align:top}.ml-parquet-name{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem;word-break:break-all}.ml-parquet-s3-key{margin-top:.25rem;font-size:.75rem;word-break:break-all}.ml-parquet-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end;white-space:nowrap}.ml-parquet-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a73}.ml-parquet-dialog{width:min(28rem,100%);padding:1.1rem 1.25rem;box-shadow:0 18px 48px #0003}.ml-parquet-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.direction-phase-a-card{border-left:3px solid rgba(99,102,241,.35)}.dashboard-card-foot{margin-top:.85rem;padding-top:.65rem;border-top:1px solid var(--border);font-size:.75rem;font-weight:600;color:var(--primary);display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.dashboard-card-foot-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.dashboard-operator-chip{display:inline-flex;align-items:center;padding:.12rem .4rem;border-radius:999px;font-size:.625rem;font-weight:650;letter-spacing:.02em;color:var(--muted-foreground);background:color-mix(in srgb,var(--muted) 65%,transparent);border:1px solid var(--border)}.dashboard-card-foot-cta{display:inline-flex;align-items:center;gap:.25rem;margin-left:auto}.dashboard-intro{margin:0 0 1.25rem;max-width:42rem;line-height:1.55;font-size:.9375rem}.dashboard-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:2rem}@media (max-width: 960px){.dashboard-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.dashboard-stats-grid{grid-template-columns:1fr}}.dashboard-stat-card{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 85%,var(--card));border-radius:var(--radius-lg);padding:1.25rem 1.25rem 1.1rem;background:linear-gradient(180deg,var(--card) 0%,color-mix(in srgb,var(--muted) 12%,var(--card)) 48%,color-mix(in srgb,var(--muted-foreground) 6%,var(--muted) 14%) 100%);box-shadow:0 1px 2px color-mix(in srgb,var(--foreground) 6%,transparent)}.dashboard-stat-card:after{content:"";position:absolute;inset:auto 0 0 0;height:42%;background:linear-gradient(to top,color-mix(in srgb,var(--muted) 16%,transparent),transparent);pointer-events:none}.dashboard-stat-card>*{position:relative;z-index:1}.dashboard-stat-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.dashboard-stat-card-label{font-size:.8125rem;font-weight:500;color:var(--muted-foreground)}.dashboard-stat-badge{display:inline-flex;align-items:center;gap:.2rem;flex-shrink:0;padding:.14rem .5rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 90%,var(--foreground) 8%);font-size:.6875rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--foreground);background:color-mix(in srgb,var(--muted) 42%,var(--card));box-shadow:inset 0 1px color-mix(in srgb,var(--card) 70%,transparent)}.dashboard-stat-badge-up .dashboard-stat-trend-icon{color:#047857}.dashboard-stat-badge-down .dashboard-stat-trend-icon{color:#b91c1c}.dashboard-stat-badge-flat{color:var(--muted-foreground)}.dashboard-stat-trend-icon{width:.65rem;height:.65rem;flex-shrink:0}.dashboard-stat-card-value{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;color:var(--foreground);line-height:1.2;margin-bottom:.5rem;font-variant-numeric:tabular-nums;min-height:2.1rem}.dashboard-stat-card-value-num{display:inline-block}.dashboard-stat-card-loading{pointer-events:none}.dashboard-stat-value-skeleton{width:5.5rem;height:2rem;border-radius:8px}.dashboard-stat-badge-skeleton{width:3.5rem;height:1.35rem;border-radius:999px;flex-shrink:0}.dashboard-stat-trend-skeleton{width:75%;max-width:14rem;height:.85rem;border-radius:4px;margin-bottom:.35rem}.dashboard-stat-hint-skeleton{width:55%;max-width:10rem;height:.7rem;border-radius:4px}.dashboard-stat-card-trend{display:flex;align-items:flex-start;gap:.3rem;font-size:.8125rem;font-weight:500;color:var(--foreground);line-height:1.35;margin-bottom:.35rem}.dashboard-stat-card-hint{font-size:.75rem;color:var(--muted-foreground);line-height:1.45}.dashboard-search-wrap{margin-bottom:1.25rem}.dashboard-search-label{display:block;margin-bottom:.4rem;font-size:.8125rem;font-weight:600;color:var(--foreground)}.dashboard-search-field{position:relative;display:flex;align-items:center;gap:.15rem;max-width:28rem;padding:0 .35rem 0 0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);box-shadow:0 1px 2px color-mix(in srgb,var(--foreground) 3%,transparent)}.dashboard-search-field:focus-within{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:1px;border-color:color-mix(in srgb,var(--primary) 40%,var(--border))}.dashboard-search-icon{position:absolute;left:.85rem;width:1.05rem;height:1.05rem;color:var(--muted-foreground);pointer-events:none}.dashboard-search-input{flex:1 1 0;min-width:0;padding:.6rem .25rem .6rem 2.5rem;border:none!important;border-radius:0;font-size:.9375rem;background:transparent;color:var(--foreground);box-shadow:none!important;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dashboard-search-input:focus{outline:none;border:none!important;box-shadow:none!important}.dashboard-search-input::placeholder{color:var(--muted-foreground)}.dashboard-search-input::-webkit-search-cancel-button,.dashboard-search-input::-webkit-search-decoration,.dashboard-search-input::-webkit-search-results-button,.dashboard-search-input::-webkit-search-results-decoration,.dashboard-search-input::-ms-clear,.dashboard-search-input::-ms-reveal{display:none!important;width:0!important;height:0!important;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dashboard-search-field .dashboard-search-clear{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;margin:0 .15rem 0 0;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted-foreground);box-shadow:none;cursor:pointer}.dashboard-search-field .dashboard-search-clear svg{display:block;width:1.05rem;height:1.05rem}.dashboard-search-field .dashboard-search-clear svg path{fill:currentColor}.dashboard-search-field .dashboard-search-clear:hover{color:var(--foreground);background:color-mix(in srgb,var(--muted) 50%,transparent)}.dashboard-search-field .dashboard-search-clear:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ring)}.dashboard-search-empty{margin:0 0 1rem;font-size:.9375rem}.dashboard-search-results-head{margin:0 0 .75rem;font-size:.8125rem;font-weight:600;color:var(--muted-foreground)}.dashboard-blocks{display:flex;flex-direction:column;gap:2rem}.dashboard-block-grid{margin:0}.dashboard-corridor{border:none;border-radius:0;padding:0;background:transparent}.dashboard-corridor-head{margin-bottom:.75rem}.dashboard-corridor-title{margin:0;font-size:1.125rem;font-weight:650;letter-spacing:-.02em;color:var(--foreground)}.dashboard-corridor-summary{margin:0;font-size:.8125rem}.dashboard-corridor-empty{margin:0;font-size:.8125rem;line-height:1.5;padding:.5rem 0 .25rem}.dashboard-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;background:var(--card);padding:.12rem .35rem;border-radius:var(--radius-sm);border:1px solid var(--border);word-break:break-all}.dashboard-corridor-grid{margin:0}.dashboard-corridor-subgroups{display:flex;flex-direction:column;gap:1.25rem}.dashboard-corridor-subsection{margin:0}.dashboard-corridor-subtitle{margin:0 0 .25rem;font-size:.875rem;font-weight:650;letter-spacing:-.01em;color:var(--foreground)}.dashboard-corridor-subsummary{margin:0 0 .65rem;font-size:.8125rem;line-height:1.45}.badge-outline.badge-hub-seg{border-color:#05966966;color:#047857;background:#10b98114}.dashboard-card-segment .dashboard-card-title{font-size:.95rem}.badge-outline{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);line-height:1.2}.badge-outline.badge-rzd{border-color:#6366f159;color:var(--primary-hover);background:var(--primary-soft)}.badge-outline.badge-avia{border-color:#8b5cf659;color:var(--violet-hover);background:var(--violet-soft)}.table-wrap{overflow:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse;font-size:.875rem}th,td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid #f1f5f9}th{background:var(--muted);font-weight:650}.badge{display:inline-block;padding:.15rem .45rem;border-radius:6px;font-size:.75rem;font-weight:650}.badge.ok{background:var(--success-soft);color:#166534}.badge.fail{background:var(--danger-soft);color:#991b1b}.badge.run{background:var(--primary-soft);color:var(--primary-hover)}.badge.skip{background:var(--warn-soft);color:#92400e}.badge.can{background:var(--muted);color:#475569}input,select{padding:.4rem .55rem;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;background:var(--card);color:var(--foreground);transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}button{font:inherit;padding:.45rem .85rem;border-radius:var(--radius-md);border:none;background:var(--primary);color:var(--primary-foreground);cursor:pointer;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease,opacity .12s ease}button:hover{background:var(--primary-hover)}button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--background),0 0 0 4px var(--ring)}button:disabled{opacity:.55;cursor:not-allowed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-weight:600;font-size:.85rem;padding:.5rem .9rem;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary);color:var(--primary-foreground);border-color:transparent}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--card);color:var(--foreground);border-color:var(--border)}.btn-secondary:hover{background:var(--muted);border-color:var(--border-strong)}.btn-rzd{background:var(--primary);color:#fff}.btn-rzd:hover{background:var(--primary-hover)}.btn-avia{background:var(--violet);color:#fff}.btn-avia:hover{background:var(--violet-hover)}.btn-success{background:#059669;color:#fff}.btn-success:hover{background:#047857}.btn-stop{background:var(--danger);color:#fff}.btn-stop:hover{background:#b91c1c}.btn-warn{background:#c2410c;color:#fff}.btn-warn:hover{background:#9a3412}.btn-outline-rzd{background:transparent;color:var(--primary-hover);border-color:var(--primary)}.btn-outline-rzd:hover{background:var(--primary-soft)}.btn-outline-avia{background:transparent;color:var(--violet-hover);border-color:var(--violet)}.btn-outline-avia:hover{background:var(--violet-soft)}.btn-outline-success{background:transparent;color:#047857;border-color:#059669}.btn-outline-success:hover{background:#05966914}.btn-sm{padding:.35rem .7rem;font-size:.78rem}.btn-neutral{background:#f1f5f9;color:#334155;border-color:#cbd5e1}.btn-neutral:hover{background:#e2e8f0;border-color:#94a3b8}.health-skel{display:flex;flex-direction:column;gap:0}.health-skel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.health-skel-card{padding:1rem 1.1rem;min-height:120px}.jobs-force-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.75rem}.rec-page{--rec-scale: 1}.rec-page h1{font-size:1.35rem;margin-bottom:0}.rec-page-head{align-items:flex-start;gap:.5rem;margin-bottom:.5rem}.rec-page-lead{max-width:48rem;margin:.2rem 0 0;line-height:1.4;font-size:.8125rem}.rec-page-hints-details{margin:.35rem 0 0;font-size:.8125rem;max-width:48rem}.rec-page-hints-details summary{cursor:pointer;color:#64748b;-webkit-user-select:none;user-select:none}.rec-page-hints-details summary:hover{color:var(--primary-hover)}.rec-page-hints{margin:.35rem 0 0;padding-left:1rem;font-size:.8125rem;line-height:1.4}.rec-meta-line{margin:.35rem 0 0;font-size:.8125rem}.rec-meta-inline{display:flex;flex-wrap:wrap;gap:.35rem 1rem;align-items:baseline}.rec-meta-next{margin-top:.35rem}.rec-meta-busy{color:var(--primary-hover);font-weight:600}.rec-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.rec-card-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.65rem}.rec-direction-list{margin:.75rem 0 0;padding-left:1.1rem;line-height:1.55}.rec-direction-table-wrap{margin-top:.75rem}.rec-direction-table-wrap.table-wrap--tooltips{overflow:visible}.rec-direction-table{font-size:.8125rem}.rec-direction-table th,.rec-direction-table td{vertical-align:top;padding:.45rem .55rem}.rec-direction-table th{font-size:.75rem;white-space:nowrap;overflow:visible}.rec-direction-table td{overflow:hidden}.rec-direction-table-wrap.table-wrap--tooltips .info-tooltip-bubble{z-index:200}.rec-dir-col-title{min-width:10rem;max-width:14rem}.rec-dir-col-window{min-width:7rem;max-width:11rem;font-size:.78rem}.rec-dir-col-why{min-width:12rem;max-width:18rem}.rec-dir-col-action{min-width:9rem;max-width:13rem}.rec-dir-col-status{white-space:nowrap;font-size:.78rem}.rec-dir-title-link{font-weight:600;color:inherit;text-decoration:none}button.rec-dir-title-link{display:inline;margin:0;padding:0;border:none;background:transparent;font:inherit;cursor:pointer;text-align:left}.rec-dir-title-link:hover,button.rec-dir-title-link:hover{color:var(--primary-hover);text-decoration:underline}.rec-dir-why{display:block;line-height:1.4}.rec-dir-why-hint{font-size:.72rem}.rec-dir-recalc{font-size:.72rem;margin-top:.15rem}.rec-direction-card .rec-action-primary{font-size:.78rem;line-height:1.35}.rec-table .rec-actions{min-width:12rem}.rec-decision-cell{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}.rec-decision-ts{font-size:11px}.rec-decision-btn{padding:.3rem .55rem;font-size:.78rem;font-weight:500;color:var(--foreground)}.rec-decision-cell--compact .rec-actions{flex-wrap:wrap;gap:.25rem}.rec-decision-cell--compact .rec-decision-btn{padding:.22rem .45rem;font-size:.72rem}.rec-direction-table .rec-dir-col-decision{min-width:9.5rem;vertical-align:top}.rec-status-archive{color:#64748b;font-weight:600}.rec-tab-run{font-weight:600;color:var(--foreground);flex-shrink:0}.rec-tab-run:disabled{opacity:.65;cursor:not-allowed}.rec-status-filters{margin-top:0}.rec-table-toolbar{display:flex;flex-direction:column;gap:.75rem;padding:.75rem 1rem .5rem;border-bottom:1px solid var(--border);margin-bottom:.25rem}.rec-table-toolbar-block{display:flex;flex-direction:column;gap:.4rem}.rec-table-toolbar-label{font-size:12px;font-weight:600}.rec-table-toolbar-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.25rem}.rec-status-filters-in-table{margin-bottom:0}.rec-table-search,.rec-table-pagesize{display:flex;flex-direction:column;gap:.25rem}.rec-table-search-input{min-width:min(320px,100%);padding:.4rem .6rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem;background:var(--card);color:var(--foreground)}.rec-table-pagesize-select{padding:.4rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem;background:var(--card);color:var(--foreground)}.rec-table-found{margin-left:auto;align-self:center}.sortable-th,.rec-th-sort{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .35rem;margin:-.2rem -.35rem;border:none;border-radius:6px;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:left;max-width:100%}.sortable-th:hover,.rec-th-sort:hover{background:color-mix(in srgb,var(--border) 55%,var(--surface, #fff));color:inherit}.sortable-th:focus-visible,.rec-th-sort:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 70%,transparent);outline-offset:1px}.sortable-th-label,.rec-th-sort>span:first-child{color:inherit}.sortable-th-icon,.rec-th-sort-icon{font-size:.72rem;opacity:.55;line-height:1;flex-shrink:0}.sortable-th:hover .sortable-th-icon,.rec-th-sort:hover .rec-th-sort-icon{opacity:1}.sortable-th-static{cursor:default;background:transparent;border:none;padding:0;font:inherit;display:inline-flex;align-items:center;gap:.25rem}.sortable-th-tip{display:inline-flex;margin-left:.15rem}.rec-th-sort:hover .rec-th-sort-icon{opacity:.85}.rec-th-tooltip{display:inline-flex;vertical-align:middle}.rec-th-tooltip .info-tooltip-trigger{width:1.1rem;height:1.1rem;font-size:.65rem}.rec-th-static{display:inline-flex;align-items:center;gap:.25rem;font-weight:600}.rec-table thead th{vertical-align:bottom;white-space:nowrap}.rec-page .rec-tabs{margin-bottom:.5rem;gap:.3rem}.rec-page .rec-tab{font-size:.8125rem;padding:.28rem .55rem;border-radius:6px}.rec-page .rec-tab-count{font-size:.7rem;padding:.05rem .3rem}.rec-page .rec-table-toolbar{padding:.5rem .75rem .35rem;gap:.5rem}.rec-page .rec-table-toolbar-label,.rec-page .rec-table-found{font-size:11px}.rec-page .rec-table-search-input,.rec-page .rec-table-pagesize-select{font-size:.8125rem;padding:.28rem .45rem}.rec-page .rec-table-search-input{min-width:min(220px,100%)}.rec-page .table-wrap{overflow-x:hidden}.rec-page .table-wrap.table-wrap--tooltips{overflow:visible}.rec-page .rec-table{table-layout:fixed;width:100%;font-size:.8125rem}.rec-page .rec-table th,.rec-page .rec-table td{padding:.35rem .45rem;vertical-align:top}.rec-page .rec-table th{overflow:visible}.rec-page .rec-table td{overflow:hidden}.rec-page .table-wrap--tooltips .rec-table thead th{position:relative;z-index:2}.rec-page .table-wrap--tooltips .rec-table thead th:has(.info-tooltip:hover),.rec-page .table-wrap--tooltips .rec-table thead th:has(.info-tooltip:focus-within){z-index:20}.rec-page .table-wrap--tooltips .info-tooltip-bubble{z-index:200}.rec-page .rec-table .rec-col-w-created{width:7.5%}.rec-page .rec-table .rec-col-w-window{width:11%}.rec-page .rec-table .rec-col-w-direction{width:14%}.rec-page .rec-table .rec-col-w-type{width:8%}.rec-page .rec-table .rec-col-w-title{width:12%}.rec-page .rec-table .rec-col-w-why{width:16%}.rec-page .rec-table .rec-col-w-status{width:7%}.rec-page .rec-table .rec-col-w-action{width:14%}.rec-page .rec-table .rec-col-w-decision{width:12.5%}.rec-cell-ellipsis{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rec-page .rec-decision-btn{font-size:.72rem;padding:.22rem .4rem}.rec-page .rec-table .rec-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.2rem;min-width:0;width:100%}.rec-page .rec-decision-cell{gap:.2rem}.rec-page .rec-decision-btn{width:100%;justify-content:center;padding:.2rem .15rem;font-size:.68rem;white-space:nowrap}.rec-col-created{font-size:11px;white-space:nowrap;vertical-align:top;width:1%}.rec-col-created-sub{font-size:10px;color:#94a3b8;margin-top:1px}.rec-col-window{font-size:11px;vertical-align:top;line-height:1.3}.rec-col-window .rec-window-strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:#334155;font-weight:600}.rec-col-text,.rec-col-title{vertical-align:top}.rec-col-type,.rec-col-status{font-size:11px;white-space:nowrap}.rec-col-why{font-size:11px;line-height:1.35}.rec-col-action{line-height:1.35}.rec-action-primary{font-weight:600;font-size:11px;color:#1e293b;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.rec-action-secondary{display:none}.rec-page .rec-action-table-hint{display:block;margin-top:2px;font-size:10px;color:#94a3b8}.rec-action-increase .rec-action-primary{color:#0f766e}.rec-action-decrease .rec-action-primary{color:#b45309}.rec-action-review .rec-action-primary{color:#475569}.rec-page .rec-table .rec-why-preview,.rec-direction-table .rec-why-preview{display:block;width:100%;margin:0;padding:.15rem .25rem;border:none;border-radius:4px;background:transparent;color:inherit;font:inherit;font-size:inherit;line-height:1.35;text-align:left;cursor:pointer;box-shadow:none;transition:background .1s ease}.rec-why-preview-main{display:block;font-weight:500;color:#334155}.rec-why-preview-hint{display:block;margin-top:2px;font-size:10px;color:#64748b}.rec-rationale-dialog-calc{margin:.75rem 0;padding:.65rem .75rem;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0;font-size:.9rem}.rec-rationale-dialog-calc p{margin:.35rem 0 0;color:#475569}.rec-rationale-trains-wrap{margin-top:.35rem;max-height:16rem;overflow:auto}.rec-rationale-trains-table{font-size:12px}.rec-rationale-trains-table th,.rec-rationale-trains-table td{padding:.35rem .5rem}.rec-rationale-dialog-examples-note,.rec-rationale-dialog-link{font-size:.88rem;margin-top:.5rem}.rec-page .rec-table .rec-why-preview:hover,.rec-page .rec-table .rec-why-preview:focus-visible,.rec-direction-table .rec-why-preview:hover,.rec-direction-table .rec-why-preview:focus-visible{background:#f1f5f9;color:#334155}.rec-page .rec-table .rec-why-preview:focus-visible,.rec-direction-table .rec-why-preview:focus-visible{outline:1px solid #cbd5e1;outline-offset:1px}.rec-why-more{display:inline;color:#64748b;font-size:10px;white-space:nowrap}.rec-page .rec-table .rec-why-preview:hover .rec-why-more{color:#64748b;text-decoration:underline}.rec-page .rec-table button.rec-decision-btn{background:var(--card);color:var(--foreground);border:1px solid var(--border)}.rec-page .rec-table button.rec-decision-btn:hover:not(:disabled){background:#f1f5f9;color:#334155;border-color:#cbd5e1}.rec-page .rec-table button.rec-decision-btn.rec-tab-active{background:#e2e8f0;border-color:#94a3b8}.rec-rationale-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a73}.rec-rationale-dialog{width:min(58rem,96vw);max-height:min(90vh,780px);overflow:auto;padding:1.15rem 1.35rem;box-shadow:0 18px 48px #0003}.rec-rationale-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.rec-rationale-dialog-title{margin:0;font-size:1.15rem}.rec-rationale-dialog-sub{margin:.35rem 0 0;font-size:.95rem;line-height:1.4}.rec-rationale-dialog-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1.25rem;margin:0 0 1rem;font-size:.9rem}@media (min-width: 40rem){.rec-rationale-dialog-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}.rec-rationale-dialog-meta dt{margin:0;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.02em}.rec-rationale-dialog-meta dd{margin:.15rem 0 0}.rec-rationale-dialog-body{font-size:.95rem;line-height:1.5}.rec-rationale-dialog-body p{margin:0 0 .65rem}.rec-rationale-dialog-examples-label{margin:.5rem 0 .35rem;font-weight:600;font-size:.85rem;color:#64748b}.rec-rationale-dialog-examples ul{margin:0;padding-left:1.15rem}.rec-rationale-dialog-examples li{margin-bottom:.35rem;line-height:1.45;word-break:break-word}.rec-rationale-dialog-scope,.rec-rationale-dialog-fresh{font-size:.88rem;margin-top:.75rem}.rec-rationale-collection-window{margin:0 0 .5rem;font-size:.92rem}.rec-rationale-pct-note{margin-top:.35rem;font-size:.88rem}.rec-seats-trend{margin:.75rem 0 1rem;padding:.75rem 1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.rec-seats-trend-label{margin:0 0 .65rem;font-size:.88rem;font-weight:600;color:#334155}.rec-seats-trend-row{display:grid;grid-template-columns:7.5rem 1fr 2.5rem;align-items:center;gap:.5rem;margin-bottom:.45rem}.rec-seats-trend-name{font-size:.82rem;color:#64748b}.rec-seats-trend-bar-wrap{height:10px;background:#e2e8f0;border-radius:5px;overflow:hidden}.rec-seats-trend-bar{height:100%;border-radius:5px;min-width:4px;transition:width .25s ease}.rec-seats-trend-bar-median{background:#64748b}.rec-seats-trend-bar-recent{background:#0f766e}.rec-seats-trend-bar-tight{background:#c2410c}.rec-seats-trend-val{font-size:.85rem;font-weight:600;text-align:right}.rec-seats-trend-hint{margin:.5rem 0 0;font-size:.82rem}.price-alert-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.price-alert-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;font-size:.9rem}.price-alert-form{display:flex;flex-wrap:wrap;gap:.65rem 1rem;align-items:flex-end}.price-alert-form label{display:flex;flex-direction:column;gap:.2rem}.price-alert-form input,.price-alert-form select{padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem}.week-ahead-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-bottom:.25rem}.week-ahead-class-filter{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.week-ahead-table th,.week-ahead-table td{text-align:center;font-size:.82rem}.week-ahead-th{min-width:4.5rem}.week-ahead-td{font-variant-numeric:tabular-nums}.admin-dir-lead{margin:.35rem 0 0;max-width:44rem;line-height:1.5}.admin-dir-card{margin-bottom:1rem}.admin-dir-card-title{margin:0 0 1rem;font-size:1.05rem}.admin-dir-section{border:none;margin:0 0 1.1rem;padding:0}.admin-dir-section legend{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.55rem;padding:0}.admin-directions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1.25rem}.admin-directions-grid--narrow{max-width:28rem}@media (max-width: 720px){.admin-directions-grid{grid-template-columns:1fr}.admin-dir-span2{grid-column:auto}}.admin-dir-span2{grid-column:span 2}.admin-directions-grid label{display:flex;flex-direction:column;gap:.35rem}.admin-directions-grid input{padding:.5rem .65rem;border:1px solid var(--border);border-radius:8px;font-size:.95rem}.admin-dir-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;font-weight:500;color:var(--text)}.admin-dir-req{color:var(--danger, #c53030)}.admin-dir-sources{display:flex;flex-wrap:wrap;gap:1.25rem}.admin-dir-check{display:flex;align-items:center;gap:.45rem;font-size:.9rem;cursor:pointer}.admin-dir-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.25rem;padding-top:1rem;border-top:1px solid var(--border)}.admin-dir-test-result{margin:.75rem 0 0;padding:.75rem 1rem;border-radius:8px;font-size:.9rem;line-height:1.45}.admin-dir-test-result--ok{background:#22c55e1a;border:1px solid rgba(34,197,94,.35)}.admin-dir-test-result--fail{background:#ef444414;border:1px solid rgba(239,68,68,.3)}.admin-dir-test-result p{margin:.35rem 0 0}.admin-dir-rzd-names{margin:.5rem 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem}.admin-dir-apply-names{margin:0;padding:0;border:none;background:none;color:var(--accent, #3b82f6);font-size:inherit;cursor:pointer;text-decoration:underline}.admin-dir-apply-names:hover{opacity:.85}.rec-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem}.rec-tabs-compact{margin-top:.75rem;margin-bottom:0}.rec-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--foreground);font-size:.88rem;cursor:pointer}.rec-tab:hover{background:var(--muted)}.rec-tab-active{background:#e2e8f0;border-color:#94a3b8;font-weight:600}.rec-tab-count{font-size:.75rem;padding:.1rem .4rem;border-radius:999px;background:#0f172a14;font-weight:600}.users-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem 1rem;align-items:end}.users-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.users-form input,.users-form select{padding:.45rem .55rem;border-radius:6px;border:1px solid var(--border)}.users-flash{margin:0;padding:.65rem .85rem;border-radius:8px;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;font-size:.88rem;word-break:break-word}.users-edit-card{margin-bottom:1rem;border-color:#6366f159;background:#6366f10a}.users-edit-email{margin:0 0 .75rem;font-size:.9rem}.users-form--edit{align-items:end}.users-form-actions{display:flex;flex-wrap:wrap;gap:.5rem}.btn-active{border-color:var(--accent, #6366f1);background:#6366f11f}.page-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.page-stack{display:flex;flex-direction:column;gap:.25rem}.login-error{margin:0;padding:.62rem .75rem;border-radius:8px;font-size:.815rem;line-height:1.35;color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.login-submit{margin-top:.35rem;width:100%;padding:.65rem 1rem;border-radius:8px;font-weight:650;font-size:.9375rem}.login-screen{min-height:100vh;display:flex;align-items:stretch;justify-content:center;background:linear-gradient(160deg,#312e81,#4338ca 42%,#e0e7ff 42%,#f8fafc)}@media (max-width: 640px){.login-screen{flex-direction:column;background:#f8fafc;padding:1.25rem 1rem 2rem}}.login-screen-brand{flex:0 0 clamp(240px,28vw,340px);display:flex;flex-direction:column;justify-content:center;padding:2rem 1.75rem;color:#f8fafc}@media (max-width: 640px){.login-screen-brand{flex:none;text-align:center;padding:1.5rem 0 1rem;color:#0f172a;border-bottom:1px solid #e2e8f0}.login-screen-brand h1{font-size:1.35rem}.login-screen-brand-tagline{margin-left:auto;margin-right:auto;max-width:none;color:#475569}.login-screen-brand-meta>p{color:#64748b}.login-screen-brand-credit{color:#94a3b8!important}}.login-screen-brand h1{margin:0 0 .35rem;font-size:1.5rem;font-weight:750;letter-spacing:-.02em}.login-screen-brand-tagline{margin:0 0 1.1rem;font-size:.95rem;font-weight:500;line-height:1.45;color:#e0e7ff;max-width:16rem}.login-screen-brand-meta{display:flex;flex-direction:column;gap:.2rem}.login-screen-brand-meta>p{margin:0;font-size:.85rem;color:#c7d2fe;font-weight:500}.login-screen-brand-credit{margin:0;font-size:.72rem;font-weight:480;line-height:1.35;color:#a5b4fc;opacity:.88}.login-screen-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem;min-height:min(560px,100vh)}.login-panel{width:100%;max-width:400px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:1.75rem 1.85rem;box-shadow:0 10px 40px #0f172a1f,0 2px 8px #0f172a0f}.login-panel-head{margin-bottom:1.35rem}.login-panel-head h2{margin:0 0 .35rem;font-size:1.2rem;font-weight:700}.login-panel-head .muted{margin:0;font-size:.875rem}.login-panel-form{display:flex;flex-direction:column;gap:1rem}.login-field{display:flex;flex-direction:column;gap:.38rem}.login-field span{font-size:.8125rem;font-weight:600;color:#334155}.login-field input{width:100%;padding:.6rem .75rem;border:1px solid #cbd5e1;border-radius:8px;font:inherit;transition:border-color .15s ease,box-shadow .15s ease}.login-field input:hover{border-color:#94a3b8}.login-field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.login-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}.tab{background:var(--muted);color:var(--muted-foreground);padding:.4rem .85rem;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;font-weight:600;font-size:.8125rem;transition:background .12s ease,color .12s ease,box-shadow .12s ease}.tab:hover{background:#e4e4e7;color:var(--foreground)}.tab-active{background:var(--card);color:var(--foreground);border-color:#6366f159;box-shadow:var(--shadow-xs),inset 0 -2px 0 0 var(--primary)}.tab-active:hover{background:var(--card);color:var(--foreground)}.tab-neutral.tab-active{border-color:#e4e4e7;box-shadow:var(--shadow-xs)}.tab-neutral.tab-active:hover{background:var(--card)}.segmented-tabs-wrap{display:flex;justify-content:center;margin-bottom:1.15rem}.segmented-tabs{position:relative;display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px;padding:4px;background:#f4f4f5;border-radius:999px;max-width:100%}.segmented-tabs__indicator{position:absolute;top:4px;bottom:4px;left:0;border-radius:999px;background:#fff;box-shadow:0 1px 2px #0f172a0f,0 1px 3px #0f172a14;transition:transform .22s cubic-bezier(.4,0,.2,1),width .22s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:0}.segmented-tabs__btn{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.4rem;border:none;background:transparent;color:#52525b;font-weight:600;font-size:.8125rem;padding:.42rem .9rem;border-radius:999px;cursor:pointer;white-space:nowrap;transition:color .15s ease,background .15s ease;box-shadow:none}.segmented-tabs__btn:hover{background:#e2e8f0;color:#18181b}.segmented-tabs__btn--active:hover{background:transparent;color:#09090b}.segmented-tabs__badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:#e4e4e7;color:#3f3f46;font-size:.6875rem;font-weight:700;line-height:1}.segmented-tabs__btn--active .segmented-tabs__badge{background:#f4f4f5}.segmented-tabs__btn:focus-visible{outline:2px solid #a1a1aa;outline-offset:2px}.chart-overflow-visible{overflow:visible}.chart-overflow-visible .recharts-responsive-container,.chart-overflow-visible .recharts-wrapper,.chart-overflow-visible svg{overflow:visible!important}.rzd-by-train-chart .rzd-by-train-chart__bar-seats .recharts-rectangle{fill:#94a3b8!important;stroke:#64748b!important}.rzd-by-train-chart .rzd-by-train-chart__bar-price .recharts-rectangle{stroke:none}.table-wrap--tooltips{overflow:visible}.table-wrap--tooltips .table-scroll-x{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.table-wrap--tooltips .table-scroll-x table{width:max-content;min-width:100%}.rzd-class-daily-table-wrap.table-wrap--tooltips{overflow:visible}.rzd-class-daily-table-wrap .rzd-class-daily-table{width:100%;max-width:100%;table-layout:auto}.rzd-class-daily-table th{overflow:visible;white-space:nowrap;vertical-align:bottom}.rzd-class-daily-table td{overflow:visible;position:relative}.rzd-class-daily-table td.rzd-class-daily-table__collect-cell{font-size:12px;line-height:1.35;max-width:9.5rem;white-space:normal;word-break:break-word}.rzd-class-daily-table td:has(.info-tooltip:hover),.rzd-class-daily-table td:has(.info-tooltip:focus-within){z-index:25}.rzd-class-daily-table__day-link{background:none;border:none;padding:2px 6px;margin:-2px -6px;color:#0369a1;cursor:pointer;font-weight:600;text-decoration:underline;font:inherit;border-radius:4px}.rzd-class-daily-table__collect-refresh{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.5rem;height:1.5rem;padding:0;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#0369a1;cursor:pointer}.rzd-class-daily-table__collect-refresh:hover:not(:disabled){background:#e0f2fe;border-color:#7dd3fc}.rzd-class-daily-table__collect-refresh:disabled{opacity:.45;cursor:not-allowed}.rzd-class-daily-table__collect-inner{display:inline-flex;align-items:flex-start;gap:4px}.rzd-class-daily-table__spin{animation:rzd-class-daily-spin .9s linear infinite}@keyframes rzd-class-daily-spin{to{transform:rotate(360deg)}}.rzd-class-daily-table__day-link:hover,.rzd-class-daily-table__day-link:focus-visible{color:#475569;background:#e2e8f0;outline:none}.rzd-class-daily-table tr.rzd-class-daily-table__day-active td{background-color:#f8fafc}.rzd-class-daily-table tr.rzd-class-daily-table__day-active td.rzd-class-daily-table__day-cell--active{box-shadow:inset 3px 0 #94a3b8}.rzd-class-daily-table-wrap .info-tooltip-bubble{z-index:300}.rzd-class-daily-table thead th:has(.info-tooltip:hover),.rzd-class-daily-table thead th:has(.info-tooltip:focus-within){z-index:30}.table-wrap--seat-outcomes{overflow-x:auto}.table-wrap--raw-offers{overflow-x:auto;width:100%;max-width:100%;box-sizing:border-box}.table-wrap--raw-offers .raw-offers-table{width:100%;table-layout:auto}.table-wrap--raw-offers .raw-offers-table th{white-space:nowrap;vertical-align:bottom}.table-wrap--raw-offers .raw-offers-table td{white-space:nowrap}.table-wrap--raw-offers .raw-offers-table thead th:has(.info-tooltip:hover),.table-wrap--raw-offers .raw-offers-table thead th:has(.info-tooltip:focus-within){z-index:2}.table-wrap--seat-outcomes table{width:100%;table-layout:auto}.table-wrap--seat-outcomes th{white-space:normal;line-height:1.35;vertical-align:bottom}.table-wrap--seat-outcomes td{white-space:nowrap}.info-tooltip--below .info-tooltip-bubble{bottom:auto;top:calc(100% + 6px)}.info-tooltip--below .info-tooltip-bubble:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#1f1f23}.info-tooltip-bubble--portaled{position:fixed;bottom:auto;right:auto;width:max-content;max-width:min(360px,calc(100vw - 16px));height:auto;opacity:1;pointer-events:auto;z-index:10000;display:block;box-sizing:border-box}.info-tooltip-bubble--portaled:after{content:none}.info-tooltip-bubble--portaled-above:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1f1f23}.info-tooltip-bubble--portaled-below:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#1f1f23}header:has(+.page-banner-slot){border-bottom:none;padding-bottom:.35rem}.page-banner-slot{margin:0 0 .45rem;font-size:.82rem;line-height:1.45}.collection-status{margin:0 0 1rem;padding:0 0 .35rem}.collection-progress-track{height:5px;border-radius:3px;background:var(--muted);overflow:hidden;margin-bottom:.45rem}.collection-progress-track-active{background:var(--primary-soft)}.collection-progress-indeterminate{height:100%;width:35%;border-radius:3px;background:linear-gradient(90deg,var(--violet),var(--primary),var(--violet));animation:collection-indeterminate 1.1s ease-in-out infinite}@keyframes collection-indeterminate{0%{transform:translate(-120%);opacity:.85}50%{opacity:1}to{transform:translate(320%);opacity:.85}}.collection-status-row{font-size:.875rem;font-weight:500;color:var(--foreground);margin-bottom:.25rem}.collection-status-meta{font-size:.8rem;line-height:1.45;display:flex;flex-wrap:wrap;gap:.35rem .5rem;align-items:baseline}.collection-status-sep{-webkit-user-select:none;user-select:none;color:#cbd5e1}.pref-toggle{display:flex;align-items:flex-start;gap:.65rem;cursor:pointer;-webkit-user-select:none;user-select:none}.pref-toggle input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.pref-toggle-track{flex-shrink:0;position:relative;width:2.5rem;height:1.375rem;margin-top:.1rem;border-radius:999px;background:var(--border-strong);transition:background .15s ease}.pref-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:1.125rem;height:1.125rem;border-radius:50%;background:#fff;box-shadow:var(--shadow-xs);transition:transform .15s ease}.pref-toggle input:checked+.pref-toggle-track{background:var(--primary)}.pref-toggle input:checked+.pref-toggle-track:after{transform:translate(1.125rem)}.pref-toggle input:focus-visible+.pref-toggle-track{outline:2px solid var(--ring);outline-offset:2px}.pref-toggle-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.pref-toggle-label{font-size:.9rem;font-weight:600;color:var(--foreground)}.pref-toggle-hint{font-size:.82rem;line-height:1.45}
