:root{--color-primary:#df0024;--color-primary-hover:#b8001d;--color-primary-deep:#8f0016;--color-primary-tint:#fdecef;--color-secondary:#0abeb4;--color-secondary-text:#067a73;--color-background:#fff;--color-surface:#fff;--color-surface-dim:#f4f4f4;--color-on-primary:#fff;--color-on-surface:#3b3b3b;--color-ink:#262626;--color-on-surface-variant:#666;--color-outline:#d8d8d8;--color-error:#d50000;--color-success:#71c387;--color-success-text:#2c7a43;--font-display:"Acto Cttmedium", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-body:"Acto Cttbook", "Helvetica Neue", Helvetica, Arial, sans-serif;--text-display:clamp(2.25rem, 1.3rem + 3.4vw, 3.25rem);--text-headline-lg:clamp(1.75rem, 1.45rem + 1vw, 2rem);--text-headline-md:1.5rem;--text-headline-sm:1.25rem;--text-body-lg:1.125rem;--text-body-md:1rem;--text-body-sm:.875rem;--text-label-sm:.75rem;--rounded-sm:4px;--rounded-md:8px;--rounded-full:9999px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:80px;--elevation-sm:0 1px 2px #0000001a;--elevation-md:0 4px 8px #0000001a;--elevation-lg:0 10px 20px #0003;--duration-short:.2s;--duration-medium:.5s;--easing-standard:cubic-bezier(.25, .1, .25, 1);--max-width:1160px;--gutter:16px}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-text-size-adjust:100%}body{background:var(--color-background);min-height:100vh;color:var(--color-on-surface);font:400 var(--text-body-md) / 1.5 var(--font-body);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;display:flex}main{outline:none;flex:1}h1,h2,h3{font-family:var(--font-display);color:var(--color-ink);letter-spacing:-.015em;text-wrap:balance;margin:0;font-weight:700}h1{font-size:var(--text-headline-lg);line-height:1.2}h2{font-size:var(--text-headline-sm);line-height:1.35}h3{font-size:var(--text-body-md);line-height:1.4}p{margin:0}code{background:var(--color-surface-dim);padding:1px 4px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em}.muted{color:var(--color-on-surface-variant)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--color-secondary);outline-offset:2px}.skip{left:var(--gutter);z-index:20;background:var(--color-ink);color:var(--color-on-primary);padding:var(--space-sm) var(--space-md);position:absolute;top:-60px}.skip:focus{top:var(--space-sm)}.code-text,.code-field,.tracking-code,.ticket-code,.detail-code{font-family:var(--font-display);letter-spacing:.06em;font-variant-numeric:tabular-nums;font-weight:700}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-outline);z-index:10;position:sticky;top:0}.topbar-inner{max-width:var(--max-width);padding:0 var(--gutter);align-items:center;gap:var(--space-lg);min-height:68px;margin:0 auto;display:flex}.brand{font:400 1.375rem var(--font-display);color:var(--color-ink);letter-spacing:-.02em;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand b{color:var(--color-primary)}.brand-mark{width:28px;height:28px;color:var(--color-primary)}.nav{scrollbar-width:none;align-items:center;margin-left:auto;display:flex;overflow-x:auto}.nav a{color:var(--color-on-surface);font-size:var(--text-body-sm);white-space:nowrap;transition:box-shadow var(--duration-short) var(--easing-standard), color var(--duration-short);padding:23px 12px;font-weight:500;text-decoration:none;box-shadow:inset 0 -3px #0000}.nav a:hover{color:var(--color-primary)}.nav a[aria-current=page]{color:var(--color-primary);box-shadow:inset 0 -3px 0 var(--color-primary)}.nav-sep{background:var(--color-outline);width:1px;height:20px;margin:0 var(--space-sm);flex:none}.wall{--unit:34px;--col:88px;grid-template-rows:repeat(6, var(--unit));grid-auto-flow:column dense;grid-auto-columns:var(--col);background:#4a4a4a;gap:4px;width:max-content;max-width:100%;padding:8px;display:grid;overflow-x:auto}.door{font:700 var(--text-label-sm) / 1 var(--font-display);color:var(--color-on-surface-variant);letter-spacing:.04em;background:#f7f7f7;border:0;justify-content:flex-start;align-items:flex-end;padding:5px 7px;display:flex;position:relative}.door:after{content:"";background:#b5b5b5;width:4px;height:14px;max-height:60%;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.door-occupied{background:var(--color-primary);color:#ffffffe6}.door-occupied:after{background:#ffffff8c}.door-out_of_service{color:var(--color-on-surface-variant);background:repeating-linear-gradient(-45deg,#d9d9d9 0 5px,#ececec 5px 10px)}.door-out_of_service:after{display:none}.door.is-open{color:#ffffffb3;background:#1f1f1f;overflow:visible}.door.is-open:before{content:"";z-index:1;transform-origin:0;animation:swing .9s var(--easing-standard) .4s both;background:#f7f7f7;position:absolute;inset:0;transform:perspective(420px)rotateY(-58deg);box-shadow:6px 0 14px #00000059}.hero-wall .door.is-open:before{background:#fff}.door.is-open:after{display:none}@keyframes swing{0%{transform:perspective(420px)rotateY(0)}}button.door{cursor:pointer;transition:outline-color var(--duration-short);outline-offset:-3px;outline:3px solid #0000}button.door:hover{outline-color:var(--color-secondary)}button.door[aria-pressed=true]{outline:3px solid var(--color-ink);outline-offset:-3px}.hero{background:var(--color-primary);color:var(--color-on-primary);padding:var(--space-3xl) 0 calc(var(--space-3xl) + var(--space-2xl));overflow:hidden}.hero-inner{max-width:var(--max-width);padding:0 var(--gutter);gap:var(--space-2xl);grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;margin:0 auto;display:grid}.hero h1{color:var(--color-on-primary);font-size:var(--text-display);letter-spacing:-.03em;max-width:13ch;line-height:1.08}.hero .lead{margin-top:var(--space-lg);font-size:var(--text-body-lg);max-width:44ch;color:var(--color-on-primary)}.hero-track{margin-top:var(--space-xl);max-width:520px}.hero-track-label{font-size:var(--text-body-sm);margin-bottom:var(--space-sm);font-weight:500;display:block}.hero-track-row{display:flex}.hero-track-row input{border-color:var(--color-on-primary);min-width:0;font-family:var(--font-display);letter-spacing:.06em;flex:1;font-weight:700}.hero-track-row input:focus{border-color:var(--color-ink);box-shadow:inset 0 0 0 1px var(--color-ink)}.hero-track-row .btn{border-left:0}.hero-wall{justify-self:end}.hero-wall .wall{--unit:46px;--col:112px;background:var(--color-primary-deep);box-shadow:var(--elevation-lg);gap:5px;padding:10px;overflow:visible}.hero-wall .door{background:#fffffff5}.hero-wall .door-occupied{color:var(--color-primary-deep);background:#fff9}.hero-wall .door-occupied:after{background:#8f001659}.hero-wall .door.is-open{background:var(--color-ink)}.quick{max-width:var(--max-width);margin:calc(var(--space-3xl) * -1) auto 0;padding:0 var(--gutter);z-index:1;grid-template-columns:repeat(3,1fr);display:grid;position:relative}.quick-card{gap:var(--space-md);background:var(--color-surface);padding:var(--space-lg);box-shadow:var(--elevation-md);color:inherit;transition:border-color var(--duration-short) var(--easing-standard);border-bottom:3px solid #0000;align-items:flex-start;text-decoration:none;display:flex}.quick-card+.quick-card{border-left:1px solid var(--color-outline)}.quick-card:hover{border-bottom-color:var(--color-primary)}.quick-card svg{fill:none;width:32px;height:32px;stroke:var(--color-primary);stroke-width:2px;stroke-linejoin:miter;flex:none}.quick-card svg path:first-child{fill:none}.quick-card strong{font:700 var(--text-body-lg) / 1.3 var(--font-display);color:var(--color-ink);margin-bottom:var(--space-xs);display:block}.quick-card:hover strong{color:var(--color-primary)}.quick-card span{font-size:var(--text-body-sm);color:var(--color-on-surface-variant)}.how-title{font-size:var(--text-headline-lg);margin-bottom:var(--space-xl)}.steps{counter-reset:step;grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;padding:var(--space-lg) var(--space-lg) 0 0;border-top:2px solid var(--color-outline);position:relative}.steps li:before{content:counter(step);font:700 var(--text-headline-lg) / 1 var(--font-display);color:var(--color-primary);margin-bottom:var(--space-md);display:block}.steps li:first-child{border-top-color:var(--color-primary)}.steps h3{font-size:var(--text-body-lg);margin-bottom:var(--space-sm)}.steps p{color:var(--color-on-surface-variant);font-size:var(--text-body-sm);max-width:30ch}.areas{background:var(--color-surface-dim);border-top:1px solid var(--color-outline)}.areas-inner{max-width:var(--max-width);padding:var(--space-2xl) var(--gutter);gap:var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;margin:0 auto;display:grid}.areas ul{border-top:1px solid var(--color-outline);margin:0;padding:0;list-style:none}.areas a{justify-content:space-between;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-outline);color:inherit;text-decoration:none;display:flex}.areas a strong{font-family:var(--font-display);color:var(--color-ink)}.areas a span{color:var(--color-on-surface-variant);font-size:var(--text-body-sm);text-align:right}.areas a:hover strong{color:var(--color-primary)}.page{max-width:var(--max-width);padding:var(--space-2xl) var(--gutter) var(--space-3xl);width:100%;margin:0 auto}.page.narrow{max-width:860px}.page-header{margin-bottom:var(--space-xl)}.page-header .lead{margin-top:var(--space-sm);color:var(--color-on-surface-variant);font-size:var(--text-body-lg);max-width:60ch}.page-header-row{justify-content:space-between;align-items:flex-end;gap:var(--space-lg);margin-bottom:var(--space-xl);flex-wrap:wrap;display:flex}.page-header-row .page-header{margin:0}.panel{background:var(--color-surface);border:1px solid var(--color-outline);padding:var(--space-lg)}.panel-quiet{background:var(--color-surface-dim)}.stack{gap:var(--space-lg);flex-direction:column;display:flex}.split{gap:var(--space-xl);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;display:grid}.note{border-left:3px solid var(--color-secondary);padding:var(--space-xs) 0 var(--space-xs) var(--space-md);font-size:var(--text-body-sm);color:var(--color-on-surface-variant)}.note h3{margin-bottom:var(--space-xs)}.searchbar{gap:var(--space-md);padding:var(--space-lg);background:var(--color-surface-dim);margin-bottom:var(--space-xl);flex-wrap:wrap;align-items:flex-end;display:flex}.grow{flex:280px}.empty{padding:var(--space-2xl) var(--space-lg);border:1px dashed var(--color-outline);text-align:center}.empty p{margin-top:var(--space-sm);color:var(--color-on-surface-variant)}.field{font-size:var(--text-body-sm);color:var(--color-ink);border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;font-weight:500;display:flex}.field legend{margin-bottom:6px;padding:0}input,select{font:inherit;font-size:var(--text-body-md);color:var(--color-on-surface);background:var(--color-surface);border:1px solid var(--color-outline);min-height:48px;transition:border-color var(--duration-short) var(--easing-standard);border-radius:0;padding:12px 16px;font-weight:400}select{appearance:none;background:var(--color-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23DF0024' stroke-width='2'/%3E%3C/svg%3E") right 16px center no-repeat;padding-right:40px}input::placeholder{color:#9a9a9a}input:hover,select:hover{border-color:var(--color-on-surface-variant)}input:focus,select:focus{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);outline:none}.code-field{text-transform:uppercase}.code-field::placeholder{letter-spacing:.06em}.code-field-lg{font-size:var(--text-headline-sm);min-height:60px}.choice-list{border:1px solid var(--color-outline);flex-direction:column;display:flex}.choice{gap:var(--space-md);padding:12px var(--space-md);cursor:pointer;align-items:center;font-weight:400;display:flex}.choice+.choice{border-top:1px solid var(--color-outline)}.choice input{width:18px;height:18px;min-height:0;accent-color:var(--color-primary);margin:0}.choice-body{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;flex:1;display:flex}.choice-body .slots{margin:0}.choice:has(input:checked){background:var(--color-primary-tint);box-shadow:inset 3px 0 0 var(--color-primary)}.segmented{grid-template-columns:repeat(3,1fr);display:grid}.segmented label{cursor:pointer;display:flex}.segmented input{opacity:0;pointer-events:none;position:absolute}.segmented span{padding:var(--space-md);border:1px solid var(--color-outline);transition:background var(--duration-short), border-color var(--duration-short);flex-direction:column;flex:1;align-items:flex-start;gap:2px;margin-left:-1px;font-weight:400;display:flex}.segmented label:first-child span{margin-left:0}.segmented b{font:700 var(--text-body-md) var(--font-display);color:var(--color-ink)}.segmented small{font-size:var(--text-label-sm);color:var(--color-on-surface-variant)}.segmented input:checked+span{border-color:var(--color-primary);background:var(--color-primary-tint);box-shadow:inset 0 0 0 1px var(--color-primary);position:relative}.segmented input:focus-visible+span{outline:3px solid var(--color-secondary);outline-offset:2px}.size-glyph{border:2px solid var(--color-primary);width:22px;margin-bottom:var(--space-sm);display:block}.size-S{height:10px}.size-M{height:18px}.size-L{height:26px}.btn{justify-content:center;align-items:center;gap:var(--space-sm);min-height:48px;font:500 var(--text-body-sm) / 1 var(--font-body);border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;white-space:nowrap;transition:background var(--duration-short) var(--easing-standard), border-color var(--duration-short), color var(--duration-short);border-radius:0;padding:12px 24px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn:active{background:var(--color-primary-deep)}.btn:disabled{opacity:.55;cursor:progress}.btn-lg{min-height:56px;font-size:var(--text-body-md)}.btn-block{width:100%}.btn-sm{min-height:34px;font-size:var(--text-label-sm);padding:8px 14px}.btn-ghost{color:var(--color-primary);background:0 0}.btn-ghost:hover{background:var(--color-primary-tint);border-color:var(--color-primary)}.btn-light{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-surface)}.btn-light:hover{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-on-primary)}.link{color:var(--color-secondary-text);text-underline-offset:3px;transition:color var(--duration-short);font-weight:500}.link:hover{color:var(--color-primary)}.badge{border-radius:var(--rounded-full);font:600 var(--text-label-sm) / 1 var(--font-body);color:var(--color-on-primary);white-space:nowrap;align-items:center;gap:6px;padding:5px 10px;display:inline-flex}.badge-primary{background:var(--color-primary)}.badge-success{background:var(--color-success-text)}.badge-error{background:var(--color-error)}.badge-neutral{background:var(--color-ink)}.badge-muted{background:var(--color-surface-dim);color:var(--color-on-surface-variant);box-shadow:inset 0 0 0 1px var(--color-outline)}.alert{padding:var(--space-md) var(--space-lg);margin:var(--space-md) 0;background:var(--color-surface-dim);gap:var(--space-xs);font-size:var(--text-body-sm);border-left:4px solid;display:grid}.alert-title{font:700 var(--text-body-md) / 1.4 var(--font-display);color:var(--color-ink)}.alert ul{padding-left:var(--space-lg);margin:0}.alert-meta{color:var(--color-on-surface-variant);font-size:var(--text-label-sm)}.alert-error{border-color:var(--color-error);background:#fff4f4}.alert-success{border-color:var(--color-success);background:#f2faf4}.find-layout{gap:var(--space-xl);grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start;display:grid}.list-title{padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-ink)}.station-list{margin:0;padding:0;list-style:none}.station{gap:var(--space-md);padding:var(--space-lg) 0;border-bottom:1px solid var(--color-outline);align-items:flex-start;display:flex}.station-rank{background:var(--color-primary);width:32px;height:32px;color:var(--color-on-primary);font:700 var(--text-body-md) var(--font-display);flex:none;place-items:center;display:grid}.station-body{flex:1;min-width:0}.station-body h3{font-size:var(--text-body-lg)}.station-body .muted{font-size:var(--text-body-sm);margin-top:2px}.station-dist{text-align:right;line-height:1}.station-dist strong{font:700 var(--text-headline-md) / 1 var(--font-display);color:var(--color-ink);letter-spacing:-.02em;display:block}.station-dist span{font-size:var(--text-label-sm);color:var(--color-on-surface-variant)}.slots{margin:var(--space-md) 0 0;gap:var(--space-md);padding:0;list-style:none;display:flex}.slot{font-size:var(--text-body-sm);color:var(--color-on-surface-variant);align-items:flex-end;gap:5px;line-height:1;display:inline-flex}.slot i{background:var(--color-secondary);width:10px;display:block}.slot-S i{height:8px}.slot-M i{height:13px}.slot-L i{height:18px}.slot b{font:700 var(--text-body-md) / 1 var(--font-display);color:var(--color-ink)}.slot-empty i{background:var(--color-outline)}.slot-empty b{color:var(--color-on-surface-variant)}.map{margin:0;position:sticky;top:92px}.map svg{background:var(--color-surface-dim);border:1px solid var(--color-outline);width:100%;height:auto;display:block}.map-grid{stroke:#e6e6e6;stroke-width:1px}.pin rect{fill:var(--color-on-surface-variant)}.pin-ranked rect{fill:var(--color-primary)}.pin text{fill:var(--color-on-primary);font:700 14px var(--font-display);text-anchor:middle}.pin-label{fill:var(--color-ink);font:600 11px var(--font-body);text-anchor:middle;paint-order:stroke;stroke:var(--color-surface-dim);stroke-width:4px}.pin-label-muted{fill:var(--color-on-surface-variant);font-weight:400}.map figcaption{margin-top:var(--space-sm);font-size:var(--text-label-sm);color:var(--color-on-surface-variant)}.tracking{border-top:4px solid var(--color-primary);padding-top:var(--space-lg)}.tracking-head{justify-content:space-between;align-items:flex-start;gap:var(--space-lg);display:flex}.tracking-code{font-size:var(--text-body-sm);color:var(--color-primary);margin-bottom:var(--space-sm)}.tracking-head h2{font-size:var(--text-headline-md);max-width:34ch;line-height:1.3}.progress{margin:var(--space-xl) 0;grid-auto-columns:1fr;grid-auto-flow:column;padding:0;list-style:none;display:grid}.progress li{padding-top:var(--space-lg);border-top:6px solid var(--color-outline);gap:2px;margin-right:4px;display:grid;position:relative}.progress li.done{border-top-color:var(--color-primary)}.progress-exit li.current{border-top-color:var(--color-on-surface-variant)}.progress li.current:before{content:"";border-radius:var(--rounded-full);background:var(--color-surface);border:4px solid var(--color-primary);width:18px;height:18px;position:absolute;top:-12px;left:0}.progress-exit li.current:before{border-color:var(--color-on-surface-variant)}.progress-label{font:700 var(--text-body-md) var(--font-display);color:var(--color-ink)}.progress li:not(.done) .progress-label{color:var(--color-on-surface-variant)}.progress-time{font-size:var(--text-body-sm);color:var(--color-on-surface-variant)}.tracking-grid{gap:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-outline);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.tracking-grid h3{margin-bottom:var(--space-md)}.facts{gap:var(--space-md);margin:0;display:grid}.facts dt{font-size:var(--text-body-sm);color:var(--color-on-surface-variant)}.facts dd{color:var(--color-ink);margin:2px 0 0}.timeline{margin:0;padding:0;list-style:none}.timeline li{padding:0 0 var(--space-lg) var(--space-lg);border-left:2px solid var(--color-outline);gap:2px;display:grid;position:relative}.timeline li:last-child{border-left-color:#0000;padding-bottom:0}.timeline li:before{content:"";background:var(--color-surface);border:2px solid var(--color-on-surface-variant);width:12px;height:12px;position:absolute;top:3px;left:-7px}.timeline li:first-child:before{background:var(--color-primary);border-color:var(--color-primary)}.timeline strong{color:var(--color-ink);font-weight:500}.timeline .muted{font-size:var(--text-body-sm)}.ticket{border:2px solid var(--color-ink);padding:var(--space-lg);background:radial-gradient(circle at 0 50%, var(--color-background) 10px, transparent 11px), radial-gradient(circle at 100% 50%, var(--color-background) 10px, transparent 11px), var(--color-surface);position:relative}.ticket-head{font-size:var(--text-body-sm);color:var(--color-success-text);font-weight:600}.ticket-code{font-size:var(--text-headline-lg);color:var(--color-ink);margin:var(--space-xs) 0 var(--space-md)}.ticket-facts{gap:var(--space-xl);padding-top:var(--space-md);border-top:1px dashed var(--color-outline);margin:0;display:flex}.ticket-facts dt{font-size:var(--text-label-sm);color:var(--color-on-surface-variant)}.ticket-facts dd{font:700 var(--text-body-md) var(--font-display);margin:2px 0 0}.ticket-actions{gap:var(--space-lg);margin-top:var(--space-lg);align-items:center;display:flex}.terminal{max-width:720px}.kiosk{background:var(--color-ink);box-shadow:var(--elevation-lg);padding:14px}.kiosk-bar{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-sm) var(--space-md);color:var(--color-on-primary);display:flex}.kiosk-station{font:700 var(--text-body-lg) var(--font-display);color:inherit}.kiosk-address{font-size:var(--text-label-sm);color:#fff9}.kiosk-switch select{min-height:36px;font-size:var(--text-body-sm);color:var(--color-on-primary);background-color:#0000;border-color:#ffffff4d;padding:6px 36px 6px 12px}.kiosk-switch option{color:var(--color-ink)}.tabs{background:#3a3a3a;grid-template-columns:1fr 1fr;display:grid}.tabs button{font:500 var(--text-body-md) var(--font-body);color:#ffffffbf;padding:var(--space-md);cursor:pointer;transition:background var(--duration-short), color var(--duration-short);background:0 0;border:0}.tabs button:hover{color:var(--color-on-primary)}.tabs button[aria-selected=true]{background:var(--color-surface);color:var(--color-primary)}.screen{background:var(--color-surface);padding:var(--space-2xl) var(--space-xl);justify-content:center;min-height:520px;display:flex}.kiosk-form,.kiosk-done{gap:var(--space-md);flex-direction:column;width:100%;max-width:400px;display:flex}.kiosk-form h2,.kiosk-done h2{font-size:var(--text-headline-md)}.kiosk-done{text-align:center;align-items:center}.pin-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.pin-boxes{gap:var(--space-sm);cursor:text;grid-template-columns:repeat(6,1fr);display:grid}.pin-boxes span{border:1px solid var(--color-outline);height:64px;font:700 2rem var(--font-display);color:var(--color-ink);border-bottom-width:3px;place-items:center;display:grid}.pin-input:focus+.pin-boxes span.active{border-color:var(--color-primary)}.keypad{background:var(--color-outline);border:1px solid var(--color-outline);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.keypad button{background:var(--color-surface);height:56px;font:500 1.375rem var(--font-display);color:var(--color-ink);cursor:pointer;border:0;transition:background 80ms}.keypad button:hover{background:var(--color-surface-dim)}.keypad button:active{background:var(--color-primary-tint)}.keypad .key-fn{font-size:var(--text-body-md);color:var(--color-on-surface-variant)}.shake{animation:shake .36s var(--easing-standard)}@keyframes shake{25%{transform:translate(-8px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}.door-frame{background:var(--color-ink);perspective:600px;width:132px;height:160px;margin-bottom:var(--space-md);border:8px solid #4a4a4a;position:relative}.door-inside{font:700 2.5rem var(--font-display);color:var(--color-secondary);place-items:center;display:grid;position:absolute;inset:0}.door-leaf{transform-origin:0;animation:swing .7s var(--easing-standard) both;background:#f2f2f2;position:absolute;inset:0;transform:perspective(420px)rotateY(-68deg);box-shadow:8px 0 18px #0000004d}.door-handle{background:#b5b5b5;width:6px;height:28px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.check{border-radius:var(--rounded-full);background:var(--color-success-text);width:72px;height:72px;margin-bottom:var(--space-md);position:relative}.check:after{content:"";border:solid var(--color-on-primary);border-width:0 5px 5px 0;width:16px;height:30px;position:absolute;top:17px;left:25px;transform:rotate(45deg)}.demo-note{font-size:var(--text-label-sm);color:var(--color-on-surface-variant);background:var(--color-surface-dim);padding:var(--space-sm) var(--space-md)}.ops{gap:var(--space-xl);margin-bottom:var(--space-2xl);grid-template-columns:minmax(0,1fr) 280px;align-items:start;display:grid}.ops-head{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.ops-wall .wall{--unit:52px;--col:124px}.ops-detail{gap:var(--space-md);flex-direction:column;min-height:220px;display:flex}.detail-code{font-size:var(--text-headline-lg);color:var(--color-ink);line-height:1}.legend{gap:var(--space-md);font-size:var(--text-body-sm);color:var(--color-on-surface-variant);margin:0;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:flex}.legend i{width:12px;height:12px;display:block}.lg-available{background:#f7f7f7;box-shadow:inset 0 0 0 1px #b5b5b5}.lg-occupied{background:var(--color-primary)}.lg-out{background:repeating-linear-gradient(-45deg,#c9c9c9 0 2px,#ececec 2px 4px)}.filter{border:1px solid var(--color-outline);flex-wrap:wrap;display:flex}.filter button{font:500 var(--text-body-sm) var(--font-body);background:var(--color-surface);color:var(--color-on-surface);cursor:pointer;border:0;padding:8px 14px}.filter button+button{border-left:1px solid var(--color-outline)}.filter button:hover{color:var(--color-primary)}.filter button[aria-pressed=true]{background:var(--color-ink);color:var(--color-on-primary)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--text-body-sm)}th{text-align:left;color:var(--color-on-surface-variant);padding:var(--space-sm) var(--space-md);border-bottom:2px solid var(--color-ink);font-weight:500}td{padding:12px var(--space-md);border-bottom:1px solid var(--color-outline);white-space:nowrap}tbody tr:hover{background:var(--color-surface-dim)}.row-alert{box-shadow:inset 3px 0 0 var(--color-error)}.cell-action{text-align:right}.empty-row{color:var(--color-on-surface-variant);padding:var(--space-xl) var(--space-md);text-align:center}.footer{background:var(--color-ink);color:#ffffffb3;font-size:var(--text-body-sm)}.footer-inner{max-width:var(--max-width);padding:var(--space-xl) var(--gutter);justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;margin:0 auto;display:flex}.footer strong{color:var(--color-on-primary)}@media (width<=960px){.steps{row-gap:var(--space-xl);grid-template-columns:repeat(2,1fr)}.ops,.find-layout{grid-template-columns:1fr}.map{position:static}}@media (width<=768px){.topbar-inner{padding-top:var(--space-sm);flex-wrap:wrap;gap:0}.nav{margin-left:calc(var(--gutter) * -1);width:calc(100% + 2 * var(--gutter));padding:0 var(--space-sm)}.nav a{padding:14px 10px}.hero{padding:var(--space-2xl) 0 calc(var(--space-2xl) + var(--space-xl))}.hero-inner,.split,.quick,.areas-inner,.tracking-grid{grid-template-columns:1fr}.hero-wall{display:none}.hero-track-row{flex-direction:column}.hero-track-row .btn{border-left:1px solid var(--color-surface)}.quick{margin-top:calc(var(--space-xl) * -1)}.quick-card+.quick-card{border-left:0;border-top:1px solid var(--color-outline)}.steps{grid-template-columns:1fr}.areas a{flex-direction:column;gap:2px}.areas a span{text-align:left}.segmented{grid-template-columns:1fr}.segmented span{margin:-1px 0 0}.tracking-head{gap:var(--space-md);flex-direction:column-reverse}.screen{padding:var(--space-lg) var(--space-md)}.kiosk{margin:0 calc(var(--gutter) * -1);padding:8px}.pin-boxes span{height:52px;font-size:1.5rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
