:root{--fb-bg:#fff;--fb-secondary-bg:#efeff4;--fb-section-bg:#fff;--fb-text:#000;--fb-hint:#707579;--fb-link:#2481cc;--fb-button:#2481cc;--fb-button-text:#fff;--fb-accent:#2481cc;--fb-section-header:#6d6d72;--fb-subtitle:#707579;--fb-destructive:#e53935;--fb-separator:#d9d9de;--fb-header-bg:#fff;--fb-bottom-bar-bg:#f7f7f8;--bg:var(--tg-theme-bg-color,var(--fb-bg));--secondary-bg:var(--tg-theme-secondary-bg-color,var(--fb-secondary-bg));--section-bg:var(--tg-theme-section-bg-color,var(--fb-section-bg));--text:var(--tg-theme-text-color,var(--fb-text));--hint:var(--tg-theme-hint-color,var(--fb-hint));--link:var(--tg-theme-link-color,var(--fb-link));--button:var(--tg-theme-button-color,var(--fb-button));--button-text:var(--tg-theme-button-text-color,var(--fb-button-text));--accent:var(--tg-theme-accent-text-color,var(--fb-accent));--section-header:var(--tg-theme-section-header-text-color,var(--fb-section-header));--subtitle:var(--tg-theme-subtitle-text-color,var(--fb-subtitle));--destructive:var(--tg-theme-destructive-text-color,var(--fb-destructive));--separator:var(--tg-theme-section-separator-color,var(--fb-separator));--bottom-bar-bg:var(--tg-theme-bottom-bar-bg-color,var(--fb-bottom-bar-bg));--ok:#2e9e4f;--warn:#d98b00;--text-secondary:color-mix(in srgb, var(--hint) 80%, var(--text));--link-ink:color-mix(in srgb, var(--link) 85%, var(--text));--accent-ink:color-mix(in srgb, var(--button) 80%, var(--text));--ok-ink:color-mix(in srgb, var(--ok) 70%, var(--text));--warn-ink:color-mix(in srgb, var(--warn) 65%, var(--text));--danger-ink:color-mix(in srgb, var(--destructive) 75%, var(--text));--ok-soft:color-mix(in srgb, var(--ok) 14%, transparent);--warn-soft:color-mix(in srgb, var(--warn) 16%, transparent);--danger-soft:color-mix(in srgb, var(--destructive) 14%, transparent);--accent-soft:color-mix(in srgb, var(--button) 14%, transparent);--hint-soft:color-mix(in srgb, var(--hint) 16%, transparent);--pressed:color-mix(in srgb, var(--hint) 18%, transparent);--scrim:#00000080;--brand:#c2410c;--brand-text:#fff;--brand-soft:color-mix(in srgb, var(--brand) 14%, transparent);--brand-ink:color-mix(in srgb, var(--brand) 80%, var(--text));--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--gutter:var(--space-4);--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-pill:999px;--shadow-1:0 1px 3px #00000024;--shadow-2:0 4px 14px #00000038;--shadow-3:0 8px 24px #00000042;--tap:44px;--font-xs:12px;--font-sm:13px;--font-md:15px;--font-base:16px;--font-lg:17px;--font-xl:20px;--font-2xl:24px;--font-timer:34px;--lh-tight:1.2;--lh-base:1.4;--lh-text:1.5;--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--z-tabbar:10;--z-sheet:50;--z-main-button:55;--z-toast:60;--tabbar-h:56px;--safe-top:var(--tg-viewport-content-safe-area-inset-top,env(safe-area-inset-top,0px));--safe-bottom:var(--tg-viewport-content-safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--safe-left:var(--tg-viewport-content-safe-area-inset-left,env(safe-area-inset-left,0px));--safe-right:var(--tg-viewport-content-safe-area-inset-right,env(safe-area-inset-right,0px));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--fb-bg:#212121;--fb-secondary-bg:#0f0f0f;--fb-section-bg:#1c1c1d;--fb-text:#fff;--fb-hint:#aaa;--fb-link:#62bcf9;--fb-button:#3e88f7;--fb-button-text:#fff;--fb-accent:#6ab3f3;--fb-section-header:#8d8e93;--fb-subtitle:#98989e;--fb-destructive:#ff5c5c;--fb-separator:#2f2f31;--fb-bottom-bar-bg:#1c1c1d;--ok:#4fc26f;--warn:#f0a51b;--scrim:#0000009e;--shadow-1:0 1px 3px #00000080;--shadow-2:0 4px 14px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--fb-bg:#212121;--fb-secondary-bg:#0f0f0f;--fb-section-bg:#1c1c1d;--fb-text:#fff;--fb-hint:#aaa;--fb-link:#62bcf9;--fb-button:#3e88f7;--fb-button-text:#fff;--fb-accent:#6ab3f3;--fb-section-header:#8d8e93;--fb-subtitle:#98989e;--fb-destructive:#ff5c5c;--fb-separator:#2f2f31;--fb-bottom-bar-bg:#1c1c1d;--ok:#4fc26f;--warn:#f0a51b;--scrim:#0000009e;--shadow-1:0 1px 3px #00000080;--shadow-2:0 4px 14px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--secondary-bg);color:var(--text);margin:0}body{overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent;min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit;accent-color:var(--button)}button{cursor:pointer}button,a,label{touch-action:manipulation}:focus-visible{outline:2px solid var(--button);outline-offset:2px}.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}.icon{flex:none;display:block}.hit{position:relative}.hit:before{content:"";width:max(100%, var(--tap));height:max(100%, var(--tap));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.app{max-width:640px;min-height:100dvh;padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right);padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + var(--space-4));margin:0 auto}.app--no-tabs{padding-bottom:calc(var(--safe-bottom) + 96px)}.page{padding:var(--space-3) 0 0}.page-header{align-items:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-1) var(--gutter) var(--space-2);display:flex}.page-header h1{min-width:0;font-size:var(--font-2xl);font-weight:700;line-height:var(--lh-tight);letter-spacing:-.01em;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;flex:1;margin:0}.page-header--long h1{font-size:var(--font-xl)}.page-header .back{margin-left:calc(-1 * var(--space-3))}.page-sub{margin:calc(-1 * var(--space-1)) var(--gutter) var(--space-3);color:var(--text-secondary);font-size:var(--font-md);line-height:var(--lh-text)}.section{margin:0 var(--gutter) var(--space-5)}.section-title{margin:0 var(--gutter) 6px;font-size:var(--font-sm);text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);padding:0;font-weight:600}.section>.section-title{margin-left:var(--gutter);margin-right:0}.section-body{background:var(--section-bg);border-radius:var(--radius);overflow:hidden}.section-footer{margin:6px var(--gutter) 0;font-size:var(--font-sm);line-height:var(--lh-text);color:var(--text-secondary)}.section-footer.error{color:var(--danger-ink)}.cell{align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:10px var(--gutter);text-align:left;color:inherit;transition:background-color var(--dur-fast) var(--ease-out);background:0 0;border:0;text-decoration:none;display:flex;position:relative}.cell+.cell:before,.cell+.field:before,.field+.cell:before,.field+.field:before{content:"";top:0;left:var(--gutter);background:var(--separator);transform-origin:top;height:1px;position:absolute;right:0;transform:scaleY(.5)}button.cell:active,a.cell:active{background:var(--pressed)}.cell-main{flex:1;min-width:0}.cell-title{font-size:var(--font-base);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;display:block}.cell-sub{color:var(--text-secondary);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;margin-top:2px;font-size:14px;display:block}.cell-before{color:var(--hint);display:inline-flex}.cell-after{color:var(--text-secondary);font-size:var(--font-md);white-space:nowrap}.cell-chevron{margin-right:calc(-1 * var(--space-1));color:var(--hint);display:inline-flex}.cell--link .cell-title,.cell--link .cell-before{color:var(--link-ink)}.cell--danger .cell-title{color:var(--danger-ink)}.field{padding:var(--space-2) var(--gutter) 10px;display:block;position:relative}.field-label{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:6px;font-weight:500;display:block}.field-hint{font-size:var(--font-sm);line-height:var(--lh-text);color:var(--text-secondary);margin-top:6px}.field-error{font-size:var(--font-sm);line-height:var(--lh-text);color:var(--danger-ink);align-items:flex-start;gap:6px;margin-top:6px;display:flex}.field-error .icon{margin-top:1px}.input,.select{width:100%;min-height:var(--tap);padding:var(--space-2) var(--space-3);border:1px solid var(--separator);border-radius:var(--radius-sm);background:var(--bg);font-size:var(--font-base);appearance:none;transition:border-color var(--dur-fast) var(--ease-out)}.input:focus{border-color:var(--button)}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--destructive);box-shadow:inset 0 0 0 1px var(--destructive)}.input::placeholder{color:var(--text-secondary);opacity:.85}.select{background-image:linear-gradient(45deg, transparent 50%, var(--hint) 50%), linear-gradient(135deg, var(--hint) 50%, transparent 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px;padding-right:28px}.row{gap:var(--space-2);align-items:center;display:flex}.row>*{flex:1;min-width:0}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:10px var(--space-4);border-radius:var(--radius);background:var(--button);color:var(--button-text);font-size:var(--font-base);font-weight:600;line-height:var(--lh-tight);transition:opacity var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);border:0;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.45;cursor:default}.btn:not(:disabled):active{opacity:.75}.btn--block{width:100%;display:flex}.btn--secondary{background:var(--accent-soft);color:var(--accent-ink)}.btn--ghost{color:var(--link-ink);padding:var(--space-2) 10px;background:0 0;font-weight:500}.btn--ghost:not(:disabled):active{opacity:1;background:var(--pressed)}.btn--danger{background:var(--danger-soft);color:var(--danger-ink)}.btn--quiet-danger{color:var(--danger-ink);background:0 0;font-weight:500}.btn--quiet-danger:not(:disabled):active{opacity:1;background:var(--danger-soft)}.btn--brand{background:var(--brand);color:var(--brand-text);font-size:var(--font-lg);min-height:52px}.btn--small{padding:6px var(--space-3);border-radius:10px;font-size:14px}.icon-btn{width:var(--tap);height:var(--tap);color:var(--link-ink);transition:background-color var(--dur-fast) var(--ease-out);background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:disabled{opacity:.3;cursor:default}.icon-btn:not(:disabled):active{background:var(--pressed)}.icon-btn--danger{color:var(--danger-ink)}.btn-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.btn-row>.btn{flex:auto}.main-button-bar{z-index:var(--z-main-button);padding:var(--space-2) calc(var(--gutter) + var(--safe-right)) calc(var(--space-2) + var(--safe-bottom)) calc(var(--gutter) + var(--safe-left));background:var(--bottom-bar-bg);border-top:1px solid var(--separator);position:fixed;bottom:0;left:0;right:0}.main-button-bar .btn{max-width:608px;margin:0 auto}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--separator);border-radius:var(--radius-pill);background:var(--bg);min-height:40px;font-size:var(--font-md);transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);align-items:center;gap:6px;padding:6px 14px;display:inline-flex;position:relative}.chip:before{content:"";position:absolute;inset:-2px 0}.chip:not(:disabled):active{background:var(--pressed)}.chip[aria-pressed=true],.chip[aria-checked=true]{border-color:var(--button);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.chip:disabled{opacity:.45;cursor:default}.segmented{background:var(--hint-soft);border-radius:12px;padding:2px;display:flex}.segmented button{min-height:40px;padding:6px var(--space-2);color:var(--text);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;border-radius:10px;flex:1;font-size:14px;font-weight:500}.segmented button:not([aria-checked=true]):active{background:var(--pressed)}.segmented button[aria-checked=true]{background:var(--section-bg);color:var(--accent-ink);box-shadow:inset 0 0 0 1.5px var(--button), var(--shadow-1);font-weight:600}.switch{background:color-mix(in srgb, var(--hint) 40%, transparent);width:51px;height:31px;transition:background-color var(--dur-base) var(--ease-out);border:0;border-radius:16px;flex:none;padding:0;position:relative}.switch:before{content:"";position:absolute;inset:-7px -4px}.switch:after{content:"";width:27px;height:27px;transition:transform var(--dur-base) var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0003}.switch[aria-checked=true]{background:var(--ok)}.switch[aria-checked=true]:after{transform:translate(20px)}.switch:disabled{opacity:.4}.check{border:2px solid var(--hint);color:#0000;width:24px;height:24px;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.check--on{border-color:var(--button);background:var(--button);color:var(--button-text)}.badge{border-radius:var(--radius-pill);font-size:var(--font-xs);white-space:nowrap;align-items:center;gap:5px;padding:3px 9px;font-weight:600;line-height:1.3;display:inline-flex}.badge--ok{background:var(--ok-soft);color:var(--ok-ink)}.badge--warn{background:var(--warn-soft);color:var(--warn-ink)}.badge--danger{background:var(--danger-soft);color:var(--danger-ink)}.badge--muted{background:var(--hint-soft);color:var(--text-secondary)}.badge--accent{background:var(--accent-soft);color:var(--accent-ink)}.dot{background:currentColor;border-radius:50%;width:7px;height:7px}.dot--pulse{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}.banner{margin:0 var(--gutter) var(--space-4);padding:var(--space-3);border-radius:var(--radius);font-size:14px;line-height:var(--lh-text);align-items:flex-start;gap:10px;display:flex}.banner--info{background:var(--accent-soft)}.banner--info .banner-icon{color:var(--accent-ink)}.banner--warn{background:var(--warn-soft)}.banner--warn .banner-icon{color:var(--warn-ink)}.banner--danger{background:var(--danger-soft)}.banner--danger .banner-icon{color:var(--danger-ink)}.banner-icon{flex:none;margin-top:1px;display:inline-flex}.card{margin:0 var(--gutter) var(--space-3);padding:14px var(--gutter) var(--gutter);border-radius:var(--radius);background:var(--section-bg)}.card-head{align-items:flex-start;gap:var(--space-2);display:flex}.card-title{min-width:0;font-size:var(--font-lg);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;flex:1;margin:0;font-weight:600;line-height:1.3}.card-title a{color:inherit;margin-block:-11px;padding-block:11px;text-decoration:none;display:inline-block}.card-title a:active{opacity:.7}.route{font-size:var(--font-md);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.route-arrow{color:var(--hint);display:inline-flex}.meta{font-size:var(--font-sm);color:var(--text-secondary);flex-wrap:wrap;gap:6px 14px;margin-top:10px;display:flex}.meta-item{align-items:center;gap:5px;display:inline-flex}.meta-item .icon{color:var(--hint)}.meta strong{color:var(--text);font-weight:500}.meta-item--warn,.meta-item--warn strong,.meta-item--warn .icon{color:var(--warn-ink);font-weight:600}.card-actions{gap:var(--space-2);flex-wrap:wrap;margin-top:14px;display:flex}.card-actions .btn{white-space:nowrap;flex:auto;padding-left:10px;padding-right:10px}.card-actions .btn--icon{width:var(--tap);flex:none;padding:0}.card-error{font-size:var(--font-sm);line-height:var(--lh-text);color:var(--danger-ink);align-items:flex-start;gap:6px;margin:10px 0 0;display:flex}.card-error .icon{margin-top:1px}.summary-list{margin:0;padding:0;list-style:none}.summary-list>li{padding:2px 0}.summary-list>.sortable-item{align-items:center;gap:var(--space-1);min-height:56px;padding:var(--space-1) var(--space-1) var(--space-1) var(--gutter);background:var(--section-bg);touch-action:pan-y;display:flex}.summary-list>.sortable-item+.sortable-item{border-top:1px solid var(--separator)}.summary-list>.sortable-item .cell-main{margin-left:var(--space-2)}.summary-list>.sortable-item--dragging{z-index:2;box-shadow:var(--shadow-3);border-radius:var(--radius-sm);opacity:.96;position:relative}.drag-handle{width:var(--tap);height:var(--tap);color:var(--hint);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.drag-handle:active{background:var(--pressed);cursor:grabbing}.priority-num{background:var(--accent-soft);width:26px;height:26px;color:var(--accent-ink);font-size:var(--font-sm);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.summary-list>.priority-item{padding-top:var(--space-2);align-items:flex-start;padding-bottom:0}.priority-item .priority-num{margin-top:9px}.priority-top,.priority-controls{justify-content:space-between;align-items:center;gap:var(--space-1);display:flex}.priority-top .cell-title{min-width:0}.priority-moves{display:inline-flex}.priority-required{min-height:var(--tap);color:var(--text-secondary);cursor:pointer;align-items:center;gap:10px;font-size:14px;display:inline-flex}.rule-card{margin-bottom:var(--space-3);border-radius:var(--radius);background:var(--section-bg);overflow:hidden}.rule-card--dragging{box-shadow:var(--shadow-3)}.rule-card--error{box-shadow:inset 0 0 0 1.5px var(--destructive)}.rule-head{padding:var(--space-1) var(--space-1) var(--space-1) var(--gutter);border-bottom:1px solid var(--separator);align-items:center;gap:0;display:flex}.rule-head h3{min-width:0;font-size:var(--font-md);flex:1;margin:0;font-weight:600}.rule-body{padding:var(--space-1) 0 var(--space-2)}.rule-body .field+.field:before{display:none}.stepper{gap:var(--space-1);margin:0 var(--gutter) var(--space-2);padding:0;list-style:none;display:flex}.stepper li{background:var(--hint-soft);height:4px;transition:background-color var(--dur-base) var(--ease-out);border-radius:2px;flex:1}.stepper li[data-state=done]{background:var(--button)}.stepper li[data-state=current]{background:var(--button);box-shadow:0 0 0 2px var(--accent-soft)}.step-heading{margin:0 var(--gutter) var(--space-4)}.step-count{font-size:var(--font-sm);color:var(--text-secondary);font-weight:600;display:block}.step-title{font-size:var(--font-xl);font-weight:700;line-height:var(--lh-tight);margin-top:2px;display:block}.wizard-nav{gap:var(--space-2);margin:0 var(--gutter) var(--space-4);display:flex}.wizard-nav .btn{flex:1}.tabbar{z-index:var(--z-tabbar);padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);background:var(--bottom-bar-bg);border-top:1px solid var(--separator);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar-inner{width:100%;max-width:640px;display:flex}.tab{height:var(--tabbar-h);color:var(--text-secondary);font-size:var(--font-xs);transition:color var(--dur-fast) var(--ease-out);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-weight:500;text-decoration:none;display:flex;position:relative}.tab:active{background:var(--pressed)}.tab[aria-current=page]{color:var(--accent-ink);font-weight:600}.tab-icon{line-height:1;display:inline-flex}.tab-badge{background:var(--brand);min-width:18px;height:18px;color:var(--brand-text);text-align:center;box-shadow:0 0 0 2px var(--bottom-bar-bg);border-radius:9px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:5px;left:calc(50% + 6px)}.state{align-items:center;gap:var(--space-2);margin:var(--space-6) var(--gutter);padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-secondary);flex-direction:column;display:flex}.state-icon{width:72px;height:72px;margin-bottom:var(--space-1);background:var(--accent-soft);color:var(--accent-ink);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.state--error .state-icon{background:var(--danger-soft);color:var(--danger-ink)}.state-title{font-size:var(--font-lg);color:var(--text);margin:0;font-weight:600}.state p{max-width:320px;font-size:var(--font-md);line-height:var(--lh-text);margin:0}.state .btn{margin-top:var(--space-2)}.state--inline{padding:var(--space-4);margin:0}.state--inline .state-icon{width:48px;height:48px}.skeleton-card{margin:0 var(--gutter) var(--space-3);padding:var(--space-4);border-radius:var(--radius);background:var(--section-bg)}.skeleton-row{min-height:56px;padding:0 var(--gutter);background:var(--section-bg);align-items:center;display:flex}.skeleton-row+.skeleton-row{border-top:1px solid var(--separator)}.skeleton-rows{margin:0 var(--gutter) var(--space-3);border-radius:var(--radius);overflow:hidden}.skeleton{background:linear-gradient(90deg, var(--hint-soft) 25%, var(--pressed) 50%, var(--hint-soft) 75%);background-size:200% 100%;border-radius:6px;height:12px;animation:1.3s linear infinite shimmer;display:block}.skeleton+.skeleton{margin-top:10px}.skeleton--title{width:62%;height:18px}.skeleton--short{width:38%}.skeleton--button{border-radius:10px;height:34px;margin-top:var(--space-4)!important}@keyframes shimmer{to{background-position:-200% 0}}.spinner{border:2px solid var(--hint-soft);border-top-color:var(--button);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}.spinner-wrap{align-items:center;gap:var(--space-2);flex:none;display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}.sheet-backdrop{z-index:var(--z-sheet);background:var(--scrim);animation:fade var(--dur-base) var(--ease-out);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:640px;max-height:88vh;padding:var(--space-2) var(--safe-right) calc(80px + var(--safe-bottom)) var(--safe-left);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--secondary-bg);animation:rise var(--dur-base) var(--ease-out);overflow-y:auto}.sheet:focus{outline:none}.sheet-grip{width:36px;height:5px;margin:0 auto var(--space-2);background:color-mix(in srgb, var(--hint) 40%, transparent);border-radius:3px}.sheet-title{margin:var(--space-1) var(--gutter) var(--space-3);font-size:18px;font-weight:700}.sheet-text{margin:0 var(--gutter) var(--space-4);color:var(--text-secondary);font-size:var(--font-md);line-height:var(--lh-text)}.sheet-actions{gap:var(--space-2);margin:0 var(--gutter);flex-direction:column;display:flex}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:.6;transform:translateY(24px)}}.card--held{box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--brand) 55%, transparent)}.card--danger{box-shadow:inset 0 0 0 2px var(--destructive)}.pay-block{padding:var(--space-3);border-radius:var(--radius-sm);background:var(--brand-soft);margin-top:14px}.pay-block--warn{background:var(--warn-soft)}.pay-block--danger{background:var(--danger-soft)}.pay-block .btn--secondary{background:var(--section-bg)}.pay-head{justify-content:space-between;align-items:flex-end;gap:var(--space-2);display:flex}.pay-label{color:var(--text-secondary);font-size:14px}.pay-label strong{font-size:var(--font-md);color:var(--text);margin-top:2px;font-weight:600;display:block}.timer{font-variant-numeric:tabular-nums;font-size:var(--font-timer);letter-spacing:.01em;color:var(--ok-ink);flex:none;font-weight:700;line-height:1}.timer--warn{color:var(--warn-ink)}.timer--danger{color:var(--danger-ink)}.progress{background:var(--hint-soft);border-radius:3px;height:6px;margin-top:10px;overflow:hidden}.progress>span{background:var(--ok);border-radius:3px;height:100%;transition:width 1s linear;display:block}.progress--warn>span{background:var(--warn)}.progress--danger>span{background:var(--destructive)}.booking-note{font-size:14px;line-height:var(--lh-text);color:var(--text-secondary);align-items:flex-start;gap:6px;margin:10px 0 0;display:flex}.booking-note--warn{color:var(--warn-ink)}.booking-note .icon{margin-top:2px}.kv{gap:6px var(--space-3);margin:var(--space-3) 0 0;grid-template-columns:auto 1fr;font-size:14px;display:grid}.kv dt{color:var(--text-secondary)}.kv dd{text-align:right;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;margin:0}.event{gap:var(--space-3);padding:var(--space-3) var(--gutter);display:flex}.event+.event{border-top:1px solid var(--separator)}.event-icon{background:var(--hint-soft);width:28px;height:28px;color:var(--text-secondary);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.event--warn .event-icon{background:var(--warn-soft);color:var(--warn-ink)}.event--error .event-icon{background:var(--danger-soft);color:var(--danger-ink)}.event-msg{font-size:var(--font-md);line-height:var(--lh-base)}.event-time{font-size:var(--font-xs);color:var(--text-secondary);margin-top:2px}.event--warn .event-msg{color:var(--warn-ink)}.event--error .event-msg{color:var(--danger-ink)}.avail-head{justify-content:space-between;align-items:center;gap:6px var(--space-2);padding:var(--space-3) var(--gutter);color:var(--text-secondary);flex-wrap:wrap;font-size:14px;display:flex}.avail-day{border-top:1px solid var(--separator)}.avail-day-title{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--gutter) var(--space-1);font-size:var(--font-md);margin:0;font-weight:600;display:flex}.avail-empty{padding:0 var(--gutter) var(--space-3);color:var(--text-secondary);align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.avail-empty--solo{padding-top:var(--space-3)}.avail-empty--warn{color:var(--warn-ink)}.avail-trains{padding:0 var(--gutter) var(--space-2);margin:0;list-style:none}.avail-train{padding:var(--space-2) 0}.avail-train+.avail-train{border-top:1px dashed var(--separator)}.avail-train-head{align-items:center;gap:4px var(--space-2);font-size:var(--font-md);flex-wrap:wrap;display:flex}.avail-train-time{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:14px}.avail-cars{margin:6px 0 0;padding:0;list-style:none}.avail-car{gap:2px var(--space-3);padding:6px 0 6px var(--space-3);border-left:3px solid var(--hint-soft);grid-template-columns:1fr auto;display:grid}.avail-car+.avail-car{margin-top:6px}.avail-car--match{border-left-color:var(--ok)}.avail-car-name{font-size:var(--font-md);font-weight:600}.avail-car-seats{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.avail-car-detail{font-size:var(--font-sm);color:var(--text-secondary)}.avail-car-price{font-size:var(--font-sm);color:var(--text-secondary);text-align:right;white-space:nowrap}.avail-car .badge{grid-column:1/-1;justify-self:start;margin-top:2px}.avail-line{font-size:var(--font-sm);line-height:var(--lh-text);color:var(--text-secondary);align-items:flex-start;gap:6px;margin-top:10px;display:flex}.avail-line .icon{color:var(--hint);flex:none;margin-top:1px}.avail-line strong{font-weight:600}.avail-line .text-ok{color:var(--ok-ink)}.suggest{margin-top:var(--space-1);border:1px solid var(--separator);border-radius:var(--radius-sm);background:var(--bg);overflow:hidden}.suggest button{width:100%;min-height:var(--tap);padding:10px var(--space-3);text-align:left;background:0 0;border:0;display:block}.suggest button+button{border-top:1px solid var(--separator)}.suggest button[aria-selected=true],.suggest button:active{background:var(--accent-soft)}.station-value{font-size:var(--font-lg);font-weight:600}.swap-row{padding:0 var(--space-3);margin:calc(-1 * var(--space-2)) 0;z-index:1;justify-content:flex-end;display:flex;position:relative}.swap-btn{width:var(--tap);height:var(--tap);border:1px solid var(--separator);background:var(--section-bg);color:var(--link-ink);transition:background-color var(--dur-fast) var(--ease-out);border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.swap-btn:not(:disabled):active{background:var(--pressed)}.swap-btn:disabled{opacity:.4;cursor:default}.toasts{left:calc(var(--gutter) + var(--safe-left));right:calc(var(--gutter) + var(--safe-right));bottom:calc(var(--safe-bottom) + 84px);z-index:var(--z-toast);gap:var(--space-2);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed}.app--tabs .toasts{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 72px)}.toast{align-items:flex-start;gap:var(--space-2);border-radius:var(--radius);background:color-mix(in srgb, var(--text) 88%, var(--secondary-bg));max-width:480px;color:var(--secondary-bg);font-size:14px;line-height:var(--lh-base);box-shadow:var(--shadow-2);animation:toast-in var(--dur-slow) var(--ease-out);padding:10px 14px;display:flex}.toast .icon{margin-top:1px}.toast--ok .icon{color:color-mix(in srgb, var(--ok) 70%, var(--secondary-bg))}.toast--error{background:var(--danger-ink);color:var(--secondary-bg)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.muted{color:var(--text-secondary)}.text-danger{color:var(--danger-ink)}.text-ok{color:var(--ok-ink)}.nowrap{white-space:nowrap}.stack>*+*{margin-top:var(--space-2)}.pad{padding:0 var(--gutter)}.status-row{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);color:var(--text-secondary);flex-wrap:wrap;font-size:14px;display:flex}.notice-text{margin:0 0 var(--space-3);font-size:var(--font-md);line-height:var(--lh-text)}.app--tabs .main-button-bar{bottom:calc(var(--tabbar-h) + var(--safe-bottom));padding-top:var(--space-5);padding-bottom:var(--space-2);background:linear-gradient(to bottom, transparent, var(--secondary-bg) 20px);border-top:0}.app--tabs.app--main{padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 96px)}@media (width>=600px){:root{--gutter:var(--space-5)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.dot--pulse,.skeleton{animation:none}.spinner{border-top-color:var(--button);border-right-color:var(--button);animation:none}}
