@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";.pair-page{padding:var(--space-lg)}.pair-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--space-lg);align-items:start}@media(max-width:1024px){.pair-grid{grid-template-columns:1fr}}.pair-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-lg)}.pair-station-id{font-family:ui-monospace,monospace;font-size:.8rem;color:var(--color-text-muted);background:var(--color-surface-alt);padding:6px 12px;border-radius:var(--radius-md)}.pair-btn{min-height:68px;font-size:1.25rem;font-weight:700;border-radius:var(--radius-md);padding:0 28px;display:inline-flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;border:none;width:100%}.pair-btn-lg{min-height:96px;font-size:1.6rem}.pair-btn-primary{background:var(--color-accent);color:#fff}.pair-btn-success{background:#16a34a;color:#fff}.pair-btn-danger{background:#dc2626;color:#fff}.pair-btn-neutral{background:var(--color-surface-alt);color:var(--color-text);border:2px solid var(--color-border)}.pair-btn-quiet-danger{background:transparent;color:#b91c1c;border:1px solid #fecaca;font-weight:600}.pair-btn:disabled{opacity:.5;cursor:not-allowed}.pair-panel{border-radius:20px;padding:var(--space-xl);min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:4px solid transparent}.pair-panel .pair-headline{font-size:2.4rem;font-weight:800;line-height:1.1;margin-bottom:10px}.pair-panel .pair-detail{font-size:1.25rem;opacity:.85}.pair-panel .pair-message{font-size:1.5rem;font-weight:600;margin-top:8px}.tone-idle{background:var(--color-surface-alt);color:var(--color-text)}.tone-waiting{background:#7c2d12;color:#fff;border-color:#f59e0b}.tone-success{background:#064e3b;color:#fff;border-color:#10b981}.tone-retrieval{background:#0c2a4d;color:#fff;border-color:#3b82f6}.tone-error{background:#450a0a;color:#fff;border-color:#ef4444}.placard-number{font-weight:900;line-height:.9;letter-spacing:-.02em;font-size:clamp(6rem,22vw,14rem);font-variant-numeric:tabular-nums}.placard-caption{font-size:1rem;text-transform:uppercase;letter-spacing:.15em;opacity:.8}.card-number{font-size:1.6rem;font-weight:700;font-family:ui-monospace,monospace}.pair-status{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:1rem}.pair-dot{width:12px;height:12px;border-radius:50%}.pair-dot.scanning{background:#10b981;box-shadow:0 0 0 4px #10b98140}.pair-dot.paused{background:#f59e0b}.pair-dot.idle{background:var(--color-text-muted)}.pair-dot.error{background:#ef4444}.pair-form{width:100%;max-width:560px;margin-top:var(--space-lg);text-align:left}.pair-form .form-input{min-height:56px;font-size:1.15rem}.pair-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.pair-manual{margin-top:var(--space-md)}.pair-manual .form-input{min-height:56px;font-size:1.15rem}.pair-choose{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-top:var(--space-md)}.pair-unknown-serial{margin-top:var(--space-lg);width:100%}.pair-serial{display:inline-block;margin-top:6px;font-family:ui-monospace,monospace;font-weight:800;font-size:clamp(1.5rem,5vw,2.75rem);letter-spacing:.02em;word-break:break-all;line-height:1.15;background:#ffffff1f;padding:12px 18px;border-radius:12px;-moz-user-select:all;user-select:all;-webkit-user-select:all;cursor:text}.board-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-lg);align-items:start}.board-single{display:block}.board-follow-note{font-size:.9rem;color:var(--color-muted, #5b6b7c);padding:4px 2px 10px}.board-column{background:var(--color-surface-alt);border-radius:16px;padding:var(--space-md);min-height:180px}.board-column-returned{background:transparent;border:1px dashed var(--color-border)}.board-column-unavailable{outline:2px dashed var(--color-danger, #c0392b);outline-offset:-4px}.board-column-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-md)}.board-column-head h2{font-size:1.1rem;text-transform:uppercase;letter-spacing:.06em;margin:0}.board-column-count{font-weight:800;font-size:1.25rem;font-variant-numeric:tabular-nums}.board-column-empty{text-align:center;padding:var(--space-lg);color:var(--color-text-muted)}.board-column-broken{display:flex;gap:var(--space-sm);align-items:flex-start;padding:var(--space-md);color:var(--color-danger, #c0392b)}.board-column-broken p{margin:2px 0 0;font-size:.9rem}.board-card{background:var(--color-surface);border-radius:14px;padding:var(--space-md);margin-bottom:var(--space-md);border-left:6px solid transparent}.board-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.board-card-placard{font-weight:900;font-size:clamp(2.75rem,7vw,4.5rem);line-height:.95;font-variant-numeric:tabular-nums;color:var(--color-accent)}.board-card-timer{font-weight:800;font-size:1.5rem;font-variant-numeric:tabular-nums}.board-card-plate{font-size:1.3rem;font-weight:700}.board-card-vehicle,.board-card-driver,.board-card-age{color:var(--color-text-muted);font-size:.95rem}.board-card-guest{margin-top:7px;color:var(--color-text);font-size:.9rem;font-weight:800}.board-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-md)}.board-card-actions .pair-btn{flex:1 1 auto;min-height:52px}.board-card-calm{border-left-color:transparent}.board-card-amber{border-left-color:#d98324}.board-card-red{border-left-color:#c0392b;background:color-mix(in srgb,#c0392b 6%,var(--color-surface))}.board-card-unknown{border-left-color:var(--color-text-muted)}.board-timer-calm{color:var(--color-text-muted)}.board-timer-amber{color:#d98324}.board-timer-red{color:#c0392b}.board-timer-unknown{color:var(--color-text-muted);font-size:1.1rem}.board-switch{display:flex;gap:6px;margin-bottom:var(--space-md)}.board-switch-btn{flex:1;padding:12px 6px;border-radius:12px;border:1px solid var(--color-border);background:var(--color-surface);text-transform:capitalize;font-weight:700;min-height:52px}.board-switch-btn.active{background:var(--color-accent);color:#fff}.board-switch-amber{border-color:#d97706;box-shadow:inset 0 -3px #d97706}.board-switch-red{border-color:#dc2626;box-shadow:inset 0 -3px #dc2626;color:#dc2626}.board-switch-red.active,.board-switch-amber.active{color:#fff}.board-switch-count{display:block;font-size:1.35rem;font-variant-numeric:tabular-nums}@media(max-width:900px){.board-columns{grid-template-columns:1fr}}.wl{margin-top:var(--space-lg);border-radius:14px;background:var(--color-surface, #fff);border:1px solid rgba(15,41,66,.1);overflow:hidden}.wl-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:12px 14px;border-bottom:1px solid rgba(15,41,66,.08)}.wl-title{font-weight:700;font-size:1.05rem;color:var(--color-ink, #0f2942)}.wl-sub{font-size:.9rem;color:var(--color-muted, #5b6b7c);margin-top:2px}.wl-stale-count{display:inline-flex;align-items:center;gap:5px;font-size:.85rem;font-weight:700;color:#a1341f}.wl-unknown,.wl-clear{display:flex;align-items:center;gap:10px;padding:14px}.wl-unknown{background:#fdf3e7;border-color:#a1341f40;color:#7a3d12}.wl-clear{background:#eef7f0;border-color:#23784233;color:#1f6b3c}.wl-rows{display:flex;flex-direction:column}.wl-row{display:flex;align-items:stretch;width:100%;min-height:64px;border-top:1px solid rgba(15,41,66,.1)}.wl-row:first-child{border-top:none}.wl-card{font-weight:700;font-size:1.05rem}.wl-wait{margin-left:auto;font-size:.95rem;color:var(--color-muted, #5b6b7c);font-variant-numeric:tabular-nums}.wl-row-stale{box-shadow:inset 3px 0 #a1341f}.wl-row-stale .wl-wait{color:#a1341f;font-weight:700}.wl-row-selected{background:#c5a5722e;box-shadow:inset 3px 0 0 var(--color-accent, #c5a572)}.wl-armed{flex-basis:100%;margin-left:28px;font-size:.9rem;font-weight:700;color:var(--color-accent-ink, #6b5320)}.nfc-hero-step{margin:14px auto 0;max-width:22rem;text-align:center;font-size:1rem;font-weight:600;line-height:1.3;color:var(--color-muted, #5b6b7c)}.wl-pick{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 10px 12px 14px;background:transparent;border:none;text-align:left;color:var(--color-ink, #0f2942);min-height:64px}.wl-pick-head{display:flex;align-items:center;gap:10px;width:100%}.wl-pick .wl-vehicle{margin-left:28px}.wl-details{flex:0 0 auto;min-width:76px;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 10px;background:transparent;border:none;border-left:1px solid rgba(15,41,66,.12);color:var(--color-muted, #5b6b7c)}.wl-details-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.wl-row-selected .wl-details{border-left-color:#c5a57273}.wl-loading{display:flex;align-items:center;gap:10px;padding:14px;color:var(--color-muted, #5b6b7c)}.wl-spin{animation:wl-spin 1s linear infinite}@keyframes wl-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.wl-spin{animation:none}}.board-column-loading{text-align:center;padding:var(--space-lg);color:var(--color-text-muted)}.board-zone{margin-bottom:var(--space-lg)}.board-zone-title{margin:0 0 var(--space-sm);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.board-zone-waiting .board-column{background:transparent;border:1px dashed var(--color-border)}.board-card-open{display:block;width:100%;text-align:left;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}.retrieve{max-width:760px;margin-inline:auto}.retrieve-primary,.retrieve-secondary{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;white-space:normal;overflow-wrap:anywhere;line-height:1.2;border-radius:var(--radius-md);font-family:var(--font-body)}.retrieve-primary{min-height:96px;padding:20px;font-size:1.5rem;font-weight:700;background:var(--color-primary);color:#fff;border:2px solid var(--color-primary)}.retrieve-primary:not(:disabled):hover{background:var(--color-primary-dark);color:#fff}.retrieve-primary:disabled{opacity:1;background:var(--color-surface-hover);color:#475569;border-color:var(--color-border);cursor:wait}[data-platform=native] .btn.retrieve-primary{min-height:96px;padding:20px;font-size:1.5rem}.retrieve-secondary{min-height:56px;padding:14px 16px;font-size:1.125rem;font-weight:600;color:var(--color-primary);background:transparent;border:1px solid var(--color-border);margin-top:12px}.retrieve-secondary:not(:disabled):hover{background:var(--color-surface-hover)}.retrieve-secondary:disabled{color:var(--color-text-muted);cursor:not-allowed}[data-platform=native] .btn.retrieve-secondary{min-height:56px;padding:14px 16px;font-size:1.125rem}.retrieve-primary:focus-visible,.retrieve-secondary:focus-visible,.retrieve-more summary:focus-visible{outline:3px solid var(--color-primary);outline-offset:4px}.retrieve-feedback{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 20px;margin:0 0 20px;border-radius:var(--radius-md);text-align:center;overflow-wrap:anywhere}.retrieve-feedback-info{background:var(--color-info-light);color:var(--color-primary)}.retrieve-feedback-success{background:var(--color-success-light);color:#065f46}.retrieve-feedback-warning{background:var(--color-warning-light);color:#78350f}.retrieve-feedback-error{background:var(--color-error-light);color:#991b1b}.retrieve-feedback-title{margin:0;font-size:1.75rem;line-height:1.15;font-weight:700;color:inherit}.retrieve-feedback-detail{margin:0;font-size:1.125rem;line-height:1.4;color:inherit}.retrieve-feedback .retrieve-secondary{color:inherit;border-color:currentColor}.retrieve-key-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;font:700 1.5rem/1.2 var(--font-body)}.retrieve-update{font-size:1rem;margin:0 0 16px;color:var(--color-text-muted)}.retrieve-more{margin-top:28px;border-top:1px solid var(--color-border)}.retrieve-more summary{min-height:56px;padding:16px 4px;font-weight:600;font-size:1.125rem;cursor:pointer;color:var(--color-primary)}.retrieve-spinner{animation:wl-spin 1s linear infinite}@media(prefers-reduced-motion:reduce){.retrieve-spinner{animation:none}}.retrieve-placard{display:flex;align-items:baseline;gap:var(--space-md);flex-wrap:wrap;margin-bottom:28px}.retrieve-placard-label{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.retrieve-placard-number{font-weight:700;font-size:clamp(4rem,18vw,6rem);line-height:.95;font-variant-numeric:tabular-nums;color:var(--color-primary)}.retrieve-timer{margin-left:auto;font-weight:700;font-size:1.2rem;font-variant-numeric:tabular-nums}.retrieve-steps{display:flex;gap:4px;margin-bottom:var(--space-lg)}.retrieve-step{flex:1;text-align:center}.retrieve-step-dot{display:block;height:5px;border-radius:3px;background:var(--color-border);margin-bottom:6px}.retrieve-step.done .retrieve-step-dot{background:var(--color-accent);opacity:.45}.retrieve-step.current .retrieve-step-dot{background:var(--color-accent)}.retrieve-step-word{font-size:.75rem;color:var(--color-text-muted)}.retrieve-step.current .retrieve-step-word{color:var(--color-text);font-weight:700}.retrieve-runner{display:flex;align-items:center;gap:7px;margin:calc(-1 * var(--space-sm)) 0 var(--space-md);color:var(--color-text-muted);font-weight:700}.retrieve-actions{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.runner-picker{margin-bottom:var(--space-md);padding:var(--space-md);border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.runner-picker label{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:700;color:var(--color-text)}.runner-picker select{width:100%;padding:12px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface-alt);color:var(--color-text);font:inherit}.runner-picker p{margin:8px 0 0;color:var(--color-text-muted);font-size:.85rem}.retrieve-details,.retrieve-override-open{width:100%;margin-top:var(--space-md)}.retrieve-override{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.retrieve-override-reason{padding:12px;border-radius:10px;border:1px solid var(--color-border);font-size:1rem}.retrieve-override-causes{margin:0;padding:0;border:0;display:grid;gap:8px}.retrieve-override-causes legend{margin-bottom:8px;font-weight:700;color:var(--color-text)}.retrieve-override-choice{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-alt)}.retrieve-override-choice.selected{border-color:var(--color-accent)}.retrieve-override-choice input{margin-top:3px;accent-color:var(--color-accent)}.retrieve-override-choice span{display:grid;gap:2px}.retrieve-override-choice small{color:var(--color-text-muted);line-height:1.3}.retrieve-override-row{display:flex;gap:var(--space-sm)}.retrieve-override-note{font-size:.85rem;color:var(--color-text-muted);margin:0}.object-card{color:var(--color-accent, #c5a572)}.object-keychain{color:#52607a}.object-glyph{display:inline-flex;align-items:center;vertical-align:middle}.object-glyph-chip{margin-right:8px}.object-glyph-hero{display:flex;justify-content:center}.nfc-hero-for-card{border-color:var(--color-accent, #c5a572)}.nfc-hero-for-keychain{border-color:#52607a}.object-mismatch{display:inline-flex;align-items:center;gap:10px}.object-mismatch-not{position:relative;opacity:.55}.object-mismatch-not:after{content:"";position:absolute;left:-4px;right:-4px;top:50%;border-top:3px solid #b91c1c;transform:rotate(-24deg)}.reg-object{display:flex;justify-content:center;margin:var(--space-md) 0}.board-live-paused{font-size:.85rem;color:var(--text-muted, #8a8a8a);padding:6px 10px;margin-bottom:10px;border-left:2px solid var(--line, #d8d2c7)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.relative{position:relative}.block{display:block}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.justify-end{justify-content:flex-end}.rounded{border-radius:.25rem}.border{border-width:1px}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.line-through{text-decoration-line:line-through}.opacity-50{opacity:.5}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--color-primary: #1a365d;--color-primary-light: #2c5282;--color-primary-dark: #0f2942;--color-accent: #c5a572;--color-accent-light: #d4bc91;--color-accent-dark: #9a7b4f;--color-success: #10b981;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-error: #ef4444;--color-error-light: #fee2e2;--color-info: #3b82f6;--color-info-light: #dbeafe;--color-surface: #ffffff;--color-surface-alt: #f8fafc;--color-surface-hover: #f1f5f9;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-light: #94a3b8;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--font-display: "Playfair Display", Georgia, serif;--font-body: "Source Sans 3", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--sidebar-width: 260px;--header-height: 64px;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.07);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08)}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-body);background:var(--color-surface-alt);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.2;margin:0;color:var(--color-primary)}h1{font-size:1.75rem}h2{font-size:1.25rem}h3{font-size:1.125rem}h4{font-size:1rem}p{margin:0}.font-mono{font-family:var(--font-mono)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);padding:var(--space-lg)}.login-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:440px;overflow:hidden}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--color-primary);color:#fff;display:flex;flex-direction:column;flex-shrink:0;position:fixed;top:0;left:0;bottom:0;z-index:50}.sidebar-brand{padding:var(--space-lg);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:var(--space-md)}.sidebar-brand-logo{width:40px;height:40px;background:var(--color-accent);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--color-primary)}.sidebar-brand-text h1{font-size:1rem;color:#fff;margin-bottom:2px}.sidebar-brand-text p{font-size:.625rem;text-transform:uppercase;letter-spacing:.1em;opacity:.6}.sidebar-nav{flex:1;padding:var(--space-md) 0;overflow-y:auto}.nav-section{margin-bottom:var(--space-md)}.nav-section-title{padding:var(--space-sm) var(--space-lg);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#fff6}.nav-item{display:flex;align-items:center;gap:var(--space-sm);padding:.75rem var(--space-lg);color:#ffffffb3;text-decoration:none;font-size:.875rem;font-weight:500;transition:all .15s ease;border-left:3px solid transparent;margin:2px 0}.nav-item:hover{background:#ffffff0d;color:#fff}.nav-item.active{background:#ffffff1a;color:#fff;border-left-color:var(--color-accent)}.nav-item svg{width:18px;height:18px;opacity:.8}.nav-badge{margin-left:auto;background:var(--color-error);color:#fff;font-size:.625rem;font-weight:700;padding:2px 8px;border-radius:9999px;min-width:20px;text-align:center}.nav-badge.gold{background:var(--color-accent);color:var(--color-primary)}.nav-badge-unknown{background:var(--color-warning);color:var(--color-primary)}.sidebar-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid rgba(255,255,255,.1)}.sidebar-user{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.sidebar-user-avatar{width:32px;height:32px;background:var(--color-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.75rem;color:var(--color-primary)}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:.875rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:.625rem;opacity:.6;text-transform:uppercase}.main-content{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh}.page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--color-surface);border-bottom:1px solid var(--color-border);min-height:var(--header-height);position:sticky;top:0;z-index:40}.page-header-title h1{font-size:1.25rem;margin-bottom:2px}.page-header-title p{font-size:.8125rem;color:var(--color-text-muted)}.page-header-actions{display:flex;align-items:center;gap:var(--space-sm)}.page-content{flex:1;padding:var(--space-lg);overflow-y:auto}.session-record-heading{display:flex;align-items:center;gap:var(--space-sm)}.session-record-page{width:100%;max-width:1080px;margin:0 auto}.session-record-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}.session-record-summary-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);color:var(--color-text-muted)}.session-record-summary-item div{min-width:0}.session-record-summary-item span,.session-record-summary-item strong{display:block}.session-record-summary-item span{margin-bottom:2px;font-size:.75rem}.session-record-summary-item strong{color:var(--color-text);font-size:.9375rem;text-transform:capitalize;overflow-wrap:anywhere}.session-record-timeline .card-header h2{margin-bottom:3px}.session-record-explainer{font-size:.8125rem}.record-events{list-style:none;margin:0;padding:var(--space-lg)}.record-event{position:relative;display:grid;grid-template-columns:9rem 1fr;-moz-column-gap:var(--space-lg);column-gap:var(--space-lg);min-height:4.5rem;padding:0 0 var(--space-lg) 1.75rem}.record-event:not(:last-child):before{content:"";position:absolute;left:5px;top:13px;bottom:-1px;width:2px;background:var(--color-border)}.record-event-marker{position:absolute;left:0;top:4px;width:12px;height:12px;border:3px solid var(--color-surface);border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 1px var(--color-border)}.record-event-exception .record-event-marker,.record-event-warning .record-event-marker{background:var(--color-warning)}.record-event-time{color:var(--color-text-muted);font-size:.8125rem;white-space:nowrap}.record-event-copy strong{font-size:.9375rem}.record-event-copy p{margin-top:3px;color:var(--color-text-muted);font-size:.8125rem}@media(max-width:900px){.session-record-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.record-event{grid-template-columns:1fr;row-gap:4px}}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border)}.card-header h2{font-family:var(--font-body);font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.card-body{padding:var(--space-lg)}.card-body.compact{padding:var(--space-md)}.card-body.flush{padding:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.stat-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat-card.accent{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:#fff}.stat-card.accent .stat-label{color:#ffffffb3}.stat-card.accent .stat-value{color:var(--color-accent)}.stat-icon{position:absolute;top:var(--space-md);right:var(--space-md);width:40px;height:40px;background:var(--color-surface-alt);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.stat-card.accent .stat-icon{background:#ffffff1a;color:var(--color-accent)}.stat-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-sm)}.stat-value{font-family:var(--font-display);font-size:2.25rem;font-weight:700;line-height:1;color:var(--color-primary)}.stat-value.success{color:var(--color-success)}.stat-value.warning{color:var(--color-warning)}.stat-value.error{color:var(--color-error)}.stat-change{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;margin-top:var(--space-sm);padding:2px 8px;border-radius:9999px}.stat-change.up{background:var(--color-success-light);color:var(--color-success)}.stat-change.down{background:var(--color-error-light);color:var(--color-error)}.hook-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px}.hook-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-weight:600;font-size:.875rem;cursor:pointer;transition:all .15s ease;position:relative}.hook-cell:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}.hook-cell.available{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}.hook-cell.occupied{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.hook-cell.reserved{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning)}.hook-cell.tag-out{background:var(--color-warning-light);border-color:var(--color-accent);color:var(--color-warning);background-image:repeating-linear-gradient(135deg,transparent 0 5px,rgba(201,169,98,.28) 5px 10px)}.hook-cell.fetching{background:var(--color-info-light);border-color:var(--color-info);color:var(--color-info);animation:pulse 1.5s infinite}.hook-plate{font-size:.5rem;margin-top:2px;opacity:.8;max-width:100%;overflow:hidden;text-overflow:ellipsis}.hook-heatmap{position:absolute;inset:0;border-radius:inherit;pointer-events:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.drivers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md)}.driver-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.driver-card.offline{opacity:.6}.driver-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--color-border)}.driver-avatar{width:48px;height:48px;background:var(--color-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;color:#fff}.driver-info{flex:1;min-width:0}.driver-name{font-weight:600;font-size:1rem}.driver-shift{font-size:.75rem;color:var(--color-text-muted)}.driver-body{padding:var(--space-md)}.driver-task{padding:var(--space-sm) var(--space-md);background:var(--color-info-light);border-radius:var(--radius-sm);margin-bottom:var(--space-md)}.driver-task-label{font-size:.625rem;font-weight:600;text-transform:uppercase;color:var(--color-info);margin-bottom:2px}.driver-task-vehicle{font-weight:600;font-size:.875rem}.driver-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.driver-stat{text-align:center;padding:var(--space-sm);background:var(--color-surface-alt);border-radius:var(--radius-sm)}.driver-stat-value{font-family:var(--font-mono);font-weight:600;font-size:1.125rem;color:var(--color-primary)}.driver-stat-label{font-size:.625rem;text-transform:uppercase;color:var(--color-text-muted)}.driver-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);border-top:1px solid var(--color-border);background:var(--color-surface-alt)}.leaderboard-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--color-border)}.leaderboard-rank{width:28px;height:28px;background:var(--color-surface-alt);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;color:var(--color-text-muted)}.leaderboard-rank.gold{background:var(--color-accent);color:var(--color-primary)}.leaderboard-rank.silver{background:#94a3b8;color:#fff}.leaderboard-rank.bronze{background:#b45309;color:#fff}.leaderboard-info{flex:1}.leaderboard-name{font-weight:600}.leaderboard-meta{font-size:.75rem;color:var(--color-text-muted)}.leaderboard-value{font-family:var(--font-mono);font-weight:600;font-size:1.125rem;color:var(--color-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.5rem 1rem;font-family:var(--font-body);font-size:.875rem;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-light)}.btn-accent{background:var(--color-accent);color:var(--color-primary)}.btn-accent:hover:not(:disabled){background:var(--color-accent-light)}.btn-success{background:var(--color-success);color:#fff}.btn-warning{background:var(--color-warning);color:#fff}.btn-error{background:var(--color-error);color:#fff}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-outline:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-text-muted)}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.btn-icon{width:36px;height:36px;padding:0}.btn-icon.sm{width:28px;height:28px}.btn-block{width:100%}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-xs)}.form-input{width:100%;padding:.625rem var(--space-md);font-family:var(--font-body);font-size:.9375rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:all .15s ease}.form-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #c5a57226}.form-input.error{border-color:var(--color-error)}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}.form-hint{font-size:.75rem;color:var(--color-text-muted);margin-top:var(--space-xs)}.search-input{position:relative}.search-input input{padding-left:2.5rem}.search-input svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);width:18px;height:18px;pointer-events:none}.toggle{position:relative;width:44px;height:24px;cursor:pointer;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle-track{position:absolute;inset:0;background:var(--color-border);border-radius:24px;transition:background .2s ease}.toggle input:checked+.toggle-track{background:var(--color-success)}.toggle-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .2s ease}.toggle input:checked~.toggle-thumb{transform:translate(20px)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border-radius:9999px}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-error{background:var(--color-error-light);color:var(--color-error)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.badge-neutral{background:var(--color-surface-alt);color:var(--color-text-muted)}.badge-accent{background:#c5a57226;color:var(--color-accent-dark)}.alert{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);font-size:.875rem}.alert-icon{flex-shrink:0;width:20px;height:20px}.alert-success{background:var(--color-success-light);color:var(--color-success)}.alert-warning{background:var(--color-warning-light);color:#92400e}.alert-error{background:var(--color-error-light);color:var(--color-error)}.alert-info{background:var(--color-info-light);color:var(--color-info)}.modal-overlay{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-lg);animation:fadeIn .15s ease}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #00000040;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .2s ease}.modal.lg{max-width:700px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:1.125rem}.modal-body{padding:var(--space-lg);overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border);background:var(--color-surface-alt)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.table{width:100%;border-collapse:collapse}.table th{padding:var(--space-sm) var(--space-md);text-align:left;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border)}.table td{padding:var(--space-md);border-bottom:1px solid var(--color-border);vertical-align:middle}.table tr:hover td{background:var(--color-surface-hover)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl) var(--space-lg);text-align:center}.empty-state-icon{width:64px;height:64px;background:var(--color-surface-alt);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-md);color:var(--color-text-light)}.empty-state h3{font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--color-text);margin-bottom:var(--space-xs)}.empty-state p{font-size:.875rem;color:var(--color-text-muted)}.spinner{width:24px;height:24px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.spinner.lg{width:40px;height:40px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.tabs{display:flex;gap:var(--space-xs);background:var(--color-surface-alt);padding:4px;border-radius:var(--radius-md)}.tab{padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.tab:hover{color:var(--color-text)}.tab.active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}@media(max-width:1280px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:1024px){:root{--sidebar-width: 220px}.hook-grid{grid-template-columns:repeat(5,1fr)}}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-accent{color:var(--color-accent)}.bg-success-light{background:var(--color-success-light)}.bg-warning-light{background:var(--color-warning-light)}.bg-error-light{background:var(--color-error-light)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.mb-xs{margin-bottom:var(--space-xs)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.w-full{width:100%}.h-full{height:100%}.flex-1{flex:1}.min-w-0{min-width:0}.text-center{text-align:center}.text-right{text-align:right}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@keyframes soundPulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.hook-cell.no-placard{background:var(--color-surface-2, #f1f1f4);border-color:var(--color-border);color:var(--color-text-muted);opacity:.65}.reg-banner{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.reg-mode-btn{flex:1;padding:var(--space-md);border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-surface);font-weight:600;display:flex;flex-direction:column;gap:2px;cursor:pointer}.reg-mode-btn.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-primary)}.reg-mode-hint{font-size:.6875rem;font-weight:400;opacity:.7}.reg-scan-btn{width:100%;margin-bottom:var(--space-md)}.reg-progress{font-size:.9375rem;margin-bottom:var(--space-sm)}.reg-dots{display:flex;flex-wrap:wrap;gap:4px}.reg-dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--color-border)}.reg-dot.done{background:var(--color-success);border-color:var(--color-success)}.reg-dot.current{box-shadow:0 0 0 2px var(--color-accent)}.reg-band{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.reg-band-ok{background:var(--color-success-light);color:var(--color-success)}.reg-band-error{background:var(--color-error-light);color:var(--color-error)}.reg-band-number{font-size:2rem;font-weight:700;line-height:1.1}.reg-band-sub{font-size:.75rem;opacity:.8}.reg-pending{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.reg-number-label{display:block;font-size:.75rem;color:var(--color-text-muted);margin-bottom:4px}.reg-number-input{width:100%;font-size:2rem;font-weight:700;text-align:center;padding:var(--space-md);border:2px solid var(--color-border);border-radius:var(--radius-md)}.reg-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.reg-actions .btn:first-child{flex:1}.reg-recent-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--color-border);font-size:.875rem}.bind-code{font-family:var(--font-mono);font-size:3rem;font-weight:700;letter-spacing:.12em;text-align:center;padding:var(--space-lg) 0;color:var(--color-primary)}:root{--touch-min: 52px;--touch-primary: 60px}[data-platform=native] body{overscroll-behavior-y:none}[data-platform=native] *,[data-platform=native] *:before,[data-platform=native] *:after{-webkit-tap-highlight-color:transparent}[data-platform=native] .app-layout{display:block;min-height:100dvh}[data-platform=native] .sidebar{display:none}[data-platform=native] .main-content{margin-left:0;min-height:100dvh;padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom))}[data-platform=native] .page-header{padding-top:calc(var(--space-md) + env(safe-area-inset-top))}[data-platform=native] .page-content{padding:var(--space-md)}[data-platform=native] .page-content:first-child{padding-top:calc(var(--space-md) + env(safe-area-inset-top))}[data-platform=native] .btn{min-height:var(--touch-min);padding:0 var(--space-lg);font-size:1rem;border-radius:var(--radius-lg)}[data-platform=native] .btn-lg{min-height:var(--touch-primary);font-size:1.125rem}[data-platform=native] .btn:active:not(:disabled){transform:scale(.98)}[data-platform=native] button{-moz-user-select:none;user-select:none;-webkit-user-select:none}[data-platform=native] input,[data-platform=native] select,[data-platform=native] textarea{min-height:var(--touch-min);font-size:1rem}[data-platform=native] .pair-page-native{display:flex;flex-direction:column;gap:var(--space-lg)}[data-platform=native] .nfc-hero-wrap{text-align:center}[data-platform=native] .nfc-hero{position:relative;width:208px;height:208px;margin:var(--space-md) auto 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);border:3px solid var(--color-accent);border-radius:var(--radius-full, 9999px);background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-light) 100%);color:var(--color-primary-dark);box-shadow:0 4px 20px #c5a57259;font-family:var(--font-body);font-size:1rem;font-weight:700;line-height:1.2;cursor:pointer}[data-platform=native] .nfc-hero-label{max-width:11ch}[data-platform=native] .nfc-hero:active{transform:scale(.98)}[data-platform=native] .nfc-hero-armed{background:#c5a57224;color:var(--color-text);box-shadow:none;cursor:default}[data-platform=native] .nfc-hero-armed:after{content:"";position:absolute;inset:-10px;border:2px solid var(--color-accent);border-radius:var(--radius-full, 9999px);animation:nfc-hero-pulse 1.6s ease-out infinite}@keyframes nfc-hero-pulse{0%{transform:scale(.94);opacity:.85}to{transform:scale(1.22);opacity:0}}@media(prefers-reduced-motion:reduce){[data-platform=native] .nfc-hero-armed:after{animation:none;opacity:.5}}[data-platform=native] .pair-panel .placard-number{font-size:5rem;line-height:1}.msi{display:flex;flex-direction:column;gap:10px;margin-top:var(--space-md);padding:16px;border-radius:14px;background:var(--color-surface, #fff);border:1px solid rgba(15,41,66,.12)}.msi-title{font-weight:700;font-size:1.1rem;color:var(--color-ink, #0f2942)}.msi-sub{font-size:.92rem;color:var(--color-muted, #5b6b7c);margin-top:-4px}.msi-input{min-height:56px;padding:0 14px;font-size:1.05rem;border:1px solid rgba(15,41,66,.2);border-radius:10px;background:#fff;color:var(--color-ink, #0f2942)}.msi-failed{display:flex;align-items:center;gap:8px;font-size:.95rem;color:#a1341f}.hub-sheet-backdrop{position:fixed;inset:0;z-index:60;background:#0f294273;display:flex;align-items:flex-end;justify-content:center;padding:16px;animation:hub-sheet-fade .14s ease-out}.hub-sheet{width:100%;max-width:560px;background:var(--color-surface, #fff);border-radius:18px;padding:4px;box-shadow:0 18px 48px #0f294247;animation:hub-sheet-rise .16s ease-out;max-height:88vh;overflow-y:auto}@keyframes hub-sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes hub-sheet-rise{0%{transform:translateY(14px)}to{transform:none}}@media(prefers-reduced-motion:reduce){.hub-sheet-backdrop,.hub-sheet{animation:none}}.hub-sheet .msi{box-shadow:none;border:0}.msi-submit{min-height:60px}.msi-cancel{width:100%;min-height:44px;margin-top:8px;background:transparent;color:var(--color-text-muted, #64748b)}.checkin-banner{display:flex;align-items:center;gap:12px;margin-bottom:var(--space-md);padding:14px 16px;border-radius:14px;background:#eaf7ef;border:1px solid rgba(16,185,129,.35);color:#14663c}.checkin-banner-title{font-size:1.15rem;font-weight:800;line-height:1.2}.checkin-banner-sub{font-size:.95rem;opacity:.85;margin-top:2px}.kt{display:flex;flex-direction:column;gap:var(--space-md)}.kt-panel{background:linear-gradient(135deg,#c5a572,#d4bc91);border-radius:20px;padding:28px;text-align:center;box-shadow:0 8px 40px #c5a57266}.kt-label{color:#0f2942b3;font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;font-weight:600;margin-bottom:4px}.kt-number{color:#0f2942;font-size:4rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.kt-what{font-size:1.25rem;font-weight:700;text-align:center;color:var(--color-ink, #0f2942)}.kt-car{font-size:1rem;text-align:center;color:var(--color-muted, #5b6b7c);margin-top:-6px}.kt-done{min-height:60px;margin-top:var(--space-sm)}.kt-details{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm) var(--space-md);margin-top:var(--space-sm)}.kt-details-field{display:flex;flex-direction:column;gap:4px}.kt-details-field .reg-number-input{min-height:44px}.vds-scrim{position:fixed;inset:0;z-index:60;background:#0f294273;display:flex;align-items:flex-end}.vds{width:100%;max-height:88vh;overflow-y:auto;background:#fff;border-radius:20px 20px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.vds-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.vds-title{font-size:1.25rem;font-weight:800;color:var(--color-ink, #0f2942)}.vds-sub{font-size:.92rem;color:var(--color-muted, #5b6b7c);margin-top:2px}.vds-close{min-width:52px;min-height:52px;display:grid;place-items:center;border:none;background:transparent;color:var(--color-muted, #5b6b7c)}.vds-field{display:flex;flex-direction:column;gap:4px}.vds-label{font-size:.85rem;font-weight:700;color:var(--color-muted, #5b6b7c)}.vds-input{min-height:56px;padding:0 14px;font-size:1.1rem;border-radius:10px;border:1px solid rgba(15,41,66,.2);background:#fff;color:var(--color-ink, #0f2942)}.vds-error{font-size:.95rem;font-weight:700;color:#a1341f}.vds-actions{display:flex;gap:10px;align-items:center;margin-top:4px}.vds-later{min-height:60px;flex:0 0 auto}.vds-save{min-height:60px;flex:1}.wl-vehicle{flex-basis:100%;margin-left:28px;font-size:.95rem;color:var(--color-ink, #0f2942);padding:6px 0}.wl-vehicle-empty{color:var(--color-muted, #5b6b7c);font-style:italic}.hub{display:flex;flex-direction:column;gap:var(--space-lg)}.hub-alert-tappable{cursor:pointer}.hub-alert-tappable:active{opacity:.85}.hub-alert{display:flex;align-items:center;gap:12px;min-height:var(--touch-min);padding:12px 14px;border-radius:14px;font-size:1.05rem;font-weight:700;line-height:1.25}.hub-alert-alert{background:#fdecea;color:#a1341f;border:1px solid #f0b7ac}.hub-alert-warn{background:#fdf4e3;color:#7a5312;border:1px solid #e8cf9c}.hub-alert svg{flex-shrink:0}.hub-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.hub-tile{background:var(--color-surface, #fff);border:1px solid rgba(15,41,66,.1);border-radius:16px;padding:14px 8px;text-align:center}.hub-tile-value{font-size:2.25rem;font-weight:800;line-height:1;color:var(--color-ink, #0f2942)}.hub-tile-label{margin-top:6px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted, #5b6b7c)}.hub-tile-unreadable .hub-tile-value{font-size:.95rem;font-weight:700;color:var(--color-muted, #5b6b7c);padding:.55rem 0;line-height:1.2}.hub-tile-loading .hub-tile-value{color:var(--color-border, #e2e8f0)}.hub-cards{display:flex;flex-direction:column;gap:12px}.hub-card{display:flex;align-items:center;gap:14px;width:100%;min-height:var(--touch-min);padding:16px;border-radius:18px;text-align:left;background:var(--color-surface, #fff);border:1px solid rgba(15,41,66,.1);color:var(--color-ink, #0f2942)}.hub-card:active{background:#0f29420a}.hub-card-primary{min-height:var(--touch-primary);background:linear-gradient(135deg,#c5a572,#d4bc91);border:none;box-shadow:0 4px 20px #c5a5724d}.hub-card-icon{width:48px;height:48px;border-radius:14px;flex-shrink:0;display:grid;place-items:center;background:#0f29420f;color:var(--color-accent, #c5a572)}.hub-card-primary .hub-card-icon{background:#0f294226;color:#0f2942}.hub-card-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.hub-card-title{font-size:1.05rem;font-weight:800}.hub-card-hint{font-size:.85rem;color:var(--color-muted, #5b6b7c)}.hub-card-primary .hub-card-title{color:#0f2942}.hub-card-primary .hub-card-hint{color:#0f2942b8}.hub-badge{min-width:32px;height:32px;padding:0 9px;border-radius:16px;flex-shrink:0;display:grid;place-items:center;background:#c47f26;color:#fff;font-weight:800;font-size:.95rem}.hub-badge-unknown{background:var(--color-muted, #5b6b7c)}.hub-chevron{color:#0f294240;flex-shrink:0}.nh{display:flex;align-items:flex-start;gap:4px}.nh-back{min-width:var(--touch-min);min-height:var(--touch-min);margin-left:-10px;flex-shrink:0;display:grid;place-items:center;border:none;background:transparent;color:var(--color-ink, #0f2942)}.nh-back:active{background:#0f29420f;border-radius:12px}.ci-result{border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:8px;border:1px solid rgba(15,41,66,.12);background:var(--color-surface, #fff)}.ci-result-head{font-size:1.2rem;font-weight:800;color:var(--color-ink, #0f2942)}.ci-result-detail{font-size:1rem;color:var(--color-muted, #5b6b7c);line-height:1.35}.ci-result-error{background:#fdecea;border-color:#f0b7ac}.ci-result-error .ci-result-head{color:#a1341f}.ci-result-info{background:#eef4fb;border-color:#c3d7ee}.ci-result-action{min-height:var(--touch-primary);width:100%}.ci-result-dismiss{min-height:var(--touch-min);width:100%}[data-platform=native] .nfc-hero-disabled{opacity:.45}.car,.cars{display:flex;flex-direction:column;gap:12px}.car-note{display:flex;align-items:center;gap:10px;padding:14px;border-radius:14px;font-size:1rem;line-height:1.35;background:#0f294208;color:var(--color-muted, #5b6b7c)}.car-note-warn{background:#fdf4e3;color:#7a5312;border:1px solid #e8cf9c;font-weight:700}.car-note-ok{background:#eaf6ed;color:#1f5c33;border:1px solid #b7dcc3;font-weight:700}.cards-needing-write{display:flex;flex-direction:column;gap:12px}.cnw-scanner{display:flex;flex-direction:column;gap:10px}.cnw-scanner .cnw-write{display:flex;justify-content:center;align-items:center;gap:8px;padding:12px 16px}.cnw-scanner p{margin:0;color:#5b6b7c;line-height:1.45}.cnw-result{display:flex;align-items:flex-start;gap:14px;padding:20px;border-radius:16px;border:1px solid #c3d7ee;background:#eef4fb;color:#0f2942}.cnw-result>svg{flex-shrink:0;margin-top:3px}.cnw-result>div{min-width:0}.cnw-result h2{margin:0;font:800 1.6rem/1.2 var(--font-body);overflow-wrap:anywhere}.cnw-result p{margin:10px 0 0;font-size:1rem;line-height:1.45}.cnw-result-ok{background:#eaf6ed;color:#1f5c33;border-color:#b7dcc3}.cnw-result-warn{background:#fdf4e3;color:#7a5312;border-color:#e8cf9c}.cnw-scanner .cnw-write:focus-visible,.cnw-row .cnw-write:focus-visible{outline:3px solid #1a365d;outline-offset:3px}@media(max-width:480px){.cnw-result{padding:16px;gap:10px}.cnw-row{flex-wrap:wrap}.cnw-id{flex-basis:160px}}.cnw-row{display:flex;align-items:center;gap:12px;min-height:var(--touch-min);padding:14px;border-radius:16px;background:var(--color-surface, #fff);border:1px solid rgba(15,41,66,.1);color:var(--color-ink, #0f2942)}.cnw-id{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.cnw-id strong{font-size:1.05rem;font-weight:800}.cnw-reason{font-size:.9rem;color:#7a5312}.cnw-write{flex-shrink:0;min-height:var(--touch-min);padding:0 16px;border-radius:12px;font-weight:800;border:1px solid rgba(15,41,66,.14);background:linear-gradient(135deg,#c5a572,#d4bc91);color:#0f2942}.cnw-write:active:not(:disabled){filter:brightness(.95)}.cnw-write:disabled{background:#0f29420f;color:var(--color-muted, #5b6b7c);opacity:1}.cnw-foot{font-size:.9rem;line-height:1.4;color:var(--color-muted, #5b6b7c);margin:4px 2px 0}.board-card-pay{display:flex;align-items:flex-start;gap:8px;margin:10px 0 2px;padding:9px 11px;border-radius:10px;background:#fdf4e3;border:1px solid #e8cf9c;color:#7a5312;font-size:.86rem;font-weight:700;line-height:1.35}.board-card-pay svg{flex-shrink:0;margin-top:1px}.car-id{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.car-badge{padding:5px 10px;border-radius:999px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.car-badge-alert{background:#fdecea;color:#a1341f}.car-badge-active{background:#fdf4e3;color:#7a5312}.car-badge-info{background:#eef4fb;color:#2c5282}.car-badge-calm{background:#0f29420f;color:var(--color-muted, #5b6b7c)}.car-hook{padding:5px 10px;border-radius:999px;font-weight:800;font-size:.85rem;background:linear-gradient(135deg,#c5a572,#d4bc91);color:#0f2942}.car-held{font-size:.9rem;color:var(--color-muted, #5b6b7c)}.car-optional{font-size:.92rem;color:var(--color-muted, #5b6b7c)}.car-save{min-height:var(--touch-primary);width:100%;margin-top:4px}.car-row{display:flex;flex-direction:column;width:100%;border-radius:16px;background:var(--color-surface, #fff);border:1px solid rgba(15,41,66,.1);color:var(--color-ink, #0f2942);overflow:hidden}.car-row-open{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--touch-min);padding:14px;text-align:left;background:transparent;border:none;color:inherit}.car-row-open:active{background:#0f29420a}.car-row-act{width:100%;min-height:var(--touch-min);border:none;border-top:1px solid rgba(15,41,66,.1);font-size:1rem;font-weight:800}.car-row-failed{padding:10px 14px;font-size:.88rem;font-weight:700;background:#fdecea;color:#a1341f}.car-park{width:100%;min-height:var(--touch-primary);margin-bottom:4px}.car-card-action{width:100%;min-height:44px;margin-top:28px;padding-top:18px;border-top:1px solid rgba(15,41,66,.12);font-size:.95rem}.car-row-main{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.car-row-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.car-row-card{font-size:1.05rem;font-weight:800}.car-row-vehicle{font-size:.9rem;color:var(--color-ink, #0f2942)}.car-row-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.car-row-hook{padding:3px 8px;border-radius:999px;font-weight:800;font-size:.78rem;background:linear-gradient(135deg,#c5a572,#d4bc91);color:#0f2942}.car-row-held{font-size:1rem;font-weight:700;color:var(--color-ink, #0f2942)}.find-car{display:flex;flex-direction:column;gap:12px}.find-car-input{display:flex;align-items:center;gap:10px;min-height:var(--touch-primary);padding:0 14px;border:2px solid rgba(15,41,66,.18);border-radius:16px;background:var(--color-surface, #fff);color:var(--color-muted, #5b6b7c)}.find-car-input:focus-within{border-color:var(--color-accent, #c5a572)}.find-car-input input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--color-ink, #0f2942);font:inherit;font-size:1rem}.find-car-input button{width:var(--touch-min);height:var(--touch-min);margin-right:-12px;display:grid;place-items:center;border:0;background:transparent;color:var(--color-muted, #5b6b7c)}.find-car-count{margin:2px 4px -4px;color:var(--color-muted, #5b6b7c);font-size:.85rem;font-weight:700}.find-car-result{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--touch-min);padding:14px;text-align:left;border-radius:16px;border:1px solid rgba(15,41,66,.1);background:var(--color-surface, #fff);color:var(--color-ink, #0f2942)}.find-car-result:active{background:#0f29420a}.find-car-phone{color:var(--color-muted, #5b6b7c);font-size:.9rem}.ci-active{margin-top:var(--space-lg);border-radius:16px;padding:18px;background:var(--color-surface, #fff);border:2px solid var(--color-accent, #c5a572);text-align:center}.ci-active-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted, #5b6b7c)}.ci-active-vehicle{font-size:1.05rem;font-weight:600;color:var(--color-muted, #5b6b7c);margin-top:2px}.ci-active-card{font-size:2.5rem;font-weight:900;line-height:1.05;margin-top:4px;color:var(--color-ink, #0f2942);font-variant-numeric:tabular-nums}.ci-active-age{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:.95rem;color:var(--color-muted, #5b6b7c)}.ci-active-stale{border-color:#a1341f;background:#fdf3e7}.ci-active-stale .ci-active-age{color:#a1341f;font-weight:700}.ci-active-or{margin-top:12px;padding-top:12px;font-size:.9rem;line-height:1.4;color:var(--color-muted, #5b6b7c);border-top:1px solid rgba(15,41,66,.1)}.ci-result-note{margin-top:8px;font-weight:700}.ci-waiting{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;margin-top:var(--space-md);padding:0 14px;border-radius:12px;background:transparent;border:1px dashed rgba(15,41,66,.22);color:var(--color-muted, #5b6b7c);font-size:.95rem;text-align:left}.ci-park{margin-top:var(--space-md);border:1px solid rgba(15,41,66,.14);border-radius:12px;overflow:hidden;background:var(--color-surface, #fff)}.ci-park-head{padding:10px 14px;font-size:.9rem;font-weight:600;color:var(--color-muted, #5b6b7c);background:#0f29420a}.ci-park-unknown{color:#b45309}.ci-park-note{padding:8px 14px;font-size:.9rem;color:#b91c1c}.ci-park-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid rgba(15,41,66,.08)}.ci-park-stale{background:#dc26260f}.ci-park-desc{display:flex;flex-direction:column;gap:2px;min-width:0}.ci-park-hook{font-weight:700;font-size:1.05rem}.ci-park-car{font-size:.9rem;color:var(--color-muted, #5b6b7c);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ci-park-btn{flex-shrink:0;min-height:44px}.hub-alert-clear{background:var(--color-surface, #fff);color:var(--color-muted, #5b6b7c);border:1px solid rgba(15,41,66,.1)}.hub-spin{animation:hub-spin 1s linear infinite}@keyframes hub-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.hub-spin{animation:none}}.ci-queue-band{margin-bottom:var(--space-md)}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
