:root{--color-brand: #0d9488;--color-brand-dark: #00685f;--color-brand-mid: #008378;--color-brand-light: rgba(13, 148, 136, .1);--gradient-brand: linear-gradient(135deg, #0d9488 0%, #006387 100%);--gradient-brand-hover: linear-gradient(135deg, #0f8a7e 0%, #007399 100%);--gradient-brand-subtle: linear-gradient(135deg, rgba(13,148,136,.08) 0%, rgba(0,99,135,.08) 100%);--gradient-surface: linear-gradient(180deg, #ffffff 0%, #f8faff 100%);--color-bg: #f4f6fb;--color-bg-elevated: #ffffff;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-overlay: #ffffff;--color-border: #e5e9f4;--color-border-strong: #c8cfe0;--color-border-subtle: rgba(229, 233, 244, .6);--color-text: #0b1c30;--color-text-secondary: #3d4947;--color-text-muted: #6d7a77;--color-text-inverse: #ffffff;--color-success: #059669;--color-success-bg: #ecfdf5;--color-success-border: #a7f3d0;--color-success-glow: rgba(5, 150, 105, .2);--color-danger: #ba1a1a;--color-danger-bg: #ffdad6;--color-danger-border: #ffb4ab;--color-danger-glow: rgba(186, 26, 26, .15);--color-warning: #d97706;--color-warning-text: #b45309;--color-warning-bg: #fffbeb;--color-warning-border: #fde68a;--color-warning-glow: rgba(217, 119, 6, .15);--color-info: #006387;--color-info-bg: #c4e7ff;--color-info-glow: rgba(0, 99, 135, .15);--color-brand-text: #0a7a70;--sidebar-bg: linear-gradient(180deg, #0f172a 0%, #0a1628 100%);--sidebar-border: rgba(255, 255, 255, .08);--sidebar-text: #94a3b8;--sidebar-text-active: #ffffff;--sidebar-accent: #6bd8cb;--sidebar-accent-bg: rgba(107, 216, 203, .12);--sidebar-hover-bg: rgba(255, 255, 255, .06);--sidebar-glow: radial-gradient(ellipse at 20% 50%, rgba(107, 216, 203, .08) 0%, transparent 60%);--shadow-level-1: 0 1px 2px rgba(11, 28, 48, .04), 0 1px 3px rgba(11, 28, 48, .06);--shadow-level-2: 0 2px 4px rgba(11, 28, 48, .04), 0 4px 12px rgba(11, 28, 48, .08);--shadow-level-3: 0 8px 16px rgba(11, 28, 48, .06), 0 16px 48px rgba(11, 28, 48, .12);--shadow-sm: var(--shadow-level-1);--shadow-md: var(--shadow-level-2);--shadow-lg: var(--shadow-level-3);--shadow-brand: 0 4px 14px rgba(13, 148, 136, .35);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--duration-fast: .1s;--duration-normal: .2s;--duration-slow: .35s}:root[data-theme=dark]{--color-brand: #2dd4bf;--color-brand-dark: #14b8a6;--color-brand-mid: #2dd4bf;--color-brand-light: rgba(45, 212, 191, .14);--gradient-brand: linear-gradient(135deg, #14b8a6 0%, #0e7490 100%);--gradient-brand-hover: linear-gradient(135deg, #2dd4bf 0%, #0891b2 100%);--gradient-brand-subtle: linear-gradient(135deg, rgba(45,212,191,.1) 0%, rgba(8,145,178,.1) 100%);--gradient-surface: linear-gradient(180deg, #161e2e 0%, #131a28 100%);--color-bg: #0b111c;--color-bg-elevated: #161e2e;--color-surface: #161e2e;--color-surface-raised: #1c2536;--topbar-bg: rgba(18, 25, 40, .82);--color-surface-overlay: #1c2536;--color-border: #2a3650;--color-border-strong: #3a4a6b;--color-border-subtle: rgba(42, 54, 80, .5);--color-text: #e7ecf5;--color-text-secondary: #c0c9d8;--color-text-muted: #94a3b8;--color-text-inverse: #0b111c;--color-success: #34d399;--color-success-bg: rgba(16, 185, 129, .14);--color-success-border: rgba(52, 211, 153, .35);--color-success-glow: rgba(16, 185, 129, .28);--color-danger: #f87171;--color-danger-bg: rgba(239, 68, 68, .16);--color-danger-border: rgba(248, 113, 113, .4);--color-danger-glow: rgba(239, 68, 68, .28);--color-warning: #fbbf24;--color-warning-text: #fcd34d;--color-warning-bg: rgba(217, 119, 6, .16);--color-warning-border: rgba(251, 191, 36, .35);--color-warning-glow: rgba(217, 119, 6, .28);--color-info: #38bdf8;--color-info-bg: rgba(56, 189, 248, .16);--color-info-glow: rgba(56, 189, 248, .28);--color-brand-text: #5eead4;--sidebar-bg: linear-gradient(180deg, #0c1320 0%, #080e18 100%);--sidebar-border: rgba(255, 255, 255, .06);--sidebar-text: #94a3b8;--sidebar-text-active: #ffffff;--sidebar-accent: #5eead4;--sidebar-accent-bg: rgba(94, 234, 212, .14);--sidebar-hover-bg: rgba(255, 255, 255, .05);--sidebar-glow: radial-gradient(ellipse at 20% 50%, rgba(94, 234, 212, .07) 0%, transparent 60%);--shadow-level-1: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .5);--shadow-level-2: 0 2px 4px rgba(0, 0, 0, .4), 0 4px 12px rgba(0, 0, 0, .55);--shadow-level-3: 0 8px 16px rgba(0, 0, 0, .5), 0 16px 48px rgba(0, 0, 0, .6);--shadow-brand: 0 4px 14px rgba(45, 212, 191, .3)}:root[data-theme=dark] .glass{background:#161e2eb8;border-color:#ffffff14}:root[data-theme=dark] .glass-sm{background:#161e2ed1;border-color:#ffffff14}:root[data-theme=dark] .glass-lg{background:#161e2e9e;border-color:#ffffff0f}:root[data-theme=dark] .skeleton{background:linear-gradient(90deg,#1c2536 25%,#283349,#1c2536 75%);background-size:800px 100%}:root[data-theme=dark] .data-table tbody tr:nth-child(2n){background:#ffffff06}:root[data-theme=dark] .data-table tbody tr:hover{background:#2dd4bf14}:root[data-theme=dark] .badge-gray{background:#94a3b824;color:#cbd5e1;border-color:#94a3b840}:root[data-theme=dark] .live-badge{background:#f8717124;border-color:#f871714d;color:#f87171}:root[data-theme=dark] .live-dot{background:#f87171}:root[data-theme=dark] .toast-action-btn{border-color:#ffffff4d}.data-card,.modal-card,.notif-dropdown,.notif-trigger,.btn-icon,.field-input,.search-input,.data-table td,.data-table th{transition:background-color .25s ease,color .25s ease,border-color .25s ease}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);background:var(--color-bg);font-size:14px;line-height:1.5;transition:background-color .25s ease,color .25s ease;overscroll-behavior-y:contain;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation}@supports (padding: max(0px)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}h1,h2,h3,h4,h5,h6,p{margin:0}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}button{transition:background var(--duration-normal) ease,transform var(--duration-fast) ease,box-shadow var(--duration-normal) ease,opacity var(--duration-normal) ease}input,select,textarea{transition:border-color var(--duration-normal) ease,box-shadow var(--duration-normal) ease}.glass{background:#ffffffb8;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(255,255,255,.3)}.glass-sm{background:#fffc;backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);border:1px solid rgba(255,255,255,.4)}.glass-lg{background:#fff9;backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:1px solid rgba(255,255,255,.25)}.glass-dark{background:#0f172ad9;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(255,255,255,.08)}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton{background:linear-gradient(90deg,#e8ecf5 25%,#d8dff0,#e8ecf5 75%);background-size:800px 100%;animation:shimmer 1.8s infinite linear;border-radius:var(--radius-sm)}.skeleton-text{height:14px;width:100%}.skeleton-text.sm{width:60%}.skeleton-badge{height:24px;width:70px;border-radius:20px}.skeleton-circle{border-radius:var(--radius-full);width:40px;height:40px}.skeleton-pulse{background:#64748b1f;animation:pulse 2s ease-in-out infinite}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f0a1e73;backdrop-filter:blur(8px) saturate(160%);-webkit-backdrop-filter:blur(8px) saturate(160%);display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn var(--duration-normal) ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--gradient-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-level-3);width:100%;max-width:480px;padding:2rem;animation:slideUp var(--duration-normal) var(--ease-spring);position:relative}@media (max-width: 768px){.modal-card{max-width:100%;margin:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:1.5rem;max-height:90vh;overflow-y:auto}.modal-backdrop{align-items:flex-end;padding:0}.modal-card:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;border-radius:2px;background:var(--color-border-strong);opacity:.5}}@media (max-width: 768px){.modal-card{max-width:100%;margin:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:1.5rem;max-height:90vh;overflow-y:auto}.modal-backdrop{align-items:flex-end;padding:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-title{font-size:1.125rem;font-weight:700;color:var(--color-text);margin-bottom:1.5rem}.modal-footer{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.field{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem}.field label{font-size:.8125rem;font-weight:600;color:var(--color-text)}.field-input{width:100%;height:44px;padding:0 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;color:var(--color-text);background:var(--color-surface);outline:none;transition:border-color .15s,box-shadow .15s}.field-input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #0d94881f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:40px;padding:0 1.125rem;font-size:.875rem;font-weight:600;letter-spacing:.01em;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;min-height:44px;min-width:44px;position:relative;overflow:hidden;transition:all var(--duration-normal) ease}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 50%);opacity:0;transition:opacity var(--duration-fast) ease;pointer-events:none}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn:disabled:after{display:none}.btn-primary{background:var(--gradient-brand);color:#fff;box-shadow:0 2px 8px #0d948840}.btn-primary:hover{background:var(--gradient-brand-hover);transform:translateY(-1px);box-shadow:0 4px 16px #0d948859}.btn-primary:active{transform:translateY(0) scale(.97)}.btn-primary:disabled{background:var(--gradient-brand);opacity:.5;box-shadow:none}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1.5px solid var(--color-border)}.btn-ghost:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border-strong)}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger);border:1.5px solid var(--color-danger-border)}.btn-danger:hover{background:#fee2e2;box-shadow:0 2px 8px var(--color-danger-glow)}.btn-success{background:var(--color-success-bg);color:var(--color-success);border:1.5px solid var(--color-success-border)}.btn-success:hover{background:#d1fae5;box-shadow:0 2px 8px var(--color-success-glow)}.btn-warning{background:var(--color-warning-bg);color:var(--color-warning-text);border:1.5px solid var(--color-warning-border)}.btn-warning:hover{background:#fde68a;box-shadow:0 2px 8px var(--color-warning-glow)}.btn-sm{height:32px;padding:0 .75rem;font-size:.8125rem}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:11px 20px;font-size:11px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--color-border);background:var(--gradient-surface)}.data-table td{padding:14px 20px;font-size:14px;color:var(--color-text);border-bottom:1px solid var(--color-border-subtle);vertical-align:middle;transition:background var(--duration-fast) ease}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background var(--duration-fast) ease}.data-table tbody tr:nth-child(2n){background:#f4f6fb80}.data-table tbody tr:hover{background:#0d94880a}@media (max-width: 768px){.data-table thead{display:none}.data-table tbody{display:block}.data-table tbody tr{display:flex;flex-direction:column;padding:14px 16px;border-bottom:1px solid var(--color-border);gap:6px}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:transparent}.data-table tbody td{display:flex;align-items:center;justify-content:space-between;padding:4px 0;border-bottom:none;font-size:13px}.data-table tbody td:first-child{font-weight:600;font-size:14px;padding-bottom:8px;margin-bottom:4px;border-bottom:1px dashed var(--color-border)}.data-table tbody td:last-child{justify-content:flex-end;padding-top:8px;margin-top:4px;border-top:1px dashed var(--color-border)}}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600;line-height:1;transition:all var(--duration-fast) ease;position:relative;overflow:hidden;animation:badgeScaleIn .2s ease}@media (prefers-reduced-motion: reduce){.badge{animation:none}}.badge:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.3) 0%,transparent 50%);pointer-events:none}.badge-green{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.badge-gray{background:#64748b14;color:#64748b;border:1px solid rgba(100,116,139,.15)}.badge-orange{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-border)}.badge-blue{background:var(--color-info-bg);color:var(--color-info);border:1px solid rgba(0,99,135,.2)}.badge-red{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.page-title{font-size:1.375rem;font-weight:700;color:var(--color-text);letter-spacing:-.4px}.search-input-wrap{position:relative}.search-input-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.search-input{height:44px;padding:0 12px 0 34px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:16px;color:var(--color-text);background:var(--color-surface);outline:none;min-width:220px;transition:border-color .15s,box-shadow .15s}.search-input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #0d94881a}.data-card{background:var(--gradient-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-level-1);overflow:hidden;transition:box-shadow var(--duration-normal) ease}.data-card:hover{box-shadow:var(--shadow-level-2)}.error-banner{background:linear-gradient(135deg,#ffdad680,#ffdad64d);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);padding:12px 18px;color:var(--color-danger);font-size:14px;margin-bottom:1rem;display:flex;align-items:center;gap:10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.error-banner:before{content:"⚠";font-size:18px;flex-shrink:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;min-height:200px;text-align:center;color:var(--color-text-muted);font-size:14px}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast-action-btn{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:4px 12px;border-radius:4px;cursor:pointer;font-weight:600;font-size:13px;margin-left:8px;font-family:inherit;transition:background .15s ease}.toast-action-btn:hover{background:#ffffff26}@keyframes pageSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:pageSlideIn var(--duration-slow) var(--ease-smooth)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(20px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(20px) scale(.95)}}.toast-enter{animation:toastSlideIn var(--duration-normal) var(--ease-spring)}.toast-exit{animation:toastSlideOut var(--duration-normal) var(--ease-smooth)}@keyframes badgeScaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.badge-appear{animation:badgeScaleIn var(--duration-normal) var(--ease-spring)}.field-input{position:relative}.field-input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #0d94881f,0 1px 4px #0d948814}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-normal) ease;flex-shrink:0;position:relative;overflow:hidden}.btn-icon:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 50%);opacity:0;transition:opacity var(--duration-fast) ease;pointer-events:none}.btn-icon:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border-strong)}.btn-icon:hover:after{opacity:1}.btn-icon:active{transform:scale(.93)}.btn-icon:disabled{opacity:.45;cursor:not-allowed}.btn-icon-primary{color:var(--color-brand);border-color:#0d94884d}.btn-icon-primary:hover{background:var(--color-brand-light);color:var(--color-brand);border-color:#0d948866}.btn-icon-danger{color:var(--color-danger);border-color:#dc26264d}.btn-icon-danger:hover{background:var(--color-danger-bg);color:var(--color-danger);border-color:#dc262666;box-shadow:0 2px 8px var(--color-danger-glow)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}.btn:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px;box-shadow:0 0 0 4px var(--color-brand-light)}.btn-primary:focus-visible{outline-color:#fff;box-shadow:0 0 0 4px #ffffff4d}.btn-danger:focus-visible{outline-color:#fff;box-shadow:0 0 0 4px #ba1a1a4d}.btn-ghost:focus-visible{outline-color:var(--color-brand);box-shadow:0 0 0 4px var(--color-brand-light)}.btn-icon:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.field-input:focus-visible{outline:2px solid var(--color-brand);outline-offset:0;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-light)}.search-input:focus-visible{outline:2px solid var(--color-brand);outline-offset:0;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-light)}a:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px;border-radius:2px}.sidebar-nav-link:focus-visible{outline:2px solid var(--sidebar-accent);outline-offset:-2px}.notif-trigger:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.badge:focus-visible{outline:2px solid var(--color-brand);outline-offset:1px}.modal-backdrop:focus{outline:none}.kiosk-camera-placeholder:focus-visible,.kiosk-settings-btn:focus-visible{outline-color:#6bd8cb}.skip-link{position:absolute;top:-100%;left:50%;transform:translate(-50%);z-index:10000;padding:12px 24px;background:var(--color-brand);color:#fff;font-weight:600;border-radius:0 0 8px 8px;text-decoration:none;transition:top .2s}.skip-link:focus{top:0;outline:2px solid #ffffff;outline-offset:2px}.schedule-type-btn:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.schedule-type-row{display:flex;gap:8px;margin-bottom:4px}.schedule-type-btn{padding:6px 16px;border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.schedule-type-btn:hover{border-color:var(--color-brand);color:var(--color-brand-text)}.schedule-type-btn--active{border-color:var(--color-brand);background:var(--color-brand-light);color:var(--color-brand-text);font-weight:600}.session-list{display:flex;flex-direction:column;gap:8px}.session-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.session-row .field-input{flex:1;min-width:80px}.live-badge{display:inline-flex;align-items:center;gap:5px;background:#dc262614;border:1px solid rgba(220,38,38,.2);border-radius:var(--radius-full);padding:4px 10px;font-size:11px;font-weight:700;color:#dc2626;letter-spacing:.8px;align-self:flex-start}.live-dot{width:6px;height:6px;border-radius:50%;background:#dc2626;animation:live-pulse 1.5s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.3}}.notif-bell{position:relative;display:inline-flex}.notif-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-normal) ease}.notif-trigger:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border-strong)}.notif-trigger:active{transform:scale(.93)}@keyframes bellBounce{0%,to{transform:scale(1)}30%{transform:scale(1.2) rotate(-8deg)}50%{transform:scale(1.1) rotate(8deg)}70%{transform:scale(1.15) rotate(-4deg)}}.notif-bell.has-unread .notif-trigger{animation:bellBounce .6s var(--ease-spring) 1}.notif-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;line-height:1;box-shadow:0 2px 4px #ba1a1a4d;transition:transform var(--duration-fast) var(--ease-spring)}@keyframes counterPulse{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.notif-badge.updated{animation:counterPulse .3s var(--ease-spring)}.notif-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;line-height:1}.notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:280px;max-height:300px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);box-shadow:0 8px 24px #0b1c301f;z-index:50}.notif-header{padding:10px 14px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.notif-empty{padding:16px 14px;font-size:13px;color:var(--color-text-muted);text-align:center}.notif-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;font-size:13px;border-bottom:1px solid var(--color-border)}.notif-item:last-child{border-bottom:none}.notif-item-name{color:var(--color-text);font-weight:500}.notif-item-time{color:var(--color-text-muted);font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}.route-fade-enter{animation:routeFadeIn .22s ease}@keyframes routeFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.route-fade-enter{animation:none}}.swipe-card{position:relative;overflow:hidden;touch-action:pan-y;-webkit-overflow-scrolling:touch;transition:transform .2s cubic-bezier(.4,0,.2,1)}.swipe-card-bg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding:0 20px;gap:12px;pointer-events:none}.swipe-action{display:flex;align-items:center;justify-content:center;width:60px;height:100%;color:#fff;font-size:18px;font-weight:600;border-radius:0}.swipe-action--danger{background:#dc2626}.swipe-action--primary{background:#0d9488}.swipe-card-content{position:relative;z-index:1;background:var(--color-surface);transition:transform .25s cubic-bezier(.4,0,.2,1)}.pull-to-refresh{display:flex;align-items:center;justify-content:center;height:48px;color:var(--color-text-muted);font-size:13px;font-weight:500;overflow:hidden}@keyframes pullSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pull-spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-brand);border-radius:50%;animation:pullSpin .8s linear infinite}.pagination{flex-wrap:wrap;justify-content:center;gap:4px;padding:12px 8px}.pagination button,.pagination .page-btn{min-width:44px;min-height:44px;padding:0 12px}.stat-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important;margin-bottom:16px!important}.stat-card{padding:.8rem .85rem;gap:.6rem}.stat-card .stat-icon{width:34px;height:34px;border-radius:var(--radius-md)}.stat-card .stat-value{font-size:1.35rem}.stat-card .stat-label{font-size:.7rem}.empty-state{padding:32px 16px}.data-card{border-radius:var(--radius-lg);overflow:hidden}.responsive-cards{display:none}@media (max-width: 768px){.responsive-table{display:none}.responsive-cards{display:flex;flex-direction:column;gap:10px}}.record-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px;display:flex;flex-direction:column;gap:9px}.record-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.record-card-name{font-weight:600;font-size:15px;color:var(--color-text)}.record-card-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.record-card-row .label{color:var(--color-text-muted)}.record-card-row .value{color:var(--color-text);font-weight:500}.schedule-row{flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px}.schedule-row-name,.schedule-row-time,.schedule-row-grace,.schedule-row-badge,.schedule-row-actions{flex:0 0 auto!important;font-size:13px}.schedule-row-actions{margin-top:4px}.activity-row{flex-direction:column;align-items:flex-start;gap:4px;padding:12px 16px}.activity-meta{width:100%;justify-content:space-between}.device-chip{width:100%;justify-content:center}.tenant-banner{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.tenant-banner select{width:100%}.schedule-form-card{flex-direction:column;align-items:stretch;padding:14px 16px}.schedule-form-field{width:100%}.toast-container{bottom:calc(72px + env(safe-area-inset-bottom));left:12px;right:12px;max-width:unset}body{overflow-x:hidden}.page-content{-webkit-overflow-scrolling:touch}@media (max-width: 768px){input,select,textarea{font-size:16px!important}}.mobile-fab{display:none}@media (max-width: 768px){.mobile-fab{position:fixed;bottom:calc(72px + env(safe-area-inset-bottom));right:16px;z-index:55;width:56px;height:56px;border-radius:50%;background:var(--gradient-brand);color:#fff;border:none;box-shadow:0 4px 16px #0d948866;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1)}}.mobile-fab:active{transform:scale(.9)}.mobile-fab:hover{box-shadow:0 6px 24px #0d948880;transform:translateY(-2px)}.expandable-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.expandable-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 16px;background:none;border:none;text-align:left;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent}.expandable-card-header-content{flex:1;min-width:0}.expandable-card-chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.expandable-card--open .expandable-card-chevron{transform:rotate(180deg)}.expandable-card-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.4,0,.2,1),opacity .22s ease}.expandable-card-body-inner{overflow:hidden;min-height:0}.expandable-card--open .expandable-card-body-inner{border-top:1px solid var(--color-border)}.users-card-list{display:none}@media (max-width: 768px){.users-table-wrap{display:none}.users-card-list{display:flex;flex-direction:column;gap:10px}}.user-card-title{font-weight:600;font-size:15px;color:var(--color-text);margin-bottom:6px}.user-card-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.user-card-detail-row{display:flex;justify-content:space-between;gap:12px;padding:10px 16px;font-size:13px}.user-card-detail-row .label{color:var(--color-text-muted)}.user-card-detail-row .value{color:var(--color-text);font-weight:500;text-align:right}.user-card-actions{display:flex;gap:8px;padding:12px 16px}@media (max-width: 768px){.btn,.btn-icon,.btn-sm,.stat-card,.data-card,.swipe-card-content,.device-chip,.schedule-type-btn,.expandable-card-header,.mobile-nav-item{transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease}.btn:active,.btn-icon:active,.btn-sm:active,.schedule-type-btn:active{transform:scale(.94)}.stat-card:active,.expandable-card-header:active,.device-chip:active{transform:scale(.985)}.swipe-card:active .swipe-card-content{transform:scale(.99)}}.ks-card{max-width:540px}.ks-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.ks-title{margin:0;font-size:1.125rem;font-weight:700;letter-spacing:-.3px;color:var(--color-text);display:flex;align-items:center;gap:.625rem}.ks-title-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-md);background:var(--gradient-brand-subtle);color:var(--color-brand)}.ks-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-md);background:var(--color-brand-light);color:var(--color-text-muted);cursor:pointer;transition:background var(--duration-fast, .15s) ease,color var(--duration-fast, .15s) ease}.ks-close:hover{background:var(--color-brand-light);color:var(--color-text)}.ks-group{margin-bottom:1.25rem}.ks-group:last-child{margin-bottom:0}.ks-group-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 .625rem}.ks-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--color-border-subtle)}.ks-row:last-child{border-bottom:none}.ks-label{font-size:.875rem;color:var(--color-text-secondary)}.ks-keys{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.ks-plus{font-size:.75rem;color:var(--color-text-muted)}kbd.ks-key{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .4375rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;font-weight:600;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong, var(--color-border-subtle));border-bottom-width:2px;border-radius:var(--radius-sm);box-shadow:var(--shadow-level-1)}.ks-hint{margin:1.25rem 0 0;font-size:.75rem;color:var(--color-text-muted);text-align:center}.ob-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0f0a1e59;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn var(--duration-normal, .22s) ease}.ob-card{position:relative;width:100%;max-width:380px;background:var(--gradient-surface, var(--color-surface));border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-level-3);padding:1.75rem;animation:slideUp var(--duration-normal, .22s) var(--ease-spring, ease)}.ob-illu{width:64px;height:64px;border-radius:var(--radius-lg);background:var(--gradient-brand-subtle);display:flex;align-items:center;justify-content:center;color:var(--color-brand);margin-bottom:1rem}.ob-title{margin:0 0 .375rem;font-size:1.0625rem;font-weight:700;letter-spacing:-.3px;color:var(--color-text)}.ob-body{margin:0 0 1.25rem;font-size:.875rem;line-height:1.55;color:var(--color-text-muted)}.ob-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem}.ob-dots{display:flex;gap:.375rem}.ob-dot{width:7px;height:7px;border-radius:var(--radius-full);background:var(--color-border-strong, var(--color-border-subtle));transition:background var(--duration-fast, .15s) ease,width var(--duration-fast, .15s) ease}.ob-dot.active{width:18px;border-radius:var(--radius-full);background:var(--color-brand)}.ob-actions{display:flex;align-items:center;gap:.5rem}.ob-skip{border:none;background:none;font-size:.8125rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;padding:.5rem .25rem}.ob-skip:hover{color:var(--color-text)}.ob-next{border:none;border-radius:var(--radius-md);background:var(--gradient-brand);color:var(--color-text-inverse, #fff);font-size:.8125rem;font-weight:600;padding:.5rem 1rem;cursor:pointer;box-shadow:var(--shadow-level-1);transition:filter var(--duration-fast, .15s) ease,transform var(--duration-fast, .15s) ease}.ob-next:hover{filter:brightness(1.05);transform:translateY(-1px)}@keyframes stepSlideIn{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}.auth-step-2{animation:stepSlideIn .22s cubic-bezier(.22,1,.36,1)}.auth-username-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .875rem;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-full);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:border-color .15s,color .15s,background .15s;align-self:flex-start;margin-bottom:.25rem}.auth-username-chip:hover{border-color:var(--color-brand);color:var(--color-brand);background:var(--color-brand-light)}.btn-verified{background:var(--color-success)!important;box-shadow:0 2px 8px #0596694d!important}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(7px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.auth-card.shake{animation:shake .45s cubic-bezier(.36,.07,.19,.97)}.auth-face-scan{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-top:.5rem}.face-scan-card{perspective:1000px}.face-scan-card-inner{width:220px;height:300px;position:relative;animation:cardFloat 5s ease-in-out infinite;transform-style:preserve-3d}@keyframes cardFloat{0%,to{transform:translateY(0) rotateX(2deg) rotateY(-2deg)}25%{transform:translateY(-8px) rotateX(-1deg) rotateY(2deg)}50%{transform:translateY(-12px) rotateX(1deg) rotateY(-1deg)}75%{transform:translateY(-6px) rotateX(-2deg) rotateY(1deg)}}.face-scan-card-face{width:100%;height:100%;background:linear-gradient(145deg,#1e293b,#0f172a);border-radius:16px;border:1px solid rgba(107,216,203,.2);overflow:hidden;position:relative;box-shadow:0 4px 16px #0006,0 0 40px #6bd8cb14,inset 0 1px #ffffff0d}.face-scan-card-face:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:18px;background:conic-gradient(from 0deg at 50% 50%,transparent 0deg,rgba(107,216,203,.5) 90deg,transparent 180deg,rgba(107,216,203,.5) 270deg,transparent 360deg);animation:borderRotate 4s linear infinite;z-index:-1;opacity:.6}@keyframes borderRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.face-scan-card-header{display:flex;align-items:center;gap:8px;padding:12px 14px 8px;border-bottom:1px solid rgba(107,216,203,.1)}.face-scan-card-chip{width:24px;height:18px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-radius:4px;position:relative;box-shadow:0 0 8px #fbbf244d}.face-scan-card-chip:before{content:"";position:absolute;top:2px;right:4px;bottom:2px;left:4px;border:1px solid rgba(0,0,0,.2);border-radius:2px}.face-scan-card-label{font-size:.7rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;background:linear-gradient(135deg,#5eead4,#0ea5e9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.face-scan-photo{padding:12px;display:flex;justify-content:center}.face-scan-face-svg{width:120px;height:140px;filter:drop-shadow(0 0 12px rgba(107,216,203,.15))}.face-scan-card-info{padding:8px 14px;display:flex;flex-direction:column;gap:6px}.face-scan-info-line{height:6px;background:#6bd8cb26;border-radius:3px}.face-scan-info-line.short{width:40%}.face-scan-info-line.medium{width:70%}.face-scan-info-line.long{width:85%}.face-scan-card-footer{position:absolute;bottom:0;left:0;right:0;padding:10px 14px;display:flex;align-items:center;gap:8px;border-top:1px solid rgba(107,216,203,.1);background:#0003}.face-scan-status-dot{width:8px;height:8px;border-radius:50%;background:#6bd8cb66;transition:all .3s}.face-scan-status-dot.active{background:#5eead4;box-shadow:0 0 8px #5eead499;animation:dotPulse 1s ease-in-out infinite}.face-scan-status-dot.success{background:#34d399;box-shadow:0 0 8px #34d39999}.face-scan-status-dot.error{background:#f87171;box-shadow:0 0 8px #f8717199}@keyframes dotPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.face-scan-card-footer-text{font-size:.65rem;font-weight:600;letter-spacing:.05em;color:#6bd8cb99}@keyframes headAlive{0%,to{transform:translateY(0) rotate(0) scale(1)}25%{transform:translateY(-1.5px) rotate(-.7deg) scale(1.004)}50%{transform:translateY(.6px) rotate(.5deg) scale(1.012)}75%{transform:translateY(-1px) rotate(.7deg) scale(1.006)}}.face-head{transform-box:fill-box;transform-origin:60px 62px;animation:headAlive 6s ease-in-out infinite}@keyframes eyeBlink{0%,44%,52%,90%,94%,to{transform:scaleY(1)}48%{transform:scaleY(.08)}92%{transform:scaleY(.08)}}.face-eyes{transform-box:fill-box;transform-origin:center;animation:eyeBlink 5.5s ease-in-out infinite}@keyframes pupilGlance{0%,34%{transform:translate(0)}40%,52%{transform:translate(-2.4px,.4px)}58%,72%{transform:translate(2.4px,.4px)}78%,to{transform:translate(0)}}.face-pupils{transform-box:fill-box;animation:pupilGlance 7s ease-in-out infinite}.face-mouth-smile{opacity:0;transition:opacity .35s ease}.face-mouth-neutral{transition:opacity .35s ease}@keyframes meshDotPulse{0%,to{opacity:.4;r:1.2}50%{opacity:.9;r:2}}@keyframes radarExpand{0%{r:0;opacity:.5}70%{r:50;opacity:.05}to{r:55;opacity:0}}.face-mesh .mesh-dot{animation:meshDotPulse 2s ease-in-out infinite}.face-mesh .mesh-dot:nth-child(1){animation-delay:0s}.face-mesh .mesh-dot:nth-child(2){animation-delay:.1s}.face-mesh .mesh-dot:nth-child(3){animation-delay:.2s}.face-mesh .mesh-dot:nth-child(4){animation-delay:.3s}.face-mesh .mesh-dot:nth-child(5){animation-delay:.4s}.face-mesh .mesh-dot:nth-child(6){animation-delay:.5s}.face-mesh .mesh-dot:nth-child(7){animation-delay:.6s}.face-mesh .mesh-dot:nth-child(8){animation-delay:.7s}.radar-scan{animation:radarExpand 2.5s ease-out infinite}@keyframes scanMove{0%{transform:translateY(-20px);opacity:.8}50%{transform:translateY(60px);opacity:.9}to{transform:translateY(-20px);opacity:.8}}@keyframes scanMoveFast{0%{transform:translateY(-20px);opacity:.95}50%{transform:translateY(60px);opacity:1}to{transform:translateY(-20px);opacity:.95}}.scan-line,.scan-glow{animation:scanMove 3s ease-in-out infinite}.auth-face-scan.scanning .scan-line,.auth-face-scan.scanning .scan-glow{animation:scanMoveFast 1s ease-in-out infinite}.auth-face-scan.scanning .face-scan-card-face{border-color:#6bd8cb66;box-shadow:0 4px 16px #0006,0 0 60px #6bd8cb26,inset 0 1px #ffffff14}.auth-face-scan.scanning .face-scan-card-face:before{opacity:1;animation-duration:2s}.auth-face-scan.scanning .face-mesh .mesh-dot{animation-duration:.8s}.auth-face-scan.scanning .radar-scan{animation-duration:1.2s}@keyframes pupilScan{0%,to{transform:translateY(-1.2px)}50%{transform:translateY(3px)}}.auth-face-scan.scanning .face-pupils{animation:pupilScan 1s ease-in-out infinite}.auth-face-scan.scanning .face-head{animation-duration:3s}.auth-face-scan.scanning .face-eyes{animation-duration:8s}.auth-face-scan.verified .face-scan-card-face{border-color:#34d39980;box-shadow:0 4px 16px #0006,0 0 80px #34d39933,inset 0 1px #ffffff1a}.auth-face-scan.verified .face-scan-card-face:before{background:conic-gradient(from 0deg at 50% 50%,transparent 0deg,rgba(52,211,153,.6) 90deg,transparent 180deg,rgba(52,211,153,.6) 270deg,transparent 360deg);animation-duration:2s;opacity:.8}.auth-face-scan.verified .face-mouth-neutral{opacity:0}.auth-face-scan.verified .face-mouth-smile{opacity:1}.auth-face-scan.verified .face-pupils{animation:none;transform:translate(0)}.auth-face-scan.verified .eye-pupil{fill:#34d399;filter:drop-shadow(0 0 3px rgba(52,211,153,.8))}.auth-face-scan.verified .face-eye{stroke:#34d399cc}.auth-face-scan.failed .face-pupils{animation:none;transform:translateY(1.5px)}.auth-face-scan.failed .eye-pupil{fill:#f87171}.auth-face-scan.failed .face-eye{stroke:#f87171b3}.auth-face-scan.failed .face-scan-card-face{border-color:#f8717166;box-shadow:0 4px 16px #0006,0 0 40px #f871711a,inset 0 1px #ffffff08}.auth-face-scan.failed .face-scan-card-face:before{background:conic-gradient(from 0deg at 50% 50%,transparent 0deg,rgba(248,113,113,.5) 90deg,transparent 180deg,rgba(248,113,113,.5) 270deg,transparent 360deg);opacity:.5}@media (prefers-reduced-motion: reduce){.face-head,.face-eyes,.face-pupils,.face-mesh .mesh-dot,.radar-scan,.scan-line,.scan-glow,.face-scan-card-inner,.face-scan-card-face:before{animation:none!important}}.face-scan-status{display:flex;flex-direction:column;align-items:center;gap:4px}.face-scan-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;background:#6bd8cb1f;border:1px solid rgba(107,216,203,.3);color:#6bd8cb;letter-spacing:.01em;transition:background .3s,border-color .3s,color .3s}.face-scan-badge.scanning{background:#6bd8cb14;border-color:#6bd8cb80;color:#6bd8cb}.face-scan-badge.verified{background:#05966926;border-color:#05966966;color:#34d399}.face-scan-badge.failed{background:#ba1a1a1f;border-color:#ba1a1a59;color:#f87171}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:badgeDot .7s ease-in-out infinite;flex-shrink:0}.face-scan-meta{font-size:.75rem;color:#fff6;letter-spacing:.04em;transition:color .3s}.auth-powered{margin-top:1.25rem;text-align:center;font-size:.8125rem;color:var(--color-text-muted)}.auth-powered strong{color:var(--color-brand);font-weight:600}.auth-container{min-height:100vh;display:flex}.auth-brand{flex:1 1 48%;position:relative;background:linear-gradient(145deg,#0f172a,#065f52 45%,#0d9488);display:flex;align-items:center;justify-content:center;color:#fff;padding:3rem;overflow:hidden}.auth-brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.045) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}.auth-brand:after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(13,148,136,.25) 0%,transparent 70%);bottom:-80px;left:-60px;pointer-events:none}.auth-brand-inner{position:relative;z-index:1;max-width:360px;padding:24px 16px}.auth-brand-inner:before,.auth-brand-inner:after{content:"";position:absolute;width:28px;height:28px;border-color:#6bd8cb99;border-style:solid;pointer-events:none}.auth-brand-inner:before{top:0;left:0;border-width:2px 0 0 2px}.auth-brand-inner:after{bottom:0;right:0;border-width:0 2px 2px 0}.auth-brand-logo{display:flex;align-items:center;gap:.625rem;font-size:1.875rem;font-weight:800;letter-spacing:-.75px;margin-bottom:2rem}.auth-brand-logo span{background:linear-gradient(135deg,#0d9488,#006387);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-brand-logo svg{color:#0d9488;filter:drop-shadow(0 0 8px rgba(13,148,136,.6))}.auth-panel{flex:1 1 52%;background:#f8f9ff;display:flex;align-items:center;justify-content:center;padding:2.5rem 2rem}.auth-card{width:100%;max-width:420px;animation:authFadeIn .3s cubic-bezier(.22,1,.36,1)}@keyframes authFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-card-head{margin-bottom:2rem}.auth-title{font-size:1.875rem;font-weight:800;color:var(--color-text);letter-spacing:-.75px}.auth-subtitle{color:var(--color-text-secondary);font-size:.9375rem;margin-top:.4rem}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.875rem;font-weight:600;color:var(--color-text)}.optional{color:var(--color-text-muted);font-weight:400}.input-icon-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:.875rem;color:var(--color-text-muted);pointer-events:none}.input-with-icon{width:100%;height:46px;padding:0 .875rem 0 42px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.9375rem;color:var(--color-text);background:var(--color-surface);outline:none;transition:border-color .15s,box-shadow .15s}.input-with-trailing{padding-right:46px}.input-with-icon:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #0d94881f}.input-trailing-btn{position:absolute;right:.625rem;display:flex;align-items:center;justify-content:center;padding:.375rem;background:none;border:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color .12s}.input-trailing-btn:hover{color:var(--color-brand)}.auth-error{color:#dc2626;font-size:.875rem;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md);padding:.625rem .875rem}.auth-form .btn-primary{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;height:46px;font-size:.9375rem;letter-spacing:.01em}.auth-form .btn-primary:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #0d948866}.auth-form .btn-primary:active:not(:disabled){transform:translateY(0)}.auth-form .btn-primary:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.auth-brand{display:none}.auth-panel{flex:1 1 100%;background:#f8f9ff}}.auth-docs-btn{position:fixed;top:18px;right:18px;z-index:20;display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.02em;text-decoration:none;color:#5eead4;background:#0a1322c7;border:1px solid rgba(45,212,191,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 0 18px #2dd4bf40,inset 0 1px #ffffff14;overflow:hidden;transition:box-shadow .2s,border-color .2s,transform .2s}.auth-docs-btn:hover{border-color:#5eead4cc;box-shadow:0 0 30px #2dd4bf80,inset 0 1px #ffffff1f;transform:translateY(-1px)}.auth-docs-btn-arrow{transition:transform .2s}.auth-docs-btn:hover .auth-docs-btn-arrow{transform:translate(3px)}.auth-docs-btn-glow{position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(94,234,212,.25),transparent);transform:skew(-20deg);animation:docsBtnSweep 3.2s ease-in-out infinite;pointer-events:none}@keyframes docsBtnSweep{0%,60%{left:-60%}to{left:130%}}@media (prefers-reduced-motion: reduce){.auth-docs-btn-glow{animation:none}}@media (max-width: 768px){.auth-docs-btn{top:12px;right:12px;padding:8px 14px;font-size:12px}}.lp{--lp-bg: #04070f;--lp-text: #eaf2fb;--lp-text2: #9fb0c8;--lp-muted: #64748b;--lp-teal: #2dd4bf;--lp-teal-soft: #5eead4;--lp-glass: rgba(148, 197, 222, .055);--lp-glass-border: rgba(148, 197, 222, .14);min-height:100vh;background:var(--lp-bg);color:var(--lp-text);font-size:15px;position:relative;overflow-x:hidden}.lp-grid-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(45,212,191,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(45,212,191,.045) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,black 0%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,black 0%,transparent 75%)}.lp-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(16px,5vw,48px);border-bottom:1px solid rgba(148,197,222,.09);background:#04070fb8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.lp-logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:17px;letter-spacing:-.02em;color:var(--lp-teal)}.lp-logo span{color:var(--lp-text)}.lp-links{display:flex;gap:24px;font-size:13.5px;font-weight:500}.lp-links a{color:var(--lp-text2);text-decoration:none;transition:color .15s}.lp-links a:hover{color:var(--lp-teal-soft)}@media (max-width: 720px){.lp-links{display:none}}.lp-actions{display:flex;gap:12px;align-items:center}.lp-btn{display:inline-flex;align-items:center;gap:8px;border-radius:10px;padding:8px 16px;font-size:13.5px;font-weight:600;border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .15s,box-shadow .15s,border-color .15s}.lp-btn-ghost{color:var(--lp-text2);border-color:#94c5de38;background:transparent}.lp-btn-ghost:hover{color:var(--lp-teal-soft);border-color:#2dd4bf73}.lp-btn-primary{background:linear-gradient(135deg,#14b8a6,#0d9488 55%,#0e7490);color:#021410;font-weight:700;box-shadow:0 0 24px #2dd4bf59,inset 0 1px #ffffff40}.lp-btn-primary:hover{transform:translateY(-1px);box-shadow:0 0 34px #2dd4bf80,inset 0 1px #ffffff40}.lp-btn-lg{padding:13px 26px;font-size:14.5px;border-radius:12px}.lp-lang-switch{display:inline-flex;border:1px solid rgba(148,197,222,.22);border-radius:999px;overflow:hidden;font-size:11.5px;font-weight:700}.lp-lang-btn{padding:4px 12px;background:transparent;border:none;color:var(--lp-muted);font:inherit;cursor:pointer;letter-spacing:.04em}.lp-lang-btn.active{background:#2dd4bf26;color:var(--lp-teal-soft)}.lp-lang-btn:focus-visible{outline:2px solid var(--lp-teal);outline-offset:-2px}.lp-hero{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:center;max-width:1160px;margin:0 auto;padding:clamp(48px,8vh,84px) clamp(16px,5vw,48px) 24px;overflow:hidden}@media (max-width: 820px){.lp-hero{grid-template-columns:1fr}}.lp-hero-glow{position:absolute;width:560px;height:560px;right:-120px;top:-160px;background:radial-gradient(circle,rgba(45,212,191,.14) 0%,transparent 65%);pointer-events:none}.lp-badge{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--lp-teal-soft);background:#2dd4bf17;border:1px solid rgba(45,212,191,.25);padding:5px 14px;border-radius:999px;margin-bottom:20px}.lp-pulse{width:6px;height:6px;border-radius:50%;background:var(--lp-teal);box-shadow:0 0 8px var(--lp-teal);animation:lp-blink 2.2s ease-in-out infinite}@keyframes lp-blink{0%,to{opacity:1}50%{opacity:.35}}.lp-hero-copy h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:800;letter-spacing:-.03em;line-height:1.08;margin:0 0 18px;text-wrap:balance}.lp-hero-copy h1 em{font-style:normal;background:linear-gradient(100deg,#5eead4 10%,#2dd4bf 45%,#38bdf8 90%);-webkit-background-clip:text;background-clip:text;color:transparent}.lp-hero-copy p{color:var(--lp-text2);font-size:15.5px;max-width:46ch;margin:0 0 26px;line-height:1.65}.lp-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.lp-cta-note{font-size:12.5px;color:var(--lp-muted);margin-top:16px}.lp-orb-wrap{position:relative;height:clamp(300px,42vw,420px);min-width:0}.lp-orb{width:100%;height:100%;display:block}.lp-chip{position:absolute;display:flex;align-items:center;gap:8px;background:#0a1322b8;border:1px solid var(--lp-glass-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;padding:8px 14px;font-size:12px;color:var(--lp-text2);box-shadow:0 8px 24px #0006;animation:lp-float 6s ease-in-out infinite}.lp-chip b{color:var(--lp-teal-soft);font-variant-numeric:tabular-nums}.lp-chip-ok{top:12%;right:2%;animation-delay:-1.5s}.lp-chip-count{bottom:16%;left:0;animation-delay:-3.5s}.lp-led{width:7px;height:7px;border-radius:50%;background:var(--lp-teal);box-shadow:0 0 8px var(--lp-teal)}@keyframes lp-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.lp [id]{scroll-margin-top:76px}.lp-reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}.lp-reveal.in{opacity:1;transform:none}.lp-tile.lp-reveal,.lp-price.lp-reveal{transform:none;transition:opacity .55s ease,transform .18s ease,border-color .18s ease}.lp-fade{animation:lp-fade-in .28s ease}@keyframes lp-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.lp-chip,.lp-pulse,.lp-fade,.lp-feed-row[data-pos="0"],.lp-prow-in,.lp-prow-flash{animation:none!important}.lp-btn,.lp-tile,.lp-price,.lp-panel{transition:none!important}.lp-reveal{opacity:1!important;transform:none!important;transition:none!important}.lp-prow-in,.lp-prow-flash{opacity:1!important;transform:none!important;background:transparent!important}}.lp-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:0;max-width:1160px;margin:0 auto;padding:4px clamp(16px,5vw,48px) 56px}.lp-stat{padding:2px 0 2px 28px;border-left:1px solid var(--lp-glass-border)}.lp-stat:first-child{padding-left:0;border-left:0}@media (max-width: 720px){.lp-stats{grid-template-columns:1fr;gap:16px}.lp-stat{padding:16px 0 0;border-left:0;border-top:1px solid var(--lp-glass-border)}.lp-stat:first-child{padding-top:0;border-top:0}}.lp-stat-t{font-size:22px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.lp-stat-t span{color:var(--lp-teal-soft)}.lp-stat-d{font-size:12.5px;color:var(--lp-muted)}.lp-section{position:relative;z-index:1;max-width:1160px;margin:0 auto;padding:48px clamp(16px,5vw,48px)}.lp-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--lp-teal-soft);margin:0 0 6px}.lp-section h2{font-size:clamp(1.4rem,2.6vw,1.8rem);font-weight:800;letter-spacing:-.025em;margin:0 0 4px}.lp-section-sub{color:var(--lp-muted);font-size:13.5px;margin:0 0 26px}.lp-bento{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 820px){.lp-bento{grid-template-columns:1fr}}.lp-tile{background:var(--lp-glass);border:1px solid var(--lp-glass-border);border-radius:16px;padding:20px;position:relative;overflow:hidden;transition:transform .18s ease,border-color .18s ease;transform-style:preserve-3d;will-change:transform}.lp-tile:hover{border-color:#2dd4bf66}.lp-tile-wide{grid-column:span 2}@media (max-width: 820px){.lp-tile-wide{grid-column:span 1}}.lp-ic{width:36px;height:36px;border-radius:10px;background:#2dd4bf1a;border:1px solid rgba(45,212,191,.25);display:flex;align-items:center;justify-content:center;margin-bottom:12px;color:var(--lp-teal-soft);font-size:16px}.lp-tile-t{font-weight:700;font-size:14.5px;margin-bottom:4px}.lp-tile-d{font-size:13px;color:var(--lp-text2);line-height:1.6}.lp-pose-row{display:flex;gap:10px;margin-top:16px}.lp-pose{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;border:1px dashed rgba(45,212,191,.3);border-radius:10px;padding:10px 6px;text-align:center;font-size:11px;color:var(--lp-muted)}.lp-pose span{font-size:18px}.lp-pose.done{border-style:solid;border-color:#2dd4bf80;color:var(--lp-teal-soft);background:#2dd4bf0f}.lp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;counter-reset:lp-step}@media (max-width: 820px){.lp-steps{grid-template-columns:1fr}}.lp-step{background:var(--lp-glass);border:1px solid var(--lp-glass-border);border-radius:14px;padding:20px}.lp-step:before{counter-increment:lp-step;content:"0" counter(lp-step);display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--lp-teal-soft);border:1px solid rgba(45,212,191,.35);border-radius:999px;padding:2px 10px;margin-bottom:12px;background:#2dd4bf12}.lp-step-t{font-weight:700;font-size:14px;margin:2px 0 4px}.lp-step-d{font-size:13px;color:var(--lp-text2);line-height:1.6}.lp-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;max-width:480px;margin-inline:auto}.lp-price{display:flex;flex-direction:column;background:var(--lp-glass);border:1px solid var(--lp-glass-border);border-radius:14px;padding:24px;transition:border-color .25s ease,transform .25s ease}.lp-price:hover{border-color:#2dd4bf66}.lp-price-t{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--lp-teal-soft)}.lp-price-d{font-size:13px;color:var(--lp-muted);margin-top:4px}.lp-price-from{font-size:12px;color:var(--lp-muted);margin-top:20px}.lp-price-amt{font-size:clamp(1.6rem,4vw,2rem);font-weight:800;letter-spacing:-.03em;line-height:1.15;margin-top:2px}.lp-price-amt span{display:block;font-size:12.5px;font-weight:500;letter-spacing:0;color:var(--lp-text2);margin-top:4px}.lp-price-feats{list-style:none;margin:20px 0 24px;padding:0;flex:1}.lp-price-feats li{position:relative;padding-left:22px;font-size:13px;color:var(--lp-text2);line-height:1.6}.lp-price-feats li+li{margin-top:8px}.lp-price-feats li:before{content:"✓";position:absolute;left:0;color:var(--lp-teal);font-weight:700}.lp-price .lp-btn{justify-content:center}.lp-price-note{max-width:820px;font-size:12.5px;color:var(--lp-muted);line-height:1.7;margin:16px 0 0}.lp-showcase{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,48px);align-items:center}@media (max-width: 900px){.lp-showcase{grid-template-columns:1fr}}.lp-showcase h2{margin-bottom:10px}.lp-showcase-list{list-style:none;margin:22px 0 0;padding:0}.lp-showcase-list li{position:relative;padding-left:22px;font-size:13px;color:var(--lp-text2);line-height:1.6}.lp-showcase-list li+li{margin-top:10px}.lp-showcase-list li:before{content:"→";position:absolute;left:0;color:var(--lp-teal)}.lp-panel{border:1px solid var(--lp-glass-border);border-radius:14px;background:#02060cb3;overflow:hidden}.lp-panel-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--lp-glass-border);background:#94c5de0a;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--lp-muted)}.lp-panel-bar b{color:var(--lp-text);font-weight:700;letter-spacing:0;text-transform:none}.lp-panel-rows{padding:6px 0}.lp-prow{display:grid;grid-template-columns:28px 1fr auto auto;align-items:center;gap:12px;padding:10px 16px;font-size:13px}.lp-prow+.lp-prow{border-top:1px solid rgba(148,197,222,.07)}.lp-prow-in{animation:lp-prow-in .45s ease-out both}@keyframes lp-prow-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}.lp-prow-flash{animation:lp-prow-flash 1.1s ease-out both}@keyframes lp-prow-flash{0%{background:#2dd4bf29}to{background:transparent}}.lp-avatar{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--lp-teal-soft);background:#2dd4bf1a;border:1px solid rgba(45,212,191,.25)}.lp-prow-time{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--lp-text2)}.lp-pill{font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px;white-space:nowrap}.lp-pill-ok{color:#5eead4;background:#2dd4bf1f;border:1px solid rgba(45,212,191,.3)}.lp-pill-late{color:#fbbf24;background:#fbbf241a;border:1px solid rgba(251,191,36,.28)}.lp-pill-off{color:var(--lp-muted);background:#94c5de0f;border:1px solid var(--lp-glass-border)}.lp-proof{position:relative;z-index:1;max-width:1160px;margin:0 auto;padding:0 clamp(16px,5vw,48px) 56px}.lp-proof-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--lp-muted);margin:0 0 16px}.lp-proof-items{display:flex;flex-wrap:wrap;gap:12px 40px;align-items:baseline}.lp-proof-item{display:flex;align-items:baseline;gap:8px}.lp-proof-n{font-size:20px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--lp-teal-soft)}.lp-proof-d{font-size:12.5px;color:var(--lp-text2)}.lp-feed{margin-top:40px;border:1px solid var(--lp-glass-border);border-radius:14px;background:#02060cb3;overflow:hidden;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace}.lp-feed-bar{display:flex;justify-content:space-between;padding:8px 16px;border-bottom:1px solid rgba(148,197,222,.09);font-size:10.5px;color:var(--lp-muted);letter-spacing:.08em;text-transform:uppercase}.lp-feed-live{color:var(--lp-teal-soft);display:flex;align-items:center;gap:6px}.lp-feed-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lp-teal);box-shadow:0 0 8px var(--lp-teal)}.lp-feed-rows{padding:12px 16px;display:grid;gap:6px;font-size:12px}.lp-feed-row{display:flex;gap:14px;color:var(--lp-text2);flex-wrap:wrap}.lp-feed-row .ts{color:var(--lp-muted);font-variant-numeric:tabular-nums}.lp-feed-row .ok{color:var(--lp-teal-soft)}.lp-feed-row[data-pos="1"]{opacity:.6}.lp-feed-row[data-pos="2"]{opacity:.38}.lp-feed-row[data-pos="3"]{opacity:.2}.lp-feed-row[data-pos="0"]{animation:lp-feed-in .42s ease-out both}@keyframes lp-feed-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.lp-ctaband{position:relative;z-index:1;max-width:1160px;margin:24px auto 0;padding:clamp(36px,6vw,56px) 32px;border-radius:20px;text-align:center;overflow:hidden;border:1px solid rgba(45,212,191,.3);background:radial-gradient(ellipse 70% 120% at 50% -20%,rgba(45,212,191,.22) 0%,transparent 60%),#0a132299}@media (max-width: 820px){.lp-ctaband{margin-left:16px;margin-right:16px}}.lp-ctaband-t{font-size:clamp(1.4rem,3vw,1.8rem);font-weight:800;letter-spacing:-.025em;margin:0 0 6px}.lp-ctaband-d{font-size:13.5px;color:var(--lp-text2);margin:0 0 24px}.lp-form{max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:10px;text-align:left}.lp-form-row{display:flex;gap:10px}.lp-form-row>*{flex:1;min-width:0}.lp-form input,.lp-form textarea{width:100%;padding:11px 14px;border-radius:10px;border:1px solid var(--lp-glass-border);background:#94c5de0f;color:var(--lp-text);font-size:13.5px;font-family:inherit;resize:vertical}.lp-form input::placeholder,.lp-form textarea::placeholder{color:var(--lp-muted)}.lp-form input:focus,.lp-form textarea:focus{outline:none;border-color:#2dd4bf80;background:#94c5de17}.lp-form .lp-btn{align-self:center;margin-top:4px}.lp-form-error{color:#fca5a5;font-size:13px;margin:0}.lp-form-success{color:var(--lp-teal-soft);font-size:15px;font-weight:600;max-width:480px;margin:0 auto}@media (max-width: 560px){.lp-form-row{flex-direction:column}}.lp-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;max-width:1160px;margin:48px auto 0;padding:24px clamp(16px,5vw,48px) 32px;border-top:1px solid rgba(148,197,222,.09);color:var(--lp-muted);font-size:12.5px;position:relative;z-index:1}.lp-footer-links{display:flex;gap:18px}.lp-footer-links a{color:var(--lp-muted);text-decoration:none}.lp-footer-links a:hover{color:var(--lp-teal-soft)}.layout{display:flex;min-height:100vh;background:var(--color-bg)}.sidebar-backdrop{display:none}.sidebar{width:248px;background:var(--sidebar-bg);display:flex;flex-direction:column;flex-shrink:0;position:relative;overflow:hidden}.sidebar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--sidebar-glow);pointer-events:none}.sidebar-header{padding:1.5rem 1.25rem 1.125rem;border-bottom:1px solid var(--sidebar-border);position:relative;z-index:1}.sidebar-brand{display:flex;align-items:center;gap:.5rem;font-size:1.3rem;font-weight:800;letter-spacing:-.5px}.sidebar-brand span{background:linear-gradient(135deg,#6bd8cb,#5eead4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-brand-icon{color:var(--sidebar-accent);filter:drop-shadow(0 0 8px rgba(107,216,203,.7));transition:filter var(--duration-normal) ease}.sidebar-brand:hover .sidebar-brand-icon{filter:drop-shadow(0 0 12px rgba(107,216,203,.9))}.sidebar-role{font-size:.7rem;color:#6bd8cb8c;margin-top:.3rem;text-transform:uppercase;letter-spacing:.08em;font-weight:500}.sidebar-nav{flex:1;padding:.875rem .75rem;list-style:none;margin:0;display:flex;flex-direction:column;gap:2px;position:relative;z-index:1}.sidebar-nav li a{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;color:var(--sidebar-text);text-decoration:none;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);transition:all var(--duration-normal) ease;position:relative;overflow:hidden}.sidebar-nav li a svg{flex-shrink:0}.sidebar-nav li a:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:60%;background:var(--sidebar-accent);border-radius:0 2px 2px 0;transition:transform var(--duration-normal) var(--ease-spring)}.sidebar-nav li a:hover{background:var(--sidebar-hover-bg);color:#e0e7ff}.sidebar-nav li a:hover:before{transform:translateY(-50%) scaleY(1)}.sidebar-nav li a.active{background:var(--sidebar-accent-bg);color:var(--sidebar-text-active);box-shadow:inset 0 0 0 1px #6bd8cb26}.sidebar-nav li a.active:before{transform:translateY(-50%) scaleY(1)}.sidebar-nav li a.active svg{color:var(--sidebar-accent);filter:drop-shadow(0 0 6px rgba(107,216,203,.6))}.sidebar-footer{padding:.875rem .75rem;border-top:1px solid var(--sidebar-border);position:relative;z-index:1}.sidebar-footer button{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--sidebar-text);padding:.625rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;width:100%;transition:all var(--duration-normal) ease}.sidebar-footer button:hover{background:#ffffff1a;color:#e0e7ff;border-color:#ffffff26}.main-content{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{background:var(--topbar-bg, rgba(255, 255, 255, .82));backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--color-border-subtle);padding:0 1.5rem;height:60px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:0 1px #0b1c300a;position:relative;z-index:10}.topbar-left{display:flex;align-items:center;gap:.75rem}.tenant-switcher{position:relative}.tenant-switcher-trigger{display:flex;align-items:center;gap:.45rem;max-width:240px;padding:.4rem .6rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:.85rem;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}.tenant-switcher-trigger:hover{border-color:var(--color-brand)}.tenant-switcher-trigger.is-empty{color:var(--color-text-muted);border-style:dashed;border-color:var(--color-brand)}.tenant-switcher-icon{color:var(--color-brand);flex-shrink:0}.tenant-switcher-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tenant-switcher-caret{color:var(--color-text-muted);flex-shrink:0}.tenant-switcher-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:50;width:300px;max-width:90vw;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 32px #00000029;overflow:hidden}.tenant-switcher-search{display:flex;align-items:center;gap:.45rem;padding:.55rem .7rem;border-bottom:1px solid var(--color-border);color:var(--color-text-muted)}.tenant-switcher-search input{flex:1;border:none;outline:none;background:transparent;color:var(--color-text);font-size:.85rem}.tenant-switcher-list{max-height:280px;overflow-y:auto;padding:.25rem}.tenant-switcher-empty{padding:.9rem;text-align:center;color:var(--color-text-muted);font-size:.85rem}.tenant-switcher-item{display:flex;align-items:center;gap:.55rem;width:100%;padding:.5rem .6rem;background:none;border:none;border-radius:var(--radius-sm, 6px);cursor:pointer;text-align:left;color:var(--color-text)}.tenant-switcher-item:hover{background:var(--color-bg)}.tenant-switcher-item.active{background:#7c3aed14}.tenant-switcher-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tenant-switcher-status.status-active{background:#16a34a}.tenant-switcher-status.status-suspended{background:#dc2626}.tenant-switcher-item-text{display:flex;flex-direction:column;min-width:0;flex:1}.tenant-switcher-item-name{font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tenant-switcher-item-slug{font-size:.72rem;color:var(--color-text-muted)}.tenant-switcher-badge{font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:999px;flex-shrink:0}.tenant-switcher-badge.badge-active{background:#16a34a1f;color:#16a34a}.tenant-switcher-badge.badge-suspended{background:#dc26261f;color:#dc2626}.tenant-switcher-check{color:var(--color-brand);flex-shrink:0}.tenant-switcher-clear{width:100%;padding:.55rem;background:none;border:none;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.78rem;cursor:pointer}.tenant-switcher-clear:hover{background:var(--color-bg);color:var(--color-danger, #dc2626)}.topbar-menu-btn{display:none;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text);padding:.25rem;border-radius:var(--radius-sm)}.topbar-title{font-size:1rem;font-weight:600;color:var(--color-text);letter-spacing:-.2px}.topbar-user,.topbar-user-desktop{display:flex;align-items:center;gap:.625rem}.topbar-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--gradient-brand);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-brand);transition:transform var(--duration-fast) var(--ease-spring),box-shadow var(--duration-normal) ease}.topbar-avatar:hover{transform:scale(1.08);box-shadow:0 4px 18px #0d948873}.topbar-role{font-size:.8125rem;color:var(--color-text-secondary);text-transform:capitalize}.profile-menu{position:relative}.profile-trigger{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem .25rem .3rem;background:transparent;border:1px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:background var(--duration-fast) ease,border-color var(--duration-fast) ease}.profile-trigger:hover{background:var(--color-surface-hover, rgba(148, 163, 184, .12));border-color:var(--color-border)}.profile-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--gradient-brand);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-brand)}.profile-avatar.lg{width:40px;height:40px;font-size:13px}.profile-trigger-name{font-size:.875rem;font-weight:600;color:var(--color-text);line-height:1.2}.profile-chevron{color:var(--color-text-muted);transition:transform var(--duration-fast) ease}.profile-chevron.open{transform:rotate(180deg)}.profile-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:230px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg, 0 12px 32px rgba(15, 23, 42, .18));padding:6px;z-index:60;animation:profileMenuIn .16s cubic-bezier(.22,1,.36,1)}@keyframes profileMenuIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.profile-dropdown-header{display:flex;align-items:center;gap:10px;padding:10px 10px 12px}.profile-name{font-size:.875rem;font-weight:600;color:var(--color-text)}.profile-sub{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-divider{height:1px;background:var(--color-border);margin:4px 0}.profile-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;background:transparent;border:none;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--color-text);cursor:pointer;text-align:left;transition:background var(--duration-fast) ease}.profile-item:hover{background:var(--color-surface-hover, rgba(148, 163, 184, .12))}.profile-item.danger{color:var(--color-danger)}.profile-item.danger:hover{background:#dc26261a}.page-content{flex:1;padding:2rem 1.75rem;animation:pageEnter .25s cubic-bezier(.22,1,.36,1)}@keyframes pageEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-header{margin-bottom:1.75rem}.page-header h2{font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.5px}.page-header p{color:var(--color-text-secondary);margin-top:.3rem;font-size:.875rem}.placeholder-card{background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:3rem 2rem;text-align:center;color:var(--color-text-muted);font-size:.9rem}.placeholder-card .placeholder-icon{font-size:2.5rem;margin-bottom:.75rem}.error-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center;padding:2rem}.error-page h1{font-size:5rem;font-weight:800;background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}.error-page p{color:var(--color-text-secondary)}.error-page a{color:var(--color-brand)}@media (max-width: 768px){.sidebar{display:none}.topbar{height:54px;padding:0 14px}.topbar-title{font-size:.98rem;font-weight:700;max-width:62vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-user-desktop{display:none}.add-fab-twin{display:none!important}.page-content{padding:14px;padding-bottom:calc(86px + env(safe-area-inset-bottom))}.page-title{font-size:1.2rem}.page-toolbar{gap:.75rem;margin-bottom:1rem}@media (max-width: 480px){.page-toolbar{flex-direction:column;align-items:stretch}.page-toolbar .btn{width:100%;justify-content:center}}}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--color-surface);border-top:1px solid var(--color-border);padding:0;padding-bottom:env(safe-area-inset-bottom);height:calc(56px + env(safe-area-inset-bottom));box-shadow:0 -2px 12px #00000014;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media (max-width: 768px){.mobile-bottom-nav{display:flex;justify-content:space-around;align-items:stretch}}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;min-height:56px;padding:6px 4px;color:var(--color-text-muted);text-decoration:none;font-size:.65rem;font-weight:500;transition:color .15s;-webkit-tap-highlight-color:transparent}.mobile-nav-item svg{flex-shrink:0;transition:transform .15s}.mobile-nav-item:active svg{transform:scale(.9)}.mobile-nav-item.active{color:var(--color-brand)}.mobile-nav-item.active svg{filter:drop-shadow(0 0 4px rgba(13,148,136,.4))}.mobile-more-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#0b1c3080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;animation:fadeIn .18s ease}.mobile-more-sheet{width:100%;background:var(--color-surface);border-radius:20px 20px 0 0;padding:10px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -8px 32px #00000038;animation:sheetUp .26s cubic-bezier(.4,0,.2,1)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-more-handle{width:40px;height:4px;border-radius:999px;background:var(--color-border);margin:4px auto 14px}.mobile-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.mobile-more-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px 6px;border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);text-decoration:none;font-size:.72rem;font-weight:600;text-align:center}.mobile-more-item.active{background:#0d94881f;color:var(--color-brand)}.mobile-more-actions{border-top:1px solid var(--color-border);padding-top:12px;display:flex;flex-direction:column;gap:4px}.mobile-more-row{display:flex;align-items:center;justify-content:space-between;padding:10px 6px;font-size:.9rem;font-weight:600;color:var(--color-text)}.mobile-more-action{display:flex;align-items:center;gap:10px;width:100%;padding:13px 6px;background:none;border:none;text-align:left;font-size:.9rem;font-weight:600;color:var(--color-text);cursor:pointer;border-radius:var(--radius-md)}.mobile-more-action:active{background:var(--color-bg)}.mobile-more-action.danger{color:var(--color-danger, #dc2626)}.stat-card{background:var(--gradient-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;display:flex;gap:1rem;align-items:center;box-shadow:var(--shadow-level-1);transition:all var(--duration-normal) ease;position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-brand);opacity:0;transition:opacity var(--duration-normal) ease}.stat-card:hover{box-shadow:var(--shadow-level-2);transform:translateY(-2px);border-color:var(--color-border)}.stat-card:hover:after{opacity:1}@media (max-width: 768px){.stat-card{padding:1rem}.stat-value{font-size:1.5rem}.stat-icon{width:40px;height:40px}}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-icon{width:46px;height:46px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;overflow:hidden}.stat-icon:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.3) 0%,transparent 60%);pointer-events:none}.stat-value{font-size:1.75rem;font-weight:800;color:var(--color-text);line-height:1.1}.stat-label{font-size:.8125rem;color:var(--color-text-secondary);margin-top:2px}.tenant-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px;padding:10px 14px;background:#0d948814;border:1px solid rgba(107,216,203,.2);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:13px}.tenant-banner select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:5px 8px;font-size:13px;font-family:inherit;cursor:pointer}.tenant-banner-badge--selected{padding:3px 10px;border-radius:var(--radius-full);background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success);font-size:12px;font-weight:600}.tenant-banner-badge--empty{color:var(--color-warning);font-size:12px}.tenant-context-banner{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:6px 10px;background:#f59e0b0f;border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-secondary);position:relative}.tenant-context-back{display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:4px 6px;cursor:pointer;transition:background .15s}.tenant-context-back:hover{background:var(--color-bg)}.tenant-context-icon{color:var(--color-warning, #f59e0b);flex-shrink:0}.tenant-context-name{font-weight:700;color:var(--color-text);white-space:nowrap;background:none;border:none;cursor:pointer;font-size:inherit;font-family:inherit;padding:0}.tenant-context-name:hover{text-decoration:underline;text-decoration-color:var(--color-brand)}.tenant-context-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}.tenant-context-badge.badge-active{background:#16a34a1f;color:#16a34a}.tenant-context-badge.badge-suspended{background:#dc26261f;color:#dc2626}.tenant-context-switcher-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:50;width:240px;max-width:90vw;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 32px #00000029;overflow:hidden}.tenant-context-switcher-list{max-height:260px;overflow-y:auto;padding:.25rem}.tenant-context-switcher-item{display:block;width:100%;padding:.5rem .7rem;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;color:var(--color-text);font-size:.85rem;font-weight:600}.tenant-context-switcher-item:hover{background:var(--color-bg)}.tenant-context-switcher-item.active{background:#7c3aed14;color:var(--color-brand)}.progress-track{background:var(--color-border);height:8px;border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;background:var(--gradient-brand);transition:width .6s ease}.activity-row{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-top:1px solid var(--color-border)}.activity-row:first-child{border-top:none}.activity-name{font-size:14px;color:var(--color-text)}.activity-meta{display:flex;gap:12px;align-items:center}.activity-time{font-size:12px;color:var(--color-text-secondary)}.device-chip{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-secondary)}.filter-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center}@media (max-width: 768px){.filter-row{gap:10px}.filter-row .date-input,.filter-row .search-input-wrap{flex:1 1 100%;min-width:0}.filter-row .filter-label{display:none}.filter-row .btn{flex:1;justify-content:center}}.filter-label{font-size:13px;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.date-input{height:44px;padding:0 10px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:16px;font-family:inherit;color:var(--color-text);background:var(--color-surface);outline:none;color-scheme:light;cursor:pointer;transition:border-color .15s,box-shadow .15s;min-width:138px}.date-input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #0d94881a}.date-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.5;filter:invert(40%) sepia(50%) saturate(500%) hue-rotate(140deg);transition:opacity .15s}.date-input:hover::-webkit-calendar-picker-indicator,.date-input:focus::-webkit-calendar-picker-indicator{opacity:.85}.schedule-form-card{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;padding:16px 20px;margin-bottom:16px}.schedule-form-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--color-text-secondary)}.schedule-row{display:flex;align-items:center;gap:16px;padding:16px 20px;margin-bottom:8px}.schedule-row-name{flex:1 1 180px}.schedule-row-name strong{display:block;font-weight:600;font-size:15px;color:var(--color-text)}.schedule-row-name span{font-size:13px;color:var(--color-text-muted);margin-top:2px;display:block}.schedule-row-time{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--color-text-secondary);flex:0 0 150px}.schedule-row-grace{font-size:13px;color:var(--color-text-secondary);flex:0 0 140px}.schedule-row-badge{flex:0 0 90px}.schedule-row-actions{display:flex;gap:4px}.confirm-text{font-size:14px;color:var(--color-text-secondary);margin-bottom:8px;line-height:1.6}.donut-chart{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.donut-chart__svg-wrap{position:relative;flex:0 0 auto;width:160px;height:160px}.donut-chart__svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-chart__seg{transition:stroke-dasharray .6s ease,opacity .2s ease}.donut-chart__center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.donut-chart__total{font-size:1.75rem;font-weight:700;line-height:1;color:var(--color-text)}.donut-chart__total-label{margin-top:4px;font-size:.75rem;font-weight:500;color:var(--color-text-muted)}.donut-chart__legend{flex:1 1 160px;display:flex;flex-direction:column;gap:10px;min-width:140px}.donut-chart__legend-row{display:flex;align-items:center;gap:10px;font-size:.8125rem}.donut-chart__dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.donut-chart__legend-label{color:var(--color-text-secondary);flex:1}.donut-chart__legend-value{font-weight:700;color:var(--color-text)}.donut-chart__legend-pct{color:var(--color-text-muted);font-size:.75rem;min-width:38px;text-align:right}.donut-chart__empty{font-size:.8125rem;color:var(--color-text-muted);padding:24px 0}.sparkline{display:block;width:100%;height:28px;overflow:visible}.sparkline__area{opacity:.18}.sparkline__line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sparkline__dot{stroke:var(--color-surface);stroke-width:1.5}.heatmap{display:flex;flex-direction:column;gap:12px}.heatmap__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.heatmap__dow{font-size:.6875rem;font-weight:600;color:var(--color-text-muted);text-align:center;padding-bottom:2px}.heatmap__cell{aspect-ratio:1 / 1;border-radius:6px;border:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:600;color:var(--color-text-muted);cursor:default;transition:transform .12s ease,box-shadow .12s ease}.heatmap__cell--filled{color:var(--color-text-inverse);border-color:transparent}.heatmap__cell--filled:hover{transform:scale(1.08);box-shadow:var(--shadow-level-2)}.heatmap__cell--empty{background:var(--gradient-brand-subtle)}.heatmap__cell--blank{background:transparent;border-color:transparent}.heatmap__legend{display:flex;align-items:center;justify-content:flex-end;gap:6px;font-size:.6875rem;color:var(--color-text-muted)}.heatmap__legend-swatch{width:12px;height:12px;border-radius:4px;border:1px solid var(--color-border-subtle)}.step-progress{display:flex;align-items:flex-start;width:100%}.step-progress__step{display:flex;flex-direction:column;align-items:center;flex:1;text-align:center;position:relative}.step-progress__node{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:700;background:var(--color-surface);border:2px solid var(--color-border-strong);color:var(--color-text-muted);z-index:1;transition:all .2s ease}.step-progress__node--done{background:var(--gradient-brand);border-color:transparent;color:var(--color-text-inverse);box-shadow:var(--shadow-level-1)}.step-progress__node--current{border-color:var(--color-brand);color:var(--color-brand-text);box-shadow:0 0 0 4px var(--color-brand-light)}.step-progress__connector{position:absolute;top:17px;left:50%;width:100%;height:2px;background:var(--color-border);z-index:0}.step-progress__connector--done{background:var(--gradient-brand)}.step-progress__label{margin-top:8px;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);max-width:90px}.step-progress__step--done .step-progress__label,.step-progress__step--current .step-progress__label{color:var(--color-text)}.step-bar{display:flex;align-items:flex-start;margin-bottom:1.75rem}.step-item{display:flex;align-items:flex-start;flex:1}.step-item:last-child{flex:none}.step-body{display:flex;flex-direction:column;align-items:center;gap:6px}.step-node{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;transition:all .25s}.step-node--done{background:var(--color-success);color:#fff}.step-node--active{background:var(--gradient-brand);color:#fff;box-shadow:0 0 0 4px #7c3aed26}.step-node--inactive{background:#64748b1f;color:#64748b}.step-label{font-size:11px;white-space:nowrap}.step-label--active{font-weight:600;color:var(--color-brand)}.step-label--done{font-weight:500;color:var(--color-success)}.step-label--inactive{font-weight:400;color:#94a3b8}.step-connector{flex:1;height:2px;margin-top:14px;margin-inline:8px;transition:background .3s}.step-connector--done{background:var(--color-success)}.step-connector--inactive{background:#64748b26}.enrollment-layout{display:flex;flex-direction:column;gap:1.25rem;max-width:700px}.enrollment-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;transition:opacity .2s,filter .2s}.enrollment-section--locked{opacity:.45;pointer-events:none;-webkit-user-select:none;user-select:none;filter:grayscale(.3)}.enrollment-section h3{font-size:1rem;font-weight:600;color:var(--color-text);margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.form-group{display:flex;flex-direction:column;gap:.375rem;margin-bottom:.75rem}.form-group label{font-size:.8125rem;font-weight:600;color:var(--color-text)}.user-id-input,.user-id-select{padding:.625rem .875rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.9375rem;color:var(--color-text);outline:none;width:100%;background:var(--color-surface);cursor:pointer;transition:border-color .15s,box-shadow .15s}.user-id-input:focus,.user-id-select:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #7c3aed1f}.users-error{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);padding:.75rem 1rem;font-size:.875rem;color:var(--color-danger);margin-bottom:.75rem}.user-confirm-banner{display:inline-flex;align-items:center;gap:.5rem;background:var(--color-brand-light);border:1px solid rgba(124,58,237,.2);border-radius:var(--radius-full);padding:.3rem .875rem;font-size:.8125rem;font-weight:600;color:var(--color-brand);margin-bottom:1rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-confirm-banner .dot{width:6px;height:6px;border-radius:50%;background:var(--color-brand);flex-shrink:0}.camera-wrapper{position:relative;background:#000;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4 / 3;max-width:420px}.camera-video{width:100%;height:100%;object-fit:cover;display:block}.camera-canvas{display:none}.camera-placeholder{width:100%;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--color-text-secondary);background:var(--color-bg);border:2px dashed var(--color-border);border-radius:var(--radius-md);text-align:center;padding:2rem 1rem;font-size:.875rem}.camera-placeholder-icon{font-size:2.5rem}.camera-actions{display:flex;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.captured-preview{display:flex;align-items:flex-start;gap:1.25rem;flex-wrap:wrap;padding:1rem;background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border)}.captured-preview img{width:180px;height:135px;object-fit:cover;border-radius:var(--radius-md);border:2px solid var(--color-brand);flex-shrink:0}.captured-meta{display:flex;flex-direction:column;gap:.375rem;padding-top:.25rem}.captured-label{font-size:.875rem;font-weight:600;color:var(--color-text)}.captured-sub{font-size:.8125rem;color:var(--color-text-secondary)}.file-upload-divider{display:flex;align-items:center;gap:.75rem;margin:1rem 0;color:var(--color-text-muted);font-size:.8rem}.file-upload-divider:before,.file-upload-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.file-upload-zone{border:1.5px dashed var(--color-border);border-radius:var(--radius-md);padding:1.125rem;display:flex;align-items:center;justify-content:center;gap:.625rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s;font-size:.875rem;color:var(--color-text-secondary);position:relative;-webkit-user-select:none;user-select:none}.file-upload-zone:hover{border-color:var(--color-brand);background:var(--color-brand-light);color:var(--color-brand)}.file-upload-zone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.file-upload-zone--selected{border-color:var(--color-success);background:var(--color-success-bg);color:var(--color-success)}.consent-row{display:flex;align-items:flex-start;gap:.75rem;font-size:.875rem;color:var(--color-text);cursor:pointer;line-height:1.55;margin-bottom:1.25rem;padding:1rem;background:var(--color-bg);border-radius:var(--radius-md);border:1.5px solid var(--color-border);transition:border-color .15s,background .15s}.consent-row:has(input:checked){border-color:var(--color-success);background:var(--color-success-bg)}.consent-row input[type=checkbox]{margin-top:.15rem;width:16px;height:16px;accent-color:var(--color-brand);flex-shrink:0;cursor:pointer}.enrollment-result{padding:.875rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.enrollment-result.success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.enrollment-result.error{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger)}.enrollment-submit-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.enrollment-hint{font-size:.8rem;color:var(--color-text-muted)}.step-nav-row{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border)}.voice-toggle{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.voice-toggle input{accent-color:var(--color-brand);cursor:pointer}.angle-cards{display:flex;gap:.75rem;margin-bottom:1.25rem}.angle-card{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.875rem .5rem .625rem;border-radius:var(--radius-lg);border:1.5px solid var(--color-border);background:var(--color-bg);transition:border-color .2s,background .2s,box-shadow .2s;position:relative;overflow:hidden}.angle-card--idle{opacity:.5}.angle-card--active{border-color:var(--color-brand);background:var(--color-brand-light);box-shadow:0 0 0 3px #7c3aed1f,0 4px 16px #7c3aed1a}.angle-card--done{border-color:var(--color-success);background:var(--color-success-bg)}.angle-card-ring{position:relative;width:52px;height:52px;display:flex;align-items:center;justify-content:center}.angle-ring-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.angle-card-icon{display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:color .2s}.angle-card--active .angle-card-icon{color:var(--color-brand)}.angle-card--done .angle-card-icon{color:var(--color-success)}.angle-card-label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);letter-spacing:.02em}.angle-card--active .angle-card-label{color:var(--color-brand)}.angle-card--done .angle-card-label{color:var(--color-success)}.angle-card-badge{position:absolute;top:6px;right:6px;font-size:.6rem;font-weight:700;letter-spacing:.06em;color:#fff;background:var(--color-brand);border-radius:99px;padding:1px 6px;text-transform:uppercase}.cam-instruction{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(10,10,20,.94) 0%,rgba(10,10,20,.55) 75%,transparent 100%);padding:1.25rem 1rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;pointer-events:none}.cam-instruction--dim{background:linear-gradient(to top,rgba(10,10,20,.65) 0%,transparent 100%)}.cam-instruction-icon{color:#c4b5fdd9;margin-bottom:.1rem}.cam-instruction-text{font-size:1rem;font-weight:700;color:#f1f5f9;letter-spacing:-.1px;text-align:center}.cam-instruction-countdown{font-size:2.5rem;font-weight:900;color:#c4b5fde6;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-1px;text-shadow:0 0 20px rgba(124,58,237,.5)}.camera-detection-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;display:block}.enroll-phase-dots{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.enroll-phase-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;background:#64748b1f;color:#64748b;border:1.5px solid rgba(100,116,139,.2);transition:all .2s}.enroll-phase-dot.active{background:var(--gradient-brand);color:#fff;border-color:transparent;box-shadow:0 0 0 3px #7c3aed26}.enroll-phase-dot.done{background:var(--color-success);color:#fff;border-color:transparent}.enroll-phase-dots-label{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);margin-left:.25rem}.enroll-phase-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(10,10,20,.92) 0%,rgba(10,10,20,.5) 75%,transparent 100%);padding:1.25rem 1rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.3rem;pointer-events:none}.enroll-phase-overlay--dim{background:linear-gradient(to top,rgba(10,10,20,.6) 0%,transparent 100%)}.enroll-phase-label{font-size:1rem;font-weight:700;color:#f1f5f9;letter-spacing:-.1px}.enroll-phase-hint{font-size:.75rem;color:#94a3b8}.enroll-countdown-wrap{width:100%;max-width:200px;display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.enroll-countdown-bar{flex:1;height:3px;background:#ffffff1f;border-radius:99px;overflow:hidden}.enroll-countdown-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#06b6d4);border-radius:99px;transition:width .9s linear}.enroll-countdown-num{font-size:.72rem;color:#a78bfa;font-variant-numeric:tabular-nums;font-weight:600;min-width:1.4rem;text-align:right}.enroll-previews{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.enroll-previews--sm .enroll-preview-thumb img{max-height:80px}.enroll-preview-thumb{display:flex;flex-direction:column;align-items:center;gap:.3rem;flex:1;min-width:80px;max-width:150px}.enroll-preview-thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-md);border:1.5px solid var(--color-brand)}.enroll-preview-thumb span{font-size:.7rem;color:var(--color-text-secondary);font-weight:500}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}.kiosk-page{min-height:100vh;background:#0f172a;color:#f1f5f9;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:2rem 1rem;font-family:Inter,Geist,-apple-system,BlinkMacSystemFont,sans-serif}.kiosk-header{width:100%;max-width:640px;display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.kiosk-clock{text-align:center;flex:1}.kiosk-clock-time{font-size:2.25rem;font-weight:700;letter-spacing:.04em;color:#f1f5f9;font-variant-numeric:tabular-nums;line-height:1.1}.kiosk-clock-date{font-size:.72rem;color:#64748b;text-transform:capitalize;margin-top:2px;letter-spacing:.03em}.kiosk-brand{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:800;letter-spacing:-.5px}.kiosk-brand span{background:linear-gradient(135deg,#0d9488,#006387);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.kiosk-brand-icon{color:#0d9488;filter:drop-shadow(0 0 6px rgba(13,148,136,.6))}.kiosk-setup-btn{display:flex;align-items:center;gap:6px;background:none;border:1px solid rgba(255,255,255,.12);color:#94a3b8;padding:.375rem .75rem;border-radius:6px;font-size:.8rem;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.kiosk-setup-btn:hover{background:#ffffff0f;color:#e2e8f0;border-color:#fff3}.kiosk-setup-panel{width:100%;max-width:560px;background:#1e293b;border:1px solid rgba(107,216,203,.15);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.kiosk-setup-panel h3{font-size:1rem;font-weight:600;color:#f1f5f9;margin-bottom:.75rem}.kiosk-setup-panel p{font-size:.85rem;color:#94a3b8;margin-bottom:1rem;line-height:1.6}.kiosk-token-row{display:flex;gap:.5rem}.kiosk-token-input{flex:1;padding:.625rem .875rem;background:#0f172a;border:1.5px solid rgba(255,255,255,.1);border-radius:8px;color:#f1f5f9;font-size:.9rem;outline:none;font-family:Geist Mono,Fira Code,monospace;transition:border-color .15s,box-shadow .15s}.kiosk-token-input:focus{border-color:#0d9488;box-shadow:0 0 0 3px #0d94882e}.kiosk-token-save-btn{background:linear-gradient(135deg,#0d9488,#0891b2);color:#fff;border:none;border-radius:8px;padding:.625rem 1rem;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap;box-shadow:0 4px 12px #0d948859;transition:opacity .15s,transform .1s}.kiosk-token-save-btn:hover{opacity:.9;transform:translateY(-1px)}.kiosk-token-status{margin-top:.5rem;font-size:.8rem}.kiosk-token-status.ok{color:#34d399}.kiosk-token-status.missing{color:#f87171}.kiosk-no-token-warning{width:100%;max-width:560px;background:#ba1a1a1f;border:1px solid rgba(186,26,26,.35);border-radius:8px;padding:.75rem 1rem;color:#fca5a5;font-size:.875rem;text-align:center}.kiosk-camera-area{width:100%;max-width:640px;display:flex;flex-direction:column;align-items:center;gap:1rem}.kiosk-camera-wrapper{position:relative;width:100%;background:#000;border-radius:12px;overflow:hidden;aspect-ratio:4 / 3;border:1.5px solid rgba(107,216,203,.2);box-shadow:0 0 0 1px #0d948814,0 8px 32px #0006}.kiosk-video{width:100%;height:100%;object-fit:cover;display:block;transform:scaleX(-1)}.kiosk-canvas{display:none}.kiosk-detection-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;transform:scaleX(-1);display:block}.kiosk-camera-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:#64748b;background:#1e293b;min-height:300px;text-align:center;padding:1.5rem}.kiosk-camera-placeholder-icon{font-size:3.5rem}.kiosk-camera-placeholder p{color:#64748b;font-size:.9rem}.kiosk-hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.kiosk-hud-svg{width:100%;height:100%}.kiosk-btn{flex:1;padding:1.1rem 1rem;border:none;border-radius:12px;font-size:1.25rem;font-weight:700;cursor:pointer;letter-spacing:-.3px;transition:opacity .15s,transform .08s,box-shadow .15s}.kiosk-btn:active:not(:disabled){transform:scale(.97)}.kiosk-btn:disabled{opacity:.4;cursor:not-allowed}.kiosk-btn-checkin{background:linear-gradient(135deg,#0d9488,#059669);color:#fff;box-shadow:0 4px 16px #0d948859}.kiosk-btn-checkin:hover:not(:disabled){opacity:.9;box-shadow:0 6px 20px #0d948873}.kiosk-result-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;border-radius:10px;padding:1.5rem;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.kiosk-result-overlay.success{background:#059669eb}.kiosk-result-overlay.error{background:#ba1a1ae6}.kiosk-result-type-badge{font-size:.78rem;font-weight:700;letter-spacing:.12em;color:#ffffffe6;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:4px 14px}.kiosk-result-icon{font-size:3.5rem}.kiosk-result-name{font-size:2rem;font-weight:800;color:#fff;letter-spacing:-.5px}.kiosk-result-time{font-size:2.5rem;font-weight:700;color:#fffffff2;font-variant-numeric:tabular-nums;letter-spacing:.04em}.kiosk-result-status{font-size:.95rem;color:#fffc;text-transform:capitalize;background:#00000026;padding:3px 12px;border-radius:999px}.kiosk-result-error-msg{font-size:1.1rem;font-weight:600;color:#fff;padding:0 1rem}.kiosk-processing{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:#0f172ae0;border-radius:10px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.kiosk-scan-icon{animation:kiosk-scan-pulse 1s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(13,148,136,.7))}@keyframes kiosk-scan-pulse{0%,to{opacity:.7;transform:scaleX(.92)}50%{opacity:1;transform:scaleX(1.08)}}.kiosk-processing p{color:#6ee7e7;font-size:1rem;font-weight:500;letter-spacing:.04em}.kiosk-status-bar{width:100%;max-width:560px;display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:#475569;padding:0 .25rem}.kiosk-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:.4rem}.kiosk-status-dot.green{background:#34d399;box-shadow:0 0 4px #34d39999}.kiosk-status-dot.red{background:#f87171}.kiosk-status-dot.amber{background:#fbbf24;box-shadow:0 0 4px #fbbf2480}.kiosk-hud-bracket{animation:kiosk-bracket-pulse 2.5s ease-in-out infinite}@keyframes kiosk-bracket-pulse{0%,to{opacity:.7}50%{opacity:1}}.kiosk-scan-line{animation:kiosk-scan-sweep 2s ease-in-out infinite;transform-origin:center;filter:drop-shadow(0 0 3px rgba(107,216,203,.8))}@keyframes kiosk-scan-sweep{0%{transform:translateY(0);opacity:.9}48%{opacity:1}50%{transform:translateY(266px);opacity:.9}98%{opacity:1}to{transform:translateY(0);opacity:.9}}.kiosk-countdown{width:100%;max-width:560px;display:flex;align-items:center;gap:.75rem;padding:0 .25rem}.kiosk-countdown-bar{flex:1;height:6px;background:#ffffff14;border-radius:999px;overflow:hidden}.kiosk-countdown-fill{height:100%;transition:width .25s linear;background:#0d9488;border-radius:999px}.kiosk-countdown-label{flex-shrink:0;font-size:.72rem;font-weight:600;letter-spacing:.04em;color:#64748b;font-variant-numeric:tabular-nums;white-space:nowrap}.kiosk-offline-banner{width:100%;max-width:560px;margin-bottom:1rem;background:#d9770624;border:1px solid rgba(217,119,6,.45);border-radius:8px;padding:.625rem 1rem;color:#fcd34d;font-size:.875rem;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.kiosk-offline-banner button{background:#d97706e6;color:#fff;border:none;border-radius:6px;padding:.375rem .875rem;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .15s}.kiosk-offline-banner button:hover{opacity:.85}.kiosk-lock-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0a1628f7;display:flex;align-items:center;justify-content:center;cursor:pointer}.kiosk-lock-content{text-align:center;color:#fff}.kiosk-lock-icon{font-size:3rem;margin-bottom:1rem}.kiosk-lock-text{font-size:1.5rem;font-weight:600;opacity:.8;letter-spacing:.05em}@media (max-width: 768px){.kiosk-page{padding:1rem .75rem}.kiosk-header{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.kiosk-brand{font-size:1.15rem}.kiosk-brand-icon{width:18px;height:18px}.kiosk-clock{text-align:right;flex:unset}.kiosk-clock-time{font-size:1.1rem;letter-spacing:.02em}.kiosk-clock-date{font-size:.65rem;display:none}.kiosk-camera-area{max-width:100%}.kiosk-camera-wrapper{border-radius:8px;aspect-ratio:3 / 4}.kiosk-status-bar{flex-direction:column;align-items:flex-start;gap:4px;font-size:.7rem;padding:0 .5rem}.kiosk-countdown-label{display:none}.kiosk-countdown{max-width:100%;padding:0 .5rem}.kiosk-setup-panel,.kiosk-no-token-warning,.kiosk-offline-banner{max-width:100%}.kiosk-result-name{font-size:1.35rem}.kiosk-result-time{font-size:1.75rem}.kiosk-result-type-badge{font-size:.7rem}.kiosk-result-error-msg{font-size:.95rem}.kiosk-result-overlay{padding:1rem}.kiosk-scan-icon{width:28px;height:28px}.kiosk-processing p{font-size:.85rem}.kiosk-token-row{flex-direction:column}.kiosk-token-save-btn{text-align:center}}.selfenroll-title{font-size:.85rem;color:#94a3b8;font-weight:500}.selfenroll-steps{display:flex;gap:.5rem;width:100%;justify-content:center;flex-wrap:wrap}.selfenroll-step{font-size:.78rem;color:#475569;padding:.35rem .75rem;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff05;transition:color .15s,border-color .15s,background .15s}.selfenroll-step.active{color:#6ee7e7;border-color:#0d948866;background:#0d94881f}.selfenroll-step.done{color:#34d399;border-color:#34d3994d}.selfenroll-form{width:100%;display:flex;flex-direction:column;gap:.75rem}.selfenroll-hint{font-size:.85rem;color:#94a3b8;line-height:1.6;text-align:center}.selfenroll-upload{width:100%;text-align:center;padding:.7rem;border:1px dashed rgba(255,255,255,.18);border-radius:8px;color:#94a3b8;font-size:.85rem;cursor:pointer;transition:border-color .15s,color .15s}.selfenroll-upload:hover{border-color:#0d948866;color:#e2e8f0}.selfenroll-preview-sm{aspect-ratio:4 / 3;max-width:240px}.selfenroll-consent{width:100%;background:#1e293b;border:1px solid rgba(107,216,203,.15);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.selfenroll-consent-text{font-size:.82rem;color:#94a3b8;line-height:1.65}.selfenroll-consent-check{display:flex;align-items:flex-start;gap:.6rem;font-size:.85rem;color:#e2e8f0;cursor:pointer;line-height:1.5}.selfenroll-consent-check input{margin-top:.2rem;width:16px;height:16px;flex-shrink:0;accent-color:#0d9488;cursor:pointer}.selfenroll-phase-dots{display:flex;gap:.5rem;justify-content:center}.selfenroll-phase-dot{width:10px;height:10px;border-radius:50%;background:#ffffff1a;border:1.5px solid rgba(255,255,255,.15);transition:background .2s,border-color .2s}.selfenroll-phase-dot.active{background:#0d9488;border-color:#0d9488;box-shadow:0 0 6px #0d948899}.selfenroll-phase-dot.done{background:#34d399;border-color:#34d399}.selfenroll-phase-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(15,23,42,.95) 0%,rgba(15,23,42,.6) 80%,transparent 100%);padding:1.5rem 1.25rem 1.25rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;pointer-events:none}.selfenroll-phase-overlay--dim{background:linear-gradient(to top,rgba(15,23,42,.7) 0%,transparent 100%)}.selfenroll-phase-label{font-size:1.15rem;font-weight:700;color:#f1f5f9;letter-spacing:-.2px;display:flex;align-items:center;gap:.5rem}.selfenroll-arrow{font-size:1.4rem;color:#6ee7e7}.selfenroll-phase-hint{font-size:.8rem;color:#94a3b8;letter-spacing:.02em}.selfenroll-phase-num{font-size:.72rem;color:#6bd8cb8c;font-weight:600;letter-spacing:.1em}.selfenroll-countdown-wrap{width:100%;max-width:240px;display:flex;align-items:center;gap:.5rem;margin-top:.2rem}.selfenroll-countdown-bar{flex:1;height:4px;background:#ffffff1a;border-radius:99px;overflow:hidden}.selfenroll-countdown-fill{height:100%;background:linear-gradient(90deg,#0d9488,#6ee7e7);border-radius:99px;transition:width .9s linear}.selfenroll-countdown-num{font-size:.78rem;color:#6ee7e7;font-variant-numeric:tabular-nums;font-weight:600;min-width:1.6rem;text-align:right}.selfenroll-previews{display:flex;gap:.75rem;justify-content:center;width:100%}.selfenroll-previews--sm .selfenroll-preview-thumb img{max-height:90px}.selfenroll-preview-thumb{display:flex;flex-direction:column;align-items:center;gap:.3rem;flex:1;max-width:160px}.selfenroll-preview-thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1.5px solid rgba(107,216,203,.3)}.selfenroll-preview-thumb span{font-size:.72rem;color:#64748b;font-weight:500}
