.dx-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:6px;cursor:pointer;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600;transition:all .2s ease;min-height:48px;padding:14px 28px;font-size:16px;text-decoration:none;user-select:none;-webkit-user-select:none}.dx-button-mode-contained{box-shadow:none}.dx-button-mode-outlined{background-color:transparent;border:2px solid currentColor}.dx-button-mode-text{background-color:transparent;padding:8px 16px}.dx-button-success{background-color:#4caf50;color:#fff}.dx-button-success:hover{background-color:#43a047}.dx-button-danger{background-color:#f44336;color:#fff}.dx-button-danger:hover{background-color:#e53935}.dx-button-default{background-color:#755ce1;color:#fff}.dx-button-default:hover{background-color:#6750c8}.dx-button-normal{background-color:#9e9e9e;color:#fff}.dx-button-normal:hover{background-color:#757575}.dx-button:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.dx-button:active{transform:scale(.98);box-shadow:0 1px 4px #0003}.dx-button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.dx-button:focus-visible{outline:2px solid rgb(33,150,243);outline-offset:2px}@media (hover: none){.dx-button:hover{transform:none;box-shadow:none}.dx-button:active{transform:scale(.95)}}.dx-list{list-style:none;margin:0;padding:0}.dx-list-item{padding:16px;border-bottom:1px solid #e0e0e0;cursor:pointer;transition:background-color .2s}.dx-list-item:hover{background-color:#f5f5f5}.dx-list-item:active{background-color:#e0e0e0}.dx-popup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background-color:#00000080}.dx-popup-content{background:#fff;border-radius:12px;padding:24px;max-width:90%;max-height:90%;overflow:auto}.dx-textbox,.dx-numberbox,.dx-textarea{border:1px solid #ddd;border-radius:4px;padding:8px 12px;font-size:14px;width:100%}.dx-textbox:focus,.dx-numberbox:focus,.dx-textarea:focus{outline:2px solid rgb(33,150,243);outline-offset:1px}:root{--bg: #ffffff;--text-1: #0a0a0a;--text-black: #000;--text-2: #4a4a4a;--text-gray-600: #4b5563;--text-gray-700: #374151;--text-gray-800: #1f2937;--muted: #6b7280;--muted-alt: #999;--surface-1: #ffffff;--surface-2: #f6f7f9;--header-bg-production: #c2d9ff;--header-bg-sandbox: #ffd270;--header-bg-dev: #4da354;--header-text-production: var(--text-1);--header-text-sandbox: var(--text-1);--header-text-dev: var(--text-1);--header-text-muted-production: var(--muted);--header-text-muted-sandbox: var(--muted);--header-text-muted-dev: var(--muted);--header-text-brand-production: var(--brand);--header-text-brand-sandbox: var(--brand);--header-text-brand-dev: var(--brand);--status-bar-text-production: var(--text-1);--status-bar-text-sandbox: var(--text-1);--status-bar-text-dev: var(--text-1);--status-bar-text-muted-production: var(--muted);--status-bar-text-muted-sandbox: var(--muted);--status-bar-text-muted-dev: var(--muted);--landing-text-production: var(--text-1);--landing-text-sandbox: var(--text-1);--landing-text-dev: var(--text-1);--surface-2-alt: #f8f9fa;--surface-light: #f9fafb;--surface-3: #eef0f3;--surface-3-alt: #e9ecef;--surface-4: #e6e9ee;--surface-disabled: #ccc;--border: #e5e7eb;--border-subtle: #f3f4f6;--border-strong: #d1d5db;--border-light: #ddd;--border-mid: #adb5bd;--border-gray: #e5e7eb;--border-blue-900: #1e3a8a;--border-transparent: 2px solid transparent;--brand: #2563eb;--primary: #2563eb;--primary-contrast: #ffffff;--btn-action-bg: var(--primary);--btn-action-fg: var(--primary-contrast);--primary-subtle: rgba(37, 99, 235, .1);--primary-subtle-2: rgba(0, 122, 255, .1);--secondary: #475569;--brand-hover: #1d4ed8;--brand-active: #1e40af;--brand-contrast: #ffffff;--bg-blue-700: #1565c0;--bg-blue-900: #1e3a8a;--link: #0b6bcb;--link-hover: #084d94;--link-visited: #7c3aed;--focus: #2563eb;--focus-ring: #2563eb;--success: #16a34a;--success-contrast: #ffffff;--success-alt: #4caf50;--success-subtle: rgba(22, 163, 74, .1);--success-light: #e8f5e9;--warn: #d97706;--warn-contrast: #ffffff;--danger: #dc2626;--danger-contrast: #ffffff;--color-btn-signout-bg: #5a4a3a;--color-btn-signout-bg-contrast: #ffffff;--btn-import-bg: var(--success);--btn-import-bg-contrast: var(--success-contrast);--btn-import-bg-hover: #15803d;--btn-completed-bg: #475569;--btn-completed-bg-contrast: #ffffff;--btn-completed-bg-hover: #334155;--danger-alt: #dc3545;--danger-subtle: rgba(220, 38, 38, .1);--danger-hover: #b91c1c;--info: #0284c7;--info-contrast: #ffffff;--overlay: rgba(0, 0, 0, .08);--scrim: rgba(0, 0, 0, .35);--scrim-light: rgba(0, 0, 0, .3);--scrim-dark: rgba(0, 0, 0, .6);--bg-white-alpha: rgba(255, 255, 255, .25);--shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .08);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-warn: 0 2px 8px rgba(217, 119, 6, .4);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-md-dark: 0 4px 6px rgba(0, 0, 0, .3);--shadow-md-2: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md-3: 0 4px 8px rgba(0, 0, 0, .15);--text-shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--text-shadow-md: 0 1px 2px rgba(0, 0, 0, .5);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .1), 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 8px 24px rgba(0, 0, 0, .12), 0 16px 48px rgba(0, 0, 0, .14);--shadow-dialog: 0 20px 60px rgba(0, 0, 0, .5);--shadow-primary: 0 2px 8px rgba(0, 122, 255, .3);--shadow-inset-sm: inset 0 2px 4px rgba(0, 0, 0, .1);--drop-shadow-light: drop-shadow(0 4px 20px rgba(0, 0, 0, .15));--drop-shadow-dark: drop-shadow(0 4px 20px rgba(0, 0, 0, .5));--input-bg: #ffffff;--input-border: #d1d5db;--input-focus: #2563eb;--input-disabled: #f3f4f6;--input-placeholder: #9ca3af;--scrollbar-track: #f3f4f6;--scrollbar-thumb: #d1d5db;--scrollbar-thumb-hover: #9ca3af;--tap-highlight-subtle: rgba(0, 0, 0, .1);--tap-size-min: 44px;--tap-size-min-back: 44px;--btn-landing-padding-y: var(--spacing-rem-lg);--btn-landing-padding-x: var(--spacing-rem-4xl-4rem);--btn-landing-font-size: var(--font-size-rem-md-2);--btn-landing-font-weight: 600;--btn-landing-radius: var(--radius-md);--btn-landing-transition: all .2s ease;--btn-landing-disabled-opacity: .6;--btn-landing-gap: var(--spacing-rem-lg)}:root{--spacing-xs: 4px;--spacing-xs-2: 5px;--spacing-xxs: 6px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-md-2: 18px;--spacing-md-3: 15px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-xl-2: 24px;--spacing-xl-3: 25px;--spacing-xl-4: 30px;--spacing-2xl: 32px;--spacing-3xl: 40px;--padding-lg: 32px;--padding-button-confirm: 14px 32px;--padding-header-ios: 12px 20px;--padding-section-ios: 16px 20px;--padding-pill-ios: 16px 24px;--padding-textarea-ios: 14px 16px;--padding-dialog-header: 2rem 1.5rem 1rem;--padding-dialog-body: 0 1.5rem 1.5rem;--padding-dialog-actions: 1rem 1.5rem 1.5rem;--padding-button-lg: 1rem 1.75rem;--padding-scanner: 14px 24px;--margin-handle: 8px auto 4px;--margin-section-label: 14px;--margin-bottom-lg: 24px;--margin-top-sm: 8px;--margin-top-md: 12px;--margin-top-lg: 1rem;--spacing-rem-xs: .25rem;--spacing-rem-sm: .5rem;--spacing-rem-md: .75rem;--spacing-rem-md-2: .875rem;--spacing-rem-button-y: .625rem;--spacing-rem-lg: 1rem;--spacing-rem-lg-2: 1.125rem;--spacing-rem-xl: 1.5rem;--spacing-rem-xl-2: 1.25rem;--spacing-rem-xl-3: 1.5rem;--spacing-rem-xl-4: 1.5rem 2rem;--spacing-rem-2xl: 2rem;--padding-lg-2: .75rem 1rem;--spacing-rem-3xl: 2.5rem;--spacing-rem-4xl: 3rem}:root{--font-size-xs: 12px;--font-size-xs-2: 13px;--font-size-sm: 15px;--font-size-sm-2: 14px;--font-size-sm-3: 17px;--font-size-base: 16px;--font-size-md: 18px;--font-size-lg: 20px;--font-size-lg-2: 22px;--font-size-xl: 24px;--font-size-xl-2: 28px;--font-size-2xl: 32px;--font-size-2xl-2: 42px;--font-size-3xl: 48px;--font-size-rem-sm: 1rem;--font-size-rem-sm-2: .9rem;--font-size-rem-sm-3: 1.0625rem;--font-size-rem-md: 1.25rem;--font-size-rem-md-2: 1.125rem;--font-size-rem-md-3: 1.2rem;--font-size-rem-xl-2: 1.375rem;--font-size-rem-lg: 1.5rem;--font-size-rem-lg-2: 1.375rem;--font-size-rem-2xl: 1.75rem;--font-size-rem-2xl-2: 2.5rem;--font-size-rem-2xl-3: 2rem;--font-size-rem-xs-3: .8125rem;--font-size-rem-xs: .75rem;--font-size-rem-xs-2: .875rem;--font-size-rem-xl: 4rem;--font-size-rem-3xl: 3rem;--letter-spacing-tight: -.01em;--letter-spacing-tight-2: -.2px;--letter-spacing-tight-3: -.4px;--letter-spacing-tight-4: -.02em;--letter-spacing-tight-5: -.5px;--letter-spacing-tightest: -.03em;--letter-spacing-normal: .5px;--letter-spacing-normal-2: .2px;--letter-spacing-scanner: 4px;--letter-spacing-wide: 1px;--radius-xs: 4px;--radius-xs-2: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-md-2: .875rem;--radius-md-3: 14px;--radius-lg: 16px;--radius-xl: 20px;--radius-xl-2: 24px;--radius-xl-3: 24px 24px 0 0;--radius-xs-3: 3px;--radius-xl-4: 28px;--radius-button: 10px}:root{--width-input: 200px;--width-button-min: 300px;--width-btn-modal-min: 0;--width-modal-sm: 300px;--width-dialog-max: 400px;--width-dialog-large: 500px;--width-list-max: 600px;--width-scanner-max: 400px;--max-width-modal: 480px;--max-width-dialog-large: 500px;--max-width-keypad: 500px;--max-width-dialog-xl: 600px;--max-width-dialog-sm: 380px;--max-width-keypad-sm: 400px;--max-width-keypad-md: 450px;--max-height-keypad: 700px;--min-width-dialog: 280px;--width-logo: 120px;--width-logo-sm: 100px;--width-text-max: 150px;--width-grid-col: 140px;--width-grid-column: 320px;--width-grid-column-lg: 340px;--width-label: 140px;--width-color-indicator: 50px;--width-color-dot: 44px;--width-handle: 40px;--width-icon-md: 48px;--width-icon-lg: 44px;--width-status: 52px;--min-width-icon: 32px;--size-button-close: 40px;--position-right-offset: 14rem;--position-top-sm: .75rem;--position-right-sm: .75rem;--position-top-md: 12px;--position-right-md: 16px;--position-right-md-2: 14px;--position-bottom-sm: 10px;--position-left-offscreen: -9999px;--width-hidden: 1px;--min-height-empty: 400px;--height-hidden: 1px;--min-height-empty-sm: 200px;--min-height-header: 80px;--min-height-button: 60px;--min-height-column-empty: 300px;--height-row: 80px;--height-logo: 120px;--height-logo-sm: 100px;--height-qr: 200px;--height-color-indicator: 60px;--height-color-dot: 44px;--height-handle: 5px;--height-icon-md: 48px;--height-icon-lg: 44px;--height-status: 52px;--height-icon: 32px;--height-button-close: 40px;--height-countdown: 24px;--min-height-button-2: 56px;--min-height-keypad-btn: 80px;--min-height-keypad-btn-lg: 100px;--min-height-keypad-display: 70px;--min-height-keypad-key: 55px;--min-height-textarea: 120px;--min-height-toggle: 72px;--min-width-keypad-btn: 80px;--min-width-keypad-btn-lg: 100px;--max-height-error: 200px;--spacing-safe-bottom: 34px;--spacing-bottom-safe: 120px;--margin-y-lg: 25px 0;--gap-xs: 6px;--gap-xs-2: .5rem;--gap-sm: 12px;--gap-sm-2: 8px;--gap-sm-3: 10px;--gap-md: 1rem;--gap-md-2: .75rem;--gap-md-3: 16px;--gap-lg: 20px;--gap-xl: 1.5rem;--gap-2xl: 2.5rem;--size-color-indicator: 60px;--size-icon-sm-2: 28px;--blur-xs: 4px;--blur-sm: var(--spacing-xs);--blur-md: 20px;--blur-lg: 10px;--z-column: 10;--z-overlay-base: 1;--z-overlay-content: 2;--z-overlay-2: 999;--z-overlay: var(--z-dialog);--z-modal-ios: 10000;--z-dialog-confirm: 20000;--transform-shake-left: translateX(-4px);--transform-shake-left-2: translateX(-10px);--transform-shake-right: translateX(4px);--transform-shake-right-2: translateX(10px);--transform-slide-up: translateY(50px);--transform-slide-up-2: translateY(20px);--transform-slide-up-3: translateY(30px) scale(.95);--transform-translate-y-sm: translateY(-10px);--border-width: 2px;--border-width-thin: 1px;--width-panel-split: 50%;--width-image-max: 90%;--spacing-xs-2px: 2px;--spacing-xs-10px: 10px;--spacing-xl-27px: 27px;--spacing-xl-31px: 31px;--spacing-xl-51px: 51px;--spacing-md-14px: 14px;--spacing-2xl-32px: 32px;--width-icon-36px: 36px;--height-icon-36px: 36px;--width-handle-36px: 36px;--radius-xl-100px: 100px;--margin-handle-ios: 12px auto 8px;--blur-lg-40px: 40px;--max-width-dialog-640px: 640px;--max-width-dialog-540px: 540px;--max-width-dialog-350px: 350px;--padding-16px-20px-20px: 16px 20px 20px;--font-size-xs-11px: 11px;--font-size-rem-sm-2-0875rem: .875rem;--spacing-rem-3xl-3rem: 3rem;--spacing-rem-4xl-4rem: 4rem;--z-modal-ios-1000: 1000;--letter-spacing-scanner-2px: 2px;--padding-top-2vh: 2vh;--min-height-button-52px: 52px;--transform-slide-up-2-negative: translateY(-20px);--breakpoint-tablet: 768px;--z-modal: 9999;--z-dialog: 2000;--z-header: 100}@media (prefers-color-scheme: dark){:root{--bg: #0b0c0f;--text-1: #f3f4f6;--text-black: #000;--text-2: #cbd5e1;--text-gray-600: #4b5563;--text-gray-700: #374151;--text-gray-800: #1f2937;--surface-1: #0f1115;--surface-2: #151922;--header-bg-production: #010c23;--header-bg-sandbox: #291b00;--header-bg-dev: #011e08;--header-text-production: var(--text-1);--header-text-sandbox: var(--text-1);--header-text-dev: var(--text-1);--header-text-muted-production: var(--muted);--header-text-muted-sandbox: var(--muted);--header-text-muted-dev: var(--muted);--header-text-brand-production: var(--brand);--header-text-brand-sandbox: var(--brand);--header-text-brand-dev: var(--brand);--status-bar-text-production: var(--text-1);--status-bar-text-sandbox: var(--text-1);--status-bar-text-dev: var(--text-1);--status-bar-text-muted-production: var(--muted);--status-bar-text-muted-sandbox: var(--muted);--status-bar-text-muted-dev: var(--muted);--landing-text-production: var(--text-1);--landing-text-sandbox: var(--text-1);--landing-text-dev: var(--text-1);--surface-2-alt: #f8f9fa;--surface-light: #f9fafb;--surface-3: #1b2130;--surface-3-alt: #e9ecef;--surface-4: #222b3a;--surface-disabled: #ccc;--border-subtle: #1e2530;--border-strong: #3d4b5f;--border-light: #ddd;--border-mid: #adb5bd;--border-gray: #e5e7eb;--border-blue-900: #1e3a8a;--brand: #60a5fa;--primary: #60a5fa;--primary-contrast: #081016;--btn-action-bg: var(--primary);--btn-action-fg: var(--primary-contrast);--primary-subtle: rgba(96, 165, 250, .15);--brand-hover: #7ab8ff;--brand-active: #93c5fd;--brand-contrast: #081016;--link: #7ab8ff;--link-hover: #93c5fd;--link-visited: #a78bfa;--success: #22c55e;--success-contrast: #081016;--success-alt: #4caf50;--success-light: #e8f5e9;--success-subtle: rgba(34, 197, 94, .1);--warn: #f59e0b;--warn-contrast: #081016;--danger: #f87171;--danger-contrast: #081016;--color-btn-signout-bg: #6b5b4a;--color-btn-signout-bg-contrast: #f3f4f6;--btn-import-bg: var(--success);--btn-import-bg-contrast: var(--success-contrast);--btn-import-bg-hover: #22c55e;--btn-completed-bg: #64748b;--btn-completed-bg-contrast: #f8fafc;--btn-completed-bg-hover: #94a3b8;--danger-alt: #dc3545;--danger-subtle: rgba(248, 113, 113, .15);--danger-hover: #fb923c;--info: #38bdf8;--info-contrast: #081016;--scrim: rgba(0, 0, 0, .6);--scrim-light: rgba(0, 0, 0, .3);--text-shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--text-shadow-md: 0 1px 2px rgba(0, 0, 0, .5);--input-bg: #151922;--input-border: #2b3442;--input-focus: #60a5fa;--input-disabled: #1b2130;--input-placeholder: #6b7280;--scrollbar-track: #151922;--scrollbar-thumb: #2b3442;--scrollbar-thumb-hover: #3d4b5f;--success-subtle: rgba(22, 163, 74, .1);--danger-subtle: rgba(220, 38, 38, .1)}}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--bg: #0b0c0f;--text-1: #f3f4f6;--text-black: #000;--text-2: #cbd5e1;--text-gray-600: #4b5563;--text-gray-700: #374151;--text-gray-800: #1f2937;--surface-1: #0f1115;--surface-2: #151922;--surface-2-alt: #f8f9fa;--surface-light: #f9fafb;--surface-3: #1b2130;--surface-3-alt: #e9ecef;--surface-4: #222b3a;--surface-disabled: #ccc;--header-bg-production: #010c23;--header-bg-sandbox: #291b00;--header-bg-dev: #011e08;--header-text-production: var(--text-1);--header-text-sandbox: var(--text-1);--header-text-dev: var(--text-1);--header-text-muted-production: var(--muted);--header-text-muted-sandbox: var(--muted);--header-text-muted-dev: var(--muted);--header-text-brand-production: var(--brand);--header-text-brand-sandbox: var(--brand);--header-text-brand-dev: var(--brand);--status-bar-text-production: var(--text-1);--status-bar-text-sandbox: var(--text-1);--status-bar-text-dev: var(--text-1);--status-bar-text-muted-production: var(--muted);--status-bar-text-muted-sandbox: var(--muted);--status-bar-text-muted-dev: var(--muted);--landing-text-production: var(--text-1);--landing-text-sandbox: var(--text-1);--landing-text-dev: var(--text-1);--border-subtle: #1e2530;--border-strong: #3d4b5f;--border-light: #ddd;--border-mid: #adb5bd;--brand: #60a5fa;--primary: #60a5fa;--primary-contrast: #081016;--brand-hover: #7ab8ff;--brand-active: #93c5fd;--brand-contrast: #081016;--btn-action-bg: var(--primary);--btn-action-fg: var(--primary-contrast);--link: #7ab8ff;--link-hover: #93c5fd;--link-visited: #a78bfa;--success: #22c55e;--success-contrast: #081016;--success-alt: #4caf50;--success-light: #e8f5e9;--warn: #f59e0b;--warn-contrast: #081016;--danger: #f87171;--danger-contrast: #081016;--danger-alt: #dc3545;--danger-hover: #fb923c;--info: #38bdf8;--info-contrast: #081016;--scrim: rgba(0, 0, 0, .6);--scrim-light: rgba(0, 0, 0, .3);--scrim-dark: rgba(0, 0, 0, .6);--bg-white-alpha: rgba(255, 255, 255, .25);--text-shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--text-shadow-md: 0 1px 2px rgba(0, 0, 0, .5);--input-bg: #151922;--input-border: #2b3442;--input-focus: #60a5fa;--input-disabled: #1b2130;--input-placeholder: #6b7280;--scrollbar-track: #151922;--scrollbar-thumb: #2b3442;--scrollbar-thumb-hover: #3d4b5f}.btn-primary,.btn-secondary,.btn-import,.btn-completed,.btn-danger{box-sizing:border-box;border-radius:var(--btn-landing-radius);padding:var(--btn-landing-padding-y) var(--btn-landing-padding-x);font-size:var(--btn-landing-font-size);font-weight:var(--btn-landing-font-weight);min-height:var(--tap-size-min);width:var(--width-button-min);min-width:var(--width-button-min);cursor:pointer;transition:var(--btn-landing-transition);text-transform:lowercase}.btn-primary{background:var(--btn-action-bg);color:var(--btn-action-fg);border:none;box-shadow:var(--shadow-lg)}.btn-primary:hover:not(:disabled){background:var(--brand-hover);color:var(--btn-action-fg);box-shadow:var(--shadow-lg)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--surface-1);color:var(--text-1);border:none;box-shadow:inset 0 0 0 var(--border-width-thin) var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);box-shadow:inset 0 0 0 var(--border-width-thin) var(--border-strong)}.btn-secondary:active:not(:disabled){transform:scale(.98)}.btn-import{background:var(--btn-import-bg);color:var(--btn-import-bg-contrast);border:none;box-shadow:var(--shadow-lg)}.btn-import:hover:not(:disabled){background:var(--btn-import-bg-hover);color:var(--btn-import-bg-contrast);box-shadow:var(--shadow-lg)}.btn-import:active:not(:disabled){transform:scale(.98)}.btn-completed{background:var(--btn-completed-bg);color:var(--btn-completed-bg-contrast);border:none;box-shadow:var(--shadow-lg)}.btn-completed:hover:not(:disabled){background:var(--btn-completed-bg-hover);color:var(--btn-completed-bg-contrast);box-shadow:var(--shadow-lg)}.btn-completed:active:not(:disabled){transform:scale(.98)}.btn-danger{background:var(--danger);color:var(--danger-contrast);border:none}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-danger:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled,.btn-secondary:disabled,.btn-import:disabled,.btn-completed:disabled,.btn-danger:disabled{opacity:var(--btn-landing-disabled-opacity);cursor:not-allowed}html,body{background-color:var(--bg);color:var(--text-1)}:root{color-scheme:light dark}::-webkit-scrollbar{width:var(--spacing-md);height:var(--spacing-md)}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:var(--radius-xs)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-xs);border:2px solid var(--scrollbar-track)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}:root{--bg: #ffffff;--fg: #121212;--bg-secondary: #f5f5f7;--border: #e0e0e0;--accent: #1e3a8a;--accent-hover: #1e40af}@media (prefers-color-scheme: dark){:root{--bg: #000000;--fg: #ffffff;--bg-secondary: #1a1a1a;--border: #333333;--accent: #3b82f6;--accent-hover: #60a5fa}}:root[data-theme=light]{--bg: #ffffff;--fg: #121212;--bg-secondary: #f5f5f7;--border: #e0e0e0;--accent: #1e3a8a;--accent-hover: #1e40af}:root[data-theme=dark]{--bg: #000000;--fg: #ffffff;--bg-secondary: #1a1a1a;--border: #333333;--accent: #3b82f6;--accent-hover: #60a5fa}html,body{background:var(--bg);color:var(--fg);transition:background .2s linear,color .2s linear}.version-panel{background:var(--header-bg-production);color:var(--status-bar-text-production)}:root[data-environment=sandbox] .version-panel{background:var(--header-bg-sandbox);color:var(--status-bar-text-sandbox)}:root[data-environment=dev] .version-panel{background:var(--header-bg-dev);color:var(--status-bar-text-dev)}:root[data-environment=production] .version-panel{background:var(--header-bg-production);color:var(--status-bar-text-production)}:root[data-environment=sandbox] .version-panel .version-label{color:var(--status-bar-text-muted-sandbox)}:root[data-environment=sandbox] .version-panel .version-value{color:var(--status-bar-text-sandbox)}:root[data-environment=dev] .version-panel .version-label{color:var(--status-bar-text-muted-dev)}:root[data-environment=dev] .version-panel .version-value{color:var(--status-bar-text-dev)}:root[data-environment=production] .version-panel .version-label{color:var(--status-bar-text-muted-production)}:root[data-environment=production] .version-panel .version-value{color:var(--status-bar-text-production)}.landing-page{background:var(--header-bg-production)}:root[data-environment=sandbox] .landing-page{background:var(--header-bg-sandbox)}:root[data-environment=dev] .landing-page{background:var(--header-bg-dev)}:root[data-environment=production] .landing-page{background:var(--header-bg-production)}@media (prefers-color-scheme: dark){:root[data-environment=sandbox] .landing-page{background:var(--header-bg-sandbox)}:root[data-environment=dev] .landing-page{background:var(--header-bg-dev)}:root[data-environment=production] .landing-page{background:var(--header-bg-production)}}:root[data-theme=dark][data-environment=sandbox] .landing-page{background:var(--header-bg-sandbox)}:root[data-theme=dark][data-environment=dev] .landing-page{background:var(--header-bg-dev)}:root[data-theme=dark][data-environment=production] .landing-page{background:var(--header-bg-production)}:root[data-environment=sandbox] .landing-page{color:var(--landing-text-sandbox)}:root[data-environment=dev] .landing-page{color:var(--landing-text-dev)}:root[data-environment=production] .landing-page{color:var(--landing-text-production)}.error-boundary[data-v-45c1ed36]{width:100%;height:100%}.error-state[data-v-45c1ed36]{display:flex;align-items:center;justify-content:center;min-height:var(--min-height-empty);padding:var(--spacing-rem-2xl)}.error-card[data-v-45c1ed36]{background:var(--color-surface);border:1px solid var(--color-error);border-radius:var(--radius-sm);padding:var(--spacing-rem-2xl);max-width:var(--max-width-dialog-xl);text-align:center}.error-icon[data-v-45c1ed36]{font-size:var(--font-size-rem-xl);margin-bottom:var(--spacing-rem-lg)}.error-title[data-v-45c1ed36]{font-size:var(--font-size-rem-lg);font-weight:600;color:var(--color-error);margin-bottom:var(--spacing-rem-sm)}.error-message[data-v-45c1ed36]{color:var(--color-text-secondary);margin-bottom:var(--spacing-rem-xl);line-height:1.5}.error-actions[data-v-45c1ed36]{display:flex;gap:var(--gap-md);justify-content:center;margin-bottom:var(--spacing-rem-lg)}.btn-retry[data-v-45c1ed36],.btn-home[data-v-45c1ed36]{padding:var(--spacing-rem-md) var(--spacing-rem-xl);border:none;border-radius:var(--radius-xs);font-weight:500;cursor:pointer;transition:all .2s}.btn-retry[data-v-45c1ed36]{background:var(--color-primary);color:#fff}.btn-retry[data-v-45c1ed36]:hover{background:var(--color-primary-dark)}.btn-home[data-v-45c1ed36]{background:var(--color-surface-variant);color:var(--color-text)}.btn-home[data-v-45c1ed36]:hover{background:var(--color-surface-hover)}.error-details[data-v-45c1ed36]{margin-top:var(--spacing-rem-lg);text-align:left;border-top:1px solid var(--color-border);padding-top:var(--spacing-rem-lg)}.error-details summary[data-v-45c1ed36]{cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-rem-xs-2);margin-bottom:var(--spacing-rem-sm)}.error-details pre[data-v-45c1ed36]{background:var(--color-surface-variant);padding:var(--spacing-rem-lg);border-radius:var(--radius-xs);font-size:var(--font-size-rem-xs);overflow-x:auto;max-height:var(--max-height-error);overflow-y:auto;color:var(--color-text)}.version-panel[data-v-6a9fb11e]{position:fixed;bottom:0;left:0;right:0;display:flex;flex-wrap:wrap;gap:var(--gap-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--surface-2);border-top:1px solid var(--border);font-size:var(--font-size-xs);font-family:ui-monospace,SF Mono,Monaco,monospace;color:var(--text-2);z-index:var(--z-header)}.version-info[data-v-6a9fb11e]{display:flex;gap:var(--gap-xs);align-items:center}.version-label[data-v-6a9fb11e]{color:var(--status-bar-text-muted-production, var(--muted));font-weight:500}.version-value[data-v-6a9fb11e]{color:var(--status-bar-text-production, var(--text-1));font-weight:600}:root[data-environment=sandbox] .version-label[data-v-6a9fb11e]{color:var(--status-bar-text-muted-sandbox, var(--muted))}:root[data-environment=sandbox] .version-value[data-v-6a9fb11e]{color:var(--status-bar-text-sandbox, var(--text-1))}:root[data-environment=dev] .version-label[data-v-6a9fb11e]{color:var(--status-bar-text-muted-dev, var(--muted))}:root[data-environment=dev] .version-value[data-v-6a9fb11e]{color:var(--status-bar-text-dev, var(--text-1))}:root[data-environment=production] .version-label[data-v-6a9fb11e]{color:var(--status-bar-text-muted-production, var(--muted))}:root[data-environment=production] .version-value[data-v-6a9fb11e]{color:var(--status-bar-text-production, var(--text-1))}.app[data-v-d190216e]{min-height:100vh;background:var(--bg);position:relative;z-index:var(--z-overlay-base)}.app-main[data-v-d190216e]{padding:0;max-width:100%;margin:0;position:relative}button,[role=button],.status-pill,.btn,[class*=btn-]{-webkit-tap-highlight-color:var(--tap-highlight-subtle);touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:transform .1s ease,opacity .1s ease}button:active,[role=button]:active,.status-pill:active,.btn:active,[class*=btn-]:active{transform:scale(.95);opacity:.85}.confirm-overlay[data-v-a0927eea]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--scrim);z-index:var(--z-dialog);display:flex;align-items:center;justify-content:center;animation:fadeIn-a0927eea .2s ease-out;padding:var(--spacing-rem-lg)}.confirm-dialog[data-v-a0927eea]{background:var(--surface-2);border-radius:var(--radius-xl);padding:0;min-width:var(--min-width-dialog);max-width:90vw;width:100%;max-width:var(--max-width-dialog-large);box-shadow:var(--shadow-xl);animation:slideUp-a0927eea .2s ease-out;overflow:hidden}@media (min-width: 768px){.confirm-dialog[data-v-a0927eea]{max-width:var(--max-width-dialog-xl);border-radius:var(--radius-xl-2)}}.confirm-header[data-v-a0927eea]{padding:var(--spacing-xl-2) var(--spacing-xl-2) var(--spacing-xl);border-bottom:1px solid var(--surface-4)}.confirm-header h3[data-v-a0927eea]{margin:0;font-size:var( --font-size-xl );font-weight:600;color:var(--text-1);letter-spacing:var(--letter-spacing-tight);line-height:1.3}@media (min-width: 768px){.confirm-header h3[data-v-a0927eea]{font-size:var(--font-size-xl-2)}}.confirm-body[data-v-a0927eea]{padding:var(--spacing-xl) var(--spacing-xl-2)}.confirm-body p[data-v-a0927eea]{margin:0 0 var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-2);line-height:1.5}.confirm-body p[data-v-a0927eea]:last-child{margin-bottom:0}.confirm-info[data-v-a0927eea]{color:var(--muted);font-size:var(--font-size-sm-2)}.confirm-actions[data-v-a0927eea]{display:flex;gap:var(--spacing-lg);padding:var(--spacing-xl) var(--spacing-xl-2) var(--spacing-xl-2);border-top:1px solid var(--surface-4)}.confirm-actions button[data-v-a0927eea]{flex:1;padding:var(--spacing-lg) var(--spacing-xl);border:none;border-radius:var(--radius-md);font-size:var( --font-size-lg );font-weight:600;cursor:pointer;transition:all .15s ease;min-height:var( --min-height-button );-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (min-width: 768px){.confirm-actions button[data-v-a0927eea]{font-size:var(--font-size-lg-2);min-height:var(--min-height-button-2);padding:var(--spacing-md-2) var(--spacing-xl-2)}}.btn-cancel[data-v-a0927eea]{background:var(--surface-3);color:var(--text-1)}.btn-cancel[data-v-a0927eea]:hover{background:var(--surface-4)}.btn-cancel[data-v-a0927eea]:active{transform:scale(.96)}.btn-confirm-download[data-v-a0927eea]{background:var(--success);color:var(--success-contrast)}.btn-confirm-download[data-v-a0927eea]:hover{filter:brightness(1.1)}.btn-confirm-download[data-v-a0927eea]:active{transform:scale(.96)}.btn-confirm-skip[data-v-a0927eea]{background:var(--surface-3);color:var(--text-1)}.btn-confirm-skip[data-v-a0927eea]:hover{background:var(--surface-4)}.btn-confirm-skip[data-v-a0927eea]:active{transform:scale(.96)}@keyframes fadeIn-a0927eea{0%{opacity:0}to{opacity:1}}@keyframes slideUp-a0927eea{0%{transform:var(--transform-slide-up-2);opacity:0}to{transform:translateY(0);opacity:1}}.cage-card{position:relative;padding:var(--spacing-lg);background-color:var(--surface-1);border-left:4px solid;border-radius:var(--radius-md);box-shadow:var(--shadow);transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent}.cage-card--clickable{cursor:pointer;touch-action:manipulation}.cage-card--clickable:active{transform:scale(.98);box-shadow:var(--shadow-sm)}.cage-card--flashing{animation:cage-card-blink .5s ease-in-out infinite}@keyframes cage-card-blink{0%,to{opacity:1;box-shadow:var(--shadow)}50%{opacity:.85;box-shadow:var(--shadow-warn)}}.cage-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.cage-card__title{display:flex;align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap;font-weight:600;font-size:var(--font-size-sm-3);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif;letter-spacing:var(--letter-spacing-tight-3);max-width:100%;overflow:hidden}.cage-card__label{color:var(--muted);font-size:var(--font-size-sm);font-weight:500}.cage-card__separator{color:var(--muted);font-weight:400;font-size:var(--font-size-sm)}.cage-card__group{color:var(--text-1);font-size:var(--font-size-sm-3);font-weight:700;font-family:SF Mono,-apple-system,BlinkMacSystemFont,monospace;letter-spacing:var(--letter-spacing-tight-2)}.cage-card__position{color:var(--text-1);font-size:var(--font-size-sm-3);font-weight:700;font-family:SF Mono,-apple-system,BlinkMacSystemFont,monospace;letter-spacing:var(--letter-spacing-tight-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:var(--width-text-max)}.cage-card__counts{display:flex;flex-wrap:wrap;gap:var(--spacing-xl);font-size:var(--font-size-sm);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif;margin-bottom:var(--spacing-md)}.cage-card__batch-control{width:100%;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.cage-card__count{display:flex;align-items:center;gap:var(--spacing-xxs)}.cage-card__count-icon{font-size:var(--font-size-lg)}.cage-card__count-value{font-family:SF Mono,-apple-system,BlinkMacSystemFont,monospace;font-weight:500;font-size:var(--font-size-sm);color:var(--text-1);letter-spacing:var(--letter-spacing-normal-2)}.cage-card__timestamp{display:flex;align-items:center;gap:var(--spacing-xxs);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:.5px solid var(--border-subtle);font-size:var(--font-size-xs-2);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif}.cage-card__timestamp-label{color:var(--muted);font-weight:400}.cage-card__timestamp-value{color:var(--text-1);font-weight:500}.completion-card[data-v-cb8ccbcf]{padding:var(--spacing-lg);background-color:var(--surface-1);border-radius:var(--radius-md);box-shadow:var(--shadow);border-left:var(--spacing-xs) solid;min-width:0;overflow:visible}.completion-card__header[data-v-cb8ccbcf]{margin-bottom:var(--spacing-md);overflow:visible;min-width:0}.completion-card__title[data-v-cb8ccbcf]{display:flex;align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif;max-width:100%}.completion-card__label[data-v-cb8ccbcf]{color:var(--muted);font-size:var(--font-size-sm);font-weight:500}.completion-card__separator[data-v-cb8ccbcf]{color:var(--muted);font-weight:400;font-size:var(--font-size-sm)}.completion-card__group[data-v-cb8ccbcf]{color:var(--text-1);font-size:var(--font-size-sm-3);font-weight:700;font-family:SF Mono,-apple-system,BlinkMacSystemFont,monospace;letter-spacing:var(--letter-spacing-tight-2)}.completion-card__position[data-v-cb8ccbcf]{color:var(--text-1);font-size:var(--font-size-sm-3);font-weight:700;font-family:SF Mono,-apple-system,BlinkMacSystemFont,monospace;letter-spacing:var(--letter-spacing-tight-2);white-space:nowrap;overflow:visible;text-overflow:clip}.completion-card__counts[data-v-cb8ccbcf]{display:flex;gap:var(--spacing-xl);font-size:var(--font-size-sm)}.completion-card__count[data-v-cb8ccbcf]{display:flex;align-items:center;gap:var(--spacing-xxs)}.completion-card__count-icon[data-v-cb8ccbcf]{font-size:var(--font-size-lg)}.completion-card__count-value[data-v-cb8ccbcf]{font-family:SF Mono,-apple-system,BlinkMacSystemFont,monospace;font-size:var(--font-size-sm);font-weight:500;color:var(--text-1)}.column-done[data-v-67b8a05d]{display:flex;flex-direction:column;gap:var(--spacing-md)}.column-done__empty[data-v-67b8a05d]{display:flex;align-items:center;justify-content:center;min-height:calc(var(--spacing-rem-3xl) * 5);padding:var(--spacing-3xl) var(--spacing-xl)}.column-done__empty-text[data-v-67b8a05d]{color:var(--muted);font-size:var(--font-size-sm);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif;text-align:center}.column-done__cards[data-v-67b8a05d]{display:flex;flex-direction:column;gap:var(--spacing-md)}.kanban-board{width:100%;min-height:100dvh;background-color:var(--bg)}.kanban-board__scroll-container{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.kanban-board__grid{display:grid;grid-template-columns:repeat(var(--column-count),var(--width-grid-column));gap:var(--spacing-md);padding:var(--spacing-lg);min-width:min-content;justify-content:start;width:max-content}.kanban-board__column{display:flex;flex-direction:column;min-height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);background-color:var(--surface-1);border-radius:var(--radius-lg);overflow:hidden;scroll-snap-align:start}.kanban-board__column-header{position:sticky;top:0;z-index:var(--z-column);display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);background-color:var(--surface-1);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));border-bottom:.5px solid var(--border-subtle);box-shadow:var(--shadow)}.kanban-board__column-title{display:flex;align-items:center;gap:var(--spacing-sm);margin:0;font-size:var(--font-size-lg-2);font-weight:700;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;letter-spacing:var(--letter-spacing-tight-3);color:var(--text-1)}.kanban-board__column-icon{font-size:var(--font-size-xl)}.kanban-board__column-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.kanban-board__export-button{display:inline-flex;align-items:center;justify-content:center;width:var(--spacing-2xl);height:var(--spacing-2xl);padding:0;border:none;border-radius:var(--radius-sm);background-color:var(--success);color:var(--success-contrast);font-size:var(--font-size-base);cursor:pointer;transition:opacity .2s,transform .1s;box-shadow:var(--shadow)}.kanban-board__export-button:hover:not(:disabled){opacity:.9;transform:scale(1.05)}.kanban-board__export-button:active:not(:disabled){transform:scale(.95)}.kanban-board__export-button:disabled{opacity:.5;cursor:not-allowed}.export-button-icon{font-size:var(--font-size-base)}.kanban-board__column-count{display:inline-flex;align-items:center;justify-content:center;min-width:var(--size-icon-sm-2);height:var(--size-icon-sm-2);padding:0 var(--gap-sm-3);background-color:var(--surface-2);border-radius:var(--radius-md-3);font-size:var(--font-size-sm);font-weight:600;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif;color:var(--text-1)}.kanban-board__column-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:var(--spacing-lg);padding-bottom:var(--spacing-bottom-safe)}.kanban-board__empty{display:flex;align-items:center;justify-content:center;min-height:var(--min-height-empty-sm);padding:var(--spacing-3xl) var(--spacing-xl)}.kanban-board__empty-text{color:var(--muted);font-size:var(--font-size-sm);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif;text-align:center}.kanban-board__cards{display:flex;flex-direction:column;gap:var(--gap-sm-3)}.kanban-board__cards>*{transition:all .3s cubic-bezier(.4,0,.2,1)}.kanban-board__cards>*:not(:last-child){animation:slideIn .3s cubic-bezier(.4,0,.2,1)}@keyframes slideIn{0%{opacity:0;transform:var(--transform-translate-y-sm)}to{opacity:1;transform:translateY(0)}}@supports (padding: max(0)){.kanban-board__scroll-container{padding-bottom:max(0,env(safe-area-inset-bottom))}}@media (min-width: 768px) and (orientation: landscape){.kanban-board__grid{grid-template-columns:repeat(var(--column-count),var(--width-grid-column));gap:var(--spacing-lg);padding:var(--spacing-xl);justify-content:start;width:max-content}.kanban-board__scroll-container{overflow-x:auto}.kanban-board__column{min-width:0}}@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait){.kanban-board__grid{grid-template-columns:repeat(var(--column-count),var(--width-grid-column-lg));justify-content:start;width:max-content}}.kanban-page[data-v-13bdc371]{height:100vh;display:flex;flex-direction:column;background:var(--bg)}.kanban-header[data-v-13bdc371]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-rem-lg) var(--spacing-rem-xl);background:var(--header-bg-production);border-bottom:1px solid var(--border);box-shadow:var(--shadow);gap:var(--gap-md)}:root[data-environment=sandbox] .kanban-header[data-v-13bdc371]{background:var(--header-bg-sandbox)}:root[data-environment=dev] .kanban-header[data-v-13bdc371]{background:var(--header-bg-dev)}:root[data-environment=production] .kanban-header[data-v-13bdc371]{background:var(--header-bg-production)}.kanban-header .btn-back[data-v-13bdc371]{color:var(--header-text-brand-production)}.kanban-header .kanban-title[data-v-13bdc371]{color:var(--header-text-production)}:root[data-environment=sandbox] .kanban-header .btn-back[data-v-13bdc371]{color:var(--header-text-brand-sandbox)}:root[data-environment=sandbox] .kanban-header .kanban-title[data-v-13bdc371]{color:var(--header-text-sandbox)}:root[data-environment=dev] .kanban-header .btn-back[data-v-13bdc371]{color:var(--header-text-brand-dev)}:root[data-environment=dev] .kanban-header .kanban-title[data-v-13bdc371]{color:var(--header-text-dev)}:root[data-environment=production] .kanban-header .btn-back[data-v-13bdc371]{color:var(--header-text-brand-production)}:root[data-environment=production] .kanban-header .kanban-title[data-v-13bdc371]{color:var(--header-text-production)}.btn-back[data-v-13bdc371]{padding:var(--spacing-rem-sm) var(--spacing-rem-lg);min-height:var(--tap-size-min-back);min-width:var(--tap-size-min-back);background:transparent;border:none;font-size:var(--font-size-rem-md-2);font-weight:600;color:var(--header-text-brand-production);cursor:pointer;transition:opacity .2s;-webkit-tap-highlight-color:transparent}.btn-back[data-v-13bdc371]:hover{opacity:.7}.btn-signout[data-v-13bdc371]{padding:var(--spacing-rem-sm) var(--spacing-rem-lg);min-height:var(--tap-size-min-back);background:var(--danger);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-rem-xs);font-weight:600;color:var(--danger-contrast);cursor:pointer;transition:opacity .2s;-webkit-tap-highlight-color:transparent;white-space:nowrap}.btn-signout[data-v-13bdc371]:hover{opacity:.8}.btn-signout[data-v-13bdc371]:disabled{opacity:.5;cursor:not-allowed}.kanban-title[data-v-13bdc371]{font-size:var(--font-size-rem-lg);font-weight:700;color:var(--header-text-production);margin:0}.btn-refresh[data-v-13bdc371]{padding:var(--spacing-rem-sm) var(--spacing-rem-lg);background:transparent;border:none;font-size:var(--font-size-rem-md);cursor:pointer;transition:transform .2s}.btn-refresh[data-v-13bdc371]:active{transform:scale(.9)}.loading-state[data-v-13bdc371],.error-state[data-v-13bdc371]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:var(--gap-md);padding:var(--spacing-rem-2xl);text-align:center}.loading-state[data-v-13bdc371]{font-size:var(--font-size-rem-md-2);color:var(--muted)}.error-state[data-v-13bdc371]{color:var(--danger)}.btn-retry[data-v-13bdc371]{padding:var(--spacing-rem-md) var(--spacing-rem-2xl);background:var(--brand);border:none;border-radius:var(--radius-md);color:var(--brand-contrast);font-size:var(--font-size-rem-sm);font-weight:600;cursor:pointer;transition:opacity .2s}.btn-retry[data-v-13bdc371]:hover{opacity:.8}.cage-grid[data-v-13bdc371]{flex:1;padding:var(--spacing-rem-xl);overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--width-dialog-min),1fr));gap:var(--gap-md);align-content:start}@media (max-width: var(--breakpoint-tablet)){.cage-grid[data-v-13bdc371]{grid-template-columns:1fr;padding:var(--spacing-rem-lg)}}.keypad-modal[data-v-6f424374]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:var(--z-overlay-2);display:flex;align-items:flex-start;justify-content:center;padding:var(--spacing-rem-2xl);padding-top:2vh;overflow:hidden;touch-action:none;-webkit-overflow-scrolling:none;overscroll-behavior:none}.modal-overlay[data-v-6f424374]{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--scrim-light);backdrop-filter:blur(var(--blur-xs));-webkit-backdrop-filter:blur(var(--blur-xs))}.modal-content[data-v-6f424374]{position:relative;background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--spacing-rem-2xl);max-width:var(--max-width-dialog-large);width:100%;box-shadow:var(--shadow-dialog);animation:modalSlideUp-6f424374 .3s ease-out;touch-action:none}@keyframes modalSlideUp-6f424374{0%{opacity:0;transform:var(--transform-slide-up)}to{opacity:1;transform:translateY(0)}}.study-overview-modal[data-v-6f424374]{max-width:var(--max-width-dialog-xl)}.btn-close[data-v-6f424374]{position:absolute;top:var(--spacing-rem-lg);right:var(--spacing-rem-lg);width:var(--size-button-close);height:var(--height-button-close);border-radius:50%;border:none;background:var(--surface-2);color:var(--muted);font-size:var(--font-size-rem-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;z-index:var(--z-column);pointer-events:auto}.btn-close[data-v-6f424374]:hover{background:var(--surface-3);color:var(--text-1)}.overview-content[data-v-6f424374]{padding:var(--spacing-rem-lg) 0;display:flex;flex-direction:column;gap:var(--gap-xl)}.completion-icon-large[data-v-6f424374]{font-size:var(--font-size-rem-xl);color:var(--success);text-align:center;margin-bottom:var(--spacing-rem-lg)}.overview-title[data-v-6f424374]{font-size:var(--font-size-rem-2xl-2);font-weight:700;color:var(--text-1);margin:0 0 var(--spacing-rem-2xl) 0;text-align:center;letter-spacing:var(--letter-spacing-tight-4)}.groups-section[data-v-6f424374]{margin:var(--spacing-rem-xl) 0}.section-header[data-v-6f424374]{font-size:var(--font-size-rem-xl-2);font-weight:600;color:var(--text-1);margin-bottom:var(--spacing-rem-xl-2);text-align:center;letter-spacing:var(--letter-spacing-tight)}.group-card[data-v-6f424374]{background:var(--surface-2);border-radius:var(--radius-lg);padding:var(--spacing-rem-xl);margin-bottom:var(--spacing-rem-lg);display:flex;justify-content:space-between;align-items:center}.completion-card[data-v-6f424374]{text-align:center}.group-stats[data-v-6f424374]{display:flex;gap:var(--gap-2xl);align-items:center}.completion-card .group-stats[data-v-6f424374]{justify-content:center}.stat-group[data-v-6f424374]{display:flex;align-items:baseline;gap:var(--gap-xs-2)}.stat-value[data-v-6f424374]{font-size:var(--font-size-rem-2xl-3);font-weight:800;color:var(--text-1);letter-spacing:var(--letter-spacing-tight-4)}.stat-label[data-v-6f424374]{font-size:var(--font-size-rem-xs-2);font-weight:600;color:var(--text-2);letter-spacing:var(--letter-spacing-tight)}.btn-start[data-v-6f424374]{flex:2;background:transparent;border:2px solid var(--primary);color:var(--primary);padding:var(--spacing-rem-md-2);font-size:var(--font-size-rem-sm-3);font-weight:600;border-radius:var(--radius-md-2);cursor:pointer;transition:all .2s;letter-spacing:var(--letter-spacing-tight);box-shadow:var(--shadow-primary);min-height:var(--min-height-button)}.btn-start[data-v-6f424374]:active{transform:scale(.96);background:var(--primary-subtle-2)}.modal-overlay-base[data-v-7e304239]{position:fixed;top:0;left:0;right:0;bottom:var(--keyboard-height, 0);background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-content-base[data-v-7e304239]{background:var(--surface-1);color:var(--text-1);border-radius:20px;padding:1.5rem;max-width:480px;width:100%;max-height:85dvh;overflow-y:auto;position:relative;box-shadow:var(--shadow-xl);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn-close-base[data-v-7e304239]{position:absolute;top:.75rem;right:.75rem;background:var(--surface-2);border:none;border-radius:50%;width:var(--tap-size-min);height:var(--tap-size-min);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;color:var(--text-2);transition:all .2s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn-close-base[data-v-7e304239]:hover{background:var(--surface-3);color:var(--text-1)}.btn-close-base[data-v-7e304239]:active{transform:scale(.95)}@media (min-width: 768px){.modal-content-base[data-v-7e304239]{max-height:90dvh}}.btn-primary[data-v-7e304239],.btn-secondary[data-v-7e304239],.btn-import[data-v-7e304239],.btn-completed[data-v-7e304239],.btn-danger[data-v-7e304239]{box-sizing:border-box;border-radius:var(--btn-landing-radius);padding:var(--btn-landing-padding-y) var(--btn-landing-padding-x);font-size:var(--btn-landing-font-size);font-weight:var(--btn-landing-font-weight);min-height:var(--tap-size-min);width:var(--width-button-min);min-width:var(--width-button-min);cursor:pointer;transition:var(--btn-landing-transition);text-transform:lowercase}.btn-primary[data-v-7e304239]{background:var(--btn-action-bg);color:var(--btn-action-fg);border:none;box-shadow:var(--shadow-lg)}.btn-primary[data-v-7e304239]:hover:not(:disabled){background:var(--brand-hover);color:var(--btn-action-fg);box-shadow:var(--shadow-lg)}.btn-primary[data-v-7e304239]:active:not(:disabled){transform:translateY(0)}.btn-secondary[data-v-7e304239]{background:var(--surface-1);color:var(--text-1);border:none;box-shadow:inset 0 0 0 var(--border-width-thin) var(--border)}.btn-secondary[data-v-7e304239]:hover:not(:disabled){background:var(--surface-2);box-shadow:inset 0 0 0 var(--border-width-thin) var(--border-strong)}.btn-secondary[data-v-7e304239]:active:not(:disabled){transform:scale(.98)}.btn-import[data-v-7e304239]{background:var(--btn-import-bg);color:var(--btn-import-bg-contrast);border:none;box-shadow:var(--shadow-lg)}.btn-import[data-v-7e304239]:hover:not(:disabled){background:var(--btn-import-bg-hover);color:var(--btn-import-bg-contrast);box-shadow:var(--shadow-lg)}.btn-import[data-v-7e304239]:active:not(:disabled){transform:scale(.98)}.btn-completed[data-v-7e304239]{background:var(--btn-completed-bg);color:var(--btn-completed-bg-contrast);border:none;box-shadow:var(--shadow-lg)}.btn-completed[data-v-7e304239]:hover:not(:disabled){background:var(--btn-completed-bg-hover);color:var(--btn-completed-bg-contrast);box-shadow:var(--shadow-lg)}.btn-completed[data-v-7e304239]:active:not(:disabled){transform:scale(.98)}.btn-danger[data-v-7e304239]{background:var(--danger);color:var(--danger-contrast);border:none}.btn-danger[data-v-7e304239]:hover:not(:disabled){background:var(--danger-hover)}.btn-danger[data-v-7e304239]:active:not(:disabled){transform:scale(.98)}.btn-primary[data-v-7e304239]:disabled,.btn-secondary[data-v-7e304239]:disabled,.btn-import[data-v-7e304239]:disabled,.btn-completed[data-v-7e304239]:disabled,.btn-danger[data-v-7e304239]:disabled{opacity:var(--btn-landing-disabled-opacity);cursor:not-allowed}.bookings-due-result-modal[data-v-7e304239]{display:flex;align-items:center;justify-content:center}.bookings-due-result-content[data-v-7e304239]{max-width:var(--width-modal-sm);width:100%}.bookings-due-result-message[data-v-7e304239]{margin:0 0 var(--spacing-rem-lg);font-size:var(--font-size-rem-sm);color:var(--text-2)}.bookings-due-result-ok[data-v-7e304239]{width:100%;min-width:var(--width-btn-modal-min)}.list-row[data-v-c33d2498]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-rem-md);padding:var(--spacing-rem-sm) 0;border-bottom:1px solid var(--border);font-size:var(--font-size-rem-md);color:var(--text-1)}.list-row-label[data-v-c33d2498]{flex:1;min-width:0}.btn-download[data-v-c33d2498]{flex-shrink:0;padding:var(--spacing-rem-sm) var(--spacing-rem-md);min-height:var(--tap-size-min);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text-1);font-size:var(--font-size-rem-sm);cursor:pointer}.btn-download[data-v-c33d2498]:hover:not(:disabled){background:var(--surface-3)}.btn-download[data-v-c33d2498]:disabled{opacity:.6;cursor:not-allowed}.filter-date-wrap[data-v-2bd00862]{flex:1;min-height:var(--tap-size-min);position:relative}.filter-date-input[data-v-2bd00862]{width:100%;min-height:var(--tap-size-min);padding:var(--spacing-rem-sm) var(--spacing-rem-md);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text-1);font-size:var(--font-size-rem-md)}.filter-date-display[data-v-2bd00862]{display:block;min-height:var(--tap-size-min);padding:var(--spacing-rem-sm) var(--spacing-rem-md);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text-1);font-size:var(--font-size-rem-md);pointer-events:none}.filter-date-overlay[data-v-2bd00862]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;cursor:pointer}.modal-overlay-base[data-v-c0012d64]{position:fixed;top:0;left:0;right:0;bottom:var(--keyboard-height, 0);background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-content-base[data-v-c0012d64]{background:var(--surface-1);color:var(--text-1);border-radius:20px;padding:1.5rem;max-width:480px;width:100%;max-height:85dvh;overflow-y:auto;position:relative;box-shadow:var(--shadow-xl);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn-close-base[data-v-c0012d64]{position:absolute;top:.75rem;right:.75rem;background:var(--surface-2);border:none;border-radius:50%;width:var(--tap-size-min);height:var(--tap-size-min);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;color:var(--text-2);transition:all .2s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn-close-base[data-v-c0012d64]:hover{background:var(--surface-3);color:var(--text-1)}.btn-close-base[data-v-c0012d64]:active{transform:scale(.95)}@media (min-width: 768px){.modal-content-base[data-v-c0012d64]{max-height:90dvh}}.completed-bookings-title[data-v-c0012d64]{font-size:var(--font-size-rem-lg);font-weight:600;color:var(--text-1);margin:0 0 var(--spacing-rem-lg) 0;padding-right:var(--tap-size-min)}.completed-bookings-filters[data-v-c0012d64]{display:flex;flex-direction:column;gap:var(--spacing-rem-md);margin-bottom:var(--spacing-rem-lg)}.filter-input[data-v-c0012d64]{padding:var(--spacing-rem-sm) var(--spacing-rem-md);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text-1);font-size:var(--font-size-rem-md);min-height:var(--tap-size-min)}.date-filters[data-v-c0012d64]{display:flex;align-items:center;gap:var(--spacing-rem-sm)}.date-sep[data-v-c0012d64]{color:var(--text-2);font-size:var(--font-size-rem-sm)}.completed-bookings-list[data-v-c0012d64]{max-height:40dvh;overflow-y:auto;min-height:var(--spacing-rem-3xl)}.list-state[data-v-c0012d64]{color:var(--text-2);font-size:var(--font-size-rem-md);margin:0}.list-rows[data-v-c0012d64]{list-style:none;margin:0;padding:0}.study-card[data-v-5ed1f157]{background:var(--surface-1);border-radius:var(--radius-md);border:1px solid var(--border-strong);border-left:4px solid transparent;padding:var(--spacing-rem-xl);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);box-shadow:var(--shadow)}.study-card--event[data-v-5ed1f157]{border-left-color:var(--primary)}.study-card[data-v-5ed1f157]:hover{transform:translateY(var(--spacing-xs-2px));box-shadow:var(--shadow-lg)}.study-card__content[data-v-5ed1f157]{flex:1;display:flex;flex-direction:column;gap:var(--gap-xs-2)}.study-card__primary[data-v-5ed1f157]{display:flex;align-items:center}.study-card__name[data-v-5ed1f157]{font-size:var(--font-size-rem-lg);font-weight:600;color:var(--text-1)}.study-card__secondary[data-v-5ed1f157]{display:flex;align-items:center;gap:var(--gap-xs-2);font-size:var(--font-size-rem-sm)}.study-card__booking-date[data-v-5ed1f157]{color:var(--text-2);font-weight:500;font-family:SF Mono,Menlo,monospace}.study-card__separator[data-v-5ed1f157]{color:var(--muted);font-size:var(--font-size-rem-sm);font-weight:400}.study-card__meta-value[data-v-5ed1f157]{color:var(--text-2);font-size:var(--font-size-rem-sm);font-weight:500}.study-card__meta-article[data-v-5ed1f157]{color:var(--primary);font-weight:600}.chevron[data-v-5ed1f157]{color:var(--muted);font-size:var(--font-size-rem-2xl-3);font-weight:300;flex-shrink:0}.confirm-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--scrim);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));z-index:var(--z-dialog);display:flex;align-items:center;justify-content:center}.confirm-dialog{background:var(--surface-2, #f6f7f9);color:var(--text-1, #0a0a0a);border-radius:var(--radius-lg);padding:var(--spacing-rem-2xl);max-width:var(--width-dialog-large);width:90%;box-shadow:var(--shadow-xl)}.confirm-header h3{margin:0 0 var(--spacing-rem-lg) 0;color:var(--danger);font-size:var(--font-size-rem-md)}.confirm-content{margin-bottom:var(--spacing-rem-xl)}.confirm-content p{margin:var(--spacing-rem-sm) 0;line-height:1.6}.warning-text{margin-top:var(--spacing-rem-lg)!important;font-weight:600;color:var(--danger)}.confirm-content ul{margin:var(--spacing-rem-sm) 0 var(--spacing-rem-lg) var(--spacing-rem-xl);padding:0}.confirm-content li{margin:var(--spacing-rem-xs) 0}.confirm-input{margin-top:var(--spacing-rem-lg);padding:var(--spacing-rem-lg);background:var(--danger-subtle);border-radius:var(--radius-sm)}.confirm-input label{display:block;font-weight:600;margin-bottom:var(--spacing-rem-sm)}.confirm-input input{width:100%;padding:var(--spacing-rem-md);border:2px solid var(--danger);border-radius:var(--radius-sm);font-size:var(--font-size-rem-sm);margin-top:var(--spacing-rem-sm)}.confirm-input input:focus{outline:none;border-color:var(--danger-hover);box-shadow:0 0 0 3px var(--danger-subtle)}.confirm-actions{display:flex;gap:var(--spacing-rem-lg);justify-content:flex-end}.btn-confirm-danger{background:var(--danger);color:var(--danger-contrast);border:none;border-radius:var(--radius-sm);padding:var(--spacing-rem-md) var(--spacing-rem-xl);font-size:var(--font-size-rem-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.btn-confirm-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-confirm-danger:active:not(:disabled){transform:scale(.98)}.btn-confirm-danger:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{background:transparent;color:var(--text-1, #0a0a0a);border:1px solid var(--border, #e5e7eb);border-radius:var(--radius-sm);padding:var(--spacing-rem-md) var(--spacing-rem-xl);font-size:var(--font-size-rem-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.btn-cancel:hover:not(:disabled){background:var(--surface-1, #ffffff)}.wipe-db-container{display:flex;flex-direction:column;align-items:center;width:100%}.loading{display:inline-block;animation:pulse 1.5s ease-in-out infinite}.xlsx-upload-container[data-v-d47192c4]{display:flex;flex-direction:column;align-items:center;width:100%}.loading[data-v-d47192c4]{display:inline-block;animation:pulse-d47192c4 1.5s ease-in-out infinite}@keyframes pulse-d47192c4{0%,to{opacity:1}50%{opacity:.5}}.preview-modal-overlay[data-v-d47192c4]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--scrim);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));z-index:var(--z-dialog);display:flex;align-items:center;justify-content:center}.preview-modal[data-v-d47192c4]{background:var(--surface-2);color:var(--text-1);border-radius:var(--radius-lg);padding:var(--spacing-rem-2xl);max-width:var(--width-list-max);width:90%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.preview-header[data-v-d47192c4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-rem-xl);padding-bottom:var(--spacing-rem-lg);border-bottom:1px solid var(--border)}.preview-header h3[data-v-d47192c4]{margin:0;font-size:var(--font-size-rem-lg);font-weight:600;color:var(--text-1)}.close-btn[data-v-d47192c4]{background:none;border:none;font-size:var(--font-size-rem-2xl);line-height:1;cursor:pointer;color:var(--text-2);padding:0;width:var(--size-icon-md);height:var(--size-icon-md);display:flex;align-items:center;justify-content:center}.close-btn[data-v-d47192c4]:hover{color:var(--text-1)}.preview-content[data-v-d47192c4]{display:flex;flex-direction:column;gap:var(--spacing-rem-xl)}.preview-section[data-v-d47192c4]{display:flex;flex-direction:column;gap:var(--spacing-rem-sm)}.preview-section h4[data-v-d47192c4]{margin:0 0 var(--spacing-rem-sm) 0;font-size:var(--font-size-rem-md-2);font-weight:600;color:var(--text-1)}.preview-section p[data-v-d47192c4]{margin:0;font-size:var(--font-size-rem-sm);color:var(--text-1)}.preview-errors[data-v-d47192c4]{background:var(--warn-subtle, rgba(217, 119, 6, .1));border:1px solid var(--warn);border-radius:var(--radius-sm);padding:var(--spacing-rem-lg)}.preview-errors h4[data-v-d47192c4]{margin:0 0 var(--spacing-rem-sm) 0;color:var(--warn)}.preview-errors ul[data-v-d47192c4]{margin:0;padding-left:var(--spacing-rem-xl);color:var(--warn)}.preview-actions[data-v-d47192c4]{display:flex;gap:var(--gap-md);justify-content:flex-end;margin-top:var(--spacing-rem-lg);padding-top:var(--spacing-rem-lg);border-top:1px solid var(--border)}.btn-confirm[data-v-d47192c4]{background:var(--btn-action-bg);color:var(--btn-action-fg);border:none;border-radius:var(--radius-sm);padding:var(--spacing-rem-md) var(--spacing-rem-xl);font-size:var(--font-size-rem-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.btn-confirm[data-v-d47192c4]:hover:not(:disabled){background:var(--brand-hover)}.btn-confirm[data-v-d47192c4]:disabled{opacity:.5;cursor:not-allowed}.btn-cancel[data-v-d47192c4]{background:transparent;color:var(--text-1);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--spacing-rem-md) var(--spacing-rem-xl);font-size:var(--font-size-rem-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.btn-cancel[data-v-d47192c4]:hover{background:var(--surface-1)}.study-list-container{display:flex;flex-direction:column;flex:1;min-height:0;gap:var(--btn-landing-gap);align-items:center;width:100%}.loading{display:inline-flex;align-items:center;gap:var(--spacing-rem-sm);white-space:nowrap;animation:pulse 1.5s ease-in-out infinite}.loading-spinner{display:inline-block;width:var(--font-size-rem-md);height:var(--font-size-rem-md);border:2px solid var(--primary);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.study-list{display:flex;flex-direction:column;flex:1;min-height:0;gap:var(--spacing-rem-lg);max-width:var(--width-list-max);width:100%;margin-top:var(--spacing-rem-3xl);overflow-y:auto;overflow-x:hidden;padding-right:var(--spacing-rem-sm);-webkit-overflow-scrolling:touch}.study-list{padding-bottom:var(--spacing-bottom-safe)}@supports (padding: max(0)){.study-list{padding-bottom:calc(var(--spacing-bottom-safe) + max(0,env(safe-area-inset-bottom)))}}@media (min-width: var(--breakpoint-tablet)){.study-list{scrollbar-width:thin;scrollbar-color:var(--muted) transparent}.study-list::-webkit-scrollbar{width:var(--size-scrollbar)}.study-list::-webkit-scrollbar-track{background:transparent}.study-list::-webkit-scrollbar-thumb{background:var(--muted);border-radius:var(--radius-xs)}.study-list::-webkit-scrollbar-thumb:hover{background:var(--text-2)}}.landing-page[data-v-8acc6066]{min-height:100dvh;min-height:100vh;min-height:-webkit-fill-available;color:var(--landing-text-production);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif;overflow-x:hidden;overflow-y:hidden;transition:background .3s ease;position:relative}body,html{-ms-overflow-style:none;scrollbar-width:none}body::-webkit-scrollbar,html::-webkit-scrollbar{display:none}.start-screen[data-v-8acc6066]{height:100dvh;height:100vh;display:flex;flex-direction:row;align-items:stretch;padding:var(--spacing-rem-2xl)}.left-panel[data-v-8acc6066]{flex:0 0 var(--width-panel-split);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-rem-2xl)}.dodo-image[data-v-8acc6066]{max-width:var(--width-image-max);height:auto;object-fit:contain;filter:var(--drop-shadow-light)}@media (prefers-color-scheme: dark){.dodo-image[data-v-8acc6066]{filter:var(--drop-shadow-dark)}}.right-panel[data-v-8acc6066]{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;padding:var(--spacing-rem-2xl)}.btn-dev-reload[data-v-8acc6066]{background:transparent;border:var(--border-width-thin) solid var(--muted);color:var(--muted);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .2s;margin-top:var(--spacing-md)}.btn-dev-reload[data-v-8acc6066]:hover{background:var(--surface-2);border-color:var(--text-2);color:var(--text-2)}.btn-dev-reload[data-v-8acc6066]:active{transform:scale(.98)}.btn-signout[data-v-8acc6066]{margin-top:var(--spacing-rem-lg);padding:var(--spacing-rem-sm) var(--spacing-rem-lg);min-height:var(--tap-size-min);min-width:var(--tap-size-min);background:var(--color-btn-signout-bg);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-rem-xs);font-weight:600;color:var(--color-btn-signout-bg-contrast);cursor:pointer;transition:opacity .2s;-webkit-tap-highlight-color:transparent;white-space:nowrap}.btn-signout[data-v-8acc6066]:hover{opacity:.8}.btn-signout[data-v-8acc6066]:disabled{opacity:.5;cursor:not-allowed}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--header-bg-production);padding:var(--spacing-rem-2xl)}.login-container{width:100%;max-width:var(--width-dialog-max)}.logo-container{text-align:center;margin-bottom:var(--spacing-rem-4xl)}.dodo-logo{width:var(--width-logo);height:var(--height-logo);object-fit:contain;margin-bottom:var(--spacing-rem-lg)}.app-title{font-size:var(--font-size-rem-lg);font-weight:600;color:var(--color-text-primary);margin:0}.login-form{background:var(--color-surface-primary);border-radius:var(--radius-md);padding:var(--spacing-rem-2xl);box-shadow:var(--shadow-md)}.login-form h2{margin:0 0 var(--spacing-rem-xl) 0;font-size:var(--font-size-rem-md);font-weight:600;color:var(--color-text-primary)}.info-message{display:block;margin:0 0 var(--spacing-rem-xl) 0;padding:var(--spacing-rem-md);background:var(--color-background-info);border-radius:var(--radius-xs-2);font-size:var(--font-size-rem-sm-2);color:var(--color-text-secondary)}.qr-code-container{display:flex;justify-content:center;margin:var(--spacing-rem-2xl) 0;padding:var(--spacing-rem-lg);background:var(--color-surface-primary);border-radius:var(--radius-md)}.qr-code{width:var(--width-input);height:var(--height-qr);border-radius:var(--radius-sm)}.form-group{margin-bottom:var(--spacing-rem-xl)}.form-group label{display:block;margin-bottom:var(--spacing-rem-sm);font-weight:500;color:var(--color-text-primary);font-size:var(--font-size-rem-sm-2)}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{flex:1;padding-right:var(--spacing-rem-4xl)}.btn-toggle-password{position:absolute;right:var(--spacing-rem-md);background:none;border:none;font-size:var(--font-size-rem-md);cursor:pointer;padding:var(--spacing-rem-xs) var(--spacing-rem-sm);opacity:.6;transition:opacity .2s;-webkit-tap-highlight-color:transparent}.btn-toggle-password:hover{opacity:1}.form-group input{width:100%;padding:var(--spacing-rem-md) var(--spacing-rem-lg);font-size:var(--font-size-rem-sm);border:2px solid var(--color-border-primary);border-radius:var(--radius-sm);background:var(--color-background-primary);color:var(--color-text-primary);transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--color-primary)}.btn-login{width:100%;padding:var(--spacing-rem-md-2);font-size:var(--font-size-rem-sm);font-weight:600;color:var(--color-primary-contrast);background:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .2s}.btn-login:hover:not(:disabled){opacity:.9}.btn-login:disabled{opacity:.5;cursor:not-allowed}.btn-resend{width:100%;padding:var(--spacing-rem-md);margin-top:var(--spacing-rem-lg);font-size:var(--font-size-rem-sm-2);font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.btn-resend:hover:not(:disabled){background:var(--color-surface-secondary);color:var(--color-text-primary)}.btn-resend:disabled{opacity:.5;cursor:not-allowed}.error-message{margin-top:var(--spacing-rem-lg);padding:var(--spacing-rem-md);background:var(--color-error-background);border:1px solid var(--color-error);border-radius:var(--radius-xs-2);color:var(--color-error);font-size:var(--font-size-rem-sm-2)}@media (max-width: var(--breakpoint-tablet)){.login-page{padding:var(--spacing-rem-lg)}.login-form{padding:var(--spacing-rem-xl)}.dodo-logo{width:var(--width-logo-sm);height:var(--height-logo-sm)}}@media (prefers-color-scheme: dark){.login-form{box-shadow:var(--shadow-md-dark)}}:root[data-environment=sandbox] .login-page{background:var(--header-bg-sandbox)}:root[data-environment=dev] .login-page{background:var(--header-bg-dev)}:root[data-environment=production] .login-page{background:var(--header-bg-production)}@media (prefers-color-scheme: dark){:root[data-environment=sandbox] .login-page{background:var(--header-bg-sandbox)}:root[data-environment=dev] .login-page{background:var(--header-bg-dev)}:root[data-environment=production] .login-page{background:var(--header-bg-production)}}:root[data-theme=dark][data-environment=sandbox] .login-page{background:var(--header-bg-sandbox)}:root[data-theme=dark][data-environment=dev] .login-page{background:var(--header-bg-dev)}:root[data-theme=dark][data-environment=production] .login-page{background:var(--header-bg-production)}.process-page[data-v-33ed1842]{min-height:100vh;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;overflow-x:hidden;padding-bottom:var(--spacing-rem-2xl)}.header[data-v-33ed1842]{background:var(--header-bg-production);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));border-bottom:1px solid var(--border);padding:var(--padding-lg-2);display:flex;align-items:center;gap:var(--spacing-rem-lg);position:sticky;top:0;z-index:var(--z-header);min-height:var(--min-height-header);position:relative}:root[data-environment=sandbox] .header[data-v-33ed1842]{background:var(--header-bg-sandbox)}:root[data-environment=dev] .header[data-v-33ed1842]{background:var(--header-bg-dev)}:root[data-environment=production] .header[data-v-33ed1842]{background:var(--header-bg-production)}.header .btn-back[data-v-33ed1842]{color:var(--header-text-brand-production)}.header .cage-info[data-v-33ed1842]{color:var(--header-text-production)}.header .header-article[data-v-33ed1842]{color:var(--header-text-brand-production)}:root[data-environment=sandbox] .header .btn-back[data-v-33ed1842]{color:var(--header-text-brand-sandbox)}:root[data-environment=sandbox] .header .cage-info[data-v-33ed1842]{color:var(--header-text-sandbox)}:root[data-environment=sandbox] .header .header-article[data-v-33ed1842]{color:var(--header-text-brand-sandbox)}:root[data-environment=dev] .header .btn-back[data-v-33ed1842]{color:var(--header-text-brand-dev)}:root[data-environment=dev] .header .cage-info[data-v-33ed1842]{color:var(--header-text-dev)}:root[data-environment=dev] .header .header-article[data-v-33ed1842]{color:var(--header-text-brand-dev)}:root[data-environment=production] .header .btn-back[data-v-33ed1842]{color:var(--header-text-brand-production)}:root[data-environment=production] .header .cage-info[data-v-33ed1842]{color:var(--header-text-production)}:root[data-environment=production] .header .header-article[data-v-33ed1842]{color:var(--header-text-brand-production)}.btn-back[data-v-33ed1842]{background:var(--surface-2);border:none;border-radius:var(--radius-sm);padding:var(--spacing-rem-sm) var(--spacing-rem-lg);font-size:var(--font-size-rem-lg);color:var(--header-text-brand-production);cursor:pointer;-webkit-tap-highlight-color:transparent}.btn-next-cage-header[data-v-33ed1842]{background:var(--success);color:var(--success-contrast);border:none;border-radius:var(--radius-button);padding:var(--spacing-rem-button-y) var(--spacing-rem-xl-2);font-size:var(--font-size-rem-sm);font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s cubic-bezier(.32,.72,0,1);box-shadow:var(--shadow);letter-spacing:var(--letter-spacing-tight);-webkit-font-smoothing:antialiased}.btn-next-cage-header[data-v-33ed1842]:active{transform:scale(.96);box-shadow:var(--shadow)}.cage-info[data-v-33ed1842]{font-size:var(--font-size-rem-sm);font-weight:600;color:var(--header-text-production);font-family:SF Mono,Menlo,monospace;letter-spacing:var(--letter-spacing-normal)}.header-article[data-v-33ed1842]{font-size:var(--font-size-rem-md);font-weight:700;color:var(--header-text-brand-production);letter-spacing:var(--letter-spacing-tight);-webkit-font-smoothing:antialiased;position:absolute;right:var(--position-right-offset);top:50%;transform:translateY(-50%)}.header-scanner[data-v-33ed1842]{position:absolute;left:50%;transform:translate(-50%);pointer-events:none;flex:0 0 auto}.header-scanner .scanner-container[data-v-33ed1842]{pointer-events:auto;width:100%;max-width:var(--width-scanner-max)}.header-spacer[data-v-33ed1842]{flex:1}.btn-next-cage[data-v-33ed1842]:active{transform:scale(.95)}.animal-card[data-v-33ed1842]{background:var(--surface-1);border-radius:var(--radius-md);padding:var(--spacing-rem-md) var(--spacing-rem-xl-2);display:flex;align-items:center;justify-content:space-between;cursor:pointer;box-shadow:var(--shadow);transition:all .2s ease;border:var(--border-width) solid transparent;height:var(--min-height-button);overflow:hidden}.animal-card[data-v-33ed1842]:active{transform:scale(.98)}.animal-card.highlighted[data-v-33ed1842]{border-color:var(--brand);background:var(--surface-2);box-shadow:var(--shadow-lg)}.animal-card.pre-selected[data-v-33ed1842]{border-color:var(--success);background:var(--surface-2);box-shadow:var(--shadow-lg)}.animal-tag[data-v-33ed1842]{font-size:var(--font-size-rem-lg);font-weight:600;color:var(--text-1)}.animal-status[data-v-33ed1842]{font-size:var(--font-size-rem-md);display:flex;align-items:center}.status-pending[data-v-33ed1842]{color:var(--muted);font-size:var(--font-size-rem-lg)}.pill-red[data-v-33ed1842]{background:var(--danger)}.empty-state[data-v-33ed1842]{padding:var(--spacing-rem-4xl-4rem) var(--spacing-rem-2xl);text-align:center}.empty-icon[data-v-33ed1842]{font-size:var(--font-size-rem-xl);margin-bottom:var(--spacing-rem-lg)}.empty-message[data-v-33ed1842]{font-size:var(--font-size-rem-md-2);color:var(--muted);margin-bottom:var(--spacing-rem-2xl);line-height:1.5}.modal-overlay[data-v-33ed1842]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--scrim);z-index:var(--z-overlay-2);display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));animation:fadeIn-33ed1842 .3s ease-out}@keyframes fadeIn-33ed1842{0%{opacity:0}to{opacity:1}}.modal-content[data-v-33ed1842]{position:relative;background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--spacing-rem-2xl);max-width:var(--max-width-dialog-large);width:100%;box-shadow:var(--shadow-xl);animation:modalSlideUp-33ed1842 .3s ease-out}.btn-close[data-v-33ed1842]{position:absolute;top:var(--spacing-rem-lg);right:var(--spacing-rem-lg);background:var(--surface-2);border:none;border-radius:50%;width:var(--width-icon-36px);height:var(--height-icon-36px);font-size:var(--font-size-rem-md);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.injection-content[data-v-33ed1842]{display:flex;flex-direction:column;gap:var(--spacing-rem-xl-2)}.notes-content[data-v-33ed1842]{display:flex;flex-direction:column;gap:var(--spacing-rem-xl)}.info-row[data-v-33ed1842]{display:flex;justify-content:center;align-items:center;gap:var(--gap-md-2);text-align:center}.procedure-row[data-v-33ed1842]{margin-bottom:var(--spacing-rem-sm)}.info-label[data-v-33ed1842]{font-size:var(--font-size-rem-md-2);color:var(--muted)}.info-value[data-v-33ed1842]{font-size:var(--font-size-rem-md-2);color:var(--success);font-weight:500}.info-value.dose[data-v-33ed1842]{font-size:var(--font-size-rem-md-2);font-weight:600;color:var(--success)}.syringe-marks[data-v-33ed1842]{margin:var(--spacing-rem-lg) 0;padding:var(--spacing-rem-lg);background:var(--surface-2);border-radius:var(--radius-sm);border:var(--border-width) solid var(--border)}.syringe-marks .info-row[data-v-33ed1842]{margin-bottom:var(--spacing-rem-md)}.syringe-marks .info-row[data-v-33ed1842]:last-child{margin-bottom:0}.info-value.current-mark[data-v-33ed1842]{font-size:var(--font-size-rem-lg);font-weight:700;color:var(--success)}.info-value.target-mark[data-v-33ed1842]{font-size:var(--font-size-rem-2xl-3);font-weight:700;color:var(--brand)}.reload-warning[data-v-33ed1842]{margin-top:var(--spacing-rem-md);padding:var(--spacing-rem-md);background:var(--surface-2);border:var(--border-width) solid var(--warn);border-radius:var(--radius-xs-2);color:var(--text-1);font-weight:600;text-align:center}.modal-actions[data-v-33ed1842]{display:flex;gap:var(--gap-md-2);margin-top:var(--spacing-rem-sm)}.animal-info[data-v-33ed1842]{text-align:center}.animal-label[data-v-33ed1842]{font-size:var(--font-size-rem-sm-2-0875rem);color:var(--muted);margin-bottom:var(--spacing-rem-sm)}.animal-tag-large[data-v-33ed1842]{font-size:var(--font-size-rem-3xl);font-weight:700;color:var(--brand);font-family:SF Mono,Menlo,monospace}.btn-inject[data-v-33ed1842],.btn-save-notes[data-v-33ed1842],.btn-done[data-v-33ed1842],.btn-reset[data-v-33ed1842]{background:var(--brand);color:var(--brand-contrast);border:none;border-radius:var(--radius-md);padding:var(--spacing-rem-lg);font-size:var(--font-size-rem-md-2);font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .2s ease;flex:1;min-height:var(--min-height-button-52px)}.btn-inject[data-v-33ed1842]:active,.btn-other[data-v-33ed1842]:active,.btn-save-notes[data-v-33ed1842]:active,.btn-done[data-v-33ed1842]:active,.btn-reset[data-v-33ed1842]:active{transform:scale(.95)}.btn-other[data-v-33ed1842]{background:transparent;border:var(--border-width) solid var(--brand);color:var(--brand)}.btn-reset[data-v-33ed1842]{background:var(--danger);color:var(--danger-contrast);flex:none}.notes-input[data-v-33ed1842]{background:var(--input-bg);border:var(--border-width) solid var(--input-border);border-radius:var(--radius-md);padding:var(--spacing-rem-lg);font-size:var(--font-size-rem-sm);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;resize:none;width:100%;color:var(--text-1)}.notes-input[data-v-33ed1842]:focus{outline:none;border-color:var(--input-focus)}.checkbox-label[data-v-33ed1842]{display:flex;align-items:center;gap:var(--gap-md-2);font-size:var(--font-size-rem-md-2);color:var(--text-1);cursor:pointer;-webkit-tap-highlight-color:transparent}.checkbox-label input[type=checkbox][data-v-33ed1842]{width:var(--size-icon-sm);height:var(--size-icon-sm);cursor:pointer}.notes-modal[data-v-33ed1842]{max-width:var(--max-width-dialog-xl)}.modal-handle[data-v-33ed1842]{width:var(--width-handle-36px);height:var(--height-handle);background:var(--border-subtle);border-radius:var(--radius-xl-100px);margin:var(--margin-handle-ios)}.notes-modal-ios[data-v-33ed1842]{background:var(--surface-1);backdrop-filter:blur(var(--blur-lg-40px));-webkit-backdrop-filter:blur(var(--blur-lg-40px));border-radius:var(--radius-xl-3);padding:0;width:100%;max-width:var(--max-width-dialog-xl);max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);-webkit-overflow-scrolling:touch;animation:slideUpFromBottom-33ed1842 .4s cubic-bezier(.32,.72,0,1)}@keyframes slideUpFromBottom-33ed1842{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header-ios[data-v-33ed1842]{position:relative;padding:var(--padding-16px-20px-20px);border-bottom:var(--border-width) solid var(--border-subtle)}.btn-close-ios[data-v-33ed1842]{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:var(--spacing-2xl-32px);height:var(--spacing-2xl-32px);border:none;background:var(--surface-2);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);transition:all .2s;-webkit-tap-highlight-color:transparent}.btn-close-ios[data-v-33ed1842]:active{transform:scale(.95);background:var(--surface-3)}.notes-title-ios[data-v-33ed1842]{margin:0;font-size:var(--font-size-sm-2);font-weight:400;text-align:center;color:var(--muted);display:flex;flex-direction:column}gap: var(--spacing-xs); align-items: center; .title-label-ios[data-v-33ed1842]{text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);font-size:var(--font-size-xs-11px)}.animal-id-ios[data-v-33ed1842]{font-size:var(--font-size-xl-2);font-weight:700;color:var(--text-1);letter-spacing:var(--letter-spacing-wide)}.section-ios[data-v-33ed1842]{padding:var(--spacing-xl);border-bottom:var(--border-width) solid var(--border-subtle)}.section-ios[data-v-33ed1842]:last-of-type{border-bottom:none}.section-label-ios[data-v-33ed1842]{display:block;font-size:var(--font-size-xs-11px);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal);margin-bottom:var(--spacing-md)}.notes-preset-buttons-ios[data-v-33ed1842]{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.preset-pill-ios[data-v-33ed1842]{padding:var(--spacing-xs-10px) var(--spacing-lg);border:none;background:var(--surface-2);border-radius:var(--radius-xl);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;color:var(--text-1);transition:all .2s cubic-bezier(.32,.72,0,1);display:flex;align-items:center;gap:var(--spacing-xs-2);min-height:var(--tap-size-min);-webkit-tap-highlight-color:transparent}.preset-pill-ios[data-v-33ed1842]:active{transform:scale(.96)}.pill-icon-ios[data-v-33ed1842]{display:inline-flex;align-items:center;justify-content:center;width:var(--spacing-md-2);height:var(--spacing-md-2);font-size:var(--font-size-sm-2);font-weight:600}.preset-pill-ios.selected[data-v-33ed1842]{background:var(--warn);color:var(--warn-contrast);box-shadow:var(--shadow)}.not-inject-toggle-ios[data-v-33ed1842]{width:100%;border:none;background:var(--surface-2);border-radius:var(--radius-md-3);padding:var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s;min-height:var(--min-height-toggle);-webkit-tap-highlight-color:transparent}.not-inject-toggle-ios[data-v-33ed1842]:active{transform:scale(.98)}.not-inject-toggle-ios.active[data-v-33ed1842]{background:var(--surface-3)}.toggle-content-ios[data-v-33ed1842]{display:flex;align-items:center;gap:var(--spacing-md)}.toggle-icon-ios[data-v-33ed1842]{width:var(--width-icon-36px);height:var(--height-icon-36px);border-radius:var(--radius-sm);background:var(--surface-1);display:flex;align-items:center;justify-content:center;color:var(--danger)}.toggle-text-ios[data-v-33ed1842]{text-align:left}.toggle-label-ios[data-v-33ed1842]{font-size:var(--font-size-base);font-weight:500;color:var(--text-1);margin-bottom:var(--spacing-xs-2px)}.toggle-desc-ios[data-v-33ed1842]{font-size:var(--font-size-xs-11px);color:var(--muted)}.switch-track-ios[data-v-33ed1842]{width:var(--spacing-xl-51px);height:var(--spacing-xl-31px);border-radius:var(--radius-lg);background:var(--surface-3);position:relative;transition:all .3s cubic-bezier(.32,.72,0,1)}.switch-track-ios.on[data-v-33ed1842]{background:var(--danger)}.switch-thumb-ios[data-v-33ed1842]{position:absolute;top:var(--spacing-xs-2px);left:var(--spacing-xs-2px);width:var(--spacing-xl-27px);height:var(--spacing-xl-27px);border-radius:50%;background:var(--surface-1);box-shadow:var(--shadow);transition:all .3s cubic-bezier(.32,.72,0,1)}.switch-track-ios.on .switch-thumb-ios[data-v-33ed1842]{transform:translate(var(--spacing-xl))}.textarea-wrapper-ios[data-v-33ed1842]{position:relative}.notes-textarea-ios[data-v-33ed1842]{width:100%;min-height:var(--min-height-textarea);padding:var(--spacing-md-14px);border:none;background:var(--input-bg);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;resize:none;color:var(--text-1);transition:all .2s;-webkit-user-select:text;user-select:text}.notes-textarea-ios[data-v-33ed1842]:focus{outline:none;background:var(--input-bg);box-shadow:0 0 0 var(--spacing-xs-2) var(--overlay)}.notes-textarea-ios[data-v-33ed1842]::placeholder{color:var(--input-placeholder)}.char-count-ios[data-v-33ed1842]{position:absolute;bottom:var(--spacing-sm);right:var(--spacing-md);font-size:var(--font-size-xs);color:var(--muted);pointer-events:none}.notes-actions-ios[data-v-33ed1842]{display:flex;gap:var(--spacing-md);padding:var(--spacing-xl);background:var(--surface-2);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md))}.btn-primary-ios[data-v-33ed1842],.btn-secondary-ios[data-v-33ed1842]{flex:1;padding:var(--spacing-lg);font-size:var(--font-size-sm-3);font-weight:600;border:none;border-radius:var(--radius-md-3);cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);min-height:var(--min-height-button-52px);-webkit-tap-highlight-color:transparent}.btn-primary-ios[data-v-33ed1842]{background:var(--brand);color:var(--brand-contrast);box-shadow:var(--shadow-lg)}.btn-primary-ios[data-v-33ed1842]:active{transform:scale(.96);box-shadow:var(--shadow)}.btn-secondary-ios[data-v-33ed1842]{background:var(--surface-1);color:var(--brand);box-shadow:var(--shadow)}.btn-secondary-ios[data-v-33ed1842]:active{transform:scale(.96);background:var(--surface-2)}.btn-secondary-ios svg[data-v-33ed1842]{opacity:.8}@media (min-width: 768px){.modal-overlay[data-v-33ed1842]{align-items:center}.notes-modal-ios[data-v-33ed1842]{border-radius:var(--radius-xl-2);max-width:var(--max-width-dialog-540px);max-height:85vh}.modal-handle[data-v-33ed1842]{display:none}}.completion-modal[data-v-33ed1842]{max-width:var(--width-scanner-max);text-align:center}.completion-content[data-v-33ed1842]{display:flex;flex-direction:column;gap:var(--spacing-rem-xl);align-items:center}.completion-icon[data-v-33ed1842]{font-size:var(--font-size-rem-xl);color:var(--success)}.completion-title[data-v-33ed1842]{font-size:var(--font-size-rem-2xl-3);font-weight:700;color:var(--text-1)}.completion-stats[data-v-33ed1842]{display:flex;gap:var(--spacing-rem-3xl-3rem);justify-content:center}.stat[data-v-33ed1842]{display:flex;flex-direction:column;align-items:center}.stat-value[data-v-33ed1842]{font-size:var(--font-size-rem-3xl);font-weight:700;color:var(--brand)}.stat-label[data-v-33ed1842]{font-size:var(--font-size-rem-sm);color:var(--muted);text-transform:lowercase}.error-banner[data-v-33ed1842]{position:fixed;top:var(--spacing-rem-4xl-4rem);left:var(--spacing-rem-lg);right:var(--spacing-rem-lg);background:var(--surface-1);border-radius:var(--radius-md);padding:var(--spacing-rem-lg);box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:space-between;z-index:var(--z-modal-ios-1000);border-left:var(--border-width) solid var(--danger);animation:slideDown-33ed1842 .3s ease-out}@keyframes slideDown-33ed1842{0%{opacity:0;transform:var(--transform-slide-up-2-negative)}to{opacity:1;transform:translateY(0)}}.error-banner.error-offline[data-v-33ed1842]{border-left-color:var(--warn)}.error-content[data-v-33ed1842]{display:flex;align-items:center;gap:var(--gap-md-2);flex:1}.error-icon[data-v-33ed1842]{font-size:var(--font-size-rem-lg)}.error-message[data-v-33ed1842]{font-size:var(--font-size-rem-sm);color:var(--text-1);font-weight:500}.btn-retry[data-v-33ed1842]{background:var(--brand);color:var(--brand-contrast);border:none;border-radius:var(--radius-sm);padding:var(--spacing-rem-sm) var(--spacing-rem-lg);font-size:var(--font-size-rem-sm-2-0875rem);font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.keypad-modal[data-v-33ed1842]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:var(--z-overlay-2)}.modal-container-ios[data-v-33ed1842]{bottom:0;z-index:var(--z-overlay-2);display:flex;align-items:flex-start;justify-content:center;padding:var(--spacing-rem-2xl);padding-top:var(--padding-top-2vh);overflow:hidden;touch-action:none}.modal-overlay[data-v-33ed1842]{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--scrim);-webkit-backdrop-filter:blur(var(--blur-xs));backdrop-filter:blur(var(--blur-xs));z-index:var(--z-overlay-base)}.modal-content[data-v-33ed1842]{position:relative;background:var(--surface-1);border-radius:var(--radius-xl);padding:var(--spacing-rem-2xl);max-width:var(--max-width-dialog-large);width:100%;box-shadow:var(--shadow-xl);animation:modalSlideUp-33ed1842 .3s ease-out;touch-action:none;z-index:var(--z-overlay-content)}@keyframes modalSlideUp-33ed1842{0%{opacity:0;transform:var(--transform-slide-up)}to{opacity:1;transform:translateY(0)}}.input-content[data-v-33ed1842]{max-width:var(--width-scanner-max);margin:0 auto}.demo-cage-hint[data-v-33ed1842]{text-align:center;font-size:var(--font-size-rem-lg);font-weight:600;color:var(--muted);margin-bottom:var(--spacing-rem-xs);opacity:.5}.cage-info-display[data-v-33ed1842]{background:var(--surface-1);border:var(--border-width) solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-rem-lg);margin-bottom:var(--spacing-rem-lg);box-shadow:var(--shadow);text-align:center}.rack-position[data-v-33ed1842]{font-size:var(--font-size-rem-3xl);font-weight:700;color:var(--brand);font-family:SF Mono,Menlo,monospace}.input-label[data-v-33ed1842]{font-size:var(--font-size-rem-md);font-weight:600;color:var(--text-1);margin-bottom:var(--spacing-rem-md);text-align:center}.input-display[data-v-33ed1842]{background:var(--surface-1);border:var(--border-width) solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-rem-xl);text-align:center;font-size:var(--font-size-rem-3xl);font-weight:700;color:var(--brand);margin-bottom:var(--spacing-rem-xl);min-height:var(--min-height-header);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);transition:color .3s ease}.input-display[data-v-33ed1842]{box-shadow:var(--shadow);transition:color .3s ease}.input-display.valid[data-v-33ed1842]{color:var(--success)}.input-display.invalid[data-v-33ed1842]{color:var(--danger)}.keypad[data-v-33ed1842]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-rem-lg)}.key[data-v-33ed1842]{background:var(--surface-1);border:var(--border-width) solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-rem-xl);font-size:var(--font-size-rem-lg);font-weight:600;color:var(--text-1);cursor:pointer;box-shadow:var(--shadow);min-height:var(--min-height-button)}.key-zero[data-v-33ed1842]{grid-column:2 / 3}.scanner-container[data-v-33ed1842]{display:flex;justify-content:center}.keyboard-opener[data-v-33ed1842]{position:fixed;left:var(--position-left-offscreen);top:auto;width:var(--width-hidden);height:var(--height-hidden);opacity:0;pointer-events:none;font-size:var(--font-size-base)}.scanner-input[data-v-33ed1842]{width:100%;max-width:var(--max-width-dialog-350px);padding:var(--spacing-xs-10px) var(--spacing-lg);font-size:var(--font-size-rem-sm);font-family:monospace;letter-spacing:var(--letter-spacing-scanner-2px);text-align:center;text-transform:uppercase;border:var(--border-width) solid var(--input-border);border-radius:var(--radius-button);background:var(--input-bg);color:var(--text-1);transition:all .3s;outline:none;cursor:pointer}.scanner-input.scanner-mode[data-v-33ed1842]{caret-color:transparent;-webkit-user-select:none;user-select:none;background:var(--input-bg);cursor:pointer}.scanner-input[data-v-33ed1842]:not(.scanner-mode){cursor:text}.scanner-input[data-v-33ed1842]:focus{border-color:var(--input-focus);box-shadow:0 0 0 var(--spacing-xs) var(--overlay)}.scanner-input[data-v-33ed1842]::placeholder{color:var(--input-placeholder);letter-spacing:normal;text-transform:lowercase;font-size:var(--font-size-rem-sm);font-family:-apple-system,BlinkMacSystemFont,sans-serif}.scanner-input.scanner-valid[data-v-33ed1842]{background:var(--input-bg);border-color:var(--success);color:var(--success);font-weight:600}.scanner-input.scanner-invalid[data-v-33ed1842]{background:var(--input-bg);border-color:var(--danger);color:var(--danger);font-weight:600}.scanner-input.scanner-invalid[data-v-33ed1842]::placeholder{content:"retry"}
