:root{--text:#475569;--text-h:#0f172a;--text-muted:#64748b;--bg:#f8fafc;--surface:#fff;--surface-muted:#f1f5f9;--border:#e2e8f0;--primary:#2563eb;--primary-dark:#1d4ed8;--primary-bg:#2563eb1a;--primary-ring:#2563eb2e;--success:#15803d;--success-bg:#15803d1a;--danger:#b91c1c;--danger-bg:#b91c1c14;--danger-border:#b91c1c33;--shadow:0 10px 30px #0f172a14;--sans:"Segoe UI", system-ui, -apple-system, sans-serif;--heading:"Segoe UI", system-ui, -apple-system, sans-serif;--mono:ui-monospace, "Cascadia Code", Consolas, monospace;font:16px/1.5 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{min-width:320px;margin:0}#root{min-height:100svh}h1,h2,h3{font-family:var(--heading);color:var(--text-h);font-weight:600}button,input{font:inherit}.auth-loading{min-height:100svh;color:var(--text-muted);place-items:center;gap:12px;display:grid}.auth-loading__spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.admin-layout{background:var(--bg);grid-template-columns:272px 1fr;min-height:100svh;display:grid}.admin-sidebar{color:#cbd5e1;background:linear-gradient(#0f172a 0%,#111827 100%);border-right:1px solid #ffffff0f;height:100svh;position:sticky;top:0}.admin-sidebar__inner{flex-direction:column;height:100%;padding:20px 16px;display:flex}.admin-sidebar__brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;margin-bottom:20px;padding:8px 10px 24px;display:flex}.admin-sidebar__logo{color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:15px;font-weight:700;display:grid;box-shadow:0 8px 20px #2563eb59}.admin-sidebar__brand-text strong{color:#f8fafc;letter-spacing:-.01em;font-size:16px;font-weight:600;display:block}.admin-sidebar__brand-text span{color:#94a3b8;margin-top:2px;font-size:12px;display:block}.admin-sidebar__nav{flex:1;min-height:0;overflow-y:auto}.admin-sidebar__section-label{color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px;padding:0 12px;font-size:11px;font-weight:600}.admin-sidebar__nav-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.admin-sidebar__link{color:#94a3b8;border:1px solid #0000;border-radius:10px;align-items:center;gap:12px;width:100%;padding:11px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:flex}.admin-sidebar__link:hover{color:#e2e8f0;background:#ffffff0f}.admin-sidebar__link--active{color:#f8fafc;background:#2563eb2e;border-color:#3b82f659;box-shadow:inset 3px 0 #3b82f6}.admin-sidebar__link--disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.admin-sidebar__icon{flex-shrink:0;place-items:center;width:20px;height:20px;display:grid}.admin-sidebar__icon svg{width:18px;height:18px}.admin-sidebar__link-text{text-align:left;flex:1;min-width:0}.admin-sidebar__badge{color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;background:#ffffff14;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:600}.admin-sidebar__footer{border-top:1px solid #ffffff14;gap:10px;margin-top:auto;padding-top:16px;display:grid}.admin-sidebar__profile{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.admin-sidebar__avatar{color:#bfdbfe;background:#2563eb40;border:2px solid #3b82f666;border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:13px;font-weight:700;display:grid}.admin-sidebar__profile-info{text-align:left;min-width:0}.admin-sidebar__profile-info strong{color:#f1f5f9;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;display:block;overflow:hidden}.admin-sidebar__profile-info span{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;display:block;overflow:hidden}.admin-sidebar__profile-info em{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:11px;font-style:normal;display:block;overflow:hidden}.admin-sidebar__logout{color:#e2e8f0;width:100%;font:inherit;cursor:pointer;background:#ffffff08;border:1px solid #ffffff1a;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:flex}.admin-sidebar__logout:hover{color:#fca5a5;background:#ef44441f;border-color:#ef44444d}.admin-main{flex-direction:column;min-width:0;display:flex}.admin-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:28px 32px 0;display:flex}.admin-header__eyebrow{color:var(--text-muted);margin:0 0 4px;font-size:14px}.admin-header h1{letter-spacing:-.02em;margin:0;font-size:28px}.admin-header__meta{color:var(--text-muted);flex-direction:column;align-items:flex-end;gap:6px;font-size:14px;display:flex}.status-pill{background:var(--surface-muted);color:var(--text);border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-pill--active{background:var(--success-bg);color:var(--success)}.admin-content{padding:24px 32px 32px}@media (width<=900px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{height:auto;position:relative}.admin-sidebar__inner{padding-bottom:16px}.admin-sidebar__nav-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-sidebar__link{flex-direction:column;align-items:flex-start;gap:8px;min-height:84px;padding:12px}.admin-sidebar__link--active{box-shadow:inset 0 3px #3b82f6}.admin-sidebar__badge{align-self:flex-start}.admin-header{flex-direction:column;padding-inline:20px}.admin-header__meta{align-items:flex-start}.admin-content{padding-inline:20px}}@media (width<=520px){.admin-sidebar__nav-list{grid-template-columns:1fr}.admin-sidebar__link{flex-direction:row;align-items:center;min-height:auto}.admin-sidebar__link--active{box-shadow:inset 3px 0 #3b82f6}}.dashboard{gap:20px;display:grid}.dashboard__toolbar{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.dashboard__eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:13px}.dashboard__title{letter-spacing:-.02em;margin:0;font-size:22px}.dashboard__actions{flex-wrap:wrap;gap:10px;display:flex}.dashboard__kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.kpi-card{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:14px;padding:20px;transition:box-shadow .2s,transform .2s}.kpi-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.kpi-card__top{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.kpi-card__label{color:var(--text-muted);margin:0;font-size:13px;font-weight:500}.kpi-card__badge{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.kpi-card__badge--up{background:var(--success-bg);color:var(--success)}.kpi-card__badge--down{background:var(--danger-bg);color:var(--danger)}.kpi-card__value{color:var(--text-h);letter-spacing:-.03em;margin:0;font-size:30px;font-weight:700;line-height:1.1}.kpi-card__hint{color:var(--text-muted);margin:8px 0 0;font-size:12px}.insight-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.insight-card{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:12px;align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.insight-card--info{background:linear-gradient(135deg, #2563eb0f, var(--surface));border-color:#2563eb40}.insight-card--success{background:linear-gradient(135deg, #16a34a0f, var(--surface));border-color:#16a34a40}.insight-card--warning{background:linear-gradient(135deg, #f59e0b14, var(--surface));border-color:#f59e0b4d}.insight-card__icon{background:var(--surface-muted);border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:15px;display:grid}.insight-card h3{margin:0 0 4px;font-size:14px;font-weight:600}.insight-card p{color:var(--text);margin:0;font-size:13px;line-height:1.5}.dashboard__charts{gap:16px;display:grid}.dashboard__charts--main{grid-template-columns:1.6fr 1fr}.dashboard__charts--secondary{grid-template-columns:1fr 1fr}.dashboard-panel{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:14px;padding:20px}.dashboard-panel--wide{min-width:0}.dashboard-panel--table{padding-bottom:12px}.dashboard-panel__header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.dashboard-panel__header h2{margin:0 0 4px;font-size:16px}.dashboard-panel__header p{color:var(--text-muted);margin:0;font-size:13px}.dashboard-panel__tag{background:var(--primary-bg);color:var(--primary-dark);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.chart-wrap{width:100%;min-height:240px}.chart-tooltip{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:10px;padding:10px 12px;font-size:12px}.chart-tooltip__title{color:var(--text-h);margin:0 0 6px;font-weight:600}.chart-tooltip p{color:var(--text);margin:2px 0}.fleet-chart{gap:8px;display:grid}.fleet-chart__donut{position:relative}.fleet-chart__center{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.fleet-chart__center strong{color:var(--text-h);font-size:28px;line-height:1}.fleet-chart__center span{color:var(--text-muted);font-size:12px}.fleet-chart__legend{gap:10px;margin:0;padding:0;list-style:none;display:grid}.fleet-chart__legend li{color:var(--text);grid-template-columns:10px 1fr auto auto;align-items:center;gap:10px;font-size:13px;display:grid}.fleet-chart__dot{border-radius:50%;width:10px;height:10px}.fleet-chart__legend strong{color:var(--text-h);font-size:14px}.fleet-chart__legend em{color:var(--text-muted);font-size:12px;font-style:normal}.btn-export{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;font:inherit;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.btn-export--secondary{background:var(--surface);color:var(--text-h);border:1px solid var(--border)}.btn-export--secondary:hover{background:var(--surface-muted)}.bookings-table-wrap{gap:12px;display:grid}.bookings-table__toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.bookings-table__toolbar p{color:var(--text-muted);margin:0;font-size:13px}.bookings-table__scroll{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.bookings-table{border-collapse:collapse;width:100%;font-size:13px}.bookings-table th,.bookings-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px}.bookings-table th{background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.bookings-table tbody tr:hover{background:#2563eb08}.bookings-table tbody tr:last-child td{border-bottom:none}.bookings-table__id{font-family:var(--mono,monospace);color:var(--primary-dark);font-weight:600}.bookings-table__time{color:var(--text-muted)}.status-tag--confirmed{background:var(--success-bg);color:var(--success)}.status-tag--cancelled{background:var(--danger-bg);color:var(--danger)}@media (width<=1200px){.dashboard__kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard__charts--main,.dashboard__charts--secondary,.insight-grid{grid-template-columns:1fr}}@media (width<=700px){.dashboard__toolbar{flex-direction:column;align-items:flex-start}.dashboard__kpis{grid-template-columns:1fr}.dashboard__actions{width:100%}.dashboard__actions .btn-export{flex:1}}.bus-admins-page{gap:16px;display:grid}.bus-admins-page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.bus-admins-page__eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:13px}.bus-admins-page__title{letter-spacing:-.02em;margin:0;font-size:22px}.bus-admins-page__subtitle{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.6}.bus-admins-page__filters,.bus-admins-page__actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.bus-admins-page__success{background:var(--success-bg);color:var(--success);border:1px solid #15803d40;border-radius:10px;padding:12px 14px;font-size:14px}.bus-admins-filter{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:inline-flex}.bus-admins-filter input{width:16px;height:16px}.bus-admins-page__loading{min-height:240px;color:var(--text-muted);place-items:center;gap:12px;display:grid}.bus-admins-page__error{color:var(--danger);background:#b91c1c14;border:1px solid #b91c1c40;border-radius:12px;padding:14px 16px}.bus-admins-table-wrap{gap:12px;display:grid}.bus-admins-table__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.bus-admins-table__left{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.bus-admins-table__count{color:var(--text-muted);margin:0;font-size:13px}.bus-admins-table__search{align-items:center;gap:10px;display:flex}.bus-admins-table__search-label{color:var(--text-muted);font-size:13px;font-weight:600}.bus-admins-table__search input{border:1px solid var(--border);background:var(--bg);width:min(420px,70vw);color:var(--text-h);font:inherit;border-radius:10px;padding:10px 12px}.btn-export{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;font:inherit;cursor:pointer;white-space:nowrap;border:none;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;transition:opacity .15s}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;font:inherit;cursor:pointer;white-space:nowrap;border:none;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;transition:opacity .15s}.bus-admin-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.bus-admin-form__field{text-align:left;gap:6px;display:grid}.bus-admin-form__field--full{grid-column:1/-1}.bus-admin-form__field span{color:var(--text-h);font-size:13px;font-weight:600}.bus-admin-form__field input,.bus-admin-form__field select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:10px 12px}.bus-admin-form__field input:focus,.bus-admin-form__field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.bus-admin-form__checkbox{color:var(--text-h);cursor:pointer;grid-column:1/-1;align-items:center;gap:10px;font-size:14px;display:flex}.bus-admin-form__checkbox input{width:16px;height:16px}.bus-admin-form__error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);border-radius:10px;margin-bottom:14px;padding:12px 14px;font-size:14px}.bus-admins-table__scroll{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.bus-admins-table{border-collapse:collapse;width:100%;font-size:13px}.bus-admins-table th,.bus-admins-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px}.bus-admins-table th{background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.bus-admins-table tbody tr:last-child td{border-bottom:none}.bus-admins-table__empty{text-align:center;color:var(--text-muted);padding:28px 14px!important}.bus-admins-page__pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.bus-admins-page__pagination p{color:var(--text-muted);margin:0;font-size:13px}.bus-admins-page__pagination-actions{gap:10px;display:flex}.bus-admins-table__id{font-family:var(--mono,monospace);color:var(--primary-dark);font-weight:600}.status-tag--verified{background:var(--success-bg);color:var(--success);border:1px solid #15803d33}.status-tag--unverified{color:#b45309;background:#f59e0b1f;border:1px solid #f59e0b38}@media (width<=700px){.bus-admins-page__actions{flex-direction:column;align-items:stretch;width:100%}.bus-admins-page__filters{width:100%}.bus-admins-filter{flex:1;justify-content:center}.bus-admin-form__grid{grid-template-columns:1fr}.modal-panel__actions{flex-direction:column-reverse}.modal-panel__actions .btn-primary,.modal-panel__actions .btn-secondary{width:100%}}.bus-detail-page{gap:20px;display:grid}.bus-detail-loading,.bus-detail-error{min-height:320px;color:var(--text-muted);place-items:center;gap:12px;display:grid}.bus-detail-error{color:var(--danger);background:#b91c1c14;border:1px solid #b91c1c40;border-radius:12px;min-height:auto;padding:16px}.bus-detail-hero{border:1px solid var(--border);background:linear-gradient(135deg, #2563eb14, transparent 55%), var(--surface);box-shadow:var(--shadow);text-align:left;border-radius:18px;gap:18px;padding:24px;display:grid}.bus-detail-back{color:var(--primary-dark);margin-bottom:12px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.bus-detail-back:hover{text-decoration:underline}.bus-detail-hero__eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:13px}.bus-detail-hero__title-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.bus-detail-hero h1{letter-spacing:-.03em;margin:0;font-size:30px}.bus-detail-hero__reg{font-family:var(--mono,monospace);color:var(--primary-dark);margin:6px 0 0;font-weight:700}.bus-detail-hero__stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.bus-detail-hero__stats div{border:1px solid var(--border);background:#ffffffb3;border-radius:12px;padding:14px 16px}.bus-detail-hero__stats span{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.bus-detail-hero__stats strong{color:var(--text-h);font-size:18px}.bus-detail-layout{grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;gap:20px;display:grid}.bus-detail-sidebar{gap:16px;display:grid}.bus-detail-main{min-width:0}.bus-detail-card{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:16px;padding:22px}.bus-detail-card h2{margin:0 0 16px;font-size:18px}.bus-detail-card__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.bus-detail-card__header h2{margin:0}.bus-detail-card__header span{color:var(--text-muted);font-size:13px}.bus-detail-owner{align-items:flex-start;gap:14px;display:flex}.bus-detail-owner__avatar{background:var(--primary-bg);width:52px;height:52px;color:var(--primary-dark);border-radius:14px;flex-shrink:0;place-items:center;font-weight:700;display:grid}.bus-detail-owner strong{color:var(--text-h);font-size:16px;display:block}.bus-detail-owner p{color:var(--text-muted);margin:4px 0 0;font-size:14px}.bus-detail-list{gap:12px;margin:0;display:grid}.bus-detail-list--cols{grid-template-columns:repeat(2,minmax(0,1fr))}.bus-detail-item dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:12px;font-weight:600}.bus-detail-item dd{color:var(--text-h);margin:4px 0 0;font-size:15px;font-weight:500}.bus-detail-badge{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.bus-detail-badge--active,.bus-detail-badge--verified{background:var(--success-bg);color:var(--success)}.bus-detail-badge--inactive,.bus-detail-badge--pending{color:#b45309;background:#f59e0b1f}.bus-detail-card--compact h2{margin-bottom:12px}.bus-detail-card--empty-route{text-align:center;place-content:center;min-height:280px;display:grid}.bus-doc-list{gap:8px;display:grid}.bus-doc-row{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.bus-doc-card{border:1px solid var(--border);background:var(--bg);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px;display:flex}.bus-doc-card strong{color:var(--text-h);display:block}.bus-doc-card p{color:var(--text);margin:4px 0 0;font-size:14px}.bus-doc-card__meta{color:var(--text-muted)!important;font-size:12px!important}.bus-doc-card a{color:var(--primary-dark);white-space:nowrap;font-size:13px;font-weight:600;text-decoration:none}.bus-doc-card a:hover{text-decoration:underline}.bus-detail-empty{color:var(--text-muted);margin:0;font-size:14px}.bus-doc-row strong{color:var(--text-h);font-size:14px;display:block}.bus-doc-row p{color:var(--text);margin:2px 0 0;font-size:13px}.bus-doc-row a{color:var(--primary-dark);white-space:nowrap;font-size:13px;font-weight:600;text-decoration:none}.bus-doc-row a:hover{text-decoration:underline}@media (width<=1100px){.bus-detail-layout{grid-template-columns:1fr}.bus-detail-main{order:-1}}@media (width<=900px){.bus-detail-hero__stats,.bus-detail-list--cols{grid-template-columns:1fr}}.buses-page{gap:16px;display:grid}.buses-page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.buses-page__eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:13px}.buses-page__title{letter-spacing:-.02em;margin:0;font-size:22px}.buses-page__subtitle{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.6}.buses-page__add-link{align-items:center;text-decoration:none;display:inline-flex}.buses-page__success{background:var(--success-bg);color:var(--success);border:1px solid #15803d40;border-radius:10px;padding:12px 14px;font-size:14px}.buses-page__filters{grid-template-columns:1.4fr 1fr;gap:14px;display:grid}.buses-page__search,.buses-page__owner-filter{text-align:left;gap:6px;display:grid}.buses-page__search span,.buses-page__owner-filter span{color:var(--text-h);font-size:13px;font-weight:600}.buses-page__search input,.buses-page__owner-filter select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:10px 12px}.buses-page__loading{min-height:240px;color:var(--text-muted);place-items:center;gap:12px;display:grid}.buses-page__error{color:var(--danger);background:#b91c1c14;border:1px solid #b91c1c40;border-radius:12px;padding:14px 16px}.buses-page__pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.buses-page__pagination p{color:var(--text-muted);margin:0;font-size:13px}.buses-page__pagination-actions{gap:10px;display:flex}.buses-table-wrap{gap:12px;display:grid}.buses-table__toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.buses-table__count{color:var(--text-muted);margin:0;font-size:13px}.buses-table__scroll{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.buses-table{border-collapse:collapse;width:100%;font-size:13px}.buses-table th,.buses-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px}.buses-table th{background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.buses-table tbody tr:last-child td{border-bottom:none}.buses-table__row:hover{background:#2563eb0a}.buses-table__link{color:inherit;font-weight:inherit;text-decoration:none}.buses-table__link:hover{color:var(--primary-dark);text-decoration:underline}.buses-table__name{color:var(--text-h);font-weight:600}.buses-table__reg{font-family:var(--mono,monospace);color:var(--primary-dark);font-weight:600}.buses-table__owner{color:var(--text-h);font-weight:500;display:block}.buses-table__company{color:var(--text-muted);margin-top:2px;font-size:12px;display:block}.buses-table__time{color:var(--text-muted)}.buses-table__empty{text-align:center;color:var(--text-muted);padding:28px 14px!important}.status-tag{border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.status-tag--active{background:var(--success-bg);color:var(--success);border:1px solid #15803d33}.status-tag--inactive{color:#b45309;background:#f59e0b1f;border:1px solid #f59e0b38}@media (width<=700px){.buses-page__filters{grid-template-columns:1fr}}.cities-page{gap:16px;display:grid}.cities-page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.cities-page__eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:13px}.cities-page__title{letter-spacing:-.02em;margin:0;font-size:22px}.cities-page__subtitle{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.6}.cities-page__filters{grid-template-columns:1.4fr 1fr;gap:14px;display:grid}.cities-page__search,.cities-page__state-filter{text-align:left;gap:6px;display:grid}.cities-page__search span,.cities-page__state-filter span{color:var(--text-h);font-size:13px;font-weight:600}.cities-page__search input,.cities-page__state-filter select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:10px 12px}.cities-page__success{background:var(--success-bg);color:var(--success);border:1px solid #15803d40;border-radius:10px;padding:12px 14px;font-size:14px}.cities-page__loading{min-height:240px;color:var(--text-muted);place-items:center;gap:12px;display:grid}.cities-page__error{color:var(--danger);background:#b91c1c14;border:1px solid #b91c1c40;border-radius:12px;padding:14px 16px}.cities-page__pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.cities-page__pagination p{color:var(--text-muted);margin:0;font-size:13px}.cities-page__pagination-actions{gap:10px;display:flex}.cities-table-wrap{gap:12px;display:grid}.cities-table__toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.cities-table__count{color:var(--text-muted);margin:0;font-size:13px}.cities-table__scroll{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.cities-table{border-collapse:collapse;width:100%;font-size:13px}.cities-table th,.cities-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px}.cities-table th{background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.cities-table tbody tr:last-child td{border-bottom:none}.cities-table__name{color:var(--text-h);font-weight:600}.cities-table__time{color:var(--text-muted)}.cities-table__empty{text-align:center;color:var(--text-muted);padding:28px 14px!important}.btn-export,.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;font:inherit;cursor:pointer;white-space:nowrap;border:none;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;transition:opacity .15s}.btn-export:hover,.btn-primary:hover:not(:disabled){opacity:.92}.btn-secondary{border:1px solid var(--border);background:var(--surface);color:var(--text-h);font:inherit;cursor:pointer;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600}.city-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.city-form__field{text-align:left;gap:6px;display:grid}.city-form__field span{color:var(--text-h);font-size:13px;font-weight:600}.city-form__field input,.city-form__field select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:10px 12px}.city-form__field input:focus,.city-form__field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.city-form__error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);border-radius:10px;margin-bottom:14px;padding:12px 14px;font-size:14px}@media (width<=700px){.cities-page__filters,.city-form__grid{grid-template-columns:1fr}.modal-panel__actions{flex-direction:column-reverse}.modal-panel__actions .btn-primary,.modal-panel__actions .btn-secondary{width:100%}}.bus-schedules-page{gap:16px;display:grid}.bus-schedules-page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.bus-schedules-page__eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:13px}.bus-schedules-page__title{letter-spacing:-.02em;margin:0;font-size:22px}.bus-schedules-page__subtitle{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.6}.bus-schedules-page__filters{grid-template-columns:1.4fr 1fr;gap:14px;display:grid}.bus-schedules-page__search,.bus-schedules-page__status-filter{text-align:left;gap:6px;display:grid}.bus-schedules-page__search span,.bus-schedules-page__status-filter span{color:var(--text-h);font-size:13px;font-weight:600}.bus-schedules-page__search input,.bus-schedules-page__status-filter select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:10px 12px}.bus-schedules-page__success{background:var(--success-bg);color:var(--success);border:1px solid #15803d40;border-radius:10px;padding:12px 14px;font-size:14px}.bus-schedules-page__loading{min-height:240px;color:var(--text-muted);place-items:center;gap:12px;display:grid}.bus-schedules-page__error{color:var(--danger);background:#b91c1c14;border:1px solid #b91c1c40;border-radius:12px;padding:14px 16px}.bus-schedules-page__pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.bus-schedules-page__pagination p{color:var(--text-muted);margin:0;font-size:13px}.bus-schedules-page__pagination-actions{gap:10px;display:flex}.bus-schedules-table-wrap{gap:12px;display:grid}.bus-schedules-table__toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.bus-schedules-table__count{color:var(--text-muted);margin:0;font-size:13px}.bus-schedules-table__scroll{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.bus-schedules-table{border-collapse:collapse;width:100%;font-size:13px}.bus-schedules-table th,.bus-schedules-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px}.bus-schedules-table th{background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.bus-schedules-table tbody tr:last-child td{border-bottom:none}.bus-schedules-table__name{color:var(--text-h);font-weight:600}.bus-schedules-table__link{color:var(--primary);font-weight:600;text-decoration:none}.bus-schedules-table__link:hover{text-decoration:underline}.bus-schedules-table__action-link{color:var(--primary);white-space:nowrap;font-size:13px;font-weight:600;text-decoration:none}.bus-schedules-table__action-link:hover{text-decoration:underline}.bus-schedules-table__time{color:var(--text-muted)}.bus-schedules-table__rejection{text-overflow:ellipsis;max-width:180px;color:var(--danger);white-space:nowrap;margin-top:4px;font-size:11px;display:block;overflow:hidden}.bus-schedules-table__empty{text-align:center;color:var(--text-muted);padding:28px 14px!important}.status-tag--approved{color:#15803d;background:#15803d1f}.status-tag--rejected{color:#b91c1c;background:#b91c1c1f}.status-tag--bookable{color:#15803d;background:#15803d1f}.status-tag--inactive{background:var(--surface-muted);color:var(--text-muted)}.btn-export,.btn-primary,.btn-secondary{font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600}.btn-secondary:disabled,.btn-primary:disabled{opacity:.7;cursor:not-allowed}.bus-schedule-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.bus-schedule-form__field{text-align:left;gap:6px;display:grid}.bus-schedule-form__field--full{grid-column:1/-1}.bus-schedule-form__field span{color:var(--text-h);font-size:13px;font-weight:600}.bus-schedule-form__field input,.bus-schedule-form__field select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:10px 12px}.bus-schedule-form__field input:focus,.bus-schedule-form__field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.bus-schedule-form__error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);border-radius:10px;margin-bottom:14px;padding:12px 14px;font-size:14px}@media (width<=700px){.bus-schedules-page__filters,.bus-schedule-form__grid{grid-template-columns:1fr}.modal-panel__actions{flex-direction:column-reverse}.modal-panel__actions .btn-primary,.modal-panel__actions .btn-secondary{width:100%}}.schedule-pricing-page{gap:16px;display:grid}.schedule-pricing-page__loading{min-height:240px;color:var(--text-muted);place-items:center;gap:12px;display:grid}.schedule-pricing-page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.schedule-pricing-page__back{color:var(--primary);margin-bottom:8px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.schedule-pricing-page__back:hover{text-decoration:underline}.schedule-pricing-page__eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:13px}.schedule-pricing-page__title{letter-spacing:-.02em;margin:0;font-size:22px}.schedule-pricing-page__subtitle{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.6}.schedule-pricing-page__form{gap:16px;display:grid}.schedule-pricing-page__toolbar{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;padding:14px 16px;display:flex}.schedule-pricing-page__field{text-align:left;gap:6px;min-width:180px;display:grid}.schedule-pricing-page__field span{color:var(--text-h);font-size:13px;font-weight:600}.schedule-pricing-page__field input,.schedule-pricing-page__field select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:10px 12px}.schedule-pricing-page__stats{color:var(--text-muted);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.schedule-pricing-page__stats span{background:var(--surface-muted);border-radius:999px;padding:6px 10px}.schedule-pricing-page__lock-badge{font-weight:700;color:var(--primary)!important;background:#2563eb1f!important}.segment-matrix-wrap--locked .segment-matrix__cell{background:var(--surface-muted)}.segment-matrix__value{min-width:72px;color:var(--text-h);font-weight:600;display:inline-block}.schedule-pricing-page__pattern{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;padding:16px}.schedule-pricing-page__pattern h3{margin:0 0 4px;font-size:15px}.schedule-pricing-page__pattern p{color:var(--text-muted);margin:0 0 12px;font-size:13px}.schedule-pricing-page__pattern-fields{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.schedule-pricing-page__error{color:var(--danger);background:#b91c1c14;border:1px solid #b91c1c40;border-radius:12px;padding:14px 16px}.schedule-pricing-page__success{background:var(--success-bg);color:var(--success);border:1px solid #15803d40;border-radius:10px;padding:12px 14px;font-size:14px}.schedule-pricing-page__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.schedule-pricing-page__progress{color:var(--text-muted);margin:0;font-size:13px}.segment-matrix-wrap{gap:10px;display:grid}.segment-matrix__hint{color:var(--text-muted);margin:0;font-size:13px}.segment-matrix__empty{border:1px dashed var(--border);color:var(--text-muted);text-align:center;border-radius:12px;margin:0;padding:20px}.segment-matrix__scroll{border:1px solid var(--border);border-radius:12px;max-height:70vh;overflow:auto}.segment-matrix{border-collapse:collapse;width:100%;font-size:13px}.segment-matrix th,.segment-matrix td{border:1px solid var(--border);text-align:center;vertical-align:middle;padding:10px 12px}.segment-matrix__corner,.segment-matrix__row-head{z-index:2;background:var(--surface-muted);text-align:left;min-width:140px;color:var(--text-h);font-weight:600;position:sticky;left:0}.segment-matrix thead th{z-index:1;background:var(--surface-muted);color:var(--text-muted);min-width:110px;font-size:11px;font-weight:600;position:sticky;top:0}.segment-matrix__corner{z-index:3}.segment-matrix__col-head,.segment-matrix__row-head{line-height:1.35}.segment-matrix__stop-order{background:var(--primary);color:#fff;vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;width:20px;height:20px;margin-right:6px;font-size:10px;font-weight:700;display:inline-flex}.segment-matrix__cell--empty{background:var(--surface-muted);color:var(--text-muted)}.segment-matrix__input-label{display:block}.segment-matrix__input{border:1px solid var(--border);background:var(--bg);width:100%;min-width:88px;color:var(--text-h);font:inherit;text-align:center;box-sizing:border-box;border-radius:8px;padding:8px 10px}.segment-matrix__input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn-primary,.btn-secondary{font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border:none;font-weight:700}.btn-primary:disabled,.btn-secondary:disabled{opacity:.7;cursor:not-allowed}.route-stops-list{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:16px}.route-stops-list h3{margin:0 0 12px;font-size:15px}.route-stops-list--empty p{color:var(--text-muted);margin:0;font-size:13px}.route-stops-list__scroll{overflow-x:auto}.route-stops-list__table{border-collapse:collapse;width:100%;font-size:13px}.route-stops-list__table th,.route-stops-list__table td{border-bottom:1px solid var(--border);text-align:left;padding:10px 12px}.route-stops-list__table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.route-stops-list__table tbody tr:last-child td{border-bottom:none}@media (width<=700px){.schedule-pricing-page__pattern-fields{flex-direction:column;align-items:stretch}.schedule-pricing-page__field{min-width:0}}.booking-search-page{gap:20px;display:grid}.booking-search-page__hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.booking-search-page__eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:13px}.booking-search-page__title{letter-spacing:-.02em;margin:0;font-size:22px}.booking-search-page__subtitle{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.6}.booking-search-form{border:1px solid var(--border);background:var(--surface);border-radius:14px;gap:16px;padding:18px;display:grid}.booking-search-form__grid{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) minmax(180px,220px);align-items:end;gap:14px;display:grid}.booking-search-form__city{min-width:0}.booking-search-form__swap{border:1px solid var(--border);background:var(--surface-muted);width:42px;height:42px;color:var(--text-h);cursor:pointer;border-radius:999px;margin-bottom:2px;font-size:18px}.booking-search-form__swap:hover:not(:disabled){background:var(--primary-bg);border-color:#2563eb40}.booking-search-form__swap:disabled{opacity:.6;cursor:not-allowed}.booking-search-form__date{text-align:left;gap:6px;display:grid}.booking-search-form__date span{color:var(--text-h);font-size:13px;font-weight:600}.booking-search-form__date input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:15px 12px}.booking-search-form__date input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.booking-search-form__submit{justify-self:start}.booking-search-page__error{color:var(--danger);background:#b91c1c14;border:1px solid #b91c1c40;border-radius:12px;padding:14px 16px}.booking-search-page__success{background:var(--success-bg);color:var(--success);border:1px solid #15803d40;border-radius:10px;padding:12px 14px;font-size:14px}.booking-search-page__loading{min-height:180px;color:var(--text-muted);place-items:center;gap:12px;display:grid}.available-buses-list{gap:16px;display:grid}.available-buses-list__summary h2{margin:0 0 4px;font-size:20px}.available-buses-list__summary p{color:var(--text-muted);margin:0;font-size:13px}.available-buses-list__cards{gap:14px;display:grid}.available-bus-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;justify-content:space-between;gap:16px;padding:18px;display:flex}.available-bus-card__main{flex:1;gap:14px;min-width:0;display:grid}.available-bus-card__header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.available-bus-card__name{margin:0 0 4px;font-size:18px}.available-bus-card__meta{color:var(--text-muted);margin:0;font-size:13px}.available-bus-card__price{text-align:right;white-space:nowrap}.available-bus-card__price span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;display:block}.available-bus-card__price strong{color:var(--text-h);font-size:22px}.available-bus-card__timeline{grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);align-items:start;gap:10px;max-width:480px;display:grid}.available-bus-card__timeline-point--end{text-align:right}.available-bus-card__time{color:var(--text-h);font-size:18px;font-weight:700;line-height:1.2;display:block}.available-bus-card__stop{color:var(--text-muted);margin-top:4px;font-size:13px;line-height:1.3;display:block}.available-bus-card__duration{flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;min-height:100%;padding-top:3px;display:flex}.available-bus-card__arrow{width:100%;color:var(--text-muted);justify-content:center;align-items:center;font-size:22px;line-height:1;display:flex}.available-bus-card__journey-time{max-width:88px;color:var(--primary);text-align:center;font-size:11px;font-weight:600;line-height:1.35}.available-bus-card__details{color:var(--text-muted);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.available-bus-card__details span{background:var(--surface-muted);border-radius:999px;padding:4px 10px}.available-bus-card__prices{flex-wrap:wrap;gap:8px;display:flex}.available-bus-card__price-tag{color:var(--success);background:#15803d1a;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.available-bus-card__action{align-items:center;display:flex}.available-buses-empty{border:1px dashed var(--border);text-align:center;color:var(--text-muted);border-radius:14px;padding:28px}.available-buses-empty p{color:var(--text-h);margin:0 0 6px;font-weight:600}.available-buses-empty span{font-size:13px}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;font:inherit;cursor:pointer;white-space:nowrap;border:none;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700}.btn-primary:hover:not(:disabled){opacity:.92}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.btn-secondary{border:1px solid var(--border);background:var(--surface);color:var(--text-h);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600}@media (width<=900px){.booking-search-form__grid{grid-template-columns:1fr}.booking-search-form__swap{justify-self:center;margin-bottom:0}.available-bus-card{flex-direction:column}.available-bus-card__action{justify-content:flex-end}}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a8c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--border);background:var(--surface);width:min(100%,560px);max-height:min(90svh,720px);box-shadow:var(--shadow);border-radius:16px;padding:24px;overflow-y:auto}.modal-panel__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.modal-panel__header h2{margin:0 0 4px;font-size:20px}.modal-panel__header p{color:var(--text-muted);margin:0;font-size:13px}.modal-panel__close{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-h);cursor:pointer;border-radius:10px;font-size:22px;line-height:1}.modal-panel__close:hover:not(:disabled){background:var(--surface-muted)}.modal-panel__actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.book-ticket-summary{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;padding:14px;display:grid}.book-ticket-summary span{color:var(--text-h);font-weight:700;display:block}.book-ticket-summary small{color:var(--text-muted);margin-top:4px;font-size:12px;display:block}.book-ticket-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.book-ticket-form__field{text-align:left;gap:6px;display:grid}.book-ticket-form__field--full{grid-column:1/-1}.book-ticket-form__field span{color:var(--text-h);font-size:13px;font-weight:600}.book-ticket-form__field input,.book-ticket-form__field select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:10px 12px}.book-ticket-form__field input:focus,.book-ticket-form__field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.book-ticket-form__error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);border-radius:10px;margin-bottom:14px;padding:12px 14px;font-size:14px}.book-ticket-form__estimate{color:var(--text-h);margin:14px 0 0;font-size:14px;font-weight:600}@media (width<=700px){.book-ticket-summary,.book-ticket-form__grid{grid-template-columns:1fr}.modal-panel__actions{flex-direction:column-reverse}.modal-panel__actions .btn-primary,.modal-panel__actions .btn-secondary{width:100%}}.bookings-list-page{gap:16px;display:grid}.bookings-list-page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.bookings-list-page__eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:13px}.bookings-list-page__title{letter-spacing:-.02em;margin:0;font-size:22px}.bookings-list-page__subtitle{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.6}.bookings-list-page__filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.bookings-list-page__filter{text-align:left;gap:6px;display:grid}.bookings-list-page__filter span{color:var(--text-h);font-size:13px;font-weight:600}.bookings-list-page__filter input,.bookings-list-page__filter select{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:10px 12px}.bookings-list-page__loading{min-height:240px;color:var(--text-muted);place-items:center;gap:12px;display:grid}.bookings-list-page__error{color:var(--danger);background:#b91c1c14;border:1px solid #b91c1c40;border-radius:12px;padding:14px 16px}.bookings-list-page__pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.bookings-list-page__pagination p{color:var(--text-muted);margin:0;font-size:13px}.bookings-list-page__pagination-actions{gap:10px;display:flex}.bookings-admin-table-wrap{gap:12px;display:grid}.bookings-admin-table__toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.bookings-admin-table__count{color:var(--text-muted);margin:0;font-size:13px}.bookings-admin-table__scroll{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.bookings-admin-table{border-collapse:collapse;width:100%;font-size:13px}.bookings-admin-table th,.bookings-admin-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:top;padding:12px 14px}.bookings-admin-table th{background:var(--surface-muted);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.bookings-admin-table tbody tr:last-child td{border-bottom:none}.bookings-admin-table__reference{color:var(--text-h);font-weight:700}.bookings-admin-table__link{color:var(--primary);font-weight:700;text-decoration:none}.bookings-admin-table__link:hover{text-decoration:underline}.bookings-admin-table__name{color:var(--text-h);font-weight:600;display:block}.bookings-admin-table__sub{color:var(--text-muted);margin-top:2px;font-size:12px;display:block}.bookings-admin-table__amount{color:var(--text-h);font-weight:700}.bookings-admin-table__time{color:var(--text-muted)}.bookings-admin-table__empty{text-align:center;color:var(--text-muted);padding:28px 14px!important}.status-tag{letter-spacing:.02em;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.status-tag--confirmed{color:#15803d;background:#15803d1f}.status-tag--pending{color:#b45309;background:#d977061f}.status-tag--cancelled{color:#b91c1c;background:#b91c1c1f}.btn-export,.btn-secondary{font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600}.btn-export{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border:none;font-weight:700}.btn-export:hover{opacity:.92}.btn-secondary{border:1px solid var(--border);background:var(--surface);color:var(--text-h)}.btn-secondary:hover:not(:disabled){background:var(--surface-muted)}.btn-secondary:disabled{opacity:.7;cursor:not-allowed}@media (width<=900px){.bookings-list-page__filters{grid-template-columns:1fr}}.booking-detail-page{gap:10px;display:grid}.booking-detail-loading,.booking-detail-error{min-height:180px;color:var(--text-muted);place-items:center;gap:8px;display:grid}.booking-detail-error{color:var(--danger);background:#b91c1c14;border:1px solid #b91c1c40;border-radius:10px;place-items:start;padding:10px 12px}.booking-detail-top{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:8px;padding:12px 14px;display:grid}.booking-detail-back{color:var(--text-muted);font-size:12px;font-weight:600;text-decoration:none}.booking-detail-back:hover{color:var(--text-h)}.booking-detail-top__row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.booking-detail-top__title h1{letter-spacing:-.02em;margin:0;font-size:20px}.booking-detail-top__meta{color:var(--text-muted);margin:2px 0 0;font-size:12px}.booking-detail-top__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.booking-detail-chips{flex-wrap:wrap;gap:6px;display:flex}.booking-detail-chips span{border:1px solid var(--border);background:var(--surface-muted);border-radius:8px;gap:1px;padding:6px 10px;display:inline-grid}.booking-detail-chips small{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.booking-detail-chips strong{color:var(--text-h);font-size:13px}.booking-detail-journey{border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:10px 12px;display:grid}.booking-detail-journey__point{gap:1px;display:grid}.booking-detail-journey__point--end{text-align:right}.booking-detail-journey__time{color:var(--text-h);font-size:16px;font-weight:700;line-height:1.2}.booking-detail-journey__stop{color:var(--text-h);font-size:13px;font-weight:600}.booking-detail-journey__label{color:var(--text-muted);font-size:11px}.booking-detail-journey__mid{justify-items:center;gap:2px;min-width:88px;display:grid}.booking-detail-journey__arrow{color:var(--text-muted);font-size:14px;line-height:1}.booking-detail-journey__duration{color:var(--primary);white-space:nowrap;font-size:11px;font-weight:600}.booking-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.booking-detail-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:10px 12px}.booking-detail-card h2{color:var(--text-h);margin:0 0 8px;font-size:13px}.booking-detail-list{gap:6px;margin:0;display:grid}.booking-detail-list--compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}.booking-detail-item dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:10px;font-weight:600}.booking-detail-item dd{color:var(--text-h);margin:1px 0 0;font-size:13px;font-weight:600;line-height:1.3}.booking-detail-ticket-btn{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;white-space:nowrap;cursor:pointer;border:none;border-radius:8px;align-items:center;padding:7px 10px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.booking-detail-ticket-btn:hover{opacity:.92}@media (width<=900px){.booking-detail-grid,.booking-detail-journey{grid-template-columns:1fr}.booking-detail-journey__point--end{text-align:left}.booking-detail-journey__mid{grid-template-columns:auto 1fr;place-items:center start}}@media (width<=560px){.booking-detail-list--compact{grid-template-columns:1fr}}.bookings-layout{gap:20px;display:grid}.bookings-layout__tabs{border:1px solid var(--border);background:var(--surface-muted);isolation:isolate;border-radius:10px;flex-wrap:wrap;gap:2px;width:fit-content;padding:3px;display:flex;position:relative}.bookings-layout__indicator{background:var(--surface);pointer-events:none;z-index:0;border-radius:7px;height:calc(100% - 6px);transition:transform .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1);position:absolute;top:3px;left:0;box-shadow:0 1px 2px #0f172a0f}.bookings-layout__tab{z-index:1;color:var(--text-muted);white-space:nowrap;border-radius:7px;padding:9px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:color .2s;position:relative}.bookings-layout__tab:hover,.bookings-layout__tab--active{color:var(--text-h)}.bookings-layout__content{min-width:0;animation:.24s ease-out both bookings-content-in}@keyframes bookings-content-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.bookings-layout__indicator{transition:none}.bookings-layout__content{animation:none}}.login-page{background:radial-gradient(circle at top left, #2563eb1f, transparent 40%), radial-gradient(circle at bottom right, #0ea5e91a, transparent 35%), var(--bg);place-items:center;min-height:100svh;padding:24px;display:grid}.login-page__panel{border:1px solid var(--border);background:var(--surface);width:min(100%,420px);box-shadow:var(--shadow);border-radius:16px;padding:32px}.login-page__brand{align-items:center;gap:16px;margin-bottom:28px;display:flex}.login-page__logo{color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary-dark));border-radius:14px;place-items:center;width:52px;height:52px;font-size:18px;font-weight:700;display:grid}.login-page__brand h1{letter-spacing:-.02em;margin:0 0 4px;font-size:24px}.login-page__brand p{color:var(--text-muted);margin:0;font-size:14px}.login-form{gap:16px;display:grid}.login-form__field{text-align:left;gap:8px;display:grid}.login-form__field span{color:var(--text-h);font-size:14px;font-weight:500}.login-form__field input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);font:inherit;box-sizing:border-box;border-radius:10px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}.login-form__field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.login-form__field input:disabled{opacity:.7;cursor:not-allowed}.login-form__error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);text-align:left;border-radius:10px;padding:12px 14px;font-size:14px}.login-form__submit{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;font:inherit;cursor:pointer;border:none;border-radius:10px;margin-top:4px;padding:12px 16px;font-weight:600;transition:opacity .15s,transform .15s}.login-form__submit:hover:not(:disabled){opacity:.95}.login-form__submit:active:not(:disabled){transform:translateY(1px)}.login-form__submit:disabled{opacity:.7;cursor:not-allowed}
