.mobile-only{display:flex;min-height:100dvh;align-items:center;justify-content:center;padding:var(--space-6);background-color:var(--color-gray-100)}.mobile-only-card{display:flex;width:100%;max-width:420px;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-6);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);background-color:var(--color-white);box-shadow:var(--shadow-md);text-align:center}.mobile-only-logo{width:150px;height:auto}.mobile-only-icon{display:inline-flex;width:64px;height:64px;align-items:center;justify-content:center;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary)}.mobile-only-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:1.2}.mobile-only-text{color:var(--color-gray-700);font-size:var(--font-size-md);line-height:1.5}.mobile-only-hint{color:var(--color-gray-600);font-size:var(--font-size-sm);line-height:1.5}.mobile-only-qr{display:inline-flex;padding:var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-white)}.mobile-only-url{color:var(--color-gray-600);font-size:var(--font-size-xs);overflow-wrap:anywhere}.bottom-navigation{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:1000;width:calc(100% - 32px);max-width:720px;padding:4px;border:1px solid var(--color-gray-200);border-radius:26px;background:var(--color-white);box-shadow:0 10px 30px #1111111f}.bottom-navigation-list{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px}.bottom-navigation-item{min-width:0}.bottom-navigation-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;padding:4px 2px;border-radius:22px;background:transparent;color:var(--color-gray-900);font-size:11px;font-weight:var(--font-weight-medium);line-height:1.15;text-align:center;transition:background-color .15s ease,color .15s ease}.bottom-navigation-link:hover{color:var(--color-primary)}.bottom-navigation-link-active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.bottom-navigation-link-primary{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.bottom-navigation-label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-with-bottom-navigation{padding-bottom:92px;padding-bottom:calc(92px + env(safe-area-inset-bottom))}@media(min-width:768px)and (max-width:1023px){.bottom-navigation{max-width:640px}}@media(prefers-reduced-motion:reduce){.bottom-navigation-link{transition:none}}.offline-banner{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:8px var(--space-4);background-color:var(--color-warning);color:var(--color-white);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:center}.offline-banner svg{flex:0 0 auto}.page-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-inline:calc(var(--page-padding) * -1);padding:var(--space-4) var(--page-padding) var(--space-3);border-bottom:1px solid var(--color-gray-200);background-color:#ffffffeb;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.page-header-title{min-width:0;font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:1.2;overflow-wrap:anywhere}.page-header .ctl-badge{min-height:40px;padding-inline:var(--space-3)}@media(max-width:419px){.page-header-title{font-size:var(--font-size-2xl)}}.ctl-page.account-page{background-color:var(--color-white)}.account-shell{gap:var(--space-5)}.account-profile{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);background-color:var(--color-white)}.account-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:60px;height:60px;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);letter-spacing:.02em}.account-profile-body{display:flex;flex-direction:column;gap:2px;flex:1 1 140px;min-width:0}.account-profile-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:1.2;overflow-wrap:anywhere}.account-profile-role{color:var(--color-gray-600);font-size:var(--font-size-md)}.account-section{display:flex;flex-direction:column;gap:var(--space-3)}.account-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.account-rows{display:flex;flex-direction:column;border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);background-color:var(--color-white);overflow:hidden}.account-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);width:100%;min-height:56px;padding:var(--space-3) var(--space-4)}.account-row+.account-row{border-top:1px solid var(--color-gray-200)}.account-row-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--color-primary)}.account-row-label{min-width:0;font-size:var(--font-size-md);overflow-wrap:anywhere}.account-row-value{color:var(--color-gray-700);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:right;overflow-wrap:anywhere}.account-signout{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;min-height:52px;padding-inline:var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-lg);background-color:var(--color-white);color:var(--color-accent);font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color .15s ease}.account-signout:hover{background-color:var(--color-accent-soft)}.account-version{color:var(--color-gray-500);font-size:var(--font-size-sm);text-align:center}@media(max-width:419px){.account-row{grid-template-columns:28px minmax(0,1fr);row-gap:2px}.account-row-value{grid-column:2;text-align:left}}.activity-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-white);text-align:left;font-family:inherit}button.activity-item{cursor:pointer}button.activity-item:hover{border-color:var(--color-primary)}.activity-item-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary)}.activity-item-body{display:flex;flex-direction:column;gap:1px;min-width:0}.activity-item-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1.2;overflow-wrap:anywhere}.activity-item-meta{color:var(--color-gray-600);font-size:var(--font-size-xs);line-height:1.3;overflow-wrap:anywhere}.activity-item-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}.activity-item-amount{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);white-space:nowrap}.ctl-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4)}.ctl-header-logo{width:108px;height:auto}@media(max-width:419px){.ctl-header-logo{width:92px}}.ctl-page.home-page{position:relative;background-color:var(--color-black);padding-bottom:120px}.home-page:before{content:"";position:fixed;inset:0;z-index:0;background-image:linear-gradient(to bottom,#0612228c,#06122247 32%,#06122200 60%),url(/assets/controller-train-station-mobile-Gx65vv8Y.png);background-size:cover;background-position:center bottom;background-repeat:no-repeat;pointer-events:none}.home-page:after{content:"";position:fixed;right:0;bottom:0;left:0;z-index:0;height:700px;background-image:linear-gradient(to bottom,rgba(17,17,17,0) 0%,rgba(17,17,17,.55) 45%,rgba(17,17,17,.88) 75%,var(--color-black) 100%);pointer-events:none}.home-shell{position:relative;z-index:1}.home-page .ctl-header-logo{filter:drop-shadow(0 1px 6px rgba(6,18,34,.5))}.home-page .ctl-header .ctl-badge{border:1px solid rgba(255,255,255,.45);background-color:#ffffff2e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--color-white)}.home-actions{display:flex;flex-direction:column;gap:var(--space-2)}.home-action-primary{min-height:60px;font-size:var(--font-size-lg);box-shadow:0 10px 22px #0043ab47}.home-summary{display:grid;grid-template-columns:repeat(3,1fr);align-items:start;gap:var(--space-2);padding:var(--space-3);border:2px solid var(--color-primary);border-radius:20px;background-color:#fff6;backdrop-filter:blur(34px) saturate(180%);-webkit-backdrop-filter:blur(34px) saturate(180%);box-shadow:var(--shadow-md)}.home-summary-item{position:relative;display:flex;flex-direction:column-reverse;align-items:center;gap:2px;text-align:center}.home-summary-item+.home-summary-item:before{content:"";position:absolute;top:2px;bottom:2px;left:calc(var(--space-2) / -2);width:1px;background-color:var(--color-gray-300)}.home-summary-item dt{color:var(--color-gray-800);font-size:11.5px;font-weight:var(--font-weight-medium);line-height:1.25}.home-summary-item dd{color:var(--color-primary);font-size:22px;font-weight:var(--font-weight-bold);line-height:1.15}.home-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.home-page .ctl-section-title,.home-page .home-see-all{color:var(--color-white)}.home-page .ctl-muted{color:#ffffffbf}.home-page .activity-item{padding:10px 4px;border:0;border-radius:var(--radius-lg);background-color:transparent;color:var(--color-white)}.home-page .activity-item:hover{background-color:#ffffff1a}.home-page .activity-item-title,.home-page .activity-item-amount{color:var(--color-white)}.home-page .activity-item-meta{color:#ffffffbf}.home-page .activity-item-icon{background-color:#ffffff2e;color:var(--color-white)}.home-see-all{min-height:44px;padding:0;border:none;background:none;color:var(--color-primary);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer}@media(min-width:768px){.home-summary{padding:var(--space-4) var(--space-3)}.home-summary-item dt{font-size:13px}.home-summary-item dd{font-size:var(--font-size-2xl)}.home-page:before{background-image:linear-gradient(to bottom,#06122280,#06122242 29%,#06122200 62%),url(/assets/controller-train-station-desktop-c4b_QLEg.png)}.home-page:after{height:840px}}.sale-receipt{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-5) var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);background-color:var(--color-white);text-align:center}.sale-receipt-icon{color:var(--color-success)}.sale-receipt-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-black)}.sale-receipt-reference{padding:4px 12px;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.04em}.sale-receipt-facts{width:100%;text-align:left}.payment-method{display:flex;width:100%;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-white);text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.payment-method:hover{border-color:var(--color-primary)}.payment-method[aria-checked=true]{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.payment-method-logo{display:flex;flex:0 0 auto;width:44px;height:44px;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background-color:var(--color-white);overflow:hidden}.payment-method-logo img{width:100%;height:100%;object-fit:cover}.payment-method-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.payment-method-name{font-weight:var(--font-weight-semibold)}.payment-method-description{color:var(--color-gray-600);font-size:var(--font-size-sm)}.payment-method-radio{flex:0 0 auto;width:22px;height:22px;border:2px solid var(--color-gray-400);border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center}.payment-method[aria-checked=true] .payment-method-radio{border-color:var(--color-primary)}.payment-method[aria-checked=true] .payment-method-radio:after{content:"";width:11px;height:11px;border-radius:var(--radius-full);background-color:var(--color-primary)}.sale-stations{position:relative;border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-white)}.sale-row{display:flex;width:100%;min-height:56px;align-items:center;gap:var(--space-3);padding:10px 14px;border:none;background:none;font-family:inherit;text-align:left;cursor:pointer}.sale-row:hover{background-color:var(--color-gray-50)}.sale-row-icon{flex:0 0 auto;color:var(--color-primary)}.sale-row-body{display:flex;flex:1;min-width:0;flex-direction:column;gap:1px}.sale-row-label{color:var(--color-gray-800);font-size:13px;font-weight:var(--font-weight-medium)}.sale-row-value{color:var(--color-gray-700);font-size:16px;font-weight:var(--font-weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sale-row-value.is-filled{color:var(--color-black)}.sale-row-chevron{flex:0 0 auto;color:var(--color-gray-400)}.sale-separator{display:block;height:1px;margin-inline:14px;background-color:var(--color-gray-200)}.sale-swap{position:absolute;right:12px;top:50%;z-index:1;display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;transform:translateY(-50%);border:1px solid var(--color-gray-200);border-radius:var(--radius-full);background-color:var(--color-white);color:var(--color-primary);cursor:pointer}.sale-swap:hover{background-color:var(--color-primary-soft)}.sale-back{align-self:flex-start}.sale-class-card{display:grid;width:100%;grid-template-columns:22px 48px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-white);font-family:inherit;text-align:left;cursor:pointer}.sale-class-card:hover{border-color:var(--color-primary)}.sale-class-card[aria-checked=true]{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.sale-class-radio{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border:2px solid var(--color-gray-400);border-radius:var(--radius-full)}.sale-class-card[aria-checked=true] .sale-class-radio{border-color:var(--color-primary)}.sale-class-card[aria-checked=true] .sale-class-radio:after{content:"";width:11px;height:11px;border-radius:var(--radius-full);background-color:var(--color-primary)}.sale-class-icon{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary);font-size:24px}.sale-class-body{display:flex;min-width:0;flex-direction:column;gap:2px}.sale-class-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.sale-class-description{color:var(--color-gray-600);font-size:var(--font-size-sm)}.sale-class-price{color:var(--color-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);white-space:nowrap}.sale-carriages{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:var(--space-2)}.sale-carriage{display:flex;min-height:56px;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background-color:var(--color-white);font-family:inherit;cursor:pointer}.sale-carriage[aria-checked=true]{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.sale-carriage-name{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-primary)}.sale-carriage-seats{color:var(--color-gray-600);font-size:var(--font-size-xs)}.sale-seat-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-gray-700)}.sale-seat-legend-item{display:inline-flex;align-items:center;gap:6px}.sale-seat-chip{width:14px;height:14px;border:1px solid var(--color-gray-300);border-radius:4px;background-color:var(--color-gray-100)}.sale-seat-chip.is-taken{border-color:var(--color-error);background-color:var(--color-error-soft)}.sale-seat-chip.is-selected{border-color:var(--color-primary);background-color:var(--color-primary)}.sale-seat-map{--seat-size: 38px;display:flex;flex-direction:column;gap:6px;padding:var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);overflow-x:auto}.sale-seat-columns,.sale-seat-row{display:grid;grid-template-columns:18px repeat(var(--seat-left, 2),var(--seat-size)) calc(var(--seat-size) * .5) repeat(var(--seat-right, 2),var(--seat-size));align-items:center;gap:6px}.sale-seat-columns{color:var(--color-gray-600);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-align:center}.sale-seat-aisle-label{color:var(--color-gray-400);font-size:10px;font-weight:var(--font-weight-medium)}.sale-seat-row-number{color:var(--color-gray-500);font-size:var(--font-size-xs);text-align:center}.sale-seat-aisle{width:calc(var(--seat-size) * .5)}.sale-seat{display:flex;width:var(--seat-size);height:var(--seat-size);flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background-color:var(--color-gray-100);color:var(--color-gray-700);font-family:inherit;font-size:15px;cursor:pointer}.sale-seat:hover:not(:disabled){border-color:var(--color-primary)}.sale-seat.is-taken{border-color:var(--color-error);background-color:var(--color-error-soft);color:var(--color-error);cursor:not-allowed}.sale-seat.is-selected{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-white)}.sale-seat-label{font-size:8px;font-weight:var(--font-weight-semibold);line-height:1}.picker-page{min-height:100vh;background-color:var(--color-white)}.picker-shell{width:100%;max-width:720px;margin-inline:auto;padding-inline:16px;padding-bottom:var(--space-12)}.picker-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--space-3);padding-block:var(--space-3);background-color:var(--color-white)}.picker-close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--color-gray-200);border-radius:var(--radius-full);background-color:var(--color-white);color:var(--color-gray-900);cursor:pointer}.picker-close:hover{background-color:var(--color-gray-100)}.picker-title{font-size:24px;font-weight:var(--font-weight-bold);line-height:1.15;margin-block:var(--space-2) var(--space-4)}.picker-search{width:100%;height:48px;padding-inline:var(--space-4);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background-color:var(--color-white);font-size:var(--font-size-md)}.picker-search:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0057b81f}.picker-list{display:flex;flex-direction:column;margin-top:var(--space-4)}.picker-item{display:flex;width:100%;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-1);border:none;border-bottom:1px solid var(--color-gray-200);background:none;text-align:left;cursor:pointer}.picker-item:hover{background-color:var(--color-gray-50)}.picker-item[aria-pressed=true] .picker-item-name{color:var(--color-primary)}.picker-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.picker-item-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.picker-item-subtitle{color:var(--color-gray-600);font-size:var(--font-size-sm)}.picker-item svg{flex:0 0 auto;color:var(--color-gray-500)}.picker-empty{padding-block:var(--space-8);color:var(--color-gray-600);text-align:center}.picker-secondary-action{width:100%;margin-top:var(--space-3)}@media(min-width:768px){.picker-shell{padding-inline:var(--space-6)}.picker-title{font-size:30px}}.seat-map{--seat-size: 34px;--seat-gap: 4px;--seat-car-chrome: 48px;--seat-car-width: calc( var(--seat-car-chrome) + var(--seat-map-columns) * (var(--seat-size) + var(--seat-gap)) + var(--seat-size) * .5 );display:flex;flex-direction:column;gap:var(--space-2);flex:1;min-height:0;width:100%;max-width:100%;overflow-x:clip}.seat-map-legend{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-1) 6px;flex:0 0 auto;padding:6px var(--space-2);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background-color:var(--color-white)}.seat-map-legend-item{display:inline-flex;align-items:center;gap:3px;color:var(--color-gray-700);font-size:10px;white-space:nowrap}.seat-map-legend-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:18px;height:18px;border:1px solid var(--color-gray-200);border-radius:5px;background-color:var(--color-gray-100);color:var(--color-gray-500)}.seat-map-legend-icon svg{width:12px;height:12px}.seat-map-legend-icon.is-occupied{border-color:var(--color-accent);background-color:var(--color-accent-soft);color:var(--color-accent)}.seat-map-legend-icon.is-selected{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-white)}.seat-map-legend-icon.is-assigned{border-color:var(--color-success);background-color:var(--color-success-soft);color:var(--color-success)}.seat-map-car{display:flex;flex-direction:column;gap:var(--space-1);flex:0 1 auto;min-height:0;margin-block:auto;width:100%;max-width:min(100%,var(--seat-car-width));margin-inline:auto;padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-lg);background-color:var(--color-white);overflow-x:clip}.seat-map-columns,.seat-map-row{display:grid;grid-template-columns:var(--seat-map-template);gap:var(--seat-gap);align-items:center;width:100%;max-width:100%}.seat-map-columns{flex:0 0 auto;padding-bottom:6px;border-bottom:1px solid var(--color-gray-200)}.seat-map-column{color:var(--color-gray-700);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-align:center}.seat-map-column--aisle{color:var(--color-gray-400);font-weight:var(--font-weight-regular);font-size:0}.seat-map-viewport{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;max-width:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}.seat-map-viewport::-webkit-scrollbar{width:0;height:0}.seat-map-rows{display:flex;flex-direction:column;gap:var(--seat-gap);width:100%;max-width:100%;padding-block:6px}.seat-map-row-number{color:var(--color-gray-500);font-size:11px;text-align:center}.seat-map-aisle{height:100%;min-height:1px}.seat{display:flex;flex-direction:column;align-items:center;justify-content:center;justify-self:center;gap:0;width:100%;min-width:0;max-width:var(--seat-size);aspect-ratio:1 / 1;padding:2px;border:1px solid var(--color-gray-200);border-radius:7px;background-color:var(--color-gray-100);color:var(--color-gray-500);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.seat svg{width:16px;height:16px}.seat-label{font-size:8px;font-weight:var(--font-weight-semibold);line-height:1.1;letter-spacing:-.02em}.seat:hover:not(:disabled):not(.is-selected){border-color:var(--color-primary);color:var(--color-primary)}.seat.is-occupied{background-color:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent);cursor:not-allowed}.seat.is-assigned{background-color:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success);cursor:not-allowed}.seat.is-blocked{background-color:var(--color-gray-50);border-style:dashed;border-color:var(--color-gray-300);color:var(--color-gray-300);cursor:not-allowed}.seat.is-selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}@media(min-width:768px){.seat-map{--seat-size: 48px;--seat-gap: 6px;--seat-car-chrome: 58px}.seat-map-legend{justify-content:center;gap:var(--space-2) var(--space-5);width:100%;max-width:min(100%,max(var(--seat-car-width),460px));margin-inline:auto;padding:var(--space-2) var(--space-3)}.seat-map-legend-item{font-size:var(--font-size-xs)}.seat-map-legend-icon{width:24px;height:24px;border-radius:6px}.seat-map-legend-icon svg{width:16px;height:16px}.seat-map-car{padding:var(--space-3) var(--space-4)}.seat svg{width:22px;height:22px}.seat-label{font-size:11px}.seat-map-row-number{font-size:var(--font-size-xs)}.seat-map-column--aisle{font-size:10px}}@media(min-width:1024px){.seat-map{--seat-size: 56px}.seat svg{width:26px;height:26px}.seat-label{font-size:var(--font-size-xs)}}.seat-flow-page{display:flex;flex-direction:column;min-height:100dvh;width:100%;max-width:100%;background-color:var(--color-white);overflow-x:clip}.seat-flow-shell{display:flex;flex-direction:column;gap:var(--space-4);flex:1;width:100%;max-width:760px;margin-inline:auto;padding-inline:16px}.seat-flow-page--fixed{height:100dvh;overflow:hidden}.seat-flow-page--fixed .seat-flow-shell{min-height:0;gap:var(--space-2)}.seat-flow-page--fixed .seat-flow-footer{padding-block:var(--space-2);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}.seat-flow-back{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;border:none;border-radius:var(--radius-full);background-color:var(--color-gray-100);color:var(--color-black);cursor:pointer}.seat-flow-back:hover{background-color:var(--color-gray-200)}.seat-flow-seat{background-color:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums}.seat-flow-seat:hover{background-color:var(--color-primary-soft);color:var(--color-primary-hover)}.seat-flow-head{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-4)}.seat-flow-head-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.seat-flow-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);line-height:1.2}.seat-flow-subtitle{color:var(--color-gray-600);font-size:var(--font-size-sm);line-height:1.3}.seat-flow-counter{flex:0 0 auto;padding:5px 10px;border-radius:var(--radius-full);background-color:var(--color-gray-100);color:var(--color-gray-700);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.seat-flow-shell>.seat-flow-back{margin-top:var(--space-4)}.seat-flow-date{font-size:22px;font-weight:var(--font-weight-bold);line-height:1.2;text-transform:capitalize}.seat-flow-label{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.seat-flow-label-hint{color:var(--color-gray-600);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular)}.seat-flow-breadcrumb{flex:1;min-width:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:center}.seat-flow-head--bare{padding-top:var(--space-3)}.seat-mode{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-white)}.seat-mode-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%}.seat-mode-hint{margin-bottom:var(--space-2);color:var(--color-gray-600);font-size:var(--font-size-sm);text-align:center}.seat-mode-hint:last-child{margin-bottom:0}.seat-info{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background-color:var(--color-primary-soft)}.seat-info-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;height:40px;border-radius:var(--radius-full);background-color:var(--color-primary);color:var(--color-white)}.seat-info-body{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.seat-info-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1.3}.seat-info-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.seat-info-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 12px;border-radius:var(--radius-full);background-color:var(--color-white);color:var(--color-gray-800);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.seat-info-chip svg{color:var(--color-primary)}.seat-info-note{color:var(--color-gray-700);font-size:var(--font-size-sm)}.seat-passenger-list{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.seat-passenger-card{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-white);text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.seat-passenger-card:hover{border-color:var(--color-primary)}.seat-passenger-card.is-active{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.seat-passenger-avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-full);background-color:var(--color-gray-100);color:var(--color-gray-500)}.seat-passenger-card.is-assigned .seat-passenger-avatar{background-color:var(--color-success-soft);color:var(--color-success)}.seat-passenger-card.is-active .seat-passenger-avatar{background-color:var(--color-primary);color:var(--color-white)}.seat-passenger-radio{width:12px;height:12px;border-radius:var(--radius-full);background-color:var(--color-white)}.seat-passenger-body{display:flex;flex-direction:column;gap:1px;min-width:0}.seat-passenger-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1.2;overflow:hidden;text-overflow:ellipsis}.seat-passenger-card.is-active .seat-passenger-name{color:var(--color-primary)}.seat-passenger-meta{color:var(--color-gray-600);font-size:var(--font-size-sm);line-height:1.3}.seat-passenger-meta.is-pending{color:var(--color-warning)}.seat-passenger-state{display:inline-flex;align-items:center;gap:var(--space-1);flex:0 0 auto;color:var(--color-warning);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap}.seat-passenger-state svg{color:var(--color-gray-400)}.seat-passenger-state.is-done{color:var(--color-success)}.seat-passenger-state.is-done svg{color:var(--color-success)}.seat-class-picker,.seat-carriages{display:flex;flex-direction:column;gap:var(--space-2)}.seat-class-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:var(--space-2)}.seat-class-option{padding:var(--space-3) var(--space-2);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background-color:var(--color-white);color:var(--color-gray-800);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer}.seat-class-option:hover{border-color:var(--color-primary);color:var(--color-primary)}.seat-flow-footer{position:sticky;bottom:0;z-index:20;display:flex;flex-direction:column;gap:var(--space-2);margin-top:auto;margin-inline:-16px;padding:var(--space-3) 16px;padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--color-gray-200);background-color:var(--color-white)}.seat-flow-footer .btn{width:100%}.seat-flow-footer--inline{flex-direction:row;align-items:center;gap:var(--space-3)}.seat-flow-footer--inline .btn{flex:1;width:auto}.seat-flow-footer-total{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.seat-flow-footer-label{color:var(--color-gray-600);font-size:var(--font-size-sm)}.seat-flow-footer-value{color:var(--color-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.seat-flow-seat-badge{padding:4px 12px;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}@media(max-width:419px){.seat-passenger-card{gap:var(--space-2);padding:var(--space-3) var(--space-2)}.seat-passenger-meta,.seat-passenger-state{font-size:var(--font-size-xs)}}@media(min-width:768px){.seat-flow-shell{padding-inline:var(--space-6)}.seat-flow-footer{margin-inline:calc(var(--space-6) * -1);padding-inline:var(--space-6)}.seat-flow-date{font-size:30px}.seat-flow-title{font-size:var(--font-size-xl)}}.carriage-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:var(--space-2);width:100%;max-width:100%;overflow-x:hidden}.carriage-picker--compact{grid-template-columns:repeat(auto-fill,minmax(58px,1fr))}.carriage-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;padding:var(--space-2) var(--space-1);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background-color:var(--color-white);color:var(--color-gray-800);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.carriage-chip:hover:not(:disabled){border-color:var(--color-primary)}.carriage-chip[aria-checked=true]{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-white)}.carriage-chip:disabled{opacity:.5;cursor:not-allowed}.carriage-chip-name{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);line-height:1.2}.carriage-chip-seats{color:var(--color-gray-600);font-size:var(--font-size-xs);white-space:nowrap}.carriage-chip[aria-checked=true] .carriage-chip-seats{color:var(--color-white)}.carriage-picker--compact .carriage-chip{flex-direction:row;gap:var(--space-1);padding:var(--space-2) 2px}.carriage-picker--compact .carriage-chip-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.carriage-chip-icon{display:inline-flex;align-items:center;color:var(--color-gray-500)}.carriage-chip[aria-checked=true] .carriage-chip-icon{color:var(--color-white)}@media(min-width:768px){.carriage-picker{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.carriage-picker--compact{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}}.control-banner{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-4);border-radius:var(--radius-xl);text-align:center}.control-banner.is-success{background-color:var(--color-success-soft);color:var(--color-success)}.control-banner.is-warning{background-color:var(--color-warning-soft);color:var(--color-warning)}.control-banner.is-danger{background-color:var(--color-error-soft);color:var(--color-error)}.control-banner.is-neutral{background-color:var(--color-gray-100);color:var(--color-gray-700)}.control-banner-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:1.15}.control-banner-reason{color:var(--color-gray-800);font-size:var(--font-size-sm);line-height:1.4;max-width:44ch}.control-history{display:flex;flex-direction:column;gap:var(--space-2);list-style:none}.control-history-item{display:flex;flex-direction:column;gap:2px;width:100%;min-height:52px;padding:var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background-color:var(--color-white);font-family:inherit;text-align:left;cursor:pointer}.control-history-item:hover{border-color:var(--color-primary)}.control-history-result{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.control-history-meta{color:var(--color-gray-600);font-size:var(--font-size-xs);overflow-wrap:anywhere}.control-history-comment{color:var(--color-gray-700);font-size:var(--font-size-xs);font-style:italic;overflow-wrap:anywhere}.control-saved{align-items:center;border-color:var(--color-success);background-color:var(--color-success-soft);color:var(--color-success);text-align:center}.control-saved p{color:var(--color-gray-800);font-size:var(--font-size-sm)}.control-saved .ctl-inline-actions{width:100%}.scanner-frame{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);width:100%;aspect-ratio:1 / 1;max-height:320px;padding:var(--space-5);border-radius:var(--radius-xl);background-color:var(--color-gray-900);color:#ffffffd9;text-align:center;overflow:hidden}.scanner-frame-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scanner-frame.is-active .scanner-frame-message{position:relative;margin-top:auto;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background-color:#111111a6;color:var(--color-white)}.scanner-frame.is-active{background-color:var(--color-primary-active)}.scanner-frame-icon{color:#ffffffe6}.scanner-frame-message{font-size:var(--font-size-sm);line-height:1.4;max-width:34ch}.scanner-frame-corner{position:absolute;width:34px;height:34px;border:3px solid var(--color-white)}.scanner-frame.is-active .scanner-frame-corner{border-color:var(--color-success)}.is-tl{top:16px;left:16px;border-right:none;border-bottom:none;border-top-left-radius:12px}.is-tr{top:16px;right:16px;border-left:none;border-bottom:none;border-top-right-radius:12px}.is-bl{bottom:16px;left:16px;border-right:none;border-top:none;border-bottom-left-radius:12px}.is-br{bottom:16px;right:16px;border-left:none;border-top:none;border-bottom-right-radius:12px}.scanner-page{position:relative;min-height:100dvh;background-color:var(--color-black)}.scanner-page .scanner-shell{max-width:none;padding-bottom:0;gap:0}.scanner-page .scanner-frame{position:fixed;inset:0;z-index:0;aspect-ratio:auto;max-height:none;border-radius:0;padding:var(--space-5)}.scanner-page .page-header{position:relative;z-index:1;border-bottom:0;background:linear-gradient(to bottom,#111111a6,#1110)}.scanner-page .page-header-title{color:var(--color-white)}.scanner-page .scanner-frame{--scan-target: min(74vw, 300px);--scan-offset: calc(50% - var(--scan-target) / 2)}.scanner-page .is-tl{top:var(--scan-offset);left:var(--scan-offset)}.scanner-page .is-tr{top:var(--scan-offset);right:var(--scan-offset)}.scanner-page .is-bl{bottom:var(--scan-offset);left:var(--scan-offset)}.scanner-page .is-br{bottom:var(--scan-offset);right:var(--scan-offset)}.scanner-page .scanner-frame-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scanner-page .scanner-frame-message{position:relative;z-index:1;margin-top:auto;margin-bottom:132px}.scanner-manual{position:fixed;right:0;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 70px);left:0;z-index:1;padding-inline:var(--page-padding)}.scanner-manual .btn{width:100%;border-color:#ffffff59;background-color:#1111118c;color:var(--color-white);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.scanner-manual .btn:hover{border-color:var(--color-white);background-color:#111111b8}.ticket-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-white);text-align:left;cursor:pointer}.ticket-card:hover{border-color:var(--color-primary)}.ticket-card-avatar{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary)}.ticket-card-body{display:flex;flex-direction:column;gap:1px;min-width:0}.ticket-card-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1.2;overflow-wrap:anywhere}.ticket-card-meta,.ticket-card-number{color:var(--color-gray-600);font-size:var(--font-size-xs);line-height:1.3;overflow-wrap:anywhere}.ticket-card-side{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto;color:var(--color-gray-400)}@media(max-width:419px){.ticket-card-side .ctl-badge{display:none}}.auth-page{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:100dvh;width:100%;max-width:100%;padding:calc(var(--space-5) + env(safe-area-inset-top)) var(--page-padding) calc(var(--space-5) + env(safe-area-inset-bottom));background-color:var(--color-white);overflow-x:clip}.auth-page:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-color:#fbfcff;background-repeat:no-repeat;background-image:radial-gradient(circle 215px at 112% -12%,#fbfcff 0 99.5%,transparent 100%),radial-gradient(circle 300px at 118% -16%,#e9f0fb 0 99.5%,transparent 100%),radial-gradient(circle 195px at -16% 114%,#fbfcff 0 99.5%,transparent 100%),radial-gradient(circle 275px at -20% 118%,#ecf2fc 0 99.5%,transparent 100%),radial-gradient(circle 180px at 118% 112%,#fbfcff 0 99.5%,transparent 100%),radial-gradient(circle 255px at 124% 116%,#ecf2fc 0 99.5%,transparent 100%)}.auth-shell{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--space-4);width:100%;max-width:460px;margin-inline:auto}.auth-logo{width:150px;height:auto;margin-inline:auto}.auth-shell--hero{gap:clamp(12px,1.9vh,20px);text-align:center}.auth-shell--hero .auth-logo{width:min(48%,175px);margin-bottom:var(--space-1)}.auth-app-badge{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);align-self:center;min-height:36px;padding:0 var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-full);background-color:var(--color-white);box-shadow:var(--shadow-sm);color:var(--color-gray-700);font-size:13px;font-weight:var(--font-weight-medium)}.auth-app-badge svg{color:var(--color-primary)}.auth-heading{display:flex;flex-direction:column;gap:6px}.auth-shell--hero .auth-title{font-size:clamp(21px,5.7vw,27px);font-weight:var(--font-weight-bold);letter-spacing:-.02em;line-height:1.2}.auth-shell--hero .auth-subtitle{max-width:32ch;margin-inline:auto;font-size:14px;line-height:1.45}.auth-primary{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;min-height:54px;padding-inline:var(--space-4);border:none;border-radius:14px;background-color:var(--color-primary);box-shadow:0 10px 22px #0043ab42;color:var(--color-white);font-family:inherit;font-size:clamp(13px,3.5vw,16px);font-weight:var(--font-weight-bold);white-space:nowrap;cursor:pointer}.auth-primary svg,.auth-secondary svg{flex:0 0 auto}.auth-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.auth-primary:active:not(:disabled){background-color:var(--color-primary-active)}.auth-primary:disabled{background-color:var(--color-gray-400);box-shadow:none;cursor:not-allowed}.auth-secondary{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;min-height:50px;border:1px solid var(--color-gray-200);border-radius:14px;background-color:var(--color-white);color:var(--color-primary);font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer}.auth-secondary:hover:not(:disabled){border-color:var(--color-primary);background-color:var(--color-primary-soft)}.auth-secondary:disabled{opacity:.55;cursor:not-allowed}.auth-feature-card{border-radius:22px;background-color:var(--color-white);box-shadow:0 8px 28px #1118270f;list-style:none;overflow:hidden}.auth-feature{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:11px var(--space-4);text-align:left}.auth-feature+.auth-feature:before{content:"";position:absolute;top:0;left:var(--space-4);right:var(--space-4);height:1px;background-color:var(--color-gray-200)}.auth-feature-icon{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary)}.auth-feature-text{display:flex;flex-direction:column;gap:1px;min-width:0;padding-left:var(--space-3);border-left:1px solid var(--color-gray-200)}.auth-feature-text strong{font-size:14px;font-weight:var(--font-weight-bold);color:var(--color-black);line-height:1.35}.auth-feature-text span{font-size:12.5px;color:var(--color-gray-600);line-height:1.35;overflow-wrap:anywhere}.auth-footnote{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.auth-footnote-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary)}.auth-footnote p{max-width:32ch;color:var(--color-gray-600);font-size:13px;line-height:1.45}.auth-card{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5) var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);background-color:var(--color-white)}.auth-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:1.2}.auth-subtitle{color:var(--color-gray-600);font-size:var(--font-size-sm);line-height:1.4}.auth-hint{padding:var(--space-3);border-radius:var(--radius-md);background-color:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-xs);line-height:1.5}.auth-redirect{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background-color:var(--color-white);border:1px solid var(--color-gray-200);color:var(--color-gray-800);font-size:var(--font-size-sm);text-align:left}.auth-security{display:grid;grid-template-columns:1fr;gap:var(--space-2);list-style:none}.auth-security-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);color:var(--color-primary)}.auth-security-text{display:flex;flex-direction:column;gap:2px;min-width:0}.auth-security-text strong{color:var(--color-black);font-size:var(--font-size-sm)}.auth-security-text span{color:var(--color-gray-700);font-size:var(--font-size-xs)}@media(min-width:480px){.auth-security{grid-template-columns:repeat(2,1fr)}}.auth-push{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background-color:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-sm);line-height:1.5}.auth-push span{color:var(--color-gray-800);overflow-wrap:anywhere}.auth-link{min-height:44px;padding:0;border:none;background:none;color:var(--color-gray-700);font-family:inherit;font-size:var(--font-size-sm);text-decoration:underline;cursor:pointer}.auth-identity{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);background-color:var(--color-gray-50)}.auth-identity-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);overflow-wrap:anywhere}.auth-groups{display:flex;flex-wrap:wrap;gap:var(--space-1);list-style:none}.auth-group{padding:2px 10px;border-radius:var(--radius-full);background-color:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.auth-code{width:100%;min-height:56px;padding-inline:var(--space-3);border:1px solid var(--color-gray-200);border-radius:14px;background-color:var(--color-white);box-shadow:var(--shadow-sm);color:var(--color-black);font-family:inherit;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);letter-spacing:.35em;text-indent:.35em;text-align:center}.auth-code-field{display:flex;flex-direction:column;gap:var(--space-2);text-align:left}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit;background:none;border:none;border-radius:0}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}:root{--color-primary: #0043ab;--color-primary-hover: #00388f;--color-primary-active: #002e75;--color-primary-soft: #e6eefb;--color-accent: #e60012;--color-accent-hover: #c90010;--color-accent-active: #ae000e;--color-accent-soft: #fff0f1;--color-black: #111111;--color-white: #ffffff;--color-gray-900: #111111;--color-gray-800: #2a2a2a;--color-gray-700: #4a4a4a;--color-gray-600: #6b6b6b;--color-gray-500: #8a8a8a;--color-gray-400: #b8b8b8;--color-gray-300: #d7dce2;--color-gray-200: #e9ecef;--color-gray-100: #f5f7fa;--color-gray-50: #fafbfc;--color-success: #1f9d5a;--color-success-soft: #eaf8f0;--color-warning: #d97706;--color-warning-soft: #fff7e6;--color-error: #c62828;--color-error-soft: #fdecec;--color-info: #1769aa;--color-info-soft: #eaf3ff;--font-family-base: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(17, 17, 17, .06);--shadow-md: 0 4px 12px rgba(17, 17, 17, .08);--shadow-lg: 0 12px 32px rgba(17, 17, 17, .12);--page-padding: 16px;--container-max-width: 1200px}@media(min-width:768px){:root{--page-padding: 24px}}@media(min-width:1200px){:root{--page-padding: 32px}}html,body{background-color:var(--color-white);color:var(--color-black);font-family:var(--font-family-base);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh}html{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0;height:0}#root{min-height:100vh;background-color:var(--color-white)}h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:1.25;color:var(--color-black)}h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:1.3;color:var(--color-black)}h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:1.35;color:var(--color-black)}p{font-size:var(--font-size-md);line-height:1.6;color:var(--color-gray-700)}small{font-size:var(--font-size-sm);line-height:1.5;color:var(--color-gray-600)}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}a:active{color:var(--color-primary-active)}button{font-family:var(--font-family-base);font-size:var(--font-size-md);color:inherit}input,select,textarea{font-family:var(--font-family-base);font-size:var(--font-size-md);color:var(--color-black);background-color:var(--color-white)}input::placeholder,textarea::placeholder{color:var(--color-gray-500)}textarea{resize:vertical}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.ctl-page{min-height:100vh;width:100%;max-width:100%;background-color:var(--color-gray-100);overflow-x:clip}.ctl-page--plain{background-color:var(--color-white)}.ctl-shell{display:flex;flex-direction:column;gap:var(--space-4);width:100%;max-width:1000px;margin-inline:auto;padding-inline:var(--page-padding);padding-bottom:var(--space-6)}.ctl-shell--narrow{max-width:560px}.ctl-topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:var(--space-2);margin-inline:calc(var(--page-padding) * -1);padding:var(--space-2) var(--page-padding);background-color:#f5f7faf0;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--color-gray-200)}.ctl-topbar-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);line-height:1.2;text-align:center;overflow-wrap:anywhere}.ctl-icon-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;border:none;border-radius:var(--radius-full);background-color:transparent;color:var(--color-black);cursor:pointer}.ctl-icon-button:hover{background-color:var(--color-gray-200)}.ctl-card{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:100%;padding:var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);background-color:var(--color-white)}.ctl-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.ctl-section-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}.ctl-muted{color:var(--color-gray-600);font-size:var(--font-size-sm);line-height:1.4}.ctl-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--space-3)}.ctl-fact{display:flex;flex-direction:column;gap:2px;min-width:0}.ctl-fact dt,.ctl-fact-label{color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase}.ctl-fact dd,.ctl-fact-value{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1.3;overflow-wrap:anywhere}.ctl-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.ctl-badge.is-success{background-color:var(--color-success-soft);color:var(--color-success)}.ctl-badge.is-warning{background-color:var(--color-warning-soft);color:var(--color-warning)}.ctl-badge.is-danger{background-color:var(--color-error-soft);color:var(--color-error)}.ctl-badge.is-neutral{background-color:var(--color-gray-100);color:var(--color-gray-700)}.ctl-badge.is-info{background-color:var(--color-primary-soft);color:var(--color-primary)}.ctl-field{display:flex;flex-direction:column;gap:6px}.ctl-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.ctl-input,.ctl-select,.ctl-textarea{width:100%;min-height:52px;padding:0 var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background-color:var(--color-white);color:var(--color-black);font-family:inherit;font-size:var(--font-size-md)}.ctl-textarea{min-height:110px;padding:var(--space-3);resize:vertical}.ctl-input:focus-visible,.ctl-select:focus-visible,.ctl-textarea:focus-visible{border-color:var(--color-primary)}.ctl-error{color:var(--color-error);font-size:var(--font-size-sm)}.ctl-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}.ctl-list{display:flex;flex-direction:column;gap:var(--space-3)}.ctl-actions{position:sticky;bottom:0;z-index:20;display:flex;flex-direction:column;gap:var(--space-2);margin-inline:calc(var(--page-padding) * -1);padding:var(--space-3) var(--page-padding);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--color-gray-200);background-color:var(--color-white)}.ctl-actions .btn{width:100%;min-height:52px}.ctl-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ctl-tab{flex:0 0 auto;min-height:44px;padding-inline:var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-full);background-color:var(--color-white);color:var(--color-gray-700);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap}.ctl-tab[aria-selected=true]{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-white);font-weight:var(--font-weight-semibold)}.state-block{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);border:1px dashed var(--color-gray-300);border-radius:var(--radius-xl);background-color:var(--color-white);text-align:center}.state-block-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-black)}.state-block-text{max-width:44ch;font-size:var(--font-size-sm);color:var(--color-gray-700)}.state-spinner{width:28px;height:28px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:ctl-spin .9s linear infinite}@keyframes ctl-spin{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.state-spinner{animation:none}}.ctl-steps{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-gray-600);letter-spacing:.04em;text-transform:uppercase}.ctl-step-dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--color-gray-300)}.ctl-step-dot.is-done{background-color:var(--color-primary)}.ctl-summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-gray-700)}.ctl-summary-row>span:last-child{font-weight:var(--font-weight-semibold);color:var(--color-black);text-align:right}.ctl-summary-row.is-total{padding-top:var(--space-3);border-top:1px solid var(--color-gray-200);font-size:var(--font-size-md)}.ctl-summary-row.is-total>span:last-child{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary)}.ctl-option{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:52px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background-color:var(--color-white);color:var(--color-black);font-family:inherit;font-size:var(--font-size-md);text-align:left;cursor:pointer}.ctl-option[aria-checked=true],.ctl-option[aria-pressed=true]{border-color:var(--color-primary);background-color:var(--color-primary-soft);font-weight:var(--font-weight-semibold)}.ctl-inline-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ctl-inline-actions .btn{flex:1 1 180px}.ctl-link-row{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:56px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background-color:var(--color-white);color:var(--color-black);font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer}.ctl-link-row:hover{background-color:var(--color-gray-100)}.ctl-link-row-spacer{flex:1 1 auto}@media(min-width:768px){.ctl-topbar-title{font-size:var(--font-size-xl)}.ctl-actions{flex-direction:row-reverse;justify-content:flex-start}.ctl-actions .btn{width:auto;min-width:220px}}.booking-back{display:inline-flex;flex:0 0 auto;width:44px;height:44px;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background-color:var(--color-gray-200);color:var(--color-black);cursor:pointer}.booking-back:hover{background-color:var(--color-gray-300)}.container{width:100%;max-width:var(--container-max-width);margin-inline:auto;padding-inline:var(--page-padding)}.page{min-height:100vh;background-color:var(--color-white)}.page-content{padding-block:var(--space-4)}.text-primary{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-muted{color:var(--color-gray-600)}.bg-white{background-color:var(--color-white)}.bg-primary-soft{background-color:var(--color-primary-soft)}.bg-accent-soft{background-color:var(--color-accent-soft)}.surface{background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg)}.card{background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.card-selected{border-color:var(--color-primary);background-color:var(--color-primary-soft)}.card-alert{border-color:var(--color-accent);background-color:var(--color-accent-soft)}.card-dark{background-color:var(--color-black);border-color:var(--color-black);color:var(--color-white)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:52px;padding-inline:var(--space-5);border:1px solid transparent;border-radius:var(--radius-md);font-family:var(--font-family-base);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1;text-align:center;cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-active);border-color:var(--color-primary-active)}.btn-secondary{background-color:var(--color-black);border-color:var(--color-black);color:var(--color-white)}.btn-secondary:hover:not(:disabled){background-color:var(--color-gray-800);border-color:var(--color-gray-800)}.btn-outline{background-color:var(--color-white);border-color:var(--color-primary);color:var(--color-primary)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary-soft)}.btn-danger{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-white)}.btn-danger:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-danger:active:not(:disabled){background-color:var(--color-accent-active);border-color:var(--color-accent-active)}.btn-text{min-height:auto;padding-inline:0;background-color:transparent;border-color:transparent;color:var(--color-primary)}.btn-text:hover:not(:disabled){color:var(--color-primary-hover)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-gray-800)}.field-input{width:100%;height:52px;padding-inline:var(--space-4);background-color:var(--color-white);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-family:var(--font-family-base);font-size:var(--font-size-md);color:var(--color-black)}.field-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0057b81f}.field-input:disabled{background-color:var(--color-gray-100);color:var(--color-gray-500);cursor:not-allowed}.field-input[aria-invalid=true],.field-input.has-error{border-color:var(--color-error);background-color:var(--color-error-soft)}.field-error{font-size:var(--font-size-sm);color:var(--color-error)}.field-help{font-size:var(--font-size-sm);color:var(--color-gray-600)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:1.4;white-space:nowrap}.badge-primary{background-color:var(--color-primary-soft);color:var(--color-primary)}.badge-accent{background-color:var(--color-accent-soft);color:var(--color-accent)}.badge-success{background-color:var(--color-success-soft);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-soft);color:var(--color-warning)}.badge-neutral{background-color:var(--color-gray-100);color:var(--color-gray-700)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
