@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.face-verification-pulse{animation:pulse 1.5s ease-in-out infinite}@keyframes successPulse{0%{opacity:0;transform:scale(.8) translateY(-20px)}20%{opacity:1;transform:scale(1.05) translateY(0)}40%{transform:scale(1) translateY(0)}80%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.9) translateY(-10px)}}.admin-page-shell{display:flex;flex-direction:column;min-height:100vh}.feedback-page-container{margin:0 auto;max-width:1600px;padding:0 20px;width:100%}.admin-page-shell main{flex:1 0 auto}.admin-card{background:var(--card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:22px;transition:box-shadow .2s ease,transform .1s ease}.admin-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.admin-hero{background:linear-gradient(135deg,var(--brand-50) 0,#fff 100%);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:28px 0 24px;padding:28px 32px}.admin-hero-title{color:var(--text);font-size:24px;font-weight:700;margin:0 0 8px}.admin-hero-subtitle{color:var(--muted);font-size:14px;margin:0}.admin-table{border-collapse:initial;border-spacing:0;margin-top:16px;table-layout:auto;width:100%}.feedback-page-container .admin-table{min-width:100%}.feedback-page-container .admin-table td,.feedback-page-container .admin-table th{padding:14px 16px;text-align:center;white-space:nowrap}.feedback-page-container .admin-table td:first-child,.feedback-page-container .admin-table th:first-child{width:60px}.feedback-page-container .admin-table td:nth-child(2),.feedback-page-container .admin-table th:nth-child(2){width:120px}.feedback-page-container .admin-table td:nth-child(3),.feedback-page-container .admin-table th:nth-child(3){width:100px}.feedback-page-container .admin-table td:nth-child(4),.feedback-page-container .admin-table th:nth-child(4){width:150px}.feedback-page-container .admin-table td:nth-child(5),.feedback-page-container .admin-table th:nth-child(5){width:100px}.feedback-page-container .admin-table td:nth-child(6),.feedback-page-container .admin-table th:nth-child(6){width:180px}.feedback-page-container .admin-table td:last-child,.feedback-page-container .admin-table th:last-child{width:200px}.feedback-page-container .admin-table td:last-child>div{align-items:center;display:flex;gap:4px;justify-content:center;width:100%}.admin-table td,.admin-table th{border-bottom:1px solid var(--border);padding:12px 14px;text-align:left}.admin-table thead th{background:#f9fafb;color:#374151;font-size:13px;font-weight:700}.admin-table tbody tr:hover{background:#f9fafb}.admin-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.admin-actions .btn{font-size:12px;min-height:32px;padding:6px 12px}.admin-badge{border-radius:var(--radius-sm);display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;text-transform:uppercase}.admin-badge-success{background-color:#dcfce7;color:#166534}.admin-badge-warning{background-color:#fef3c7;color:#92400e}.admin-badge-error{background-color:#fee2e2;color:#991b1b}.admin-badge-info{background-color:#dbeafe;color:#1e40af}.admin-pagination{align-items:center;border-top:1px solid var(--border);display:flex;justify-content:space-between;margin-top:16px;padding:12px 0}.admin-pagination-info{color:#6b7280;font-size:14px}.admin-pagination-controls{display:flex;gap:8px}.admin-filters{align-items:center;background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:16px}.admin-filters input,.admin-filters select{min-width:120px}.admin-stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.admin-stat-card{background:var(--card);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:20px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.admin-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.admin-stat-number{color:var(--brand);font-size:28px;font-weight:700;margin-bottom:8px}.admin-stat-label{color:#6b7280;font-size:14px;letter-spacing:.5px;text-transform:uppercase}@media (max-width:1200px){.feedback-page-container{max-width:1400px}}@media (max-width:768px){.admin-hero{padding:16px}.admin-hero-title{font-size:20px}.admin-card{padding:16px}.admin-table{font-size:14px}.admin-table td,.admin-table th{padding:8px 10px}.feedback-page-container{max-width:100%;padding:0 10px}.feedback-page-container .admin-table{font-size:12px}.feedback-page-container .admin-table td,.feedback-page-container .admin-table th{padding:6px 8px;text-align:center}.feedback-page-container .admin-table td:first-child,.feedback-page-container .admin-table th:first-child{width:40px}.feedback-page-container .admin-table td:nth-child(2),.feedback-page-container .admin-table th:nth-child(2){width:80px}.feedback-page-container .admin-table td:nth-child(3),.feedback-page-container .admin-table th:nth-child(3){width:60px}.feedback-page-container .admin-table td:nth-child(4),.feedback-page-container .admin-table th:nth-child(4){width:100px}.feedback-page-container .admin-table td:nth-child(5),.feedback-page-container .admin-table th:nth-child(5){width:60px}.feedback-page-container .admin-table td:nth-child(6),.feedback-page-container .admin-table th:nth-child(6){width:120px}.feedback-page-container .admin-table td:last-child,.feedback-page-container .admin-table th:last-child{width:140px}.feedback-page-container .admin-table td:last-child>div{align-items:center;display:flex;flex-wrap:wrap;gap:2px;justify-content:center;width:100%}.admin-actions{align-items:stretch;flex-direction:column}.admin-actions .btn{margin-bottom:8px;width:100%}.admin-filters{align-items:stretch;flex-direction:column}.admin-filters input,.admin-filters select{width:100%}.admin-stats-grid{grid-template-columns:1fr}}:root{--brand:#8b1538;--brand-600:#751332;--brand-700:#5f0f29;--brand-50:#fdf2f5;--brand-100:#fce7ec;--text:#1a1d24;--text-secondary:#4b5563;--muted:#6b7280;--bg:#f8f9fc;--bg-elevated:#fff;--card:#fff;--border:#e5e7eb;--border-light:#f0f1f4;--success:#0d9488;--danger:#dc2626;--warning:#d97706;--info:#0369a1;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 12px 32px #00000014;--shadow-brand:0 4px 14px #8b153833;--transition:0.2s ease;--font-sans:"Microsoft YaHei","微软雅黑","Segoe UI",sans-serif}*{box-sizing:border-box}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(180deg,#fafbfd,#f5f7fb);color:#1a1d24;color:var(--text);font-family:Microsoft YaHei,微软雅黑,Segoe UI,sans-serif;font-family:var(--font-sans);line-height:1.6;margin:0}#root,body,html{height:100%}.page-shell{display:flex;flex-direction:column;min-height:100%}.page-shell main{flex:1 0 auto}.page-shell footer{flex-shrink:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}h1,h2,h3,h4,h5,h6{color:#1a1d24;color:var(--text);font-family:Microsoft YaHei,微软雅黑,Segoe UI,sans-serif;font-family:var(--font-sans);font-weight:700;margin:0 0 12px}p{color:#4b5563;color:var(--text-secondary);margin:0 0 12px}a{color:#8b1538;color:var(--brand);text-decoration:none;transition:color .2s ease;transition:color var(--transition)}a:hover{color:#751332;color:var(--brand-600);text-decoration:underline}.container{box-sizing:border-box;margin-left:auto;margin-right:auto;max-width:1400px;padding:0 24px;width:100%}.site-header{backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);background:#ffffffeb;border-bottom:1px solid #f0f1f4;border-bottom:1px solid var(--border-light);box-shadow:0 1px 2px #0000000a;box-shadow:var(--shadow-sm);position:-webkit-sticky;position:sticky;top:0;z-index:50}.navbar{gap:24px;height:72px;justify-content:space-between}.brand,.navbar{align-items:center;display:flex}.brand{color:inherit;gap:14px;text-decoration:none}.brand-logo{border-radius:8px;border-radius:var(--radius-sm);flex-shrink:0;height:200px;object-fit:contain;width:200px}.nav-actions{gap:20px}.desktop-nav,.nav-actions{align-items:center;display:flex}.desktop-nav{gap:4px}.nav-link{border-radius:8px;border-radius:var(--radius-sm);color:#4b5563;color:var(--text-secondary);font-weight:500;padding:10px 16px;text-decoration:none;transition:color .2s ease,background-color .2s ease;transition:color var(--transition),background-color var(--transition)}.nav-link.active,.nav-link:hover{background-color:#fdf2f5;background-color:var(--brand-50);color:#8b1538;color:var(--brand)}.nav-link.active{font-weight:600}.mobile-bottom-nav{align-items:center;background:#fff;border-top:1px solid #e5e7eb;border-top:1px solid var(--border);bottom:0;box-shadow:0 -2px 10px #0000001a;display:none;justify-content:space-around;left:0;padding:8px 0;position:fixed;right:0;z-index:100}.mobile-nav-item{align-items:center;color:#6b7280;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:8px 16px;text-decoration:none;transition:color .2s ease}.mobile-nav-item.active,.mobile-nav-item:hover{color:#8b1538;color:var(--brand)}.nav-icon{font-size:20px;margin-bottom:4px}.mobile-nav-item span{font-size:12px;font-weight:500}.page-header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.page-title{color:#1f2937;font-size:28px;font-weight:700;margin:0}.page-subtitle{color:#6b7280;color:var(--muted);font-size:14px;margin:4px 0 0}.btn{align-items:center;border:1px solid #0000;border-radius:12px;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:Microsoft YaHei,微软雅黑,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:14px;font-weight:600;justify-content:center;min-height:42px;padding:10px 18px;text-decoration:none;transition:transform .05s ease,background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;transition:transform .05s ease,background-color var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition)}.btn:active{transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background-color:#8b1538;background-color:var(--brand);border-color:#8b1538;border-color:var(--brand);box-shadow:0 4px 14px #8b153833;box-shadow:var(--shadow-brand);color:#fff}.btn-primary:hover:not(:disabled){background-color:#751332;background-color:var(--brand-600);border-color:#751332;border-color:var(--brand-600);box-shadow:0 6px 20px #8b153847}.btn-secondary{background-color:#fdf2f5;background-color:var(--brand-50);border-color:#e5e7eb;border-color:var(--border);color:#8b1538;color:var(--brand)}.btn-secondary:hover:not(:disabled){background-color:#fce7ec;background-color:var(--brand-100)}.btn-success{background-color:#0d9488;background-color:var(--success);border-color:#0d9488;border-color:var(--success);border-radius:12px;border-radius:var(--radius-md);color:#fff}.btn-success:hover:not(:disabled){filter:brightness(1.05)}.btn-outline{background-color:initial;border:1.5px solid #8b1538;border:1.5px solid var(--brand);color:#8b1538;color:var(--brand)}.btn-outline:hover:not(:disabled){background-color:#fdf2f5;background-color:var(--brand-50);color:#751332;color:var(--brand-600)}.btn-danger{background-color:#dc2626;background-color:var(--danger);border-color:#dc2626;border-color:var(--danger);border-radius:12px;border-radius:var(--radius-md);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.08)}.btn-warning{background-color:#d97706;background-color:var(--warning);border-color:#d97706;border-color:var(--warning);border-radius:12px;border-radius:var(--radius-md);color:#fff}.btn-warning:hover:not(:disabled){filter:brightness(1.08)}.btn-link{background:#0000;border:none;color:#8b1538;color:var(--brand);min-height:auto;padding:0}.btn-link:hover{text-decoration:underline}.btn-disabled{background-color:#e5e7eb;background-color:var(--border);border-color:#e5e7eb;border-color:var(--border);color:#6b7280;color:var(--muted);cursor:not-allowed}.form-group{margin-bottom:16px}.form-label{color:#374151;display:block;font-weight:600;margin-bottom:6px}.form-input,.form-select{background-color:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-md);font-family:Microsoft YaHei,微软雅黑,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:14px;padding:10px 14px;transition:border-color .2s ease,box-shadow .2s ease;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.form-input:focus,.form-select:focus{border-color:#8b1538;border-color:var(--brand);box-shadow:0 0 0 3px #8b15381f;outline:none}input::placeholder,textarea::placeholder{color:#9ca3af}.form-help{color:#6b7280;color:var(--muted)}.form-error,.form-help{font-size:12px;margin-top:6px}.form-error{color:#dc2626;color:var(--danger)}.card{background:#fff;background:var(--card);border:1px solid #f0f1f4;border:1px solid var(--border-light);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 1px 2px #0000000a;box-shadow:var(--shadow-sm);padding:22px;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;transition:box-shadow var(--transition),transform var(--transition),border-color var(--transition)}.card:hover{border-color:#e5e7eb;border-color:var(--border);box-shadow:0 4px 12px #0000000f;box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(12,1fr)}.card-grid>.card{grid-column:span 3}.table{border-collapse:initial;border-spacing:0;width:100%}.table td,.table th{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);padding:12px 14px;text-align:left}.table thead th{color:#374151;font-size:13px;font-weight:700}.table tbody tr:hover,.table thead th{background:#f9fafb}.hero{background:linear-gradient(135deg,#fdf2f5,#fff 50%,#f8fafc);background:linear-gradient(135deg,var(--brand-50) 0,#fff 50%,#f8fafc 100%);border:1px solid #f0f1f4;border:1px solid var(--border-light);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 1px 2px #0000000a;box-shadow:var(--shadow-sm);margin:28px 0 24px;padding:28px 32px}.hero-title{color:#1a1d24;color:var(--text);font-size:26px;font-weight:700;letter-spacing:-.02em;margin:0 0 10px}.hero-subtitle{color:#4b5563;color:var(--text-secondary);font-size:15px;margin:0}.status{border-radius:8px;border-radius:var(--radius-sm);display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;text-transform:uppercase}.status-booked{background-color:#fff7ed;color:#9a3412}.status-ongoing{background-color:#ccfbf1;color:#0f766e}.status-completed{background-color:#e0f2fe;color:#075985}.status-cancelled{background-color:#fee2e2;color:#991b1b}.status-expired{background-color:#f3f4f6;color:#374151}.badge{background:#fdf2f5;background:var(--brand-50);border-radius:8px;border-radius:var(--radius-sm);color:#8b1538;color:var(--brand);display:inline-block;font-size:12px;font-weight:600;padding:4px 10px}.alert{border:1px solid #0000;border-radius:12px;border-radius:var(--radius-md);margin-bottom:16px;padding:14px 18px}.alert-error{background-color:#fef2f2;border-color:#fecaca;color:#991b1b}.alert-success{background-color:#f0fdfa;border-color:#99f6e4;color:#0f766e}.alert-info{background-color:#f0f9ff;border-color:#bae6fd;color:#0369a1}.alert-warning{background-color:#fffbeb;border-color:#fde68a;color:#b45309}.notice{background:#fdf2f5;background:var(--brand-50);border-left:4px solid #8b1538;border-left:4px solid var(--brand);border-radius:0 12px 12px 0;border-radius:0 var(--radius-md) var(--radius-md) 0;color:#5f0f29;color:var(--brand-700);padding:14px 18px}.loading{align-items:center;color:#666;display:flex;justify-content:center;padding:40px}.spinner{animation:spin 1s linear infinite;border:2px solid #f3f3f3;border-radius:50%;border-top-color:#8b1538;border-top:2px solid var(--brand);height:20px;margin-right:8px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.empty-state{color:#666;padding:40px 20px;text-align:center}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.video-container{background:#000;border-radius:12px;overflow:hidden;position:relative}.video-preview{display:block;height:auto;width:100%}.divider{background:#e5e7eb;background:var(--border);height:1px;margin:16px 0}.stack-8>*+*{margin-top:8px}.stack-12>*+*{margin-top:12px}.stack-16>*+*{margin-top:16px}.inline-8>*+*{margin-left:8px}.inline-12>*+*{margin-left:12px}.volume-bar{background:#eee;border-radius:4px;height:20px;overflow:hidden;position:relative;width:100%}.volume-fill{border-radius:4px;height:100%;transition:width .1s ease}.volume-fill.low{background:#22c55e}.volume-fill.high{background:#ef4444}.site-footer{background:#fff;background:var(--bg-elevated);border-top:1px solid #f0f1f4;border-top:1px solid var(--border-light);color:#6b7280;color:var(--muted);font-size:14px;margin-top:32px;padding:28px 0}.site-footer a{color:#1a1d24;color:var(--text);font-weight:500;text-decoration:none}.site-footer a:hover{color:#8b1538;color:var(--brand);text-decoration:none}.footer-links{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.footer-dot{background:#e5e7eb;background:var(--border);border-radius:999px;display:inline-block;height:4px;width:4px}.footer-muted{color:#6b7280;color:var(--muted)}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:2000}.modal-card{background:#fff;background:var(--card);border:1px solid #f0f1f4;border:1px solid var(--border-light);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 12px 32px #00000014;box-shadow:var(--shadow-lg);max-width:420px;padding:24px;width:100%}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:#0003;background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#0000004d}.login-page{align-items:center;background:linear-gradient(135deg,#f8f6f7,#efe9eb 40%,#f5f2f8);display:flex;flex-direction:column;justify-content:center;min-height:100vh;overflow:hidden;padding:clamp(3.25rem,8vw,4rem) 20px 20px;position:relative}.login-page__toolbar{align-items:flex-start;display:flex;justify-content:flex-end;left:0;padding:clamp(.75rem,2.5vw,1.25rem) clamp(1rem,4vw,1.75rem);pointer-events:none;position:absolute;right:0;top:0;z-index:2}.login-page__toolbar>*{pointer-events:auto}@media (max-width:520px){.login-page__toolbar{justify-content:center}}.login-page:before{background:radial-gradient(ellipse 80% 50% at 20% 20%,#8b15380f 0,#0000 50%),radial-gradient(ellipse 60% 40% at 80% 80%,#6366f10d 0,#0000 50%);content:"";inset:0;pointer-events:none;position:absolute}.login-container{max-width:400px;text-align:center;width:100%}.university-brand{border-bottom:1px solid #e5e7eb80;margin-bottom:32px;padding-bottom:24px}.university-logo{margin-bottom:20px}.university-logo-img{border-radius:8px;display:block;height:100px;margin:0 auto;object-fit:contain;width:100px}.university-names{margin-bottom:20px}.university-name-chinese{color:#8b1538;color:var(--brand);font-size:18px;font-weight:700;margin:0 0 6px}.university-name-chinese,.university-name-english{font-family:Microsoft YaHei,微软雅黑,Segoe UI,sans-serif;font-family:var(--font-sans)}.university-name-english{color:#751332;color:var(--brand-600);font-size:13px;font-weight:500;letter-spacing:.02em;margin:0}.brand-separator{background:linear-gradient(90deg,#0000,#8b1538,#0000);background:linear-gradient(90deg,#0000,var(--brand),#0000);border-radius:1px;height:2px;margin:0 auto 12px;width:120px}.celebration-text{color:#6b7280;color:var(--muted);font-family:Microsoft YaHei,微软雅黑,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:12px;font-style:italic;margin:0}.login-form-container{background:#fff}.auth-card{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#fffffff7;border:1px solid #f0f1f4;border:1px solid var(--border-light);border-radius:20px;border-radius:var(--radius-xl);box-shadow:0 12px 32px #00000014;box-shadow:var(--shadow-lg);padding:40px}.login-form{width:100%}.form-group{margin-bottom:20px}.input-container{align-items:center;display:flex;position:relative}.input-icon{color:#6b7280;font-size:16px;left:12px;position:absolute;z-index:1}.form-input{background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;color:#374151;font-size:14px;padding:12px 12px 12px 40px;transition:all .2s ease;width:100%}.form-input:focus{background:#fff;border-color:#8b1538;border-color:var(--brand);box-shadow:0 0 0 3px #8b15381a;outline:none}.form-input::placeholder{color:#9ca3af}.form-options{justify-content:space-between;margin-bottom:24px}.form-options,.remember-me{align-items:center;display:flex}.remember-me{color:#374151;cursor:pointer;font-size:14px;gap:8px}.remember-me input[type=checkbox]{accent-color:#8b1538;accent-color:var(--brand);height:16px;width:16px}.forgot-password{color:#8b1538;color:var(--brand);font-size:14px;text-decoration:none}.forgot-password:hover{text-decoration:underline}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:14px;margin-bottom:16px;padding:12px}.admin-btn,.login-btn{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;margin-bottom:12px;padding:12px;transition:all .2s ease;width:100%}.login-btn{background:#8b1538;background:var(--brand);color:#fff}.login-btn:hover:not(:disabled){background:#751332;background:var(--brand-600)}.admin-btn{background:#8b1538;background:var(--brand);color:#fff}.admin-btn:hover:not(:disabled){background:#751332;background:var(--brand-600)}.admin-btn:disabled,.login-btn:disabled{cursor:not-allowed;opacity:.6}.register-link{color:#6b7280;font-size:14px;margin-top:20px;text-align:center}.login-link{color:#8b1538;color:var(--brand);font-weight:500;text-decoration:none}.login-link:hover{text-decoration:underline}@media (max-width:1024px){.card-grid>.card{grid-column:span 4}.card-grid>.card[style*="gridColumn: span 2"]{grid-column:span 1}}@media (max-width:768px){.navbar{height:80px}.brand-logo{height:140px;width:140px}.card-grid{gap:12px;grid-template-columns:repeat(2,1fr)}.card-grid>.card{grid-column:span 1}.card-grid>.card[style*="gridColumn: span 2"]{grid-column:span 2}.btn{margin-bottom:8px;width:100%}.page-title{font-size:20px}.page-header{gap:8px}.page-header .btn{font-size:13px;min-height:32px;padding:6px 10px;white-space:nowrap;width:auto}.desktop-nav{display:none}.mobile-bottom-nav{display:flex!important}.page-shell{padding-bottom:60px}.card-grid .card{min-height:auto;padding:12px}.card-grid .card>div:first-child{font-size:14px!important;margin-bottom:6px!important}.card-grid .card>div:nth-child(2){font-size:12px!important;margin-bottom:8px!important}.card-grid .card .btn{font-size:13px;padding:8px 12px}.login-page{padding:16px}.auth-card{padding:24px}.university-name-chinese{font-size:16px}.university-name-english{font-size:12px}.university-logo-img{height:80px;width:80px}.todo-list-container{padding:12px!important}.todo-list-container .btn{font-size:13px!important;margin-top:8px!important;padding:8px 12px!important;width:100%!important}.todo-list-container>div:first-child{font-size:15px!important;margin-bottom:10px!important}.todo-list-container>div:first-child span{display:block!important;font-size:11px!important;margin-left:0!important;margin-top:4px!important}.welcome-text{display:none!important}.logout-btn{font-size:12px!important;min-height:32px!important;padding:6px 10px!important}}@media (max-width:480px){.card-grid{gap:8px;grid-template-columns:1fr}.card-grid .card{padding:10px}.card-grid .card>div:first-child{font-size:13px!important;margin-bottom:4px!important}.card-grid .card>div:nth-child(2){font-size:11px!important;margin-bottom:6px!important}.card-grid .card .btn{font-size:12px;padding:6px 10px}}.announcement-overlay{align-items:center;animation:announcementFadeIn .22s cubic-bezier(.25,1,.5,1);background:color-mix(in srgb,#0f1117 46%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:2000}.announcement-modal{animation:announcementModalIn .32s cubic-bezier(.16,1,.3,1);background:color-mix(in srgb,#fff 97%,var(--brand) 3%);border:1px solid color-mix(in srgb,var(--border) 78%,var(--brand) 15%);border-radius:var(--radius-xl);box-shadow:0 30px 64px -32px color-mix(in srgb,var(--brand) 26%,#0000);max-height:min(90vh,840px);overflow:auto;padding:clamp(18px,3vw,26px);width:min(860px,95vw)}.announcement-modal--normal{--announcement-accent:var(--brand)}.announcement-modal--important{--announcement-accent:color-mix(in srgb,var(--warning) 86%,#1a1d24 14%)}.announcement-modal--urgent{--announcement-accent:color-mix(in srgb,var(--danger) 92%,#1a1d24 8%)}.announcement-head{border-bottom:3px solid var(--announcement-accent);margin-bottom:16px;padding-bottom:12px}.announcement-head-main{align-items:center;display:flex;gap:10px}.announcement-icon{font-size:26px;line-height:1}.announcement-title{color:color-mix(in srgb,var(--text) 90%,var(--announcement-accent) 10%);font-size:clamp(26px,3.2vw,40px);font-weight:760;line-height:1.22;margin:0}.announcement-tag{color:var(--text-secondary);font-size:20px;font-weight:650;margin-top:8px}.announcement-body{margin-bottom:20px;white-space:pre-wrap;word-break:break-word}.announcement-line{color:var(--text-secondary);font-size:17px;line-height:1.75;margin:0 0 12px}.announcement-line:first-child{color:color-mix(in srgb,var(--text) 88%,var(--announcement-accent) 12%);font-weight:650}.announcement-body--rich{white-space:normal}.announcement-rich{color:var(--text-secondary);font-size:17px;line-height:1.75;word-break:break-word}.announcement-rich p{margin:0 0 12px}.announcement-rich p:last-child{margin-bottom:0}.announcement-rich p:first-of-type{color:color-mix(in srgb,var(--text) 88%,var(--announcement-accent) 12%);font-weight:650}.announcement-foot{border-top:1px solid var(--border-light);display:flex;justify-content:center;padding-top:14px}.announcement-ack-btn{border-radius:999px;color:#fff;font-size:16px;font-weight:700;min-height:46px;min-width:140px;transition:transform .18s cubic-bezier(.22,1,.36,1),filter .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1)}.announcement-ack-btn:hover{transform:translateY(-1px)}.announcement-ack-btn--normal{background:var(--brand);border-color:var(--brand)}.announcement-ack-btn--important{background:color-mix(in srgb,var(--warning) 86%,#1a1d24 14%);border-color:color-mix(in srgb,var(--warning) 70%,#0000)}.announcement-ack-btn--urgent{background:color-mix(in srgb,var(--danger) 92%,#1a1d24 8%);border-color:color-mix(in srgb,var(--danger) 55%,#0000)}@keyframes announcementFadeIn{0%{opacity:0}to{opacity:1}}@keyframes announcementModalIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:760px){.announcement-title{font-size:clamp(22px,7vw,32px)}.announcement-tag{font-size:16px}.announcement-line{font-size:15px}}@media (prefers-reduced-motion:reduce){.announcement-ack-btn,.announcement-modal,.announcement-overlay{animation:none!important;transition:none!important}.announcement-ack-btn:hover{filter:none;transform:none}}header.site-header.app-nav{background:color-mix(in srgb,#fff 94%,var(--brand) 2%);border-bottom:1px solid color-mix(in srgb,var(--border) 82%,var(--brand) 8%);box-shadow:0 1px 0 color-mix(in srgb,#fff 85%,#0000);z-index:100}.app-nav .navbar{gap:clamp(.75rem,2vw,1.5rem);height:auto;min-height:56px;padding:.5rem 0}.app-nav__brand{align-items:center;color:inherit;display:flex;flex-shrink:0;text-decoration:none;transition:opacity .2s cubic-bezier(.22,1,.36,1)}.app-nav__brand:hover{opacity:.88}.app-nav__brand:focus-visible{border-radius:var(--radius-sm);outline:2px solid color-mix(in srgb,var(--brand) 45%,#0000);outline-offset:4px}.app-nav .app-nav__logo.brand-logo{border-radius:4px;height:clamp(36px,5vw,44px);max-width:min(220px,42vw);object-fit:contain;object-position:left center;width:auto}.app-nav__menu{flex:1 1;flex-wrap:wrap;gap:.125rem;justify-content:center;min-width:0}.app-nav__link{border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.875rem;font-weight:500;padding:.5rem .85rem;position:relative;text-decoration:none;transition:color .2s cubic-bezier(.22,1,.36,1),background-color .2s cubic-bezier(.22,1,.36,1)}.app-nav__link:after{background:var(--brand);border-radius:1px;bottom:4px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:width .22s cubic-bezier(.25,1,.5,1);width:0}.app-nav__link:hover{background:color-mix(in srgb,var(--brand-50) 55%,#0000);color:var(--brand)}.app-nav__link:hover:after{width:calc(100% - 1.25rem)}.app-nav__link.is-active{background:color-mix(in srgb,var(--brand-50) 70%,#0000);color:var(--brand);font-weight:600}.app-nav__link.is-active:after{width:calc(100% - 1.25rem)}.app-nav__actions{align-items:center;display:flex;flex-shrink:0;flex-wrap:wrap;gap:.65rem;justify-content:flex-end}.app-nav__user{color:color-mix(in srgb,var(--muted) 65%,var(--text) 35%);font-size:.8125rem;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav__btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.8125rem;font-weight:600;gap:.35rem;justify-content:center;min-height:36px;padding:.35rem .85rem;transition:transform .12s cubic-bezier(.22,1,.36,1),background-color .2s cubic-bezier(.22,1,.36,1),border-color .2s cubic-bezier(.22,1,.36,1),color .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1)}.app-nav__btn:disabled{cursor:not-allowed;opacity:.55}.app-nav__btn:not(:disabled):hover{transform:translateY(-1px)}.app-nav__btn:not(:disabled):active{transform:translateY(0)}.app-nav__btn--announce{box-shadow:0 2px 8px color-mix(in srgb,var(--brand) 18%,#0000);color:#fff;position:relative}.app-nav__btn--announce--normal{background:var(--brand);border-color:var(--brand)}.app-nav__btn--announce--normal:hover:not(:disabled){background:var(--brand-600);border-color:var(--brand-600)}.app-nav__btn--announce--important{background:color-mix(in srgb,var(--warning) 88%,#1a1d24 12%);border-color:color-mix(in srgb,var(--warning) 70%,#0000)}.app-nav__btn--announce--important:hover:not(:disabled){filter:brightness(1.06)}.app-nav__btn--announce--urgent{background:color-mix(in srgb,var(--danger) 92%,#1a1d24 8%);border-color:color-mix(in srgb,var(--danger) 55%,#0000)}.app-nav__btn--announce--urgent:hover:not(:disabled){filter:brightness(1.05)}.app-nav__btn--announce.is-unread{animation:app-nav-announce-soft 2.8s cubic-bezier(.25,1,.5,1) infinite}@keyframes app-nav-announce-soft{0%,to{box-shadow:0 2px 8px color-mix(in srgb,var(--brand) 16%,#0000)}50%{box-shadow:0 4px 14px color-mix(in srgb,var(--brand) 26%,#0000)}}.app-nav__btn--announce--important.is-unread{animation-name:app-nav-announce-soft-warn}@keyframes app-nav-announce-soft-warn{0%,to{box-shadow:0 2px 8px color-mix(in srgb,var(--warning) 22%,#0000)}50%{box-shadow:0 4px 14px color-mix(in srgb,var(--warning) 32%,#0000)}}.app-nav__btn--announce--urgent.is-unread{animation-name:app-nav-announce-soft-danger}@keyframes app-nav-announce-soft-danger{0%,to{box-shadow:0 2px 8px color-mix(in srgb,var(--danger) 22%,#0000)}50%{box-shadow:0 4px 14px color-mix(in srgb,var(--danger) 34%,#0000)}}.app-nav__dot{background:var(--danger);border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 35%,#0000);height:7px;position:absolute;right:-2px;top:-2px;width:7px}.app-nav__btn--support{background:linear-gradient(160deg,var(--brand) 0,var(--brand-600) 100%);border-color:color-mix(in srgb,var(--brand) 55%,#1a0a0e 45%);box-shadow:0 2px 10px color-mix(in srgb,var(--brand) 22%,#0000);color:color-mix(in srgb,#fff 96%,var(--brand) 4%)}.app-nav__btn--support:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 65%,#1a0a0e 35%);box-shadow:0 4px 14px color-mix(in srgb,var(--brand) 30%,#0000);color:color-mix(in srgb,#fff 98%,var(--brand) 2%);filter:brightness(1.05)}.app-nav__btn--support:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 70%,#fff 30%);outline-offset:2px}.app-nav__chev{font-size:.65rem;opacity:.88;transition:transform .2s cubic-bezier(.22,1,.36,1)}.app-nav__btn--support .app-nav__chev{color:inherit;opacity:.9}.app-nav__btn--support[aria-expanded=true] .app-nav__chev{transform:rotate(180deg)}.app-nav__btn--lang{background:#fff;border-color:color-mix(in srgb,var(--brand) 42%,#0000);box-shadow:0 1px 4px color-mix(in srgb,var(--brand) 10%,#0000);color:var(--brand);gap:.45rem;min-width:auto;padding:.3rem .55rem}.app-nav__btn--lang:hover:not(:disabled){background:color-mix(in srgb,var(--brand-50) 50%,#fff 50%);border-color:color-mix(in srgb,var(--brand) 55%,#0000)}.app-nav__lang-inner{align-items:center;border:1.5px solid;border-radius:50%;display:inline-flex;flex-direction:row;font-size:.62rem;font-weight:700;gap:1px;height:1.7rem;justify-content:center;letter-spacing:-.02em;line-height:1;width:1.7rem}.app-nav__lang-char--lat{font-family:var(--font-sans);margin-left:1px}.app-nav__lang-target{font-size:.75rem;font-weight:700;min-width:1.35rem;text-align:center}.app-nav__dropdown-wrap{position:relative}.app-nav__dropdown{background:color-mix(in srgb,#fff 97%,var(--brand) 3%);border:1px solid color-mix(in srgb,var(--border) 80%,var(--brand) 10%);border-radius:var(--radius-md);box-shadow:0 12px 40px -12px color-mix(in srgb,var(--brand) 14%,#0000),0 4px 16px #0000000f;min-width:300px;opacity:0;padding:.75rem .875rem;pointer-events:none;position:absolute;right:0;top:calc(100% + 6px);transform:translate3d(0,-6px,0);transition:opacity .2s cubic-bezier(.22,1,.36,1),transform .24s cubic-bezier(.22,1,.36,1),visibility 0s linear .24s;visibility:hidden;z-index:200}.app-nav__dropdown.is-open{opacity:1;pointer-events:auto;transform:translateZ(0);transition-delay:0s;visibility:visible}.app-nav__route{background:var(--brand-50);border-left:3px solid var(--brand);border-radius:var(--radius-sm);margin-bottom:.5rem;padding:.5rem .75rem}.app-nav__route--adm{background:#f0f9ff;border-left-color:var(--info)}.app-nav__route-head{align-items:baseline;display:flex;gap:.375rem}.app-nav__route-ico{font-size:.8125rem;line-height:1}.app-nav__route-title{color:var(--text);font-size:.8125rem;font-weight:600}.app-nav__route-who{color:var(--brand-600);font-size:.75rem;font-weight:600;margin-left:auto;white-space:nowrap}.app-nav__route--adm .app-nav__route-who{color:var(--info)}.app-nav__route-scope{color:var(--muted);font-size:.75rem;line-height:1.4;margin:.125rem 0 .375rem}.app-nav__route-phones{display:flex;gap:.875rem;margin-bottom:.125rem}.app-nav__dropdown-tel{color:var(--brand);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;font-weight:600;text-decoration:none;transition:color .15s ease;white-space:nowrap}.app-nav__dropdown-tel:hover{color:var(--brand-600);text-decoration:underline}.app-nav__route--adm .app-nav__dropdown-tel{color:var(--info)}.app-nav__route--adm .app-nav__dropdown-tel:hover{color:#075985}.app-nav__route-mail{color:var(--brand);display:block;font-size:.8125rem;text-decoration:none;transition:color .15s ease;word-break:break-all}.app-nav__route-mail:hover{color:var(--brand-600);text-decoration:underline}.app-nav__route--adm .app-nav__route-mail{color:var(--info)}.app-nav__route--adm .app-nav__route-mail:hover{color:#075985}.app-nav__dropdown-qr{border-top:1px solid var(--border-light);padding-top:.75rem;text-align:left}.app-nav__dropdown-label{color:var(--text);font-size:.8125rem;font-weight:500;margin-bottom:.25rem}.app-nav__dropdown-groups{list-style:none;margin:0;padding:0;text-align:left}.app-nav__dropdown-group{align-items:center;color:var(--text);display:flex;font-size:.8125rem;gap:.75rem;justify-content:space-between;padding:.2rem 0}.app-nav__dropdown-group-num{color:var(--brand);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600}.app-nav__logout{min-height:36px}@media (max-width:768px){.app-nav .desktop-nav{display:none}.app-nav__actions{gap:.5rem}.app-nav__user{display:none}.app-nav__btn{font-size:.75rem;min-height:32px;padding:.3rem .65rem}}.mobile-bottom-nav.app-nav-mobile{background:color-mix(in srgb,#fff 96%,var(--brand) 2%);border-top:1px solid color-mix(in srgb,var(--border) 82%,var(--brand) 8%);box-shadow:0 -4px 24px -8px color-mix(in srgb,var(--brand) 12%,#0000);padding:6px 0 calc(6px + env(safe-area-inset-bottom, 0))}.mobile-bottom-nav.app-nav-mobile .mobile-nav-item{color:var(--muted);transition:color .2s cubic-bezier(.22,1,.36,1),transform .15s cubic-bezier(.22,1,.36,1)}.mobile-bottom-nav.app-nav-mobile .mobile-nav-item.active,.mobile-bottom-nav.app-nav-mobile .mobile-nav-item:hover{color:var(--brand)}.mobile-bottom-nav.app-nav-mobile .mobile-nav-item.active .nav-icon{transform:scale(1.06)}.mobile-bottom-nav.app-nav-mobile .nav-icon{transition:transform .2s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){.app-nav__link:after{transition:none}.app-nav__btn--announce--important.is-unread,.app-nav__btn--announce--urgent.is-unread,.app-nav__btn--announce.is-unread{animation:none}.app-nav__btn:not(:disabled):hover{transform:none}.app-nav__chev,.app-nav__dropdown,.app-nav__dropdown.is-open{transition:none}.mobile-bottom-nav.app-nav-mobile .mobile-nav-item.active .nav-icon,.mobile-bottom-nav.app-nav-mobile .nav-icon{transform:none;transition:none}}.welcome-overlay{align-items:center;animation:welcomeFadeIn .22s cubic-bezier(.25,1,.5,1) forwards;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:color-mix(in srgb,#101216 62%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:2000}@keyframes welcomeFadeIn{0%{opacity:0}to{opacity:1}}@keyframes welcomeCardIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes welcomeRowIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.welcome-modal{animation:welcomeCardIn .38s cubic-bezier(.16,1,.3,1) forwards;background:color-mix(in srgb,#fff 97%,var(--brand) 2%);border:1px solid color-mix(in srgb,var(--border) 78%,var(--brand) 14%);border-radius:var(--radius-lg);box-shadow:0 1px 0 #fff,0 32px 64px -28px color-mix(in srgb,var(--brand) 30%,#0000);display:flex;flex-direction:column;max-height:min(88vh,780px);overflow:hidden;width:min(560px,100%)}.welcome-accent{background:linear-gradient(90deg,var(--brand-600),var(--brand),var(--brand-600));flex:none;height:3px}.welcome-head{background:color-mix(in srgb,var(--brand-50) 30%,#0000);flex:none;padding:26px 28px 20px;text-align:center}.welcome-crest{align-items:center;background:color-mix(in srgb,var(--brand) 7%,#fff);border:1px solid color-mix(in srgb,var(--brand) 22%,#0000);border-radius:50%;box-shadow:0 0 0 6px color-mix(in srgb,var(--brand-50) 22%,#0000);color:var(--brand);display:inline-flex;height:56px;justify-content:center;margin-bottom:12px;width:56px}.welcome-crest svg{height:26px;width:26px}.welcome-title{color:var(--text);font-size:23px;font-weight:750;letter-spacing:-.01em;line-height:1.25;margin:0}.welcome-sub{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:7px 0 0}.welcome-body{flex:1 1;min-height:0;overflow-y:auto;padding:18px 28px 20px}.welcome-lead{color:var(--text-secondary);font-size:13.5px;font-weight:650;margin:0 0 13px}.welcome-list{display:flex;flex-direction:column;gap:13px;list-style:none;margin:0;padding:0}.welcome-item{align-items:flex-start;animation:welcomeRowIn .4s cubic-bezier(.16,1,.3,1) backwards;display:flex;gap:13px}.welcome-item:first-child{animation-delay:.12s}.welcome-item:nth-child(2){animation-delay:.18s}.welcome-item:nth-child(3){animation-delay:.24s}.welcome-item:nth-child(4){animation-delay:.3s}.welcome-item-icon{align-items:center;background:color-mix(in srgb,var(--brand) 7%,#fff);border:1px solid color-mix(in srgb,var(--brand) 16%,#0000);border-radius:50%;color:var(--brand);display:inline-flex;flex:none;height:34px;justify-content:center;margin-top:1px;width:34px}.welcome-item-icon svg{height:17px;width:17px}.welcome-item-text{color:var(--text-secondary);font-size:15px;line-height:1.65;padding-top:5px}.welcome-foot{border-top:1px solid color-mix(in srgb,var(--border-light) 92%,#0000);flex:none;padding:16px 28px 20px}.welcome-ack-btn{font-size:15px;font-weight:700;min-height:46px;transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1);width:100%}.welcome-ack-btn:hover{transform:translateY(-1px)}.welcome-ack-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (max-width:560px){.welcome-head{padding:22px 18px 16px}.welcome-body{padding:16px 18px 18px}.welcome-foot{padding:14px 18px 18px}.welcome-title{font-size:20px}.welcome-item{gap:11px}.welcome-item-icon{height:30px;width:30px}.welcome-item-icon svg{height:15px;width:15px}.welcome-item-text{font-size:14.5px;padding-top:4px}}@media (prefers-reduced-motion:reduce){.welcome-item,.welcome-modal,.welcome-overlay{animation:none;opacity:1;transform:none}.welcome-ack-btn,.welcome-ack-btn:hover{transform:none;transition:none}}:root{--home-primary:#a3172a;--home-primary-dark:#7f1222;--home-primary-soft:#fdf2f4;--home-secondary:#c8334a;--home-success:#0f766e;--home-bg:#f5f5f7;--home-text-main:#1d1d1f;--home-text-muted:#6e6e73;--home-border:#e5e5ea;--home-shadow:0 14px 34px #00000014}.page-shell{background:radial-gradient(circle at 8% -10%,#ffffffe6,#0000 42%),radial-gradient(circle at 92% 4%,#fff9,#0000 34%),linear-gradient(180deg,#fbfbfd,#f5f5f7 45%,#f7f7f9)}.container{position:relative}.home-layout{padding-bottom:28px}.home-top{grid-gap:22px;align-items:stretch;display:grid;gap:22px;grid-template-columns:1.75fr 1fr;margin-top:28px}.home-body{margin-top:16px}.home-heroPrimary{align-items:center;display:flex;flex-wrap:wrap;gap:14px;margin-top:18px}.home-heroPrimaryBtn{border-radius:999px;padding-left:18px;padding-right:18px}.home-heroPrimaryHint{color:#6e6e73;color:var(--home-text-muted);font-size:13px;line-height:1.4}.home-next{align-items:center;background:#ffffffa6;border:1px solid #e5e5eae6;border-radius:20px;display:flex;gap:14px;justify-content:space-between;margin-top:18px;padding:14px}.home-next-label{color:#6e6e73;font-size:12px;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.home-next-title{color:#1d1d1f;color:var(--home-text-main);font-size:16px;font-weight:650;letter-spacing:-.015em;margin-top:4px}.home-next-actions{grid-gap:6px;display:grid;gap:6px;justify-items:end}.home-next-btn{border-radius:999px;padding-left:18px;padding-right:18px}.home-next-hint{color:#6e6e73;font-size:12px}.home-status-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr;margin-top:14px}.home-status-item{align-items:center;background:#ffffffe0;border:1px solid #ececf1;border-radius:16px;display:flex;gap:12px;justify-content:space-between;padding:12px 13px;transition:border-color .2s ease,box-shadow .2s ease}.home-status-item:hover{border-color:#d6d6dc;box-shadow:0 8px 18px #0000000f}.home-status-item span{color:#6e6e73;color:var(--home-text-muted);font-size:13px}.home-status-item strong{color:#1d1d1f;color:var(--home-text-main);font-size:14px}.home-status-details{border-top:1px solid #e5e5eab3;margin-top:12px;padding-top:12px}.home-status-details summary{color:#3a3a3c;cursor:pointer;font-size:13px;font-weight:650;list-style:none}.home-status-details summary::-webkit-details-marker{display:none}.home-status-details summary:after{color:#6e6e73;content:"▾";float:right}.home-status-details[open] summary:after{content:"▴"}.home-details-body{background:#ffffffb3;border:1px solid #ececf1;border-radius:18px;margin-top:10px;padding:10px}.home-stage-guide{background:#0000;border:0;margin-top:0;min-height:168px;padding:0;position:relative}.home-stage-kicker{color:#a3172ab3;display:inline-block;font-size:11px;font-weight:750;letter-spacing:.14em;margin-bottom:6px}.home-stage-copy{background:linear-gradient(180deg,#ffffffdb,#fafafccc);border:1px solid #e5e5ead9;border-radius:16px;display:flex;flex-direction:column;min-width:0;padding:12px 14px;position:relative;width:calc(100% - 190px);z-index:2}.home-stage-guide h4{color:#1d1d1f;color:var(--home-text-main);font-size:16px;letter-spacing:-.015em;line-height:1.28;margin:0}.home-stage-guide p{color:#6e6e73;color:var(--home-text-muted);font-size:13px;line-height:1.55;margin:6px 0 0;max-width:36ch}.home-stage-gif{filter:drop-shadow(0 18px 28px rgba(0,0,0,.12));height:170px;object-fit:contain;opacity:.92;pointer-events:none;position:absolute;right:10px;top:10px;width:170px;z-index:1}.home-stage-booking-time{background:#a3172a0f;border:1px solid #a3172a2e;border-radius:12px;color:#7f1222;color:var(--home-primary-dark);font-size:12px;font-weight:600;margin-top:8px;padding:7px 10px;position:relative;z-index:2}.home-stage-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:10px;padding-left:0;position:relative;width:100%;z-index:2}@media (max-width:768px){.home-stage-gif{height:150px;right:8px;top:8px;width:150px}.home-stage-copy{width:100%}.home-stage-actions{padding-left:0;width:100%}}.home-actionsRail{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffb8;border:1px solid #e5e5eaf2;border-radius:22px;margin-top:16px;overflow:hidden}.home-rail-item{grid-gap:12px;align-items:center;animation:homeFadeUp .56s cubic-bezier(.22,1,.36,1) both;border-bottom:1px solid #e5e5eabf;color:inherit;display:grid;gap:12px;grid-template-columns:34px 34px 1fr auto;padding:14px 16px;text-decoration:none;transition:background-color .2s ease,transform .2s ease}.home-rail-item:last-child{border-bottom:none}.home-rail-item:hover{background:#f5f5f7b3}.home-rail-item.is-recommended{background:linear-gradient(90deg,#a3172a1f,#fff0)}.home-rail-badge{background:#fdf2f4;background:var(--home-primary-soft);border:1px solid #a3172a2e;border-radius:999px;color:#a3172a;color:var(--home-primary);font-size:12px;font-weight:700}.home-rail-badge,.home-rail-icon{align-items:center;display:inline-flex;height:30px;justify-content:center;width:30px}.home-rail-icon{background:#f8f8fa;border:1px solid #ebebf0;border-radius:12px}.home-rail-icon svg{fill:#a3172a;fill:var(--home-primary);height:16px;width:16px}.home-rail-title{color:#1d1d1f;color:var(--home-text-main);display:block;font-weight:650;letter-spacing:-.012em}.home-rail-desc{color:#6e6e73;color:var(--home-text-muted);display:block;font-size:13px;margin-top:2px}.home-rail-state{background:#fffc;border:1px solid #ececf1;border-radius:999px;font-size:12px;font-weight:650;padding:4px 10px}.home-rail-state.is-ready{background:#e6fffa;border-color:#0f766e2e;color:#0f766e}.home-rail-state.is-locked{background:#fff1f2;border-color:#7f1d1d29;color:#7f1d1d}.home-hero{grid-gap:22px;align-items:start;display:grid;gap:22px;grid-template-columns:1.75fr 1fr;margin-top:28px}.home-heroHeader{background:radial-gradient(circle at 0 0,#a3172a1f,#0000 40%),radial-gradient(circle at 70% 10%,#a3172a0f,#0000 45%),linear-gradient(180deg,#ffffffdb,#fafafcd1);border:1px solid #e5e5eacc;border-radius:28px;box-shadow:0 22px 44px #00000014;height:100%;overflow:hidden;padding:clamp(22px,3.2vw,44px);position:relative}.home-heroHeader:after{background:linear-gradient(180deg,#a3172a,#c8334a);background:linear-gradient(180deg,var(--home-primary),var(--home-secondary));bottom:0;content:"";left:0;opacity:.95;position:absolute;top:0;width:10px}.home-heroAside{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffbd;border:1px solid #e5e5eaf2;border-radius:22px;box-shadow:0 18px 34px #0000000f;display:flex;flex-direction:column;height:100%;justify-content:center;overflow:hidden;padding:18px;position:relative}.home-booking-card,.home-main-panel,.home-side-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffc2;border:1px solid #e5e5eaf2;border-radius:24px;box-shadow:0 14px 34px #0000000f}.home-hero-kicker{color:#a3172a;color:var(--home-primary);font-size:12px;font-weight:700;letter-spacing:.14em;margin:0 0 12px;text-transform:uppercase}.home-hero-title{display:flex;flex-direction:column;gap:.45rem;margin:0;max-width:none}.home-hero-titleMain{color:oklch(.22 .02 15);display:block;font-family:var(--font-sans);font-size:clamp(1.75rem,3.1vw,2.45rem);font-weight:600;letter-spacing:-.045em;line-height:1.12;white-space:nowrap;word-break:keep-all}.home-hero-tagline{color:color-mix(in oklch,#a3172a 46%,#1d1d1f 54%);color:color-mix(in oklch,var(--home-primary) 46%,#1d1d1f 54%);font-size:14px;font-weight:650;letter-spacing:.06em;line-height:1.55;margin:12px 0 0;text-transform:none}.home-hero-tagline:before{background:linear-gradient(90deg,#a3172ad9,#a3172a1a);content:"";display:block;height:1px;margin:10px 0 8px;width:48px}.home-hero-titleEn{color:oklch(.48 .02 15);display:block;font-family:var(--font-sans);font-size:clamp(.8125rem,1.1vw,.9375rem);font-weight:500;letter-spacing:.04em;text-transform:none}.home-hero-subtitle{display:none}.home-hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.home-hero-tags span{background:#ffffffd1;border:1px solid #ececf1;border-radius:999px;color:#3a3a3c;font-size:12px;font-weight:550;padding:6px 13px}.home-hero-auth{display:flex;gap:12px;margin-top:24px}.home-hero-auth .btn{justify-content:center;min-width:128px}.home-heroAside h3{color:#1d1d1f;color:var(--home-text-main);font-size:18px;margin:0}.home-hero-side-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.home-progress-chip{background:#fff;border:1px solid #e5e5ea;border-radius:999px;color:#3a3a3c;font-size:12px;font-weight:700;padding:4px 10px;white-space:nowrap}.home-progress-track{background:#ebebf0;border-radius:999px;height:8px;margin-top:12px;overflow:hidden;position:relative;width:100%}.home-progress-track span{background:linear-gradient(90deg,#a3172a,#c8334a);background:linear-gradient(90deg,var(--home-primary),var(--home-secondary));border-radius:inherit;display:block;height:100%;transition:width .3s ease}.home-progress-text{color:#6e6e73;color:var(--home-text-muted);font-size:13px;margin:8px 0 0}.home-current-step{color:#4b4b51;font-size:13px;margin:8px 0 0}.home-quick-stats{grid-gap:10px;display:grid;gap:10px;margin-top:16px}.home-quick-stat{align-items:center;background:#ffffffe0;border:1px solid #ececf1;border-radius:16px;display:flex;gap:12px;justify-content:space-between;padding:12px 13px;transition:border-color .2s ease,box-shadow .2s ease}.home-quick-stat:hover{border-color:#d6d6dc;box-shadow:0 8px 18px #0000000f}.home-quick-stat span{color:#6e6e73;color:var(--home-text-muted);font-size:13px}.home-quick-stat strong{color:#1d1d1f;color:var(--home-text-main);font-size:14px}.home-content-v2{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1.65fr 1fr;margin-top:24px}.home-main-panel{background:linear-gradient(180deg,#fffffff2,#fafafceb);padding:26px}.home-notice-v2{background:linear-gradient(90deg,#a3172a17,#a3172a05);border-left:4px solid #a3172a;border-left:4px solid var(--home-primary);border-radius:14px;color:#424245;margin-bottom:16px}.home-process-board{margin-top:16px}.home-section-title h3{color:#1d1d1f;color:var(--home-text-main);font-size:clamp(20px,2.2vw,24px);letter-spacing:-.015em;margin:0}.home-section-title p{color:#6e6e73;color:var(--home-text-muted);font-size:14px;margin:7px 0 14px}.home-side-card{background:linear-gradient(180deg,#fffffff2,#fafafce6);padding:20px}.home-side-card h3{color:#1d1d1f;color:var(--home-text-main);font-size:18px;margin:0}.home-side-card>p{color:#6e6e73;color:var(--home-text-muted);font-size:14px;margin:8px 0 14px}.home-action-list{grid-gap:12px;display:grid;gap:12px}.home-action-list.primary,.home-action-list.secondary{grid-template-columns:1fr}.home-action-group+.home-action-group{margin-top:14px}.home-action-group-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:10px}.home-action-group-head h4{color:#2d2d31;font-size:14px;margin:0}.home-action-group-head span{background:#f1f1f5;border:1px solid #e6e6ec;border-radius:999px;color:#63636b;font-size:12px;padding:3px 9px}.home-action-item{background:linear-gradient(180deg,#fffffff5,#f8f8faed);border:1px solid #e7e7ec;border-radius:18px;padding:14px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.home-action-item.is-primary{background:linear-gradient(180deg,#fff7f9,#fff2f5);border-color:#f1c6cf}.home-action-item:hover{border-color:#ceced4;box-shadow:0 12px 28px #00000014;transform:translateY(-1px)}.home-action-head{align-items:flex-start;display:flex;gap:10px}.home-action-badge{background:#fdf2f4;background:var(--home-primary-soft);border:1px solid #f0d2d9;border-radius:999px;color:#a3172a;color:var(--home-primary);font-size:12px;font-weight:700}.home-action-badge,.home-action-icon{align-items:center;display:inline-flex;flex-shrink:0;height:30px;justify-content:center;width:30px}.home-action-icon{background:#f8f8fa;border:1px solid #ebebf0;border-radius:10px}.home-action-icon svg{fill:#a3172a;fill:var(--home-primary);height:16px;width:16px}.home-action-head h4{color:#1d1d1f;color:var(--home-text-main);font-size:16px;margin:0}.home-action-head p{color:#6e6e73;color:var(--home-text-muted);font-size:13px;line-height:1.5;margin:4px 0 0}.home-action-state{border-radius:999px;display:inline-block;font-size:12px;font-weight:600;margin-top:8px;padding:3px 10px}.home-action-state.is-ready{background:#e6fffa;color:#0f766e}.home-action-state.is-locked{background:#fff1f2;color:#7f1d1d}.home-action-btn{border-radius:999px;cursor:pointer;margin-top:10px;transition:filter .25s cubic-bezier(.25,1,.5,1),transform .18s cubic-bezier(.22,1,.36,1);width:100%}.home-action-btn:active{transform:translateY(1px) scale(.992)}.home-action-btn.btn-primary{background:linear-gradient(135deg,#a3172a,#c8334a);background:linear-gradient(135deg,var(--home-primary) 0,var(--home-secondary) 100%);border-color:#0000;color:#fff}.home-action-btn.btn-success{background:linear-gradient(135deg,#0f766e,#14b8a6);border-color:#0000;color:#fff}.home-action-btn.btn-disabled{background:#f5f5f7;border-color:#ececf1;color:#9a9aa0}.home-action-btn:hover{filter:brightness(1.02)}.home-action-btn:focus-visible{outline:3px solid #b0122f4d;outline-offset:2px}.home-booking-wrap{margin-top:24px}.home-booking-card{background:linear-gradient(180deg,#fffffff5,#fafafceb);border-radius:28px}.home-animate-up{animation:homeFadeUp .56s cubic-bezier(.22,1,.36,1) both}.home-animate-delay-1{animation-delay:80ms}.home-animate-delay-2{animation-delay:.14s}@keyframes homeFadeUp{0%{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:translateZ(0)}}.home-callout{grid-gap:12px;background:linear-gradient(180deg,#ffffffdb,#fafafccc);border:1px solid #ececf1;border-radius:18px;display:grid;gap:12px;grid-template-columns:28px 1fr;padding:14px}.home-callout-icon{align-items:center;background:#a3172a14;border:1px solid #a3172a2e;border-radius:10px;display:inline-flex;height:28px;justify-content:center;width:28px}.home-callout-icon svg{fill:#a3172a;fill:var(--home-primary);height:16px;width:16px}.home-callout-title{color:#1d1d1f;color:var(--home-text-main);font-size:13px;font-weight:650;letter-spacing:-.01em}.home-callout-text{color:#6e6e73;color:var(--home-text-muted);font-size:13px;line-height:1.65;margin-top:4px}.home-callout-warn{color:#a3172a;color:var(--home-primary);font-weight:650;margin-left:6px}.home-callout-warn--inline{margin-left:0}.home-callout-rules{color:#a3172a;color:var(--home-primary);font-size:13px;line-height:1.65;margin-top:6px}.home-callout-rules>div{padding-left:14px;position:relative}.home-callout-rules>div:before{background:#a3172a;background:var(--home-primary);border-radius:50%;content:"";height:5px;left:2px;opacity:.7;position:absolute;top:.62em;width:5px}.home-notice-v2{display:none}.home-notice{background:linear-gradient(180deg,#fdf2f4,#ffffffb8);background:linear-gradient(180deg,var(--home-primary-soft),#ffffffb8);border:1px solid #a3172a29;border-radius:14px;box-shadow:0 6px 18px #a3172a0d;margin-top:16px;padding:14px 16px}.home-notice-title{color:#7f1222;color:var(--home-primary-dark);display:block;font-size:14px;font-weight:650;letter-spacing:-.01em}.home-notice-text{color:#6e6e73;color:var(--home-text-muted);font-size:13px;line-height:1.65;margin:4px 0 0}.home-notice-cta{align-items:center;background:#fff;border:1px solid #a3172a52;border-radius:999px;color:#a3172a;color:var(--home-primary);display:inline-flex;font-size:12px;font-weight:600;margin-left:8px;padding:2px 12px;text-decoration:none;transition:background .2s ease,border-color .2s ease,color .2s ease}.home-notice-cta:hover{background:#a3172a;background:var(--home-primary);border-color:#a3172a;border-color:var(--home-primary);color:#fff;text-decoration:none}.home-flowSurface{background:#ffffffb3;border:1px solid #ececf1;border-radius:18px;margin-top:10px;padding:10px}@media (max-width:1100px){.home-content-v2,.home-hero,.home-top{grid-template-columns:1fr}}@media (max-width:768px){.home-hero,.home-top{gap:14px;margin-top:20px}.home-heroHeader{padding:22px 18px}.home-hero-titleMain{font-size:clamp(1.35rem,4.6vw,1.9rem)}.home-main-panel,.home-side-card{padding:16px}.home-hero-auth{flex-direction:column}.home-hero-auth .btn{width:100%}.home-hero-side-head{align-items:flex-start;flex-direction:column}.home-next{align-items:stretch;flex-direction:column}.home-next-actions{justify-items:stretch}.home-next-btn{width:100%}.home-rail-item{align-items:start;grid-template-columns:34px 34px 1fr}.home-rail-state{justify-self:start;margin-left:46px}}@media (prefers-reduced-motion:reduce){.home-action-btn,.home-action-item,.home-progress-track span,.home-quick-stat,.home-rail-item,.home-status-item{transition:none!important}.home-animate-up{animation:none!important}}.auth-lang{--auth-lang-ease:cubic-bezier(0.25,1,0.5,1);align-items:flex-end;display:inline-flex;flex-direction:column;gap:.4rem}.auth-lang--compact{align-items:flex-end;gap:.3rem}.auth-lang--compact .auth-lang__label{font-size:.65rem;letter-spacing:.12em}.auth-lang--compact .auth-lang__track{min-width:7.5rem}.auth-lang__label{animation:auth-lang-fade-in .45s var(--auth-lang-ease) .02s forwards;color:color-mix(in srgb,var(--muted) 72%,var(--brand) 28%);font-size:.6875rem;font-weight:600;letter-spacing:.16em;margin:0;opacity:0;text-transform:uppercase}.auth-lang__track{animation:auth-lang-fade-in .5s var(--auth-lang-ease) .08s forwards;background:color-mix(in srgb,var(--border) 55%,#0000);border-radius:999px;box-shadow:inset 0 1px 2px color-mix(in srgb,#000 6%,#0000);display:flex;min-width:8.75rem;opacity:0;padding:3px;position:relative;width:100%}.auth-lang__thumb{background:linear-gradient(165deg,var(--brand) 0,color-mix(in srgb,var(--brand) 88%,#1a0a0e 12%) 100%);border-radius:999px;bottom:3px;box-shadow:0 2px 8px color-mix(in srgb,var(--brand) 22%,#0000),0 1px 0 color-mix(in srgb,#fff 25%,#0000);left:3px;position:absolute;top:3px;transform:translateX(0);transition:transform .28s var(--auth-lang-ease),box-shadow .22s var(--auth-lang-ease);width:calc(50% - 3px);will-change:transform;z-index:0}.auth-lang__track[data-locale=en] .auth-lang__thumb{transform:translateX(100%)}.auth-lang__btn{background:#0000;border:none;border-radius:999px;color:color-mix(in srgb,var(--text-secondary) 85%,var(--brand) 15%);cursor:pointer;flex:1 1;font-family:inherit;font-size:.8125rem;font-weight:600;letter-spacing:.02em;margin:0;padding:.4rem .65rem;position:relative;transition:color .2s var(--auth-lang-ease),transform .12s var(--auth-lang-ease);z-index:1}.auth-lang__btn:hover{color:var(--brand)}.auth-lang__btn:active{transform:scale(.97)}.auth-lang__btn[aria-pressed=true]{color:#fff}.auth-lang__btn:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 55%,#0000);outline-offset:2px}@keyframes auth-lang-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.auth-lang__label,.auth-lang__track{animation:none;opacity:1}.auth-lang__btn,.auth-lang__thumb{transition-duration:.01ms}.auth-lang__btn:active{transform:none}@keyframes auth-lang-fade-in{0%,to{opacity:1;transform:none}}}.cityu-login{--cityu-ease-out:cubic-bezier(0.22,1,0.36,1);--cityu-ease-out-quart:cubic-bezier(0.25,1,0.5,1);--cityu-ink:color-mix(in srgb,var(--text) 92%,var(--brand) 8%);align-items:stretch;background:linear-gradient(165deg,#faf8f9,#f3f1f3 45%,#f7f5f6);color:var(--text);display:flex;min-height:100%;min-height:100dvh;overflow-x:hidden;position:relative}.cityu-login:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.04'/%3E%3C/svg%3E");content:"";inset:0;mix-blend-mode:multiply;opacity:.4;pointer-events:none;position:absolute;z-index:0}.cityu-login__lang-bar{position:absolute;right:1.25rem;top:1.25rem;z-index:20}.cityu-login__stage{animation:cityu-login-fade-up .6s var(--cityu-ease-out) .02s forwards;background:#1c1013;box-shadow:24px 0 64px -24px #160b0e80;flex:0 0 54%;min-height:100dvh;opacity:0;overflow:hidden;position:relative;z-index:1}.cityu-login__video{cursor:pointer;display:block;height:100%;inset:0;object-fit:cover;opacity:0;position:absolute;transition:opacity .5s ease;width:100%}.cityu-login__video.is-ready{opacity:1}.cityu-login__stage-scrim{background:linear-gradient(0deg,#160b0e9e 0,#160b0e4d 24%,#160b0e0d 50%,#160b0e29);inset:0;pointer-events:none;position:absolute;transition:opacity .45s var(--cityu-ease-out)}.cityu-login__stage.is-playing .cityu-login__stage-scrim{opacity:.45}.cityu-login__stage-credit{animation:cityu-login-fade-up .6s var(--cityu-ease-out) .34s forwards;bottom:clamp(1.25rem,3vw,1.75rem);color:#ffffff94;font-size:.6875rem;font-style:italic;letter-spacing:.1em;margin:0;opacity:0;pointer-events:none;position:absolute;right:clamp(1.25rem,3vw,2rem);transition:opacity .4s var(--cityu-ease-out)}.cityu-login__vctrl{animation:cityu-login-fade-up .35s var(--cityu-ease-out) .05s forwards;bottom:.875rem;display:flex;gap:.5rem;left:.875rem;opacity:0;position:absolute}.cityu-login__vctrl button{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffff29;border:1px solid #ffffff47;border-radius:50%;color:#fff;cursor:pointer;display:grid;height:38px;place-items:center;transition:background-color .2s var(--cityu-ease-out);width:38px}.cityu-login__vctrl button:hover{background:#ffffff4d}.cityu-login__vctrl button:focus-visible{outline:2px solid #fff;outline-offset:2px}.cityu-login__vctrl svg{height:18px;width:18px}.cityu-login__side{display:flex;flex:1 1;justify-content:center;min-height:100dvh;padding:clamp(4.5rem,9vh,5.5rem) clamp(1.5rem,4vw,3rem) clamp(1.5rem,4vw,3rem);position:relative;z-index:1}.cityu-login__col{display:flex;flex-direction:column;margin:auto 0;max-width:400px;width:100%}.cityu-login__brand-row{align-items:center;animation:cityu-login-fade-up .6s var(--cityu-ease-out) .1s forwards;display:flex;flex-direction:column;margin-bottom:1rem;opacity:0;text-align:center}.cityu-login__brand-logo{animation:cityu-login-logo-in .7s var(--cityu-ease-out) .08s forwards;filter:drop-shadow(0 1px 2px rgba(22,11,14,.1)) drop-shadow(0 16px 32px color-mix(in srgb,var(--brand) 16%,transparent));height:auto;margin-bottom:1.25rem;opacity:0;width:min(100%,300px)}@keyframes cityu-login-logo-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.cityu-login__brand-zh{color:var(--cityu-ink);font-size:1.375rem;font-weight:600;letter-spacing:.05em;margin:0}.cityu-login__brand-en{color:var(--muted);font-size:.6875rem;font-weight:500;letter-spacing:.14em;line-height:1.4;margin:.375rem auto 0;text-transform:uppercase}.cityu-login__brand-rule{animation:cityu-login-rule-in .7s var(--cityu-ease-out) .3s forwards;background:linear-gradient(90deg,#0000,color-mix(in srgb,var(--brand) 85%,#fff 15%),#0000);border-radius:999px;display:block;height:2px;margin:0 auto clamp(1.75rem,5vh,2.5rem);opacity:0;transform:scaleX(0);width:4.5rem}@keyframes cityu-login-rule-in{to{opacity:1;transform:scaleX(1)}}.cityu-login__panel{animation:cityu-login-fade-up .65s var(--cityu-ease-out) .22s forwards;background:linear-gradient(180deg,#fff 0,color-mix(in srgb,#fff 96%,var(--brand) 4%) 100%);border:1px solid color-mix(in srgb,var(--border) 75%,#0000);border-radius:18px;box-shadow:0 1px 2px #160b0e0d,0 16px 40px -16px #160b0e2e,0 32px 64px -32px color-mix(in srgb,var(--brand) 18%,#0000);opacity:0;padding:clamp(1.75rem,3vw,2.25rem)}.cityu-login__head{margin-bottom:1.5rem;text-align:center}.cityu-login__head-title{color:var(--cityu-ink);font-family:var(--font-sans);font-size:1.875rem;font-weight:600;line-height:1.3;margin:0 0 .375rem}.cityu-login__head-sub{color:var(--text-secondary);font-size:.9375rem;line-height:1.65;margin:0}.cityu-login__maintenance{animation:cityu-login-fade-up .6s var(--cityu-ease-out) .24s forwards;background:color-mix(in srgb,#fff7ed 92%,var(--warning) 8%);border:1px solid color-mix(in srgb,var(--warning) 35%,var(--border));border-radius:var(--radius-md);margin-bottom:1.25rem;opacity:0;padding:1rem 1.125rem;text-align:left}.cityu-login__maintenance-title{align-items:center;color:color-mix(in srgb,var(--warning) 45%,var(--text));display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin:0 0 .5rem}.cityu-login__maintenance-body{color:var(--text-secondary);font-size:.875rem;line-height:1.55;margin:0}.cityu-login__maintenance--pulse{animation:cityu-login-fade-up .6s var(--cityu-ease-out) .24s forwards,cityu-login-maint-pulse 3s var(--cityu-ease-out-quart) .8s infinite}@keyframes cityu-login-maint-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--warning) 25%,#0000)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--warning) 0,#0000)}}.cityu-login__actions{align-items:center;display:flex;flex-direction:column;gap:.75rem}.cityu-login__link{align-self:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:.9375rem;font-weight:500;margin-top:.25rem;padding:.5rem .75rem;transition:color .2s var(--cityu-ease-out)}.cityu-login__link:hover:not(:disabled){color:var(--brand);text-decoration:underline;text-underline-offset:4px}.cityu-login__link:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 60%,#0000);outline-offset:2px}.cityu-login__link:disabled{cursor:not-allowed;opacity:.55}.cityu-login__form-head{margin-bottom:1.25rem}.cityu-login__form-title{color:var(--text);font-size:1.25rem;font-weight:600;margin:0 0 .3rem;text-align:center}.cityu-login__form-desc{color:var(--muted);font-size:.875rem;margin:0 0 .25rem;text-align:center}.cityu-login__btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:inherit;font-size:1.125rem;font-weight:600;justify-content:center;min-height:52px;padding:.85rem 1.5rem;position:relative;transition:transform .15s var(--cityu-ease-out),box-shadow .2s var(--cityu-ease-out),background-color .2s var(--cityu-ease-out),border-color .2s var(--cityu-ease-out),color .2s var(--cityu-ease-out);width:100%}.cityu-login__btn:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 60%,#0000);outline-offset:2px}.cityu-login__btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.cityu-login__btn:not(:disabled):hover{box-shadow:var(--shadow-brand);transform:translateY(-1px)}.cityu-login__btn:not(:disabled):active{transform:translateY(0) scale(.99);transition-duration:.08s}.cityu-login__btn--primary{background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 94%,#fff 6%),var(--brand));box-shadow:0 2px 8px color-mix(in srgb,var(--brand) 28%,#0000);color:#fff}.cityu-login__btn--primary:hover:not(:disabled){background:linear-gradient(180deg,color-mix(in srgb,var(--brand-600) 94%,#fff 6%),var(--brand-600))}.cityu-login__btn--test{background:color-mix(in srgb,var(--success) 88%,#0f172a 12%);box-shadow:0 2px 8px color-mix(in srgb,var(--success) 22%,#0000);color:#fff}.cityu-login__btn--test:hover:not(:disabled){filter:brightness(1.05)}.cityu-login__btn--submit{margin-top:.25rem}.cityu-login__input-wrap{align-items:center;display:flex;position:relative}.cityu-login__input-icon{font-size:.875rem;left:.875rem;line-height:1;opacity:.72;pointer-events:none;position:absolute;z-index:1}.cityu-login__input{background:color-mix(in srgb,#fff 96%,var(--brand) 2%);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9375rem;padding:.85rem .75rem .85rem 2.6rem;transition:border-color .2s var(--cityu-ease-out),box-shadow .2s var(--cityu-ease-out),background-color .2s var(--cityu-ease-out);width:100%}.cityu-login__input:focus{background:#fff;border-color:color-mix(in srgb,var(--brand) 45%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,#0000);outline:none}.cityu-login__input::placeholder{color:var(--muted)}.cityu-login__error{background:color-mix(in srgb,#fef2f2 88%,var(--danger) 12%);border:1px solid color-mix(in srgb,var(--danger) 22%,#0000);border-radius:var(--radius-sm);color:var(--danger);font-size:.875rem;margin-bottom:.75rem;padding:.65rem .75rem}@keyframes cityu-login-fade-up{0%{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:translateZ(0)}}@media (max-width:899px){.cityu-login{flex-direction:column}.cityu-login__stage{aspect-ratio:16/9;box-shadow:0 18px 40px -18px #160b0e66;flex:none;max-height:52vh;min-height:0}.cityu-login__stage-credit{display:none}.cityu-login__side{min-height:0;padding:1.75rem 1.25rem 2.5rem}.cityu-login__col{margin:0;max-width:420px}.cityu-login__brand-row{margin-bottom:.75rem}.cityu-login__brand-rule{margin-bottom:1.5rem}.cityu-login__panel{border-radius:14px;padding:1.5rem 1.25rem}.cityu-login__brand-en{font-size:.625rem;letter-spacing:.08em}.cityu-login__lang-bar .auth-lang__label{display:none}.cityu-login__lang-bar .auth-lang__track{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffff3d}}.cityu-login--no-stage .cityu-login__side{padding-top:clamp(5rem,12vh,7rem)}@media (prefers-reduced-motion:reduce){.cityu-login__brand-logo,.cityu-login__brand-row,.cityu-login__brand-rule,.cityu-login__maintenance,.cityu-login__panel,.cityu-login__stage,.cityu-login__stage-credit,.cityu-login__vctrl{animation:none;opacity:1;transform:none}.cityu-login__maintenance--pulse{animation:none;opacity:1}.cityu-login__btn:not(:disabled):active,.cityu-login__btn:not(:disabled):hover{transform:none}}.ap-page{--ap-ease:cubic-bezier(0.16,1,0.3,1);--ap-ease-soft:cubic-bezier(0.25,1,0.5,1);background:radial-gradient(ellipse 120% 70% at 0 0,color-mix(in srgb,var(--brand) 7%,#0000),#0000 52%),radial-gradient(ellipse 90% 50% at 100% 8%,#ffffffe0,#0000 48%),linear-gradient(180deg,color-mix(in srgb,var(--bg) 90%,var(--brand) 2.5%) 0,var(--bg) 45%,var(--bg) 100%);min-height:100vh}@keyframes apReveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes apRowIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes apSkel{0%,to{opacity:.4}50%{opacity:.85}}.ap-reveal{animation:apReveal .55s var(--ap-ease) forwards;animation-delay:0ms;animation-delay:var(--ap-reveal-delay,0ms);opacity:0}.ap-main{margin-left:auto;margin-right:auto;max-width:1600px;padding-bottom:48px;padding-top:28px}.ap-hero{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px 24px;justify-content:space-between;margin-bottom:20px}.ap-hero-kicker{color:color-mix(in srgb,var(--muted) 85%,var(--brand) 15%);font-size:11px;font-weight:650;letter-spacing:.14em;margin:0 0 6px;text-transform:uppercase}.ap-hero-title{color:var(--text);font-family:var(--font-sans);font-size:clamp(1.65rem,2vw + 1rem,2.15rem);font-weight:700;letter-spacing:.02em;line-height:1.15;margin:0 0 4px}.ap-hero-sub{color:var(--text-secondary);font-size:14px;font-weight:500;margin:0}.ap-hero-lede{color:var(--muted);font-size:15px;line-height:1.5;margin:8px 0 0;max-width:42em}.ap-panel{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-xl);box-shadow:0 1px 0 #ffffffa6 inset,var(--shadow-md);margin-bottom:18px;padding:clamp(20px,2.5vw,28px)}.ap-panel-title{color:var(--text);font-size:16px;font-weight:700;margin:0 0 4px}.ap-panel-hint{color:color-mix(in srgb,var(--muted) 82%,var(--brand) 18%);font-size:12px;font-weight:600;letter-spacing:.07em;margin:0 0 16px;text-transform:uppercase}.ap-panel-lede{color:var(--muted);font-size:14px;line-height:1.55;margin:0 0 20px}.ap-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px 16px;margin-bottom:16px}.ap-toolbar-meta{color:var(--muted);font-size:14px;font-weight:600;margin-left:auto}.ap-field{min-width:0}.ap-label{color:var(--text-secondary);display:block;font-size:13px;font-weight:650;margin-bottom:6px}.ap-input,.ap-select{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-family:inherit;font-size:14px;padding:10px 14px;transition:border-color .2s var(--ap-ease-soft),box-shadow .2s var(--ap-ease-soft);width:100%}.ap-input:hover,.ap-select:hover{border-color:color-mix(in srgb,var(--brand) 22%,var(--border))}.ap-input:focus,.ap-select:focus{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,#0000);outline:none}.ap-row-enter{animation:apRowIn .42s var(--ap-ease) forwards;animation-delay:.1s;animation-delay:calc(.1s + var(--row-i, 0)*40ms);opacity:0}.ap-skel-line{animation:apSkel 1.15s ease-in-out infinite;background:linear-gradient(90deg,var(--border-light) 0,color-mix(in srgb,var(--border) 75%,var(--brand) 8%) 50%,var(--border-light) 100%);background-size:200% 100%;border-radius:6px;display:block;height:12px}@media (prefers-reduced-motion:reduce){.ap-reveal,.ap-row-enter{animation:none;opacity:1;transform:none}.ap-skel-line{animation:none;opacity:.55}}.devtest-progress-compact-row{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;margin-bottom:10px}.devtest-progress-compact-label{color:var(--text-secondary);font-size:13px;font-weight:650}.devtest-progress-compact-stat{font-feature-settings:"tnum";color:var(--text);font-size:15px;font-variant-numeric:tabular-nums}.devtest-progress-compact-stat strong{color:var(--text);font-weight:800}.devtest-progress-compact-slash{color:var(--muted);font-weight:500;margin:0 .15em}.devtest-progress-done{background:color-mix(in srgb,var(--success) 10%,var(--card));border:1px solid color-mix(in srgb,var(--success) 22%,#0000);border-radius:999px;color:color-mix(in srgb,var(--success) 50%,var(--text));display:inline-block;font-size:12px;font-weight:700;margin-left:10px;padding:2px 10px}.devtest-progress-track{background:color-mix(in srgb,var(--border-light) 90%,var(--brand) 4%);border-radius:999px;height:8px;overflow:hidden}.devtest-progress-track--compact{height:6px}.devtest-progress-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--brand) 85%,#000),var(--brand));border-radius:999px;height:100%;transition:width .45s cubic-bezier(.16,1,.3,1)}.devtest-perm-badge{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:13px;font-weight:650;padding:4px 12px}.devtest-perm-badge--ok{background:color-mix(in srgb,var(--success) 12%,#fff);border-color:color-mix(in srgb,var(--success) 22%,#0000);color:color-mix(in srgb,var(--success) 45%,var(--text))}.devtest-perm-badge--denied{background:color-mix(in srgb,var(--danger) 10%,#fff);border-color:color-mix(in srgb,var(--danger) 20%,#0000);color:color-mix(in srgb,var(--danger) 55%,var(--text))}.devtest-perm-badge--pending{background:color-mix(in srgb,var(--warning) 12%,#fff);border-color:color-mix(in srgb,var(--warning) 25%,#0000);color:color-mix(in srgb,var(--warning) 55%,var(--text))}.devtest-page .devtest-btn-ghost{background:var(--card);border:1px solid var(--border);color:var(--text-secondary)}.devtest-page .devtest-btn-ghost:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 25%,var(--border));color:var(--text)}.devtest-page .devtest-btn-stop{background:color-mix(in srgb,var(--danger) 5%,var(--card));border-color:color-mix(in srgb,var(--danger) 35%,var(--border));color:var(--danger)}.devtest-page .devtest-btn-stop:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 10%,var(--card))}.devtest-meter-block{margin-bottom:16px}.devtest-meter-label--tight{margin-bottom:6px;margin-top:4px}.devtest-details{background:color-mix(in srgb,var(--bg) 40%,var(--card));border:1px solid var(--border-light);border-radius:var(--radius-md);margin-top:14px;overflow:hidden;transition:border-color .2s cubic-bezier(.25,1,.5,1)}.devtest-details[open]{border-color:color-mix(in srgb,var(--border) 70%,var(--brand) 12%)}.devtest-details-summary{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:13px;font-weight:700;gap:12px;justify-content:space-between;list-style:none;padding:12px 14px;transition:color .2s ease,background-color .2s ease;-webkit-user-select:none;user-select:none}.devtest-details-summary::-webkit-details-marker{display:none}.devtest-details-summary:after{border-bottom:2px solid;border-right:2px solid;content:"";flex-shrink:0;height:7px;margin-top:2px;opacity:.45;transform:rotate(45deg);transition:transform .25s cubic-bezier(.25,1,.5,1);width:7px}.devtest-details[open] .devtest-details-summary:after{margin-top:4px;transform:rotate(-135deg)}.devtest-details-summary:hover{background:color-mix(in srgb,var(--card) 70%,#0000);color:var(--text)}.devtest-details-body{border-top:1px solid var(--border-light);color:var(--text-secondary);font-size:13px;line-height:1.55;padding:0 14px 14px}.devtest-troubleshoot-list{margin:12px 0 0;padding-left:1.15em}.devtest-troubleshoot-list li{margin-bottom:6px}.devtest-capture-cta{font-weight:650;margin-top:4px;min-height:44px;width:100%}.devtest-video-frame{aspect-ratio:4/3;background:#0f0f12;border:1px solid color-mix(in srgb,var(--brand) 12%,var(--border));border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-height:min(520px,58vh);min-height:240px;overflow:hidden;position:relative;width:100%}.devtest-video-frame canvas,.devtest-video-frame video{border-radius:inherit;height:100%;inset:0;object-fit:cover;position:absolute;width:100%}.devtest-diag-warn{color:var(--danger);font-weight:650;margin-top:8px}.devtest-capture-block{margin-top:16px}.devtest-capture-label{color:var(--text-secondary);font-size:14px;font-weight:650;margin-bottom:8px}.devtest-capture-block .btn{font-weight:650}.devtest-tip-inline{background:color-mix(in srgb,var(--brand-50) 40%,var(--card));border:1px solid color-mix(in srgb,var(--brand) 15%,var(--border));border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;line-height:1.55;padding:14px 16px}.devtest-tip-inline strong{color:var(--brand-700)}.devtest-meter-label{color:var(--text-secondary);font-size:14px;font-weight:650;margin-bottom:8px}.devtest-volume-track{background:var(--border-light);border:1px solid var(--border-light);border-radius:999px;height:14px;overflow:hidden;position:relative;transition:box-shadow .2s ease}.devtest-volume-track--active{animation:devtestMeterGlow 1.15s cubic-bezier(.25,1,.5,1) infinite}@keyframes devtestMeterGlow{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--success) 0,#0000)}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 18%,#0000)}}.devtest-volume-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--success) 70%,var(--brand)),var(--success));border-radius:inherit;height:100%;transition:width .08s linear,background-color .2s ease}.devtest-volume-fill--hot{background:linear-gradient(90deg,color-mix(in srgb,var(--warning) 40%,var(--success)),color-mix(in srgb,var(--danger) 55%,var(--warning)))}.devtest-volume-pct{color:var(--muted);font-size:12px;font-weight:650;margin-top:6px;text-align:center}.devtest-audio-actions .btn{font-weight:650;min-height:36px;width:100%}.devtest-audio-hint{color:var(--muted);font-size:12px;line-height:1.45;margin-top:6px}.devtest-noise-card{background:color-mix(in srgb,var(--bg) 65%,var(--card));border:1px solid var(--border-light);border-radius:var(--radius-md);padding:16px}.devtest-noise-title{color:var(--text);font-size:14px;font-weight:700;margin-bottom:10px}.devtest-range-row{align-items:center;display:flex;gap:8px;margin-bottom:6px}.devtest-range-row input[type=range]{accent-color:var(--brand);flex:1 1;height:6px}.devtest-range-labels{color:var(--muted);font-size:11px;min-width:2em}.devtest-noise-foot{color:var(--muted);font-size:12px;line-height:1.5;margin-top:10px}.devtest-tip-inline--compact{font-size:13px;margin-bottom:18px;padding:12px 14px}.devtest-live-pill{align-items:center;background:color-mix(in srgb,var(--success) 10%,var(--card));border:1px solid color-mix(in srgb,var(--success) 22%,#0000);border-radius:999px;color:color-mix(in srgb,var(--success) 45%,var(--text));display:inline-flex;font-size:11px;font-weight:700;gap:6px;letter-spacing:.04em;padding:3px 10px 3px 8px;text-transform:uppercase}.devtest-live-dot{animation:devtestLivePulse 1.4s cubic-bezier(.25,1,.5,1) infinite;background:var(--success);border-radius:999px;box-shadow:0 0 0 0 color-mix(in srgb,var(--success) 45%,#0000);height:7px;width:7px}@keyframes devtestLivePulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--success) 35%,#0000);opacity:1}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--success) 0,#0000);opacity:.85}}.devtest-modal-backdrop{align-items:center;animation:devtestFadeIn .22s cubic-bezier(.25,1,.5,1) forwards;background:color-mix(in srgb,#1a1d24 52%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:9999}@keyframes devtestFadeIn{0%{opacity:0}to{opacity:1}}@keyframes devtestModalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.devtest-modal{animation:devtestModalIn .38s cubic-bezier(.16,1,.3,1) forwards;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 75%,var(--brand) 10%);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:440px;padding:28px 26px 24px;position:relative;width:100%}.devtest-modal-icon{font-size:2.5rem;line-height:1;margin-bottom:12px;text-align:center}.devtest-modal-title{color:var(--text);font-size:18px;font-weight:700;margin:0 0 14px;text-align:center}.devtest-modal-body{color:var(--text-secondary);font-size:15px;line-height:1.65;margin-bottom:22px;text-align:center}.devtest-modal-body strong{color:var(--brand-700)}.devtest-modal-close{background:color-mix(in srgb,var(--bg) 85%,var(--card));border:none;border-radius:999px;color:var(--muted);cursor:pointer;font-size:22px;height:36px;line-height:1;position:absolute;right:12px;top:12px;transition:background-color .2s,color .2s;width:36px}.devtest-modal-close:hover{background:var(--border-light);color:var(--text)}.devtest-modal .btn{font-weight:650;min-height:40px;width:100%}@media (prefers-reduced-motion:reduce){.devtest-modal,.devtest-modal-backdrop{animation:none;opacity:1;transform:none}.devtest-volume-track--active{animation:none}.devtest-details-summary:after,.devtest-progress-fill{transition:none}.devtest-live-dot{animation:none;box-shadow:none}}.devtest-back:focus-visible,.devtest-capture-cta:focus-visible,.devtest-footer .btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (min-width:1024px){.devtest-page{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100vh;height:100dvh;min-height:0;overflow:hidden}}.devtest-topbar{padding:14px clamp(16px,3vw,28px) 0}.devtest-topbar,.devtest-topbar-left{align-items:center;display:flex;gap:12px}.devtest-topbar-left{margin-right:auto;min-width:0}.devtest-back{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:50%;color:var(--text);display:inline-flex;flex:none;font-size:22px;height:34px;justify-content:center;line-height:1;text-decoration:none;transition:border-color .18s ease,color .18s ease;width:34px}.devtest-back:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));color:var(--brand)}.devtest-topbar-title{color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.2;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.devtest-topbar .devtest-perm-badge{flex:none;margin-left:auto}.devtest-main{grid-gap:clamp(14px,1.8vw,24px);box-sizing:border-box;display:grid;gap:clamp(14px,1.8vw,24px);grid-template-columns:minmax(0,1fr) clamp(300px,26vw,360px);margin:0 auto;max-width:1440px;min-height:0;padding:clamp(12px,2vh,20px) clamp(16px,3vw,28px) 0;width:100%}.devtest-stage{display:flex;flex-direction:column;gap:8px;min-height:0;min-width:0}.devtest-stage-view{container-type:size;display:grid;flex:1 1;min-height:0;place-items:center}@media (min-width:1024px){.devtest-video-frame{height:auto;max-height:none;min-height:0;width:min(100cqw,calc(100cqh*4/3))}@supports not (width:1cqh){.devtest-video-frame{max-height:100%;width:100%}}}.devtest-stage-idle{grid-gap:12px;background:#0f0f128c;color:#fff;display:grid;font-size:14px;font-weight:600;gap:12px;inset:0;place-content:center;position:absolute;text-align:center;z-index:2}.devtest-stage-error{background:#0f0f12e0;color:#fecaca;font-size:13px;inset:0;line-height:1.6;overflow-y:auto;padding:18px 20px;position:absolute;z-index:2}.devtest-stage-error strong{color:#fca5a5;display:block;font-size:14px;margin-bottom:6px}.devtest-stage-error small{color:#fda4af;display:block;margin-top:8px;opacity:.92}.devtest-stage-error .btn{margin-top:14px}.devtest-stage-toolbar{align-items:center;bottom:12px;display:flex;gap:8px;left:12px;position:absolute;right:12px;z-index:2}.devtest-stage-toolbar .btn{font-size:12.5px;padding:6px 12px}.devtest-stage-toolbar .devtest-btn-ghost,.devtest-stage-toolbar .devtest-btn-stop{background:#0f0f128c;border-color:#ffffff47;color:#fff;margin-left:auto}.devtest-stage-toolbar .devtest-btn-ghost:hover:not(:disabled),.devtest-stage-toolbar .devtest-btn-stop:hover:not(:disabled){background:#0f0f12bf;color:#fff}.devtest-diag-chips{align-items:center;display:flex;flex-wrap:wrap;gap:6px;min-height:26px}.devtest-diag-chip{background:color-mix(in srgb,var(--bg) 55%,var(--card));border:1px solid var(--border-light);border-radius:999px;color:var(--text-secondary);font-size:11px;font-weight:650;max-width:100%;overflow:hidden;padding:3px 10px;text-overflow:ellipsis;white-space:nowrap}.devtest-diag-chips .devtest-diag-warn{font-size:11px;margin-top:0}.devtest-rail{display:flex;flex-direction:column;gap:12px;min-height:0;overflow-y:auto;padding:0 2px 14px}.devtest-card{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:none;padding:14px 16px}.devtest-card-title{color:var(--brand);font-size:16px;font-weight:800;margin:0 0 10px}.devtest-card .form-group{margin-bottom:10px}.devtest-card .btn{font-size:13px;padding:7px 12px}.devtest-card .devtest-details{margin-top:4px}.devtest-card .devtest-details-summary{font-size:12px;padding:9px 10px}.devtest-card .devtest-meter-block{margin-bottom:12px}.devtest-card .devtest-meter-label{font-size:13px;margin-bottom:6px}.devtest-card .devtest-noise-card{margin-top:2px;padding:12px}.devtest-card .devtest-tip-inline--compact{font-size:12.5px;margin-bottom:12px;padding:9px 12px}.devtest-card .devtest-capture-block{margin-top:10px}.devtest-card .devtest-capture-label{font-size:13px;margin-bottom:6px}.devtest-card .devtest-progress-compact--in-card{background:#0000;border:none;margin-bottom:12px;padding:0}.devtest-card-note{color:var(--muted);font-size:12px;margin:4px 0 8px}.devtest-volume-track--idle{opacity:.45}.devtest-audio-mini-hint{color:var(--muted);font-size:11.5px;margin:2px 0 0}.devtest-footer{align-items:center;background:color-mix(in srgb,var(--card) 94%,var(--brand-50));border:1px solid color-mix(in srgb,var(--brand) 32%,var(--border));border-radius:var(--radius-lg);box-shadow:var(--shadow-brand);box-sizing:border-box;display:flex;gap:16px;justify-content:space-between;margin:10px auto 14px;max-width:1384px;padding:12px 16px;width:calc(100% - clamp(32px, 6vw, 56px))}.devtest-footer-hint{color:var(--text-secondary);font-size:13px;margin:0}.devtest-footer .btn{font-weight:650;min-height:42px;padding:0 22px}.devtest-finish-btn,a.devtest-finish-btn{text-decoration:none;white-space:nowrap}@media (max-width:1023px){.devtest-page{display:block;height:auto;min-height:100vh;min-height:100dvh;overflow:visible}.devtest-topbar{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:color-mix(in srgb,var(--card) 92%,#0000);border-bottom:1px solid var(--border-light);padding-bottom:10px;padding-top:10px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.devtest-main{display:flex;flex-direction:column;padding-bottom:24px}.devtest-stage{container-type:normal;min-height:60vh}.devtest-stage-view{container-type:normal;flex:none}.devtest-video-frame{max-height:60vh;min-height:240px;width:100%}.devtest-rail{overflow:visible;padding-bottom:0}.devtest-footer{flex-wrap:wrap;position:static}}.booking-page{height:100vh;height:100dvh;min-height:0;overflow:hidden}.booking-page .booking-shell{display:flex;flex:1 1;flex-direction:column;gap:14px;margin:0 auto;max-width:1240px;min-height:0;padding:18px 24px 16px;width:100%}.booking-topbar{flex:none}.booking-topbar,.booking-topbar-left{align-items:center;display:flex;gap:12px}.booking-topbar-left{min-width:0}.booking-back{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:50%;color:var(--text);display:inline-flex;flex:none;font-size:22px;height:34px;justify-content:center;line-height:1;text-decoration:none;transition:border-color .18s ease,color .18s ease;width:34px}.booking-back:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));color:var(--brand)}.booking-topbar-title{color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.01em;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-chances{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;flex:none;font-size:13px;font-weight:600;margin-left:auto;padding:5px 12px}.booking-chances--info{background:color-mix(in srgb,var(--brand-50) 70%,#0000);border-color:color-mix(in srgb,var(--brand) 16%,#0000);color:var(--brand-700)}@keyframes bookingBannerIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.booking-banner{align-items:center;animation:bookingBannerIn .35s cubic-bezier(.16,1,.3,1);border:1px solid #0000;border-radius:var(--radius-md);display:flex;flex:none;flex-wrap:wrap;font-size:13.5px;gap:6px 12px;line-height:1.5;padding:10px 14px}.booking-banner strong{font-weight:700}.booking-banner-msg{color:var(--text-secondary)}.booking-banner--error{background:color-mix(in srgb,var(--danger) 7%,var(--card));border-color:color-mix(in srgb,var(--danger) 28%,var(--border));color:color-mix(in srgb,var(--danger) 60%,var(--text))}.booking-banner--block{background:color-mix(in srgb,var(--warning) 8%,var(--card));border-color:color-mix(in srgb,var(--warning) 28%,var(--border));color:var(--text)}.booking-banner--block strong{color:color-mix(in srgb,var(--danger) 52%,var(--text))}.booking-banner-cta{font-size:13px;margin-left:auto;min-height:32px;padding:0 12px}.booking-body--loading{align-items:center;color:var(--muted);display:flex;flex:1 1;flex-direction:column;font-size:14px;font-weight:600;gap:12px;justify-content:center;min-height:0}.booking-body{grid-gap:16px;display:grid;flex:1 1;gap:16px;grid-template-columns:minmax(300px,340px) minmax(0,1fr);min-height:0}.booking-panel{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:14px 16px}.booking-rail{display:flex;flex-direction:column;gap:14px;min-height:0}.booking-cal{flex:none}.booking-notice{flex:1 1;min-height:0;overflow-y:auto}.booking-notice-title{color:var(--brand);font-size:16px;font-weight:800;margin:0 0 10px}.booking-notice-list{grid-gap:8px;color:var(--text-secondary);display:grid;font-size:13px;gap:8px;line-height:1.6;margin:0;padding:0 0 0 1.15rem}.booking-notice-list li::marker{color:color-mix(in srgb,var(--brand) 55%,var(--muted))}.booking-status{flex:none}.booking-status-title{color:var(--brand);font-size:16px;font-weight:800;margin:0 0 10px}.booking-status-empty{color:var(--muted);font-size:13px;margin:0}.booking-status-meta{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.booking-status-chip{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;padding:3px 10px;white-space:nowrap}.booking-status-chip--upcoming{background:color-mix(in srgb,#fff7ed 90%,#0000);border-color:color-mix(in srgb,#fdba74 35%,#0000);color:#9a3412}.booking-status-chip--ongoing{background:color-mix(in srgb,#ccfbf1 88%,#0000);border-color:color-mix(in srgb,#5eead4 40%,#0000);color:#0f766e}.booking-status-chip--completed{background:color-mix(in srgb,#e0f2fe 88%,#0000);border-color:color-mix(in srgb,#7dd3fc 40%,#0000);color:#075985}.booking-status-chip--cancelled{background:color-mix(in srgb,#fee2e2 88%,#0000);border-color:color-mix(in srgb,#fecaca 50%,#0000);color:#991b1b}.booking-status-chip--expired{background:color-mix(in srgb,#f3f4f6 92%,#0000);border-color:var(--border);color:#374151}.booking-status-chip--anytime{background:color-mix(in srgb,var(--info) 8%,var(--card));border-color:color-mix(in srgb,var(--info) 26%,#0000);color:color-mix(in srgb,var(--info) 68%,var(--text))}.booking-status-time{font-feature-settings:"tnum";color:var(--text);font-size:14px;font-variant-numeric:tabular-nums;font-weight:600}.booking-status-tz{color:var(--text-secondary);font-size:12px;font-weight:400;margin-left:6px}.booking-status-countdown{align-items:baseline;color:var(--text-secondary);display:flex;font-size:13px;gap:6px;margin-top:2px}.booking-status-timer{font-feature-settings:"tnum";color:var(--brand);font-size:15px;font-variant-numeric:tabular-nums;font-weight:700}.booking-status-actions{display:flex;gap:8px;margin-top:10px}.booking-status-actions .btn{font-size:13.5px;min-height:38px}.booking-status-enter{flex:1 1}.booking-status-actions .btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.bcal-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.bcal-title{color:var(--text);font-size:15px;font-weight:700;letter-spacing:-.01em}.bcal-nav{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex:none;font-size:18px;height:30px;justify-content:center;line-height:1;transition:border-color .16s ease,color .16s ease;width:30px}.bcal-nav:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 45%,var(--border));color:var(--brand)}.bcal-nav:disabled{cursor:not-allowed;opacity:.35}.bcal-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr)}.bcal-weekdays span{color:var(--muted);font-size:12px;font-weight:600;padding:4px 0 6px;text-align:center}.bcal-day{font-feature-settings:"tnum";align-items:center;background:#0000;border:1px solid #0000;border-radius:9px;color:color-mix(in srgb,var(--muted) 55%,var(--text) 45%);cursor:default;display:inline-flex;font-family:inherit;font-size:13.5px;font-variant-numeric:tabular-nums;font-weight:550;height:36px;justify-content:center;position:relative;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.bcal-day--blank{visibility:hidden}.bcal-day--open:not(:disabled){background:color-mix(in srgb,var(--brand-50) 55%,#0000);color:var(--text);cursor:pointer}.bcal-day--open:after{background:color-mix(in srgb,var(--brand) 65%,#0000);border-radius:50%;bottom:4px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:4px}.bcal-day--open:not(:disabled):hover{background:color-mix(in srgb,var(--brand) 12%,#0000);border-color:color-mix(in srgb,var(--brand) 30%,#0000)}.bcal-day--today:not(.bcal-day--selected){box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 38%,#0000);color:var(--brand-700);font-weight:700}.bcal-day--selected,.bcal-day--selected:hover{background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 90%,#000),var(--brand));border-color:var(--brand);box-shadow:var(--shadow-brand);color:#fff;font-weight:700}.bcal-day--selected:after{background:color-mix(in srgb,#fff 85%,#0000)}.bcal-day:disabled{cursor:default}.bcal-day--open:disabled{opacity:.45}.booking-slots{display:flex;flex-direction:column;min-height:0}.booking-slots-head{align-items:center;border-bottom:1px solid color-mix(in srgb,var(--border) 85%,var(--brand) 6%);display:flex;flex:none;gap:12px;justify-content:space-between;padding-bottom:10px}.booking-slots-title{font-feature-settings:"tnum";color:var(--text);font-size:16px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.01em;margin:0}.booking-slots-count{font-feature-settings:"tnum";background:color-mix(in srgb,var(--brand-50) 75%,#0000);border:1px solid color-mix(in srgb,var(--brand) 14%,#0000);border-radius:999px;color:var(--brand-700);flex:none;font-size:12.5px;font-variant-numeric:tabular-nums;font-weight:600;padding:4px 10px}.booking-anytime{align-items:center;background:color-mix(in srgb,var(--info) 6%,var(--card));border:1px solid color-mix(in srgb,var(--info) 22%,var(--border));border-radius:var(--radius-md);display:flex;flex:none;flex-wrap:wrap;gap:10px 12px;justify-content:space-between;margin-top:12px;padding:10px 12px}.booking-anytime-info{align-items:baseline;display:flex;flex-wrap:wrap;gap:4px 10px;min-width:0}.booking-anytime-info strong{color:var(--text);font-size:14px;font-weight:700}.booking-anytime-info span{font-feature-settings:"tnum";color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.booking-anytime-btn{font-size:13.5px;min-height:36px;padding:0 14px}.booking-slots-scroll{flex:1 1;margin-top:12px;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:6px}.booking-slots-scroll::-webkit-scrollbar{width:8px}.booking-slots-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border) 80%,#0000);border-radius:999px}.booking-empty{color:var(--muted);font-size:14px;padding:40px 20px;text-align:center}.booking-hour-list{display:flex;flex-direction:column;gap:4px}.booking-hour-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:56px 1fr}.booking-hour-label{font-feature-settings:"tnum";color:var(--text-secondary);font-size:13px;font-variant-numeric:tabular-nums;font-weight:650}.booking-hour-chips{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.booking-chip{font-feature-settings:"tnum";background:color-mix(in srgb,var(--card) 98%,var(--brand-50));border:1px solid var(--border-light);border-radius:10px;color:var(--text);cursor:pointer;font-family:inherit;font-size:14px;font-variant-numeric:tabular-nums;font-weight:650;padding:9px 4px;text-align:center;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.booking-chip:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 30%,var(--border))}.booking-chip:disabled:not(.booking-chip--full){cursor:not-allowed;opacity:.55}.booking-chip--selected:disabled{opacity:1}.booking-chip--full{background:color-mix(in srgb,var(--bg) 55%,var(--card));color:var(--muted);cursor:not-allowed;opacity:.62;text-decoration:line-through}.booking-chip--selected,.booking-chip--selected:hover{background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 90%,#000),var(--brand));border-color:var(--brand);box-shadow:var(--shadow-brand);color:#fff}@keyframes bookingHourIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.booking-hour-row{animation:bookingHourIn .38s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(40ms + min(0, 11)*24ms);animation-delay:calc(40ms + min(var(--row-i, 0), 11)*24ms);opacity:0}.booking-confirm{align-items:center;background:color-mix(in srgb,var(--card) 94%,var(--brand-50));border:1px solid color-mix(in srgb,var(--brand) 32%,var(--border));border-radius:var(--radius-lg);box-shadow:var(--shadow-brand);display:flex;flex:none;gap:12px;padding:12px 16px}.booking-confirm-info{display:flex;flex-direction:column;margin-right:auto;min-width:0}.booking-confirm-label{color:var(--muted);font-size:12px;font-weight:600}.booking-confirm-time{font-feature-settings:"tnum";color:var(--text);font-size:16px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}.booking-confirm-idle{color:var(--muted);font-size:14.5px;font-weight:500}.booking-confirm-cancel{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--muted);cursor:pointer;display:inline-flex;flex:none;font-size:20px;height:32px;justify-content:center;line-height:1;transition:background-color .18s ease,color .18s ease;width:32px}.booking-confirm-cancel:hover{background:color-mix(in srgb,var(--brand) 10%,#0000);color:var(--text)}.booking-confirm-btn{font-size:15px;min-height:42px;min-width:150px;white-space:nowrap}.booking-confirm-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.55}.bcal-day:focus-visible,.bcal-nav:focus-visible,.booking-back:focus-visible,.booking-banner-cta:focus-visible,.booking-chip:focus-visible,.booking-confirm-cancel:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (max-width:1023px){.booking-page{height:auto;min-height:100vh;overflow:visible}.booking-shell{gap:12px;padding:16px 16px calc(16px + env(safe-area-inset-bottom, 0px))}.booking-body{display:flex;flex-direction:column}.booking-notice,.booking-slots-scroll{overflow:visible}.booking-confirm{bottom:calc(12px + env(safe-area-inset-bottom, 0px));position:-webkit-sticky;position:sticky;z-index:30}}@media (max-width:768px){.booking-topbar{flex-wrap:wrap;row-gap:8px}.booking-chances{margin-left:0}.booking-hour-row{gap:8px;grid-template-columns:48px 1fr}.booking-hour-chips{gap:6px;grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.booking-confirm{flex-wrap:wrap;row-gap:10px}.booking-confirm-info{align-items:baseline;flex:1 1 auto;flex-direction:row;gap:8px}.booking-confirm-cancel{margin-left:auto}.booking-confirm-btn{flex:1 1 100%}}@media (prefers-reduced-motion:reduce){.booking-banner,.booking-hour-row{animation:none;opacity:1;transform:none}.booking-back:hover,.booking-confirm-cancel:hover{transition:none}}.records-page{--rec-ease:cubic-bezier(0.22,1,0.36,1);--rec-ease-quart:cubic-bezier(0.25,1,0.5,1);height:100vh;height:100dvh;min-height:0;overflow:hidden}.records-page .records-main{display:flex;flex:1 1;flex-direction:column;gap:12px;margin:0 auto;max-width:1020px;min-height:0;padding:16px 24px;width:100%}.records-topbar{flex:none;gap:10px 16px;justify-content:space-between}.records-topbar,.records-topbar-left{align-items:center;display:flex;flex-wrap:wrap}.records-topbar-left{gap:10px;min-width:0}.records-topbar-title{color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.01em;margin:0;white-space:nowrap}.records-badge{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:12.5px;font-weight:600;padding:4px 11px}.records-badge--info{background:color-mix(in srgb,var(--info) 9%,var(--card));border-color:color-mix(in srgb,var(--info) 26%,#0000);color:color-mix(in srgb,var(--info) 68%,var(--text))}.records-badge--ok{background:color-mix(in srgb,#ecfdf5 85%,#0000);border-color:color-mix(in srgb,#6ee7b7 45%,#0000);color:#047857}.records-badge--bad{background:color-mix(in srgb,#fef2f2 88%,#0000);border-color:color-mix(in srgb,#fecaca 55%,#0000);color:#b91c1c}.records-badge--wait{background:color-mix(in srgb,var(--warning) 10%,var(--card));border-color:color-mix(in srgb,var(--warning) 30%,#0000);color:color-mix(in srgb,var(--warning) 62%,var(--text))}.records-badge--muted{background:var(--border-light);border-color:var(--border);color:var(--muted)}.records-topbar-actions{align-items:center;display:flex;gap:8px;margin-left:auto}.records-btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.875rem;font-weight:600;justify-content:center;min-height:42px;padding:0 1.25rem;text-decoration:none;transition:background-color .2s var(--rec-ease),border-color .2s var(--rec-ease),color .2s var(--rec-ease),box-shadow .2s var(--rec-ease)}.records-btn:disabled{cursor:not-allowed;opacity:.5}.records-btn--outline{background:color-mix(in srgb,#fff 92%,var(--brand) 4%);border-color:color-mix(in srgb,var(--brand) 38%,var(--border));color:var(--brand)}.records-btn--outline:hover:not(:disabled){background:color-mix(in srgb,var(--brand-50) 65%,#fff);border-color:var(--brand)}.records-btn--primary{background:var(--brand);border-color:var(--brand);box-shadow:0 2px 10px color-mix(in srgb,var(--brand) 22%,#0000);color:#fff}.records-btn--primary:hover:not(:disabled){background:var(--brand-600);border-color:var(--brand-600)}.records-btn--done{background:color-mix(in srgb,var(--border-light) 90%,var(--muted));border-color:var(--border);box-shadow:none;color:var(--muted);cursor:not-allowed}.records-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.records-rules-panel{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 75%,var(--brand) 5%);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:none;padding:14px 18px}.records-rules-title{color:var(--brand);font-size:16px;font-weight:800;margin:0 0 10px}.records-rules-list{grid-gap:8px;color:var(--text-secondary);display:grid;font-size:13px;gap:8px;line-height:1.6;margin:0;padding:0 0 0 1.15rem}.records-rules-list li::marker{color:color-mix(in srgb,var(--brand) 55%,var(--muted));font-weight:600}.records-em{color:color-mix(in srgb,var(--danger) 72%,var(--brand) 28%);font-weight:700}.records-alert{background:color-mix(in srgb,#fef2f2 88%,var(--danger) 6%);border:1px solid color-mix(in srgb,var(--danger) 28%,var(--border));border-radius:var(--radius-md);color:color-mix(in srgb,var(--danger) 55%,var(--text));flex:none;font-size:13.5px;padding:10px 14px}.records-tablewrap{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 75%,var(--brand) 5%);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.records-tablewrap::-webkit-scrollbar{width:8px}.records-tablewrap::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--border) 80%,#0000);border-radius:999px}.records-table{border-collapse:collapse;font-size:15.5px;width:100%}.records-table th{background:color-mix(in srgb,#fff 97%,var(--brand) 2%);border-bottom:1px solid color-mix(in srgb,var(--border) 82%,var(--brand) 8%);color:var(--muted);font-size:13px;font-weight:600;padding:12px 22px;position:-webkit-sticky;position:sticky;text-align:left;top:0;white-space:nowrap;z-index:1}.records-row{cursor:pointer;transition:background-color .15s ease}.records-row:hover{background:color-mix(in srgb,var(--brand-50) 45%,#0000)}.records-row td{border-bottom:1px solid color-mix(in srgb,var(--border-light) 88%,#0000);padding:15px 22px;vertical-align:middle}.records-row:last-child td{border-bottom:none}.records-cell-time{white-space:nowrap}.records-time-date{font-feature-settings:"tnum";color:var(--text);display:inline-block;font-variant-numeric:tabular-nums;font-weight:650;margin-right:10px}.records-time-range{font-feature-settings:"tnum";color:var(--text-secondary);display:inline-block;font-size:14px;font-variant-numeric:tabular-nums}.records-cell-status{white-space:nowrap}.records-cell-status .records-chip+.records-chip{margin-left:6px}.records-cell-rec{white-space:nowrap}.records-dash{color:var(--muted)}.records-score{font-feature-settings:"tnum";color:var(--text);font-size:16px;font-variant-numeric:tabular-nums;font-weight:800}.records-cell-detail{text-align:right;white-space:nowrap}.records-detail-link{color:var(--brand);font-size:14px;font-weight:600;padding:4px 2px;text-decoration:none}.records-detail-link:hover{color:var(--brand-600)}.records-detail-link:focus-visible{border-radius:4px;outline:2px solid var(--brand);outline-offset:2px}.records-chip{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:.8125rem;font-weight:600;letter-spacing:.02em;padding:.3rem .7rem;white-space:nowrap}.records-chip--mini{font-size:.75rem;padding:.22rem .55rem}.records-chip--booked{background:color-mix(in srgb,#fff7ed 90%,#0000);border-color:color-mix(in srgb,#fdba74 35%,#0000);color:#9a3412}.records-chip--ongoing{background:color-mix(in srgb,#ccfbf1 88%,#0000);border-color:color-mix(in srgb,#5eead4 40%,#0000);color:#0f766e}.records-chip--completed{background:color-mix(in srgb,var(--brand-50) 75%,#e0f2fe 25%);border-color:color-mix(in srgb,var(--brand) 18%,#0000);color:var(--brand-700)}.records-chip--cancelled{background:color-mix(in srgb,#fee2e2 88%,#0000);border-color:color-mix(in srgb,#fecaca 50%,#0000);color:#991b1b}.records-chip--expired{background:color-mix(in srgb,#f3f4f6 92%,#0000);border-color:var(--border);color:#374151}.records-chip--muted{background:var(--border-light);border-color:var(--border);color:var(--muted)}.records-chip--rec-ok{background:color-mix(in srgb,#ecfdf5 92%,#0000);border-color:color-mix(in srgb,#6ee7b7 45%,#0000);color:#047857}.records-chip--rec-bad{background:color-mix(in srgb,#fef2f2 90%,#0000);border-color:color-mix(in srgb,#fecaca 55%,#0000);color:#b91c1c}.records-chip--sub-ok{background:color-mix(in srgb,#ecfdf5 92%,#0000);border-color:color-mix(in srgb,#6ee7b7 45%,#0000);color:#047857}.records-chip--sub-wait{background:color-mix(in srgb,#fff7ed 90%,#0000);border-color:color-mix(in srgb,#fdba74 35%,#0000);color:#9a3412}.records-modal-backdrop{align-items:center;animation:records-modal-bg .28s var(--rec-ease) forwards;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:color-mix(in srgb,#1a1d24 42%,#0000);display:flex;inset:0;justify-content:center;padding:1.25rem;position:fixed;z-index:400}@keyframes records-modal-bg{0%{opacity:0}to{opacity:1}}.records-modal{animation:records-modal-in .34s var(--rec-ease) forwards;background:color-mix(in srgb,#fff 97%,var(--brand) 2%);border:1px solid color-mix(in srgb,var(--border) 78%,var(--brand) 14%);border-radius:var(--radius-lg);box-shadow:0 1px 0 #fff,0 28px 56px -24px color-mix(in srgb,var(--brand) 22%,#0000);max-width:440px;padding:clamp(1.25rem,3vw,1.75rem);width:100%}@keyframes records-modal-in{0%{opacity:0;transform:translate3d(0,12px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}.records-modal-title{color:var(--text);font-size:1.125rem;font-weight:700;margin:0 0 .65rem}.records-modal-body{color:var(--text-secondary);font-size:.875rem;line-height:1.65;margin:0 0 1.35rem}.records-modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.records-state{align-items:center;color:var(--muted);display:flex;flex:1 1;flex-direction:column;font-size:.875rem;gap:1rem;justify-content:center;min-height:220px}.records-state .spinner{border-width:3px;height:28px;margin:0;width:28px}.records-empty{align-items:center;background:color-mix(in srgb,var(--brand-50) 25%,#fff);border:1px dashed color-mix(in srgb,var(--border) 85%,var(--brand) 10%);border-radius:var(--radius-lg);display:flex;flex:1 1;justify-content:center;min-height:220px}.records-empty-line{color:var(--muted);font-size:15px;margin:0}@media (max-width:1023px){.records-page{height:auto;min-height:100vh;overflow:visible}.records-main{padding:16px}.records-tablewrap{overflow:visible}}@media (max-width:768px){.records-topbar-actions{margin-left:0;width:100%}.records-topbar-actions .records-btn{flex:1 1}.records-tablewrap{overflow-x:auto}.records-table{min-width:680px}}@media (prefers-reduced-motion:reduce){.records-modal,.records-modal-backdrop{animation:none;opacity:1;transform:none}.records-row{transition:none}}.record-detail-page{height:100vh;height:100dvh;min-height:0;overflow:hidden}.record-detail-page .record-detail-main{display:flex;flex:1 1;flex-direction:column;gap:12px;margin:0 auto;max-width:760px;min-height:0;padding:16px 32px 24px;width:100%}.record-detail-topbar{align-items:center;display:flex;flex:none;flex-wrap:wrap;gap:12px}.record-detail-topbar-left{align-items:center;display:flex;gap:12px;margin-right:auto;min-width:0}.record-detail-back{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:50%;color:var(--text);display:inline-flex;flex:none;font-size:22px;height:34px;justify-content:center;line-height:1;text-decoration:none;transition:border-color .18s ease,color .18s ease;width:34px}.record-detail-back:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));color:var(--brand)}.record-detail-topbar-title{color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.2;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-detail-chip{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:13px;font-weight:600;padding:4px 11px;white-space:nowrap}.record-detail-chip--booked{background:color-mix(in srgb,#fff7ed 90%,#0000);border-color:color-mix(in srgb,#fdba74 35%,#0000);color:#9a3412}.record-detail-chip--ongoing{background:color-mix(in srgb,#ccfbf1 88%,#0000);border-color:color-mix(in srgb,#5eead4 40%,#0000);color:#0f766e}.record-detail-chip--completed{background:color-mix(in srgb,var(--brand-50) 75%,#e0f2fe 25%);border-color:color-mix(in srgb,var(--brand) 18%,#0000);color:var(--brand-700)}.record-detail-chip--cancelled{background:color-mix(in srgb,#fee2e2 88%,#0000);border-color:color-mix(in srgb,#fecaca 50%,#0000);color:#991b1b}.record-detail-chip--expired{background:color-mix(in srgb,#f3f4f6 92%,#0000);border-color:var(--border);color:#374151}.record-detail-chip--muted{background:var(--border-light);border-color:var(--border);color:var(--muted)}.record-detail-banner{background:color-mix(in srgb,var(--danger) 7%,var(--card));border:1px solid color-mix(in srgb,var(--danger) 28%,var(--border));border-radius:var(--radius-md);color:color-mix(in srgb,var(--danger) 60%,var(--text));flex:none;font-size:13.5px;line-height:1.5;padding:10px 14px}.record-detail-state{align-items:center;color:var(--muted);display:flex;flex:1 1;flex-direction:column;font-size:14px;gap:10px;justify-content:center;min-height:220px}.record-detail-state .spinner{border-width:3px;height:28px;margin:0;width:28px}.record-detail-empty{align-items:center;background:color-mix(in srgb,var(--brand-50) 25%,#fff);border:1px dashed color-mix(in srgb,var(--border) 85%,var(--brand) 10%);border-radius:var(--radius-lg);display:flex;flex:1 1;justify-content:center;min-height:220px}.record-detail-empty-line{color:var(--muted);font-size:15px;margin:0}@keyframes recordDetailCardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.record-detail-card{animation:recordDetailCardIn .45s cubic-bezier(.16,1,.3,1) backwards;background:color-mix(in srgb,var(--card) 98%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 6%);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.record-detail-card-head{background:color-mix(in srgb,var(--brand-50) 30%,#0000);padding:26px 28px 22px;text-align:center}.record-detail-date-label{color:var(--muted);display:block;font-size:12px;font-weight:600}.record-detail-date{color:var(--text-secondary);font-size:15px;font-weight:600;margin:6px 0 2px}.record-detail-range{font-feature-settings:"tnum";color:var(--text);font-size:clamp(28px,4vw,34px);font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.01em;margin:0}.record-detail-section{border-top:1px solid color-mix(in srgb,var(--border-light) 92%,#0000);padding:18px 28px 22px}.record-detail-section-title{color:var(--brand);font-size:16px;font-weight:800;margin:0 0 8px}.record-detail-dl{margin:0}.record-detail-dl-row{grid-gap:12px;align-items:baseline;border-bottom:1px solid color-mix(in srgb,var(--border-light) 88%,#0000);display:grid;gap:12px;grid-template-columns:150px minmax(0,1fr);padding:9px 0}.record-detail-dl-row:last-child{border-bottom:none;padding-bottom:0}.record-detail-dl-row dt{color:var(--muted);font-size:13px;font-weight:600}.record-detail-dl-row dd{color:var(--text);font-size:14px;font-weight:600;margin:0;word-break:break-all}.record-detail-result-row{grid-gap:12px;align-items:baseline;display:grid;gap:12px;grid-template-columns:150px minmax(0,1fr);padding:9px 0}.record-detail-result-label{color:var(--muted);font-size:13px;font-weight:600}.record-detail-score{font-feature-settings:"tnum";color:var(--brand);font-size:24px;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.01em;line-height:1.15}.record-detail-comment{color:var(--text-secondary);font-size:14px;line-height:1.65;margin:0;word-break:break-word}.record-detail-back:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (max-width:1023px){.record-detail-page{height:auto;min-height:100vh;overflow:visible}.record-detail-main{padding:16px 16px 28px}}@media (max-width:768px){.record-detail-card-head{padding:22px 18px 18px}.record-detail-section{padding:16px 18px 20px}.record-detail-dl-row,.record-detail-result-row{gap:2px;grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.record-detail-card{animation:none;opacity:1;transform:none}.record-detail-back,.record-detail-back:hover{transition:none}}.facev-backdrop{align-items:center;animation:facevFadeIn .22s cubic-bezier(.25,1,.5,1) forwards;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:color-mix(in srgb,#101216 62%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000}@keyframes facevFadeIn{0%{opacity:0}to{opacity:1}}@keyframes facevCardIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.facev-card{animation:facevCardIn .38s cubic-bezier(.16,1,.3,1) forwards;background:color-mix(in srgb,#fff 97%,var(--brand) 2%);border:1px solid color-mix(in srgb,var(--border) 78%,var(--brand) 14%);border-radius:var(--radius-lg);box-shadow:0 1px 0 #fff,0 28px 56px -24px color-mix(in srgb,var(--brand) 26%,#0000);max-width:460px;overflow:hidden;width:100%}.facev-accent{background:linear-gradient(90deg,var(--brand-600),var(--brand),var(--brand-600));height:3px}.facev-card-inner{padding:20px 24px 22px}.facev-title{color:var(--text);font-size:17px;font-weight:700;letter-spacing:-.01em;margin:0 0 14px;text-align:center}.facev-stage{background:#0f0f12;border:1px solid color-mix(in srgb,var(--brand) 14%,var(--border));border-radius:12px;margin-bottom:14px;overflow:hidden;position:relative}.facev-stage video{display:block;height:auto;width:100%}.facev-overlay{height:100%;inset:0;width:100%}.facev-brackets,.facev-overlay{pointer-events:none;position:absolute}.facev-brackets{--facev-corner:#ffffffb8;background:linear-gradient(var(--facev-corner),var(--facev-corner)) 0 0 /22px 2px,linear-gradient(var(--facev-corner),var(--facev-corner)) 0 0 /2px 22px,linear-gradient(var(--facev-corner),var(--facev-corner)) 100% 0 /22px 2px,linear-gradient(var(--facev-corner),var(--facev-corner)) 100% 0 /2px 22px,linear-gradient(var(--facev-corner),var(--facev-corner)) 0 100% /22px 2px,linear-gradient(var(--facev-corner),var(--facev-corner)) 0 100% /2px 22px,linear-gradient(var(--facev-corner),var(--facev-corner)) 100% 100% /22px 2px,linear-gradient(var(--facev-corner),var(--facev-corner)) 100% 100% /2px 22px;background-repeat:no-repeat;inset:14px}@keyframes facevBracketPulse{0%,to{opacity:.55}50%{opacity:.95}}.facev-stage--detecting .facev-brackets{animation:facevBracketPulse 2.2s ease-in-out infinite}.facev-round-chip{align-items:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#0f0f128c;border:1px solid #ffffff47;border-radius:999px;color:#fff;display:inline-flex;font-size:12px;font-weight:650;gap:7px;left:12px;padding:4px 11px;position:absolute;top:12px}.facev-round-dot{animation:facevLivePulse 1.6s ease-out infinite;background:#2dd4bf;border-radius:50%;box-shadow:0 0 0 0 color-mix(in srgb,#2dd4bf 40%,#0000);height:7px;width:7px}@keyframes facevLivePulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,#2dd4bf 35%,#0000)}60%{box-shadow:0 0 0 6px color-mix(in srgb,#2dd4bf 0,#0000)}}.facev-stage-veil{align-items:center;background:#0f0f1299;color:#fff;display:flex;flex-direction:column;gap:10px;inset:0;justify-content:center;padding:20px;position:absolute;text-align:center;z-index:2}.facev-stage-veil .spinner{border-color:#fff #ffffff40 #ffffff40;border-width:3px;height:26px;margin:0;width:26px}.facev-stage-veil-title{font-size:14px;font-weight:650}.facev-stage-veil-sub{color:#ffffffb8;font-size:12.5px}.facev-status{align-items:center;display:flex;flex-direction:column;gap:4px;justify-content:center;margin-bottom:14px;min-height:76px;text-align:center}.facev-status-line{color:var(--text);font-size:14px;font-weight:650}.facev-status-hint{color:var(--text-secondary);font-size:13px;line-height:1.55}.facev-icon{align-items:center;border-radius:50%;display:flex;font-size:20px;font-weight:700;height:44px;justify-content:center;line-height:1;margin-bottom:6px;-webkit-user-select:none;user-select:none;width:44px}.facev-icon--ok{background:color-mix(in srgb,var(--success) 12%,var(--card));border:1px solid color-mix(in srgb,var(--success) 24%,#0000);color:color-mix(in srgb,var(--success) 55%,var(--text))}.facev-icon--fail{background:color-mix(in srgb,var(--danger) 9%,var(--card));border:1px solid color-mix(in srgb,var(--danger) 26%,#0000);color:color-mix(in srgb,var(--danger) 72%,var(--text))}.facev-status-title{color:var(--text);font-size:16px;font-weight:700;margin:0}.facev-status-body{color:var(--text-secondary);font-size:13.5px;line-height:1.65;margin:0;max-width:360px}.facev-dots{display:inline-flex;gap:7px;margin-top:8px}.facev-dot{background:var(--border);border-radius:999px;height:7px;transition:background-color .25s ease;width:7px}.facev-dot--done{background:color-mix(in srgb,var(--brand) 55%,var(--border))}.facev-dot--current{background:var(--brand)}.facev-actions{display:flex;gap:12px;justify-content:center}.facev-actions .btn{font-weight:650;min-height:42px;min-width:128px;padding:0 20px}.facev-actions .btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (max-width:520px){.facev-card-inner{padding:16px 16px 18px}.facev-actions .btn{flex:1 1;min-width:0}}@media (prefers-reduced-motion:reduce){.facev-backdrop,.facev-card{animation:none;opacity:1;transform:none}.facev-round-dot,.facev-stage--detecting .facev-brackets{animation:none}.facev-dot{transition:none}}.lobby-page{height:100vh;height:100dvh;min-height:0;overflow:hidden}.lobby-page .lobby-shell{display:flex;flex:1 1;flex-direction:column;gap:14px;margin:0 auto;max-width:760px;min-height:0;padding:18px 24px 20px;width:100%}.lobby-topbar{flex:none}.lobby-topbar,.lobby-topbar-left{align-items:center;display:flex;gap:12px}.lobby-topbar-left{min-width:0}.lobby-back{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:50%;color:var(--text);display:inline-flex;flex:none;font-size:22px;height:34px;justify-content:center;line-height:1;text-decoration:none;transition:border-color .18s ease,color .18s ease;width:34px}.lobby-back:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));color:var(--brand)}.lobby-topbar-title{color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.01em;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-topbar-chips{flex:none;gap:6px;margin-left:auto}.lobby-chip,.lobby-topbar-chips{align-items:center;display:inline-flex}.lobby-chip{border:1px solid #0000;border-radius:999px;font-size:12.5px;font-weight:600;padding:4px 11px;white-space:nowrap}.lobby-chip--upcoming{background:color-mix(in srgb,#fff7ed 90%,#0000);border-color:color-mix(in srgb,#fdba74 35%,#0000);color:#9a3412}.lobby-chip--ongoing{background:color-mix(in srgb,#ccfbf1 88%,#0000);border-color:color-mix(in srgb,#5eead4 40%,#0000);color:#0f766e}.lobby-chip--completed{background:color-mix(in srgb,#e0f2fe 88%,#0000);border-color:color-mix(in srgb,#7dd3fc 40%,#0000);color:#075985}.lobby-chip--cancelled{background:color-mix(in srgb,#fee2e2 88%,#0000);border-color:color-mix(in srgb,#fecaca 50%,#0000);color:#991b1b}.lobby-chip--expired{background:color-mix(in srgb,#f3f4f6 92%,#0000);border-color:var(--border);color:#374151}.lobby-chip--anytime{background:color-mix(in srgb,var(--info) 8%,var(--card));border-color:color-mix(in srgb,var(--info) 26%,#0000);color:color-mix(in srgb,var(--info) 68%,var(--text))}@keyframes lobbyBannerIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.lobby-banner{align-items:center;animation:lobbyBannerIn .35s cubic-bezier(.16,1,.3,1);border:1px solid #0000;border-radius:var(--radius-md);display:flex;flex:none;flex-wrap:wrap;font-size:13.5px;gap:12px;line-height:1.5;padding:10px 14px}.lobby-banner-msg{flex:1 1 auto;min-width:0}.lobby-banner-cta{flex:none;font-size:13px;padding:6px 14px}.lobby-banner--error{background:color-mix(in srgb,var(--danger) 7%,var(--card));border-color:color-mix(in srgb,var(--danger) 28%,var(--border));color:color-mix(in srgb,var(--danger) 60%,var(--text))}.lobby-banner--warn{background:color-mix(in srgb,var(--warning) 8%,var(--card));border-color:color-mix(in srgb,var(--warning) 28%,var(--border));color:var(--text)}.lobby-body--loading{align-items:center;color:var(--muted);flex-direction:column;font-size:14px;font-weight:600;gap:12px;justify-content:center}.lobby-body{display:flex;flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.lobby-stack{display:flex;flex-direction:column;gap:14px;margin:auto 0;width:100%}.lobby-panel{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 75%,var(--brand) 5%);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}@keyframes lobbyPanelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.lobby-gate{animation:lobbyPanelIn .4s cubic-bezier(.16,1,.3,1) backwards;padding:26px 24px 22px;text-align:center}.lobby-notice{animation:lobbyPanelIn .4s cubic-bezier(.16,1,.3,1) 90ms backwards;padding:14px 16px}.lobby-time-label{color:var(--muted);display:block;font-size:12px;font-weight:600}.lobby-gate-date{color:var(--text-secondary);font-size:15px;font-weight:600;margin:6px 0 2px}.lobby-gate-time{font-feature-settings:"tnum";color:var(--text);font-size:clamp(28px,4vw,34px);font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.01em;margin:0 0 16px}.lobby-gate-latest{font-feature-settings:"tnum";color:var(--text-secondary);font-size:13px;font-variant-numeric:tabular-nums;margin:2px 0 0}.lobby-gate-countdown{align-items:baseline;background:color-mix(in srgb,var(--brand-50) 70%,#0000);border:1px solid color-mix(in srgb,var(--brand) 16%,#0000);border-radius:12px;color:var(--text-secondary);display:inline-flex;font-size:13.5px;gap:10px;padding:8px 18px}.lobby-gate-timer{font-feature-settings:"tnum";color:var(--brand);font-size:22px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.01em}.lobby-gate-live{align-items:center;background:color-mix(in srgb,#ccfbf1 75%,#0000);border:1px solid color-mix(in srgb,#5eead4 40%,#0000);border-radius:12px;color:#0f766e;display:inline-flex;font-size:14px;font-weight:700;gap:8px;padding:8px 18px}@keyframes lobbyLivePulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,#14b8a6 45%,#0000)}60%{box-shadow:0 0 0 7px color-mix(in srgb,#14b8a6 0,#0000)}}.lobby-live-dot{animation:lobbyLivePulse 1.8s ease-out infinite;background:#14b8a6;border-radius:50%;height:8px;width:8px}.lobby-gate-actions{margin-top:20px}.lobby-enter-btn{border-radius:12px;font-size:15.5px;min-height:46px;min-width:220px;padding:0 26px}.lobby-enter-btn:disabled{cursor:not-allowed;opacity:.55}.lobby-notice-title{color:var(--brand);font-size:16px;font-weight:800;margin:0 0 10px}.lobby-notice-list{grid-gap:8px;color:var(--text-secondary);display:grid;font-size:13px;gap:8px;line-height:1.6;margin:0;padding:0 0 0 1.15rem}.lobby-notice-list li::marker{color:color-mix(in srgb,var(--brand) 55%,var(--muted))}.lobby-empty{padding:40px 24px;text-align:center}.lobby-empty p{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 0 16px}.lobby-empty-btn{min-height:40px;min-width:180px}.lobby-success-backdrop{align-items:center;animation:lobbyFadeIn .22s cubic-bezier(.25,1,.5,1) forwards;background:color-mix(in srgb,#1a1d24 48%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000}.lobby-success-card{animation:lobbySuccessIn .4s cubic-bezier(.16,1,.3,1) forwards;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 70%,var(--brand) 12%);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:380px;padding:28px 26px 26px;text-align:center;width:100%}.lobby-success-icon{align-items:center;background:color-mix(in srgb,var(--success) 12%,var(--card));border:1px solid color-mix(in srgb,var(--success) 22%,#0000);border-radius:999px;color:color-mix(in srgb,var(--success) 55%,var(--text));display:flex;font-size:22px;height:48px;justify-content:center;margin:0 auto 14px;width:48px}.lobby-success-title{color:var(--text);font-size:18px;font-weight:700;margin:0 0 8px}.lobby-success-sub{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0}@keyframes lobbyFadeIn{0%{opacity:0}to{opacity:1}}@keyframes lobbySuccessIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.lobby-back:focus-visible,.lobby-empty-btn:focus-visible,.lobby-enter-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (max-width:1023px){.lobby-page{height:auto;min-height:100vh;overflow:visible}.lobby-shell{gap:12px;padding:16px 16px calc(20px + env(safe-area-inset-bottom, 0px))}.lobby-body{display:block;overflow:visible}.lobby-stack{margin:0}}@media (max-width:768px){.lobby-topbar{flex-wrap:wrap;row-gap:8px}.lobby-topbar-chips{margin-left:0}.lobby-gate{padding:22px 16px 20px}.lobby-gate-countdown,.lobby-gate-live{flex-wrap:wrap;justify-content:center}.lobby-enter-btn{min-width:0;width:100%}}@media (prefers-reduced-motion:reduce){.lobby-banner,.lobby-gate,.lobby-notice{animation:none;opacity:1;transform:none}.lobby-live-dot{animation:none}.lobby-back,.lobby-back:hover{transition:none}.lobby-success-backdrop,.lobby-success-card{animation:none;opacity:1;transform:none}}.preview-card-title{color:var(--brand);font-size:16px;font-weight:800;margin:0 0 10px}.preview-lede{color:var(--text-secondary);font-size:15px;line-height:1.65;margin:0;max-width:52em}.preview-lede strong{color:var(--text);font-weight:700}.preview-audio-hint{align-items:flex-start;animation:previewHintIn .5s cubic-bezier(.16,1,.3,1) both;animation-delay:.12s;background:color-mix(in srgb,var(--brand-50) 35%,var(--card));border:1px solid color-mix(in srgb,var(--brand) 18%,var(--border));border-radius:var(--radius-md);color:var(--text-secondary);display:flex;font-size:14px;gap:12px;line-height:1.5;margin-bottom:16px;padding:12px 16px}.preview-audio-hint-mark{background:color-mix(in srgb,var(--brand) 75%,#1a0a0e);border-radius:999px;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,#0000);flex-shrink:0;height:8px;margin-top:6px;width:8px}@keyframes previewHintIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.preview-flow{margin-bottom:14px}.preview-flow-list{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}@media (max-width:600px){.preview-flow-list{grid-template-columns:1fr}}.preview-flow-step{align-items:center;background:color-mix(in srgb,var(--bg) 45%,var(--card));border:1px solid var(--border-light);border-radius:var(--radius-md);display:flex;gap:10px;padding:12px 14px;transition:border-color .25s cubic-bezier(.25,1,.5,1),background-color .25s ease,opacity .25s ease}.preview-flow-step.is-wait{opacity:.55}.preview-flow-step.is-current{background:color-mix(in srgb,var(--brand-50) 38%,var(--card));border-color:color-mix(in srgb,var(--brand) 42%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 8%,#0000)}.preview-flow-step.is-done{background:color-mix(in srgb,var(--success) 7%,var(--card));border-color:color-mix(in srgb,var(--success) 28%,var(--border));opacity:1}.preview-flow-num{align-items:center;background:color-mix(in srgb,var(--bg) 70%,var(--card));border:1px solid var(--border-light);border-radius:999px;color:var(--text-secondary);display:flex;flex-shrink:0;font-size:12px;font-weight:800;height:26px;justify-content:center;width:26px}.preview-flow-step.is-current .preview-flow-num{background:color-mix(in srgb,var(--brand) 82%,#1a0a0e);border-color:#0000;color:var(--card)}.preview-flow-step.is-done .preview-flow-num{background:color-mix(in srgb,var(--success) 14%,var(--card));border-color:color-mix(in srgb,var(--success) 25%,#0000);color:color-mix(in srgb,var(--success) 50%,var(--text));font-size:13px}.preview-flow-label{color:var(--text);font-size:13px;font-weight:700;line-height:1.3}.preview-flow-step.is-wait .preview-flow-label{color:var(--muted);font-weight:650}.preview-stage{border:1px solid color-mix(in srgb,var(--brand) 14%,var(--border));border-radius:var(--radius-lg);box-shadow:0 1px 0 #ffffff0f inset,var(--shadow-md);height:min(62vh,700px);margin-bottom:22px;min-height:min(450px,52vh);position:relative;width:100%}.preview-dh-clip,.preview-stage{background:#12141a;overflow:hidden}.preview-dh-clip{inset:0;position:absolute}.preview-dh-clip iframe{border:none;display:block;height:100%;left:0;position:absolute;top:0;transform:none;transform-origin:50% 50%;width:100%}.preview-dh-clip iframe.preview-iframe-hidden{display:none}.preview-overlay{align-items:center;display:flex;inset:0;justify-content:center;padding:24px;position:absolute;text-align:center;z-index:10}.preview-overlay--load{background:color-mix(in srgb,#0c0e12 88%,var(--brand) 4%);color:color-mix(in srgb,#f4f4f5 92%,var(--brand) 2%)}.preview-overlay--error{background:color-mix(in srgb,#0c0e12 92%,var(--danger) 6%);color:color-mix(in srgb,#f4f4f5 94%,#0000)}.preview-overlay-inner{max-width:400px}.preview-release-chip{background:color-mix(in srgb,#0c0e12 55%,#0000);border:1px solid #f4f4f529;border-radius:999px;color:color-mix(in srgb,#f4f4f5 58%,#0000);font-size:11.5px;padding:5px 11px;right:12px}.preview-deadline-chip,.preview-release-chip{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);letter-spacing:.02em;pointer-events:none;position:absolute;top:12px;z-index:5}.preview-deadline-chip{font-feature-settings:"tnum";background:color-mix(in srgb,#0c0e12 78%,#0000);border:1px solid color-mix(in srgb,#f59e0b 48%,#0000);border-radius:999px;color:#fde68a;font-size:13px;font-variant-numeric:tabular-nums;font-weight:650;left:12px;padding:7px 14px}.preview-deadline-chip--warn{animation:previewDeadlinePulse 1.6s ease-in-out infinite;border-color:color-mix(in srgb,#f59e0b 80%,#0000);color:#fef08a}@keyframes previewDeadlinePulse{0%,to{box-shadow:0 0 0 0 #f59e0b00}50%{box-shadow:0 0 0 4px #f59e0b38}}.preview-reload-btn{margin-top:14px}.preview-overlay-title{font-size:18px;font-weight:700;letter-spacing:.02em;margin:0 0 10px}.preview-overlay-text{font-size:14px;line-height:1.6;margin:0;opacity:.92}.preview-overlay .spinner{border-color:color-mix(in srgb,var(--border) 40%,#0000);border-top-color:color-mix(in srgb,var(--brand) 65%,#fff);margin:0 auto 16px}.preview-footer-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px 12px;justify-content:flex-end}.preview-btn-feedback{border-color:var(--border);color:var(--text-secondary)}.preview-btn-feedback:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 22%,var(--border));color:var(--text)}.preview-feedback-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:8px}.preview-feedback-actions .btn{border-radius:999px;font-weight:650;padding:11px 20px;transition:transform .2s cubic-bezier(.25,1,.5,1)}.preview-feedback-actions .btn:hover:not(:disabled){transform:translateY(-1px)}.preview-success-backdrop{align-items:center;animation:previewFadeIn .22s cubic-bezier(.25,1,.5,1) forwards;background:color-mix(in srgb,#1a1d24 48%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000}.preview-success-card{animation:previewSuccessIn .4s cubic-bezier(.16,1,.3,1) forwards;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 70%,var(--brand) 12%);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:380px;padding:28px 26px 26px;text-align:center;width:100%}.preview-success-icon{align-items:center;background:color-mix(in srgb,var(--success) 12%,var(--card));border:1px solid color-mix(in srgb,var(--success) 22%,#0000);border-radius:999px;color:color-mix(in srgb,var(--success) 55%,var(--text));display:flex;font-size:22px;height:48px;justify-content:center;margin:0 auto 14px;width:48px}.preview-success-title{color:var(--text);font-size:18px;font-weight:700;margin:0 0 8px}.preview-success-sub{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0}@keyframes previewFadeIn{0%{opacity:0}to{opacity:1}}@keyframes previewSuccessIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.preview-feedback-actions .btn:hover:not(:disabled){transform:none}.preview-audio-hint,.preview-deadline-chip--warn{animation:none}.preview-feedback-backdrop,.preview-feedback-card,.preview-success-backdrop,.preview-success-card{animation:none;opacity:1;transform:none}}@media (min-width:1024px){.preview-page{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100vh;height:100dvh;min-height:0;overflow:hidden}}.preview-topbar{padding:14px clamp(16px,3vw,28px) 0}.preview-topbar,.preview-topbar-left{align-items:center;display:flex;gap:12px}.preview-topbar-left{margin-right:auto;min-width:0}.preview-back{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:50%;color:var(--text);display:inline-flex;flex:none;font-size:22px;height:34px;justify-content:center;line-height:1;text-decoration:none;transition:border-color .18s ease,color .18s ease;width:34px}.preview-back:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));color:var(--brand)}.preview-topbar-title{color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.2;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-main{grid-gap:clamp(14px,1.8vw,24px);box-sizing:border-box;display:grid;gap:clamp(14px,1.8vw,24px);grid-template-columns:minmax(0,1fr) clamp(300px,26vw,360px);margin:0 auto;max-width:1440px;min-height:0;padding:clamp(12px,2vh,20px) clamp(16px,3vw,28px) 0;width:100%}.preview-stage-col{display:flex;min-height:0;min-width:0}@media (min-width:1024px){.preview-stage{flex:1 1;height:auto;margin-bottom:0;min-height:0}}.preview-rail{display:flex;flex-direction:column;gap:12px;min-height:0;overflow-y:auto;padding:0 2px 14px}.preview-card--rail{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:none;margin:0;max-width:none;padding:14px 16px}.preview-card--rail .preview-lede{font-size:13.5px;line-height:1.6}.preview-card--rail .preview-audio-hint{font-size:12.5px;gap:8px;margin:10px 0 0;padding:9px 12px}.preview-card--rail .preview-audio-hint-mark{height:7px;margin-top:5px;width:7px}.preview-rail .preview-flow{margin-bottom:0}@media (min-width:1024px){.preview-rail .preview-flow-list{gap:8px;grid-template-columns:1fr}.preview-rail .preview-flow-step{gap:10px;padding:10px 12px}}.preview-footer{align-items:center;background:color-mix(in srgb,var(--card) 94%,var(--brand-50));border:1px solid color-mix(in srgb,var(--brand) 32%,var(--border));border-radius:var(--radius-lg);box-shadow:var(--shadow-brand);box-sizing:border-box;display:flex;gap:12px 16px;justify-content:space-between;margin:10px auto 14px;max-width:1384px;padding:12px 16px;width:calc(100% - clamp(32px, 6vw, 56px))}.preview-footer-hint{color:var(--text-secondary);flex:1 1 auto;font-size:13px;line-height:1.55;margin:0;min-width:0}.preview-footer .btn{font-weight:650;min-height:42px;padding:0 20px;white-space:nowrap}.preview-feedback-backdrop{align-items:center;animation:previewFadeIn .22s cubic-bezier(.25,1,.5,1) forwards;background:color-mix(in srgb,#1a1d24 52%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000}.preview-feedback-card{animation:previewSuccessIn .38s cubic-bezier(.16,1,.3,1) forwards;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 75%,var(--brand) 10%);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:460px;padding:22px 24px;width:100%}.preview-feedback-card .form-group{margin-bottom:14px}@media (max-width:1023px){.preview-page{display:block;height:auto;min-height:100vh;min-height:100dvh;overflow:visible}.preview-topbar{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:color-mix(in srgb,var(--card) 92%,#0000);border-bottom:1px solid var(--border-light);padding-bottom:10px;padding-top:10px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.preview-main{display:flex;flex-direction:column;padding-bottom:24px}.preview-stage{height:auto;min-height:55vh}.preview-rail{overflow:visible;padding-bottom:0}.preview-footer{bottom:calc(12px + env(safe-area-inset-bottom, 0px));flex-wrap:wrap;position:-webkit-sticky;position:sticky;z-index:30}.preview-footer-actions{justify-content:flex-start}}.preview-back:focus-visible,.preview-footer-actions .btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.room-page .ap-main{box-sizing:border-box;max-width:1280px;padding:clamp(18px,3.5vw,28px) clamp(20px,4.5vw,40px) 48px}.room-page .ap-hero{margin-bottom:clamp(18px,2.5vw,24px);margin-top:0}.room-layout{grid-gap:clamp(20px,3vw,28px);align-items:start;display:grid;gap:clamp(20px,3vw,28px);grid-template-columns:1fr}@media (min-width:1024px){.room-layout{align-items:stretch;grid-template-areas:"stage aside";grid-template-columns:minmax(0,1fr) minmax(280px,320px)}.room-stage{align-self:stretch;display:flex;flex-direction:column;grid-area:stage;min-height:0}.room-aside{align-self:stretch;grid-area:aside}.room-prestart{flex-shrink:0}}.room-intro-backdrop{align-items:center;animation:roomIntroBackdropIn .32s cubic-bezier(.16,1,.3,1) forwards;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:color-mix(in srgb,var(--text) 42%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000}@keyframes roomIntroBackdropIn{0%{opacity:0}to{opacity:1}}.room-intro-dialog{animation:roomIntroDialogIn .42s cubic-bezier(.16,1,.3,1) forwards;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 78%,var(--brand) 8%);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-height:min(88vh,640px);max-width:520px;overflow:auto;padding:clamp(24px,4vw,32px);width:100%}@keyframes roomIntroDialogIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.room-intro-head{border-bottom:1px solid color-mix(in srgb,var(--border) 85%,var(--brand) 12%);margin-bottom:20px;padding-bottom:16px}.room-intro-kicker{color:color-mix(in srgb,var(--muted) 82%,var(--brand) 18%);font-size:11px;font-weight:650;letter-spacing:.12em;margin:0 0 6px;text-transform:uppercase}.room-intro-title{color:var(--text);font-family:var(--font-sans);font-size:clamp(1.35rem,1.5vw + 1rem,1.65rem);font-weight:700;letter-spacing:.02em;margin:0}.room-intro-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0 0 28px;padding:0}.room-intro-item{animation:roomIntroRowIn .4s cubic-bezier(.16,1,.3,1) forwards;animation-delay:0ms;animation-delay:var(--room-intro-delay,0ms);background:color-mix(in srgb,var(--card) 96%,var(--brand) 2%);border:1px solid color-mix(in srgb,var(--border) 88%,var(--brand) 6%);border-left:4px solid color-mix(in srgb,var(--brand) 72%,var(--border));border-radius:var(--radius-md);margin:0;opacity:0;padding:14px 16px 14px 18px}@keyframes roomIntroRowIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.room-intro-item-title{color:var(--text);font-size:14px;font-weight:700;margin-bottom:6px}.room-intro-item p{color:var(--muted);font-size:14px;line-height:1.55;margin:0}.room-intro-actions{display:flex;justify-content:center}.room-intro-actions .btn-primary{font-size:15px;font-weight:650;min-width:200px;padding:12px 28px;transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s cubic-bezier(.16,1,.3,1)}.room-intro-actions .btn-primary:hover:not(:disabled){transform:translateY(-1px)}.room-intro-actions .btn-primary:active:not(:disabled){transform:translateY(0)}.room-ending-backdrop{--room-end-ease:cubic-bezier(0.16,1,0.3,1);align-items:center;animation:roomEndingBackdropIn .38s var(--room-end-ease) forwards;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in srgb,var(--text) 52%,#0000);display:flex;inset:0;justify-content:center;padding:clamp(16px,4vw,32px);position:fixed;z-index:50000}@keyframes roomEndingBackdropIn{0%{opacity:0}to{opacity:1}}.room-ending-dialog{animation:roomEndingDialogIn .52s var(--room-end-ease) forwards;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 68%,var(--brand) 16%);border-radius:var(--radius-xl);box-shadow:0 28px 80px color-mix(in srgb,var(--text) 22%,#0000),0 1px 0 #ffffffeb inset;max-height:min(88vh,680px);max-width:min(560px,94vw);overflow:auto;padding:clamp(28px,5vw,40px) clamp(24px,4vw,36px);text-align:center;width:100%}@keyframes roomEndingDialogIn{0%{opacity:0;transform:translateY(22px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.room-ending-kicker{animation:roomEndingFadeUp .45s var(--room-end-ease) .05s both;color:color-mix(in srgb,var(--muted) 75%,var(--brand) 25%);font-size:10px;font-weight:650;letter-spacing:.18em;margin:0 0 20px;text-transform:uppercase}.room-ending-hero{animation:roomEndingFadeUp .48s var(--room-end-ease) .1s both;margin-bottom:22px}.room-ending-hero-ring{align-items:center;animation:roomEndingRingIn .58s var(--room-end-ease) .12s both;background:color-mix(in srgb,#22c55e 14%,var(--card));border:2px solid color-mix(in srgb,#22c55e 38%,var(--border));border-radius:50%;box-shadow:0 12px 36px color-mix(in srgb,#22c55e 22%,#0000);color:color-mix(in srgb,#15803d 88%,var(--brand));display:flex;height:96px;justify-content:center;margin:0 auto 18px;position:relative;width:96px}.room-ending-hero-ring__pulse{animation:roomEndingRingPulse 2.4s var(--room-end-ease) infinite;border:1px solid color-mix(in srgb,#22c55e 35%,#0000);border-radius:50%;inset:-6px;pointer-events:none;position:absolute}@keyframes roomEndingRingPulse{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.85;transform:scale(1.06)}}.room-ending-hero-check{align-items:center;animation:roomEndingCheckIn .5s var(--room-end-ease) .28s both;display:flex;justify-content:center;position:relative}.room-ending-hero--warning .room-ending-hero-ring{background:color-mix(in srgb,#f59e0b 16%,var(--card));border-color:color-mix(in srgb,#f59e0b 48%,var(--border));box-shadow:0 12px 36px color-mix(in srgb,#f59e0b 20%,#0000);color:color-mix(in srgb,#b45309 92%,var(--brand))}.room-ending-hero--warning .room-ending-hero-ring__pulse{animation:roomEndingRingPulseWarn 2.4s var(--room-end-ease) infinite;border-color:color-mix(in srgb,#f59e0b 40%,#0000)}@keyframes roomEndingRingPulseWarn{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.75;transform:scale(1.05)}}@keyframes roomEndingRingIn{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}@keyframes roomEndingCheckIn{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@keyframes roomEndingFadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.room-ending-title{color:var(--text);font-family:var(--font-sans);font-size:clamp(1.45rem,1.8vw + 1rem,1.85rem);font-weight:700;letter-spacing:.02em;margin:0 0 10px}.room-ending-lede{color:var(--muted);font-size:15px;line-height:1.55;margin:0 auto;max-width:28em}.room-ending-hint{animation:roomEndingFadeUp .5s var(--room-end-ease) .18s both;background:color-mix(in srgb,#22c55e 10%,var(--card));border:1px solid color-mix(in srgb,#22c55e 26%,var(--border));border-radius:var(--radius-md);margin:0 0 24px;padding:14px 16px;text-align:left}.room-ending-hint__lead{color:color-mix(in srgb,#166534 92%,var(--text));font-size:14px;font-weight:650;line-height:1.5;margin:0 0 8px}.room-ending-hint__sub{color:color-mix(in srgb,var(--muted) 88%,#166534 12%);font-size:12px;line-height:1.45;margin:0}.room-ending-bar-wrap{animation:roomEndingFadeUp .5s var(--room-end-ease) .22s both;margin-bottom:12px}.room-ending-bar{background:color-mix(in srgb,var(--border-light) 82%,#22c55e 10%);border-radius:999px;height:11px;overflow:hidden;position:relative;width:100%}.room-ending-bar--sub{background:color-mix(in srgb,var(--border-light) 86%,#22c55e 8%);height:8px;margin-top:0}.room-ending-bar-fill{background:linear-gradient(90deg,color-mix(in srgb,#22c55e 70%,var(--brand) 30%),#22c55e);border-radius:999px;height:100%;position:relative;transform-origin:left center;transition:width .4s var(--room-end-ease)}.room-ending-bar--busy .room-ending-bar-fill:after{animation:roomEndingBarSheen 1.35s var(--room-end-ease) infinite;background:linear-gradient(105deg,#0000,#ffffff61 48%,#0000 96%);border-radius:inherit;content:"";inset:0;pointer-events:none;position:absolute}@keyframes roomEndingBarSheen{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.room-ending-bar-fill--sub{background:color-mix(in srgb,#22c55e 78%,var(--brand) 22%)}.room-ending-meta{align-items:baseline;animation:roomEndingFadeUp .5s var(--room-end-ease) .26s both;display:flex;font-size:14px;gap:14px;justify-content:space-between;margin-bottom:20px;text-align:left}.room-ending-step{color:var(--text-secondary);flex:1 1;min-width:0}.room-ending-pct{font-feature-settings:"tnum";color:color-mix(in srgb,#15803d 82%,var(--brand) 18%);font-size:15px;font-variant-numeric:tabular-nums;font-weight:700}.room-ending-upload{animation:roomEndingFadeUp .45s var(--room-end-ease) both;background:color-mix(in srgb,#22c55e 8%,var(--card));border:1px solid color-mix(in srgb,var(--border) 72%,#22c55e 14%);border-radius:var(--radius-md);margin-bottom:22px;padding:14px 16px;text-align:left}.room-ending-upload-status{color:color-mix(in srgb,#166534 90%,var(--text));font-size:13px;font-weight:650;margin-bottom:10px}.room-ending-upload-pct{font-feature-settings:"tnum";color:color-mix(in srgb,#166534 88%,var(--muted));font-size:12px;font-variant-numeric:tabular-nums;font-weight:600;margin-top:8px;text-align:right}.room-ending-upload--detail .room-ending-upload-status{margin-bottom:6px}.room-ending-upload-size{font-feature-settings:"tnum";color:color-mix(in srgb,#166534 80%,var(--muted));font-size:12px;font-variant-numeric:tabular-nums;font-weight:600}.room-ending-steps{animation:roomEndingFadeUp .5s var(--room-end-ease) .3s both;color:var(--muted);display:flex;font-size:11px;font-weight:650;gap:10px;justify-content:space-between;letter-spacing:.05em;list-style:none;margin:0;padding:0;text-transform:uppercase}.room-ending-dialog--upload-failed .room-ending-steps{gap:clamp(10px,2.5vw,14px);margin-bottom:clamp(22px,5vw,34px);padding-bottom:4px}.room-ending-dialog--upload-failed .room-ending-steps li{align-items:center;display:flex;justify-content:center;line-height:1.25;min-height:44px;padding:12px 8px}.room-ending-steps li{background:color-mix(in srgb,var(--card) 96%,var(--border));border:1px solid var(--border);border-radius:var(--radius-md);flex:1 1;padding:10px 6px;text-align:center;transition:color .3s var(--room-end-ease),border-color .3s var(--room-end-ease),background .3s var(--room-end-ease),transform .3s var(--room-end-ease)}.room-ending-steps li.is-done{background:color-mix(in srgb,#22c55e 12%,var(--card));border-color:color-mix(in srgb,#22c55e 48%,var(--border));color:color-mix(in srgb,#166534 94%,var(--text));transform:translateY(-1px)}.room-ending-steps li.is-fail{background:color-mix(in srgb,#fef3c7 35%,var(--card));border-color:color-mix(in srgb,#f59e0b 55%,var(--border));color:color-mix(in srgb,#b45309 95%,var(--text));transform:translateY(0)}.room-ending-upload-fail{animation:roomEndingFailPanelIn .42s cubic-bezier(.22,1,.36,1) both;background:color-mix(in srgb,#fffbeb 55%,var(--card));border:1px solid color-mix(in srgb,#f59e0b 42%,var(--border));border-radius:var(--radius-md);margin-top:18px;padding:18px clamp(16px,4vw,22px) 20px;text-align:center}.room-ending-dialog--upload-failed .room-ending-upload-fail{margin-top:0}@keyframes roomEndingFailPanelIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.room-ending-upload-fail__msg{color:color-mix(in srgb,#92400e 92%,var(--text));font-size:13px;font-weight:650;line-height:1.55;margin:0 0 10px}.room-ending-upload-fail__hint{color:color-mix(in srgb,#92400e 78%,var(--muted));font-size:12px;line-height:1.5;margin:0 0 18px}.room-ending-retry-btn{margin-top:2px;max-width:280px;padding-bottom:12px;padding-top:12px;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1),opacity .2s ease;width:100%}.room-ending-retry-btn:not(:disabled):hover{transform:translateY(-1px)}.room-ending-retry-btn:not(:disabled):active{transform:translateY(0)}.room-ending-retry-btn:disabled{cursor:not-allowed;opacity:.75}.room-ending-protected{animation:roomEndingFadeUp .45s var(--room-end-ease) both;background:linear-gradient(165deg,color-mix(in srgb,#fef3c7 55%,var(--card)),color-mix(in srgb,#fde68a 35%,var(--card)));border:1px solid color-mix(in srgb,#f59e0b 45%,var(--border));border-radius:var(--radius-md);margin-top:22px;padding:18px;text-align:center}.room-ending-protected__title{color:#92400e;font-size:15px;font-weight:700;margin:0 0 8px}.room-ending-protected__body{color:color-mix(in srgb,#92400e 92%,var(--text));font-size:13px;line-height:1.5;margin:0 0 14px}.room-ending-protected .btn-primary{max-width:240px;width:100%}@media (max-width:420px){.room-ending-steps{flex-wrap:wrap}.room-ending-steps li{flex:1 1 30%;min-width:calc(33.33% - 8px)}.room-ending-dialog--upload-failed .room-ending-steps{gap:10px;row-gap:12px}}.room-aside{container-name:room-aside;container-type:inline-size;display:flex;flex-direction:column;gap:14px}.room-aside-panel{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-xl);box-shadow:0 1px 0 #ffffffa6 inset,var(--shadow-md);padding:clamp(18px,2.2vw,24px)}.room-aside-title{color:color-mix(in srgb,var(--muted) 78%,var(--brand) 22%);font-size:13px;font-weight:700;letter-spacing:.06em;margin:0 0 14px;text-transform:uppercase}.room-steps{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.room-step{align-items:flex-start;color:var(--text-secondary);display:flex;font-size:13px;gap:12px;line-height:1.5}.room-step-num{background:var(--brand);border-radius:50%;display:flex;flex-shrink:0;font-size:11px;font-weight:800;height:22px;width:22px}.room-device-btn,.room-step-num{align-items:center;color:#fff;justify-content:center}.room-device-btn{background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 88%,#1a1a1a) 0,var(--brand) 100%);border:none;border-radius:var(--radius-md);box-shadow:0 4px 14px color-mix(in srgb,var(--brand) 28%,#0000);cursor:pointer;display:inline-flex;font-size:13px;font-weight:650;gap:8px;line-height:1.2;min-width:0;overflow:hidden;padding:11px 14px;position:relative;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1),opacity .2s ease;white-space:nowrap;width:100%}.room-device-btn svg{flex-shrink:0}@container room-aside (max-width: 300px){.room-device-btn{font-size:12px;gap:6px;padding-inline:10px}.room-device-btn svg{height:18px;width:18px}}.room-device-btn:hover:not(:disabled){box-shadow:0 6px 20px color-mix(in srgb,var(--brand) 34%,#0000);transform:translateY(-1px)}.room-device-btn:active:not(:disabled){transform:translateY(0)}.room-device-btn:disabled{background:var(--muted);box-shadow:none;cursor:not-allowed;opacity:.55}.room-device-btn__shimmer{animation:roomShimmer 2.2s ease-in-out infinite;background:linear-gradient(90deg,#0000,#ffffff38,#0000);height:100%;left:-100%;pointer-events:none;position:absolute;top:0;width:100%}@keyframes roomShimmer{0%{transform:translateX(0)}to{transform:translateX(200%)}}.room-callout{background:color-mix(in srgb,var(--brand) 6%,var(--card));border:1px solid color-mix(in srgb,var(--brand) 35%,var(--border));border-radius:var(--radius-md);padding:14px 16px}.room-callout--risk{background:color-mix(in srgb,var(--brand) 5%,var(--card));border-color:color-mix(in srgb,var(--brand) 42%,#c4c4c4)}.room-callout__title{align-items:center;color:var(--text);display:flex;font-size:14px;font-weight:700;gap:8px;margin:0 0 8px}.room-callout__body{color:var(--text-secondary);font-size:13px;line-height:1.55;margin:0}.room-callout__emph{color:var(--brand);display:block;font-size:13px;font-weight:650;margin-top:8px}.room-timer{align-items:stretch;background:color-mix(in srgb,var(--card) 94%,var(--brand) 3%);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;gap:14px;justify-content:space-between;padding:12px 14px;transition:border-color .25s cubic-bezier(.16,1,.3,1),background .25s cubic-bezier(.16,1,.3,1)}.room-timer--live{background:color-mix(in srgb,var(--brand) 12%,var(--card));border-color:color-mix(in srgb,var(--brand) 28%,var(--border));color:var(--text)}.room-timer__clock{align-items:center;display:flex;flex:1 1;gap:12px;min-width:0}.room-timer__icon{align-items:center;background:color-mix(in srgb,var(--border-light) 90%,var(--brand) 10%);border-radius:var(--radius-sm);color:var(--text);display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.room-timer--live .room-timer__icon{background:color-mix(in srgb,var(--brand) 18%,#0000);color:var(--brand)}.room-timer--warn .room-timer__remain-val{color:var(--brand)}.room-timer__nums{font-feature-settings:"tnum";font-size:19px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.02em}.room-timer__slash{font-size:12px;font-weight:600;opacity:.75}.room-timer__bar{background:color-mix(in srgb,var(--border) 80%,#0000);border-radius:2px;height:3px;margin-top:8px;overflow:hidden;width:100%}.room-timer__bar-fill{border-radius:2px;height:100%;transition:width .5s ease,background .3s ease}.room-timer__remain{border-left:1px solid color-mix(in srgb,var(--border) 85%,var(--brand) 8%);padding-left:12px;text-align:right}.room-timer__remain-label{font-size:10px;font-weight:650;letter-spacing:.08em;margin-bottom:4px;opacity:.75;text-transform:uppercase}.room-timer__remain-val{font-feature-settings:"tnum";font-size:17px;font-variant-numeric:tabular-nums;font-weight:700}.room-vol-label{color:var(--text-secondary);font-size:13px;font-weight:650;margin:0 0 8px}.room-vol-hint{color:var(--muted);font-size:12px;margin:8px 0 0}.room-stage{min-width:0}.room-dh-shell{--room-stage-ease:cubic-bezier(0.16,1,0.3,1);background:radial-gradient(ellipse 100% 80% at 50% -20%,color-mix(in srgb,var(--card) 70%,var(--brand) 8%),#0000 52%),linear-gradient(168deg,color-mix(in srgb,var(--card) 98%,var(--brand) 2%) 0,color-mix(in srgb,var(--border-light) 42%,var(--card)) 52%,color-mix(in srgb,var(--card) 96%,var(--brand) 3%) 100%);border:1px solid color-mix(in srgb,var(--border) 78%,var(--brand) 12%);border-radius:var(--radius-xl);box-shadow:0 1px 0 #ffffffe0 inset,var(--shadow-md);display:flex;flex:1 1 auto;flex-direction:column;min-height:min(42vh,420px);overflow:hidden;position:relative}.room-dh-shell--live{padding:0}@media (min-width:1024px){.room-dh-shell{flex:1 1 auto;min-height:0}}.room-dh-frame{background:color-mix(in srgb,#2f2829 90%,var(--brand) 10%);display:flex;flex:1 1 auto;flex-direction:column;min-height:0;position:relative;width:100%}@media (max-width:1023px){.room-dh-frame{min-height:min(60vh,560px)}}.room-dh-clip{flex:1 1 auto;min-height:0;overflow:hidden;position:relative;width:100%}.room-dh-iframe{border:none;display:block;height:100%;left:0;position:absolute;top:0;transform:none;transform-origin:50% 50%;width:100%}.room-dh-idle{flex:1 1 auto;flex-direction:column;min-height:0;padding:clamp(24px,5vw,48px) 20px;text-align:center}.room-dh-idle,.room-dh-idle__frame{align-items:center;display:flex;justify-content:center}.room-dh-idle__frame{animation:roomIdleFloat 5s var(--room-stage-ease) infinite;aspect-ratio:4/3;background:color-mix(in srgb,var(--card) 82%,var(--brand) 4%);border:1px dashed color-mix(in srgb,var(--border) 72%,var(--brand) 14%);border-radius:var(--radius-lg);color:color-mix(in srgb,var(--muted) 55%,var(--brand) 45%);margin-bottom:18px;width:min(200px,52%)}@keyframes roomIdleFloat{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.92;transform:translateY(-4px)}}.room-dh-idle__icon{height:56px;width:56px}.room-dh-idle__title{color:var(--text);font-size:15px;font-weight:700;letter-spacing:.02em;margin:0 0 8px}.room-dh-idle__hint{color:var(--muted);font-size:13px;line-height:1.55;margin:0;max-width:22em}.room-pip{bottom:14px;position:absolute;right:14px;width:min(220px,38vw);z-index:20}.room-pip-inner{background:var(--card);border:1px solid color-mix(in srgb,var(--border) 65%,var(--brand) 18%);border-radius:var(--radius-md);box-shadow:0 4px 20px color-mix(in srgb,var(--text) 12%,#0000),0 1px 0 #ffffffe6 inset;overflow:hidden}.room-pip-placeholder{align-items:center;background:color-mix(in srgb,var(--card) 94%,var(--brand) 3%);color:var(--muted);display:flex;flex-direction:column;gap:8px;justify-content:center;min-height:120px;padding:20px 14px;text-align:center}.room-pip-placeholder__icon{color:color-mix(in srgb,var(--muted) 70%,var(--brand) 30%);display:flex;opacity:.85}.room-pip-placeholder__text{font-size:12px;line-height:1.45;max-width:12em}.room-face-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in srgb,var(--card) 88%,#0000);border:1px solid color-mix(in srgb,var(--border) 80%,var(--brand) 10%);border-radius:var(--radius-md);bottom:14px;box-shadow:0 8px 24px color-mix(in srgb,var(--text) 8%,#0000);color:var(--text-secondary);left:14px;line-height:1.45;max-width:min(300px,85%);padding:10px 14px}.room-face-badge,.room-start-deadline-chip{font-size:12px;position:absolute;z-index:15}.room-start-deadline-chip{font-feature-settings:"tnum";-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,var(--card) 82%,#0000);border:1px solid color-mix(in srgb,var(--brand) 28%,#0000);border-radius:999px;box-shadow:0 6px 18px color-mix(in srgb,var(--text) 8%,#0000);color:color-mix(in srgb,var(--text) 85%,#0000);font-variant-numeric:tabular-nums;letter-spacing:.02em;padding:6px 12px;pointer-events:none;right:14px;top:14px}.room-start-deadline-chip--warn{background:color-mix(in srgb,#fffbeb 88%,#0000);border-color:#fde68a;color:#b45309}.room-face-badge strong{color:var(--text);display:block;font-size:12px;font-weight:700;margin-bottom:4px}.room-face-badge__row{align-items:center;display:flex;gap:8px}.room-face-badge--warn{background:color-mix(in srgb,#fef2f2 92%,#0000);border-color:color-mix(in srgb,#ef4444 55%,#0000);color:#b91c1c}.room-face-badge--warn strong{color:#b91c1c}.room-dh-shell--live .room-face-badge--warn{background:color-mix(in srgb,#7f1d1d 72%,#0000);border-color:color-mix(in srgb,#ef4444 60%,#0000);color:#fecaca}.room-dh-shell--live .room-face-badge--warn strong{color:#fecaca}.room-dh-shell--live .room-face-badge{background:color-mix(in srgb,#1a1718 58%,#0000);border-color:color-mix(in srgb,#fff 14%,#0000);color:#e8e6e7}.room-dh-shell--live .room-face-badge strong{color:#fff}.room-dh-shell--live .room-spinner--on-light{border-color:#fff #ffffff52 #ffffff52}.room-prestart--embedded{background:color-mix(in srgb,var(--card) 90%,var(--brand) 5%);border:none;border-bottom:1px dashed color-mix(in srgb,var(--border) 75%,var(--brand) 14%);border-radius:0;flex-shrink:0;margin:0;padding:clamp(16px,2.5vw,22px) clamp(18px,3vw,24px);text-align:left}.room-dh-shell>.room-prestart--embedded:first-child{border-radius:var(--radius-xl) var(--radius-xl) 0 0}.room-prestart__row{align-items:center;display:flex;flex-wrap:wrap;gap:16px 20px}.room-prestart__copy{flex:1 1 200px;min-width:0}.room-prestart__mark{align-items:center;animation:roomPrestartPulse 2.4s var(--room-stage-ease) infinite;background:var(--brand);border-radius:50%;box-shadow:0 8px 24px color-mix(in srgb,var(--brand) 28%,#0000);color:#fff;display:flex;flex-shrink:0;height:56px;justify-content:center;width:56px}.room-prestart__cta{flex-shrink:0;font-size:14px;font-weight:650;padding:10px 22px;transition:transform .2s var(--room-stage-ease),box-shadow .2s var(--room-stage-ease)}.room-prestart__cta:hover:not(:disabled){transform:translateY(-1px)}.room-prestart--embedded h2{color:var(--text);font-family:var(--font-sans);font-size:clamp(1.1rem,1vw + .95rem,1.35rem);font-weight:700;margin:0 0 6px}.room-prestart--embedded p{color:var(--muted);font-size:14px;line-height:1.5;margin:0}.room-prestart__deadline{font-feature-settings:"tnum";color:color-mix(in srgb,var(--brand) 80%,var(--text));font-size:13px;font-variant-numeric:tabular-nums;font-weight:650;margin-top:8px}.room-prestart__deadline--warn{color:#b45309}@media (max-width:560px){.room-prestart__row{align-items:stretch;flex-direction:column}.room-prestart__cta{width:100%}}@keyframes roomPrestartPulse{0%,to{box-shadow:0 8px 24px color-mix(in srgb,var(--brand) 26%,#0000);transform:scale(1)}50%{box-shadow:0 10px 28px color-mix(in srgb,var(--brand) 34%,#0000);transform:scale(1.02)}}@keyframes roomSpin{to{transform:rotate(1turn)}}.room-spinner{animation:roomSpin .85s linear infinite;border:2px solid #ffffff59;border-radius:50%;border-top-color:#fff;height:12px;width:12px}.room-spinner--on-light{border-color:color-mix(in srgb,var(--border) 75%,var(--brand) 12%);border-top-color:var(--brand)}@media (prefers-reduced-motion:reduce){.room-ending-backdrop,.room-ending-bar-wrap,.room-ending-dialog,.room-ending-hero,.room-ending-hero--warning .room-ending-hero-ring__pulse,.room-ending-hero-check,.room-ending-hero-ring,.room-ending-hero-ring__pulse,.room-ending-hint,.room-ending-kicker,.room-ending-meta,.room-ending-protected,.room-ending-steps,.room-ending-upload,.room-ending-upload-fail{animation:none!important;opacity:1;transform:none}.room-ending-bar--busy .room-ending-bar-fill:after{display:none}.room-intro-backdrop,.room-intro-dialog,.room-intro-item{animation:none;opacity:1;transform:none}.room-device-btn__shimmer{display:none}.room-dh-idle__frame,.room-prestart__mark,.room-spinner{animation:none}.room-spinner{border-top-color:#fff9}.room-spinner--on-light{border-top-color:var(--brand)}}.interview-success-page{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:clamp(20px,5vw,40px)}.is-card{animation:isCardIn .52s cubic-bezier(.16,1,.3,1) forwards;background:color-mix(in srgb,var(--card) 98%,#0000);border:1px solid color-mix(in srgb,var(--border) 75%,var(--brand) 12%);border-radius:var(--radius-xl);box-shadow:0 1px 0 #ffffffe6 inset,var(--shadow-lg);max-width:460px;padding:clamp(28px,5vw,40px) clamp(24px,4vw,36px);text-align:center;width:100%}@keyframes isCardIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.is-kicker{color:color-mix(in srgb,var(--muted) 80%,var(--brand) 20%);font-size:10px;font-weight:650;letter-spacing:.16em;margin:0 0 10px;text-transform:uppercase}.is-mark{align-items:center;animation:isMarkPulse 2.8s cubic-bezier(.16,1,.3,1) infinite;background:color-mix(in srgb,#22c55e 78%,var(--brand) 22%);border-radius:50%;box-shadow:0 14px 36px color-mix(in srgb,#22c55e 32%,#0000);color:#fff;display:flex;height:88px;justify-content:center;margin:0 auto 22px;width:88px}@keyframes isMarkPulse{0%,to{box-shadow:0 14px 36px color-mix(in srgb,#22c55e 28%,#0000);transform:scale(1)}50%{box-shadow:0 18px 44px color-mix(in srgb,#22c55e 38%,#0000);transform:scale(1.03)}}.is-title{color:var(--text);font-family:var(--font-sans);font-size:clamp(1.5rem,2vw + 1.1rem,1.85rem);font-weight:700;letter-spacing:.02em;margin:0 0 10px}.is-sub{color:var(--muted);font-size:15px;line-height:1.55;margin:0 0 24px}.is-summary{background:color-mix(in srgb,var(--card) 94%,var(--brand) 3%);border:1px solid color-mix(in srgb,var(--border) 85%,var(--brand) 8%);border-radius:var(--radius-md);margin:0 0 24px;padding:16px 18px;text-align:left}.is-row{align-items:center;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,#0000);display:flex;font-size:14px;gap:12px;justify-content:space-between;padding:8px 0}.is-row:last-child{border-bottom:none;padding-bottom:0}.is-row:first-child{padding-top:0}.is-row span:first-child{color:var(--muted)}.is-row span:last-child{color:color-mix(in srgb,#166534 88%,var(--brand));font-weight:650}.is-countdown{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:8px;justify-content:center;margin:0 0 22px}.is-countdown strong{font-feature-settings:"tnum";color:var(--brand);font-variant-numeric:tabular-nums;font-weight:700}.is-actions .btn-primary{font-size:15px;font-weight:650;min-width:160px;padding:12px 28px;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1)}.is-actions .btn-primary:hover:not(:disabled){transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){.is-card,.is-mark{animation:none}.is-mark{transform:none}}.profile-page{height:100vh;height:100dvh;min-height:0;overflow:hidden}.profile-page .profile-main{display:flex;flex:1 1;flex-direction:column;margin:0 auto;max-width:880px;min-height:0;padding:16px 32px 24px;width:100%}.profile-topbar{flex:none;gap:10px 16px;justify-content:space-between;padding-bottom:14px}.profile-topbar,.profile-topbar-left{align-items:center;display:flex;flex-wrap:wrap}.profile-topbar-left{gap:10px;min-width:0}.profile-topbar-title{color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.01em;margin:0;white-space:nowrap}.profile-topbar-actions{align-items:center;display:flex;gap:8px;margin-left:auto}.profile-badge{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:12.5px;font-weight:600;padding:4px 11px;white-space:nowrap}.profile-badge--ok{background:color-mix(in srgb,#ecfdf5 85%,#0000);border-color:color-mix(in srgb,#6ee7b7 45%,#0000);color:#047857}.profile-badge--wait{background:color-mix(in srgb,var(--warning) 10%,var(--card));border-color:color-mix(in srgb,var(--warning) 30%,#0000);color:color-mix(in srgb,var(--warning) 62%,var(--text))}.profile-viewall{font-weight:600;min-height:40px;text-decoration:none}.profile-body{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain}@keyframes profileCardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.profile-card{animation:profileCardIn .45s cubic-bezier(.16,1,.3,1) backwards;background:color-mix(in srgb,var(--card) 98%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 6%);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.profile-card-head{align-items:center;background:color-mix(in srgb,var(--brand-50) 30%,#0000);display:flex;gap:22px;padding:26px 28px 22px}.profile-avatar{align-items:center;background:linear-gradient(135deg,var(--brand),var(--brand-600));border-radius:50%;box-shadow:0 10px 26px -10px color-mix(in srgb,var(--brand) 55%,#0000);color:#fff;display:flex;flex:none;font-size:32px;font-weight:700;height:88px;justify-content:center;-webkit-user-select:none;user-select:none;width:88px}.profile-id-copy{min-width:0}.profile-name{color:var(--text);font-size:22px;font-weight:700;letter-spacing:-.01em;line-height:1.25;margin:0 0 7px;word-break:break-all}.profile-meta{font-feature-settings:"tnum";color:var(--muted);font-size:13.5px;font-variant-numeric:tabular-nums;line-height:1.6;margin:0;word-break:break-all}.profile-stat{flex:none;margin-left:auto;text-align:right}.profile-stat-num{font-feature-settings:"tnum";color:var(--brand);display:block;font-size:24px;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.01em;line-height:1.15}.profile-stat-max{color:var(--muted);font-size:15px;font-weight:600}.profile-stat-label{color:var(--muted);display:block;font-size:12px;font-weight:600;margin-top:2px}.profile-section{border-top:1px solid color-mix(in srgb,var(--border-light) 92%,#0000);padding:18px 28px 22px}.profile-section-title{color:var(--brand);font-size:16px;font-weight:800;margin:0 0 8px}.profile-dl{margin:0}.profile-dl-row{grid-gap:12px;align-items:baseline;border-bottom:1px solid color-mix(in srgb,var(--border-light) 88%,#0000);display:grid;gap:12px;grid-template-columns:150px minmax(0,1fr);padding:9px 0}.profile-dl-row:last-child{border-bottom:none;padding-bottom:0}.profile-dl-row dt{color:var(--muted);font-size:13px;font-weight:600}.profile-dl-row dd{font-feature-settings:"tnum";color:var(--text);font-size:14px;font-variant-numeric:tabular-nums;font-weight:600;margin:0;word-break:break-all}.profile-table{border-collapse:collapse;font-size:14px;width:100%}.profile-table th{border-bottom:1px solid color-mix(in srgb,var(--border) 82%,var(--brand) 8%);color:var(--muted);font-size:12px;font-weight:600;padding:8px 0 9px;text-align:left;white-space:nowrap}.profile-table td{border-bottom:1px solid color-mix(in srgb,var(--border-light) 88%,#0000);padding:11px 0;vertical-align:middle}.profile-table tbody tr:last-child td{border-bottom:none}.profile-cell-time{white-space:nowrap}.profile-time-date{font-feature-settings:"tnum";color:var(--text);display:inline-block;font-variant-numeric:tabular-nums;font-weight:600;margin-right:10px}.profile-time-range{font-feature-settings:"tnum";color:var(--text-secondary);display:inline-block;font-size:13px;font-variant-numeric:tabular-nums}.profile-cell-status{white-space:nowrap}.profile-cell-result,.profile-th-result{text-align:right;white-space:nowrap}.profile-score{font-feature-settings:"tnum";color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.profile-dash{color:var(--muted)}.profile-chip{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:.6875rem;font-weight:600;letter-spacing:.02em;padding:.2rem .5rem;white-space:nowrap}.profile-chip--booked{background:color-mix(in srgb,#fff7ed 90%,#0000);border-color:color-mix(in srgb,#fdba74 35%,#0000);color:#9a3412}.profile-chip--ongoing{background:color-mix(in srgb,#ccfbf1 88%,#0000);border-color:color-mix(in srgb,#5eead4 40%,#0000);color:#0f766e}.profile-chip--completed{background:color-mix(in srgb,var(--brand-50) 75%,#e0f2fe 25%);border-color:color-mix(in srgb,var(--brand) 18%,#0000);color:var(--brand-700)}.profile-chip--cancelled{background:color-mix(in srgb,#fee2e2 88%,#0000);border-color:color-mix(in srgb,#fecaca 50%,#0000);color:#991b1b}.profile-chip--expired{background:color-mix(in srgb,#f3f4f6 92%,#0000);border-color:var(--border);color:#374151}.profile-chip--muted{background:var(--border-light);border-color:var(--border);color:var(--muted)}.profile-state{align-items:center;color:var(--muted);display:flex;flex-direction:column;font-size:13.5px;gap:10px;justify-content:center;min-height:140px}.profile-state .spinner{border-width:3px;height:26px;margin:0;width:26px}.profile-records-empty{color:var(--muted);font-size:13.5px;margin:0;padding:22px 0;text-align:center}.profile-viewall:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (max-width:1023px){.profile-page{height:auto;min-height:100vh;overflow:visible}.profile-main{padding:16px 16px 28px}.profile-body{overflow:visible}}@media (max-width:768px){.profile-card-head{flex-wrap:wrap;gap:16px;padding:20px 18px 18px}.profile-avatar{font-size:26px;height:72px;width:72px}.profile-name{font-size:20px}.profile-stat{align-items:baseline;display:flex;gap:8px;margin-left:0;text-align:left;width:100%}.profile-stat-label{margin-top:0}.profile-section{padding:16px 18px 20px}.profile-topbar-actions{margin-left:0;width:100%}.profile-viewall{align-items:center;display:inline-flex;flex:1 1;justify-content:center}.profile-dl-row{gap:2px;grid-template-columns:1fr}.profile-tablewrap{overflow-x:auto}.profile-table{min-width:480px}}@media (prefers-reduced-motion:reduce){.profile-card{animation:none;opacity:1;transform:none}}.dash-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:18px}.dash-stat{color:inherit;display:flex;flex-direction:column;gap:6px;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.dash-stat:focus-visible,.dash-stat:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));box-shadow:var(--shadow-lg);transform:translateY(-2px)}.dash-stat__num{font-feature-settings:"tnum";color:var(--text);font-size:2rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.15}.dash-stat__label{color:var(--text);font-size:14px;font-weight:600}.dash-stat__hint{color:var(--muted);font-size:12px}.dash-stat--skel{gap:10px}.dash-quick{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.dash-quick__item{background:color-mix(in srgb,var(--card) 95%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-md);color:inherit;display:flex;flex-direction:column;gap:4px;padding:16px;text-decoration:none;transition:transform .2s ease,border-color .2s ease}.dash-quick__item:focus-visible,.dash-quick__item:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));transform:translateY(-2px)}.dash-quick__icon{font-size:22px;line-height:1}.dash-quick__title{color:var(--text);font-size:14px;font-weight:600}.dash-quick__desc{color:var(--muted);font-size:12px}@media (max-width:560px){.dash-quick,.dash-stats{grid-template-columns:1fr}}@media (min-width:1200px){.dash-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.dash-quick{grid-template-columns:repeat(7,minmax(0,1fr))}.dash-quick__item{padding:12px 14px}}@media (max-height:800px){.dash-quick__desc{display:none}}.an-note{color:var(--muted);font-size:12px;margin:8px 0 0}.an-hero-actions{display:flex;flex-wrap:wrap;gap:12px}.an-summary{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:10px}.an-stat{background:color-mix(in srgb,var(--card) 95%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:2px;padding:7px 12px}.an-stat__num{font-feature-settings:"tnum";color:var(--text);font-size:1.2rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.15}.an-stat__label{color:var(--muted);font-size:12px}.an-chart{margin-top:12px;min-width:0;position:relative}.an-subchart-title{color:var(--text);font-size:13px;font-weight:600;margin:18px 0 0}.an-grid-2{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.an-donut-wrap{margin:0 auto;max-width:420px;min-width:0;position:relative}.an-donut-center{align-items:center;display:flex;flex-direction:column;inset:0;justify-content:center;pointer-events:none;position:absolute}.an-donut-center__num{font-feature-settings:"tnum";color:var(--text);font-size:1.8rem;font-variant-numeric:tabular-nums;font-weight:700}.an-donut-center__label{color:var(--muted);font-size:12px}.an-legend{grid-gap:8px 20px;display:grid;gap:8px 20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));list-style:none;margin:16px 0 0;padding:0}.an-legend li{align-items:center;display:flex;font-size:13px;gap:8px}.an-legend__swatch{border-radius:3px;flex:none;height:12px;width:12px}.an-legend__name{color:var(--text)}.an-legend__value{font-feature-settings:"tnum";color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.an-empty{border:1px dashed var(--border-light);border-radius:var(--radius-md);color:var(--muted);font-size:14px;justify-content:center;min-height:200px}.an-empty,.an-year-field{align-items:center;display:flex}.an-year-field{gap:8px}.an-year-field__label{color:var(--muted);font-size:12px;white-space:nowrap}@media (max-width:720px){.an-grid-2{grid-template-columns:1fr}.an-hero-actions .btn{font-size:13px;margin-bottom:0;min-height:36px;padding:6px 12px;white-space:nowrap;width:auto}}.an-summary-strip{align-items:flex-start;display:flex;flex-wrap:nowrap;gap:6px 20px;margin-bottom:10px}.an-summary-group{flex:1 1 auto;min-width:0}.an-summary-group .an-summary{margin-bottom:4px}.an-summary-group-title{color:color-mix(in srgb,var(--muted) 82%,var(--brand) 18%);font-size:11px;font-weight:650;letter-spacing:.08em;margin:0 0 4px;text-transform:uppercase}.an-summary-group .an-note{font-size:12.5px;margin:0}.an-body{flex:1 1 auto;min-height:0;overflow:auto}.an-grid-a{grid-gap:4px 20px;align-items:start;display:grid;gap:4px 20px;grid-template-columns:repeat(3,minmax(0,1fr))}.an-cell--span2{grid-column:span 2}.an-grid-a>.an-cell{display:flex;flex-direction:column;min-width:0}.an-card{background:color-mix(in srgb,var(--card) 96%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-md);display:flex;flex:1 1 auto;flex-direction:column;min-height:0;padding:12px 14px}.an-card__head{display:flex;flex:0 0 auto;flex-direction:column;gap:2px;height:40px;justify-content:flex-start;margin-bottom:6px}.an-card__head h3{color:var(--text);font-size:13.5px;font-weight:700;margin:0}.an-card__note{color:var(--muted);font-size:12px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.an-cell>.an-empty{border:1px dashed color-mix(in srgb,var(--border) 85%,var(--brand) 8%);border-radius:var(--radius-md);color:var(--muted);font-size:14px;justify-content:center;min-height:200px}.an-cell>.an-empty,.an-status-row{align-items:center;display:flex;flex:1 1 auto}.an-status-row{flex-wrap:wrap;gap:20px;min-height:0}.an-status-row .an-donut-wrap{flex:0 0 300px;margin:0}.an-legend--row{grid-gap:6px 18px;display:grid;flex:1 1 220px;gap:6px 18px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:0}.an-cell .an-donut-wrap .an-donut-center__num{font-size:1.5rem}@media (max-width:1599px){.an-grid-a{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1199px){.an-grid-a{grid-template-columns:minmax(0,1fr)}.an-cell--span2{grid-column:auto}.an-summary-strip{flex-wrap:wrap}}.an-head{align-items:flex-end;display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:space-between}.an-head .an-head-text{min-width:0}.an-head .an-hero-actions{margin-left:auto}.an-head .an-year-field__label{white-space:nowrap}.an-body--skel{display:flex;flex-direction:column}.admin-users-page{--au-ease:cubic-bezier(0.16,1,0.3,1);--au-ease-soft:cubic-bezier(0.25,1,0.5,1);background:radial-gradient(ellipse 120% 70% at 0 0,color-mix(in srgb,var(--brand) 7%,#0000),#0000 52%),radial-gradient(ellipse 90% 50% at 100% 8%,#ffffffe0,#0000 48%),linear-gradient(180deg,color-mix(in srgb,var(--bg) 90%,var(--brand) 2.5%) 0,var(--bg) 45%,var(--bg) 100%);min-height:100vh}@keyframes adminUsersReveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes adminUsersRowIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes adminUsersSkel{0%,to{opacity:.4}50%{opacity:.85}}.admin-users-reveal{animation:adminUsersReveal .55s var(--au-ease) forwards;animation-delay:0ms;animation-delay:var(--au-reveal-delay,0ms);opacity:0}.admin-users-main{margin-left:auto;margin-right:auto;max-width:1600px;padding-bottom:48px;padding-top:28px}.admin-users-hero{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px 24px;justify-content:space-between;margin-bottom:20px}.admin-users-hero-kicker{color:color-mix(in srgb,var(--muted) 85%,var(--brand) 15%);font-size:11px;font-weight:650;letter-spacing:.14em;margin:0 0 6px;text-transform:uppercase}.admin-users-hero-title{color:var(--text);font-family:var(--font-sans);font-size:clamp(1.65rem,2vw + 1rem,2.15rem);font-weight:700;letter-spacing:.02em;line-height:1.15;margin:0 0 4px}.admin-users-hero-sub{color:var(--text-secondary);font-size:14px;font-weight:500;margin:0}.admin-users-hero-lede{color:var(--muted);font-size:15px;line-height:1.5;margin:8px 0 0;max-width:40em}.admin-users-alert{margin-bottom:16px}.admin-users-panel{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-xl);box-shadow:0 1px 0 #ffffffa6 inset,var(--shadow-md);margin-bottom:18px;padding:clamp(20px,2.5vw,28px)}.admin-users-panel-title{color:var(--text);font-size:16px;font-weight:700;margin:0 0 4px}.admin-users-panel-hint{color:color-mix(in srgb,var(--muted) 82%,var(--brand) 18%);font-size:12px;font-weight:600;letter-spacing:.07em;margin:0 0 20px;text-transform:uppercase}.admin-users-section-label{border-bottom:1px solid var(--border-light);color:var(--text-secondary);font-size:13px;font-weight:700;letter-spacing:.04em;margin:0 0 18px;padding-bottom:12px}.admin-users-search-block+.admin-users-search-block{border-top:1px solid var(--border-light);margin-top:22px;padding-top:22px}.admin-users-search-row{grid-gap:14px 16px;align-items:end;display:grid;gap:14px 16px;grid-template-columns:minmax(0,1fr) auto}@media (max-width:640px){.admin-users-search-row{grid-template-columns:1fr}}.admin-users-field{min-width:0}.admin-users-label{color:var(--text-secondary);display:block;font-size:13px;font-weight:650;margin-bottom:6px}.admin-users-input,.admin-users-select{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-family:inherit;font-size:14px;padding:10px 14px;transition:border-color .2s var(--au-ease-soft),box-shadow .2s var(--au-ease-soft);width:100%}.admin-users-input:hover,.admin-users-select:hover{border-color:color-mix(in srgb,var(--brand) 22%,var(--border))}.admin-users-input:focus,.admin-users-select:focus{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,#0000);outline:none}.admin-users-input:disabled,.admin-users-select:disabled{cursor:not-allowed;opacity:.65}.admin-users-select--cohort{min-width:240px;width:auto}.admin-users-input--error{border-color:var(--danger)}.admin-users-input--error:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 15%,#0000)}.admin-users-field-error{color:var(--danger);font-size:12px;font-weight:500;margin-top:6px}.admin-users-field-error--info{color:color-mix(in srgb,var(--warning) 70%,var(--text))}.admin-users-actions-inline{align-items:flex-end;display:flex}.admin-users-btn-primary{border-radius:999px;font-size:14px;font-weight:650;padding:10px 22px;transition:transform .2s var(--au-ease-soft),box-shadow .2s var(--au-ease-soft);white-space:nowrap}.admin-users-btn-primary:hover:not(:disabled){transform:translateY(-1px)}.admin-users-btn-primary:active:not(:disabled){transform:translateY(0)}.admin-users-pick-wrap{background:color-mix(in srgb,var(--warning) 6%,var(--card));border:1px solid color-mix(in srgb,var(--warning) 35%,var(--border));border-radius:var(--radius-md);margin-top:14px;padding:14px 16px}.admin-users-pick-title{color:color-mix(in srgb,var(--warning) 55%,var(--text));font-size:14px;font-weight:650;margin:0 0 10px}.admin-users-pick-list{display:flex;flex-direction:column;gap:10px}.admin-users-pick-item{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 14px;text-align:left;transition:border-color .2s var(--au-ease-soft),background-color .2s var(--au-ease-soft),transform .2s var(--au-ease-soft),box-shadow .2s var(--au-ease-soft)}.admin-users-pick-item:hover{background:color-mix(in srgb,var(--brand-50) 35%,var(--card));border-color:color-mix(in srgb,var(--brand) 28%,var(--border));box-shadow:var(--shadow-sm);transform:translateY(-1px)}.admin-users-pick-item:active{transform:translateY(0)}.admin-users-pick-name{color:var(--text);font-weight:650;margin-bottom:4px}.admin-users-pick-meta{color:var(--muted);font-size:12px}.admin-users-pick-go{border-radius:999px;font-size:13px;font-weight:650;padding:8px 16px}.admin-users-filters-head{border-top:1px solid var(--border-light);margin:24px 0 16px;padding-top:20px}.admin-users-filters-head .admin-users-section-label{border-bottom:none;margin-bottom:0;padding-bottom:0}.admin-users-input--date{min-width:140px;width:auto}.admin-users-filter-grid{grid-gap:16px 20px;align-items:end;display:grid;gap:16px 20px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}@media (max-width:900px){.admin-users-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.admin-users-filter-grid{grid-template-columns:1fr}}.admin-users-date-block{margin-bottom:18px}.admin-users-date-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px 14px}.admin-users-date-sep{color:var(--muted);font-size:13px;font-weight:600}.admin-users-chip-today{border-radius:999px;font-size:13px;font-weight:650;padding:9px 18px;transition:border-color .2s var(--au-ease-soft),background-color .2s var(--au-ease-soft),transform .2s var(--au-ease-soft)}.admin-users-chip-today:hover{transform:translateY(-1px)}.admin-users-filter-actions{border-top:1px solid var(--border-light);display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding-top:16px}.admin-users-filter-actions .btn{border-radius:999px;font-weight:650;padding:10px 20px;transition:transform .2s var(--au-ease-soft),box-shadow .2s var(--au-ease-soft)}.admin-users-filter-actions .btn:hover:not(:disabled){transform:translateY(-1px)}.admin-users-table-panel{padding-bottom:8px}.admin-users-table-scroll{-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);margin:0 -4px;overflow-x:auto;padding:4px}.admin-users-table{border-collapse:initial;border-spacing:0;font-size:14px;width:100%}.admin-users-table thead th{background:color-mix(in srgb,var(--bg) 65%,var(--card));border-bottom:1px solid var(--border-light);color:color-mix(in srgb,var(--muted) 88%,var(--brand) 12%);font-size:12px;font-weight:700;letter-spacing:.04em;padding:12px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.admin-users-table tbody td{border-bottom:1px solid var(--border-light);color:var(--text);padding:14px;vertical-align:middle}.admin-users-table tbody tr{background:#0000;transition:background-color .2s var(--au-ease-soft)}.admin-users-table tbody tr.admin-users-row-data{cursor:pointer}.admin-users-table tbody tr.admin-users-row-data:hover{background:color-mix(in srgb,var(--brand-50) 40%,#0000)}.admin-users-table tbody tr.admin-users-row-data:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 55%,#0000);outline-offset:-2px}.admin-users-table tbody tr.admin-users-row-enter{animation:adminUsersRowIn .42s var(--au-ease) forwards;animation-delay:.12s;animation-delay:calc(.12s + var(--row-i, 0)*42ms);opacity:0}.admin-users-cell-name{font-weight:650}.admin-users-sort-btn{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;font-weight:inherit;gap:4px;letter-spacing:inherit;padding:0;text-transform:inherit}.admin-users-sort-btn--active,.admin-users-sort-btn:hover{color:var(--brand)}.admin-users-sort-arrow{font-size:11px;opacity:.65}.admin-users-sort-btn--active .admin-users-sort-arrow{opacity:1}.admin-users-role{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:650;padding:4px 10px}.admin-users-role--student{background:color-mix(in srgb,var(--brand) 9%,#fff);border:1px solid color-mix(in srgb,var(--brand) 14%,#0000);color:var(--brand-700)}.admin-users-role--admin{background:color-mix(in srgb,var(--text) 8%,#fff);border:1px solid var(--border);color:var(--text-secondary)}.admin-users-missed{font-weight:650}.admin-users-missed--zero{color:var(--success)}.admin-users-missed--warn{color:var(--danger)}.admin-users-empty{color:var(--muted);font-size:15px;padding:36px 20px;text-align:center}.admin-users-empty strong{color:var(--text-secondary);display:block;font-size:16px;font-weight:700;margin-bottom:6px}.admin-users-loading-cell{border-bottom:1px solid var(--border-light)!important;padding:20px 14px!important}.admin-users-skel-line{animation:adminUsersSkel 1.15s ease-in-out infinite;background:linear-gradient(90deg,var(--border-light) 0,color-mix(in srgb,var(--border) 75%,var(--brand) 8%) 50%,var(--border-light) 100%);background-size:200% 100%;border-radius:6px;display:block;height:12px;max-width:100%}.admin-users-skel-line--short{max-width:72%}.admin-users-skel-line--tiny{max-width:40%}.admin-users-pagination{align-items:center;border-top:1px solid var(--border-light);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-top:18px;padding-top:16px}.admin-users-pagination-meta{color:var(--muted);font-size:14px;font-weight:500}.admin-users-pagination-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px 10px}.admin-users-pagination-controls .btn{border-radius:999px;font-weight:650;transition:transform .2s var(--au-ease-soft)}.admin-users-pagination-controls .btn:hover:not(:disabled){transform:translateY(-1px)}.admin-users-jump{align-items:center;color:var(--muted);display:inline-flex;font-size:14px;gap:6px}.admin-users-jump-input{border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;padding:8px 6px;text-align:center;transition:border-color .2s var(--au-ease-soft),box-shadow .2s var(--au-ease-soft);width:56px}.admin-users-jump-input:focus{border-color:color-mix(in srgb,var(--brand) 40%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 10%,#0000);outline:none}@media (prefers-reduced-motion:reduce){.admin-users-reveal,.admin-users-table tbody tr.admin-users-row-enter{animation:none;opacity:1;transform:none}.admin-users-skel-line{animation:none;opacity:.55}.admin-users-btn-primary:hover:not(:disabled),.admin-users-chip-today:hover,.admin-users-filter-actions .btn:hover:not(:disabled),.admin-users-pagination-controls .btn:hover:not(:disabled),.admin-users-pick-item:hover{transform:none}}.admin-users-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.admin-users-toolbar-title{color:var(--text);font-size:14px;font-weight:700;margin:0;white-space:nowrap}.admin-users-tb-group{align-items:center;display:flex;gap:6px;min-width:0}.admin-users-tb-label{color:var(--text-secondary);font-size:13px;font-weight:650;white-space:nowrap}.admin-users-tb-input{width:156px}.admin-users-tb-group .admin-users-input--date{width:118px}.admin-users-tb-group .admin-users-select--cohort{min-width:140px}.admin-users-tb-actions{flex-shrink:0;margin-left:auto;white-space:nowrap}.admin-users-toolbar-errors{margin:10px 0 0}.ap-page--fit .admin-users-panel{margin-bottom:14px;padding:clamp(16px,1.6vw,22px)}@media (max-width:1199px){.admin-users-tb-actions{margin-left:0}}.ud-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:14px}.ud-toolbar__title{color:var(--text);font-size:20px;font-weight:700;margin:0;white-space:nowrap}.ud-toolbar__sub{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ud-fill-card{display:flex;flex:1 1;flex-direction:column;min-height:0}.ud-fill-card>h3{flex:0 0 auto}.ud-fill-card .empty-state,.ud-fill-card .loading{align-items:center;display:flex;flex:1 1 auto;flex-direction:column;justify-content:center}.ud-mono-id{cursor:help;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ud-time-cell{font-size:12.5px;white-space:nowrap}.ud-time-cell__end{color:var(--muted);font-size:12px}.date-management-monthbar{align-items:center;display:flex;gap:14px;justify-content:center;margin-bottom:14px}.dm-month-title{color:var(--text);font-size:1.08rem;font-weight:700;letter-spacing:.02em;margin:0;min-width:118px;text-align:center}.dm-month-btn{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:18px;height:32px;justify-content:center;line-height:1;transition:border-color .18s ease,color .18s ease,background-color .18s ease;width:32px}.dm-month-btn:hover:not(:disabled){background:var(--brand-50);border-color:color-mix(in srgb,var(--brand) 35%,var(--border));color:var(--brand)}.dm-month-btn:disabled{cursor:not-allowed;opacity:.5}.date-management-bulk{background:color-mix(in srgb,var(--brand-50) 55%,var(--card));border:1px solid color-mix(in srgb,var(--brand) 14%,var(--border));border-radius:var(--radius-md);margin-bottom:20px;padding:14px 16px}.dm-bulk-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.dm-bulk-controls .ap-select{min-width:140px;width:auto}.dm-bulk-controls .btn{border-radius:999px;font-weight:650}.calendar-container{background:var(--card);border:1px solid color-mix(in srgb,var(--border) 85%,var(--brand) 4%);border-radius:var(--radius-lg);box-shadow:0 1px 0 #ffffffa6 inset,var(--shadow-sm);margin-bottom:14px;overflow:hidden}.calendar-header{background:color-mix(in srgb,var(--bg) 60%,var(--card));border-bottom:1px solid var(--border-light);display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day-header{color:var(--muted);font-size:12px;font-weight:650;letter-spacing:.08em;padding:8px 6px;text-align:center}.calendar-grid{display:flex;flex-direction:column}.calendar-week{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{align-items:center;border-bottom:1px solid var(--border-light);border-right:1px solid var(--border-light);cursor:pointer;display:flex;flex-direction:column;gap:4px;justify-content:center;min-height:52px;padding:6px 4px;position:relative;transition:background-color .18s ease,box-shadow .18s ease}.calendar-day:last-child{border-right:none}.calendar-week:last-child .calendar-day{border-bottom:none}.calendar-day:hover:not(.past){background:color-mix(in srgb,var(--brand-50) 45%,#0000)}.calendar-day.other-month{opacity:.45}.calendar-day.other-month .day-dot,.calendar-day.past .day-dot{visibility:hidden}.calendar-day.past{background:color-mix(in srgb,var(--bg) 70%,var(--card));cursor:not-allowed;opacity:.55}.calendar-day.today .day-number{background:var(--brand);border-radius:999px;color:#fff;padding:1px 8px}.calendar-day.selected{background:color-mix(in srgb,var(--brand) 10%,#fff)!important;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--brand) 55%,#0000)}.calendar-day.selected .day-number{color:var(--brand-700);font-weight:700}.day-number{color:var(--text);font-size:.95rem;font-weight:650}.day-dot{border-radius:999px;height:7px;line-height:1;width:7px}.day-dot.available{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 15%,#0000)}.day-dot.unavailable{background:#0000;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--muted) 55%,#0000)}.selection-indicator{color:var(--brand);font-size:.7rem;font-weight:700;position:absolute;right:5px;top:4px}.pending-indicator{font-size:.8rem;left:5px;line-height:1;position:absolute;top:4px}.calendar-day.pending-change:not(.selected){box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--warning) 55%,#0000)}.calendar-legend{display:flex;flex-wrap:wrap;font-size:12px;gap:8px 16px;justify-content:center;margin-bottom:8px}.legend-item{align-items:center;color:var(--text-secondary);display:flex;font-size:12.5px;font-weight:500;gap:6px}.legend-color{border:none;border-radius:999px;flex-shrink:0;height:10px;width:10px}.legend-color.available{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 15%,#0000)}.legend-color.unavailable{background:#0000;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--muted) 55%,#0000)}.legend-color.past{background:color-mix(in srgb,var(--bg) 70%,var(--card));box-shadow:inset 0 0 0 1px var(--border)}.legend-color.today{background:var(--brand)}.legend-color.pending{background:color-mix(in srgb,var(--warning) 25%,var(--card));box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--warning) 55%,#0000)}@keyframes dmBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes dmModalIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-dialog-overlay{align-items:center;animation:dmBackdropIn .22s cubic-bezier(.25,1,.5,1) forwards;animation:dmBackdropIn .22s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)) forwards;background:color-mix(in srgb,#1a1d24 45%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1001}.confirm-dialog{animation:dmModalIn .38s cubic-bezier(.16,1,.3,1) forwards;animation:dmModalIn .38s var(--ap-ease,cubic-bezier(.16,1,.3,1)) forwards;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 80%,var(--brand) 8%);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:500px;padding:26px 28px;width:100%}.confirm-dialog h3{color:var(--text);font-size:18px;font-weight:700;margin:0 0 10px}.confirm-dialog p{color:var(--muted);font-size:14px;margin:0 0 16px}.pending-changes-list{background:color-mix(in srgb,var(--bg) 50%,var(--card));border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:18px;max-height:220px;overflow-y:auto;padding:10px 12px}.pending-change-item{align-items:center;border-bottom:1px solid var(--border-light);display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.pending-change-item:last-child{border-bottom:none}.pending-change-item .date{color:var(--text);font-weight:650}.pending-change-item .action{color:var(--success);font-weight:600}.confirm-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.confirm-dialog-actions .btn{border-radius:999px;font-weight:650;min-width:88px}.loading-overlay{align-items:center;animation:dmBackdropIn .2s ease forwards;background:color-mix(in srgb,#1a1d24 35%,#0000);display:flex;inset:0;justify-content:center;position:fixed;z-index:1002}.loading-spinner{background:var(--card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--text);font-size:15px;font-weight:600;padding:24px 32px}.dm-booked-title{color:var(--text);font-size:16px;font-weight:700;margin:0 0 4px}.dm-booked-hint{color:color-mix(in srgb,var(--muted) 82%,var(--brand) 18%);font-size:12px;font-weight:600;letter-spacing:.06em;margin:0 0 16px;text-transform:uppercase}.dm-booked-scroll{border-radius:var(--radius-md);margin:0 -4px;overflow-x:auto;padding:4px}.dm-booked-table{border-collapse:initial;border-spacing:0;font-size:14px;width:100%}.dm-booked-table thead th{background:color-mix(in srgb,var(--bg) 55%,var(--card));border-bottom:1px solid var(--border-light);color:color-mix(in srgb,var(--muted) 85%,var(--brand) 15%);font-size:11px;font-weight:700;letter-spacing:.06em;padding:12px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.dm-booked-table tbody td{border-bottom:1px solid var(--border-light);color:var(--text-secondary);padding:13px 14px}.dm-booked-table tbody tr{transition:background-color .2s cubic-bezier(.25,1,.5,1);transition:background-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1))}.dm-booked-table tbody tr:hover{background:color-mix(in srgb,var(--brand-50) 28%,#0000)}.dm-booked-table tbody td:first-child{color:var(--text);font-weight:650}.dm-booked-footer{color:var(--muted);font-size:13px;font-weight:600;margin-top:12px;text-align:right}.dm-booked-empty,.dm-booked-loading{background:color-mix(in srgb,var(--bg) 65%,var(--card));border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--muted);font-size:14px;padding:28px 16px;text-align:center}@media (max-width:768px){.calendar-day{min-height:56px;padding:4px 2px}.day-number{font-size:.9rem}.dm-bulk-controls{align-items:stretch;flex-direction:column}.dm-bulk-controls .ap-select{width:100%}}@media (prefers-reduced-motion:reduce){.calendar-day.selected,.calendar-day:hover:not(.past){transform:none}.confirm-dialog,.confirm-dialog-overlay,.loading-overlay{animation:none;opacity:1}.confirm-dialog,.date-management-monthbar .btn:hover:not(:disabled){transform:none}}.date-management-instructions summary{color:var(--text);cursor:pointer;font-size:14px;font-weight:700;list-style-position:inside;margin:0}.date-management-instructions[open] summary{margin-bottom:10px}.date-management-instructions ul{margin-top:6px}.day-booked-count{background:color-mix(in srgb,var(--brand) 12%,#0000);border-radius:999px;color:var(--brand-700);cursor:pointer;font-size:11px;font-weight:700;line-height:1.4;min-width:18px;padding:1px 5px;position:absolute;right:5px;text-align:center;top:4px;-webkit-user-select:none;user-select:none}.day-booked-count:hover{background:color-mix(in srgb,var(--brand) 22%,#0000)}.day-booked-count.is-filtering{background:var(--brand);color:#fff}.dm-booked-filter{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.dm-booked-filter input[type=date]{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:13px;padding:5px 8px}.dm-booked-filter-clear{background:#0000;border:1px solid color-mix(in srgb,var(--danger) 30%,#0000);border-radius:999px;color:var(--danger);cursor:pointer;font-size:12px;font-weight:650;padding:3px 10px}.dm-booked-filter-meta{color:var(--muted);font-size:12.5px;font-weight:600}.dm-date-cell{font-size:12.5px;white-space:nowrap}.booked-bookings-list{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.booked-bookings-list .dm-booked-scroll{flex:1 1 auto;min-height:0}.ap-page--fit .date-management{justify-content:center}.fb-filters{align-items:center;display:flex;flex-wrap:wrap;gap:12px 16px;margin-bottom:16px}.fb-filters .ap-select{min-width:160px;width:auto}.fb-meta{color:var(--muted);font-size:14px;font-weight:600;margin-left:auto}.fb-table-wrap{border-radius:var(--radius-md);margin:4px -4px 0;overflow-x:auto;padding:4px}.fb-table{border-collapse:initial;border-spacing:0;font-size:14px;width:100%}.fb-table thead th{background:color-mix(in srgb,var(--bg) 55%,var(--card));color:color-mix(in srgb,var(--muted) 85%,var(--brand) 15%);font-size:11px;font-weight:700;letter-spacing:.05em;text-align:left;text-transform:uppercase;white-space:nowrap}.fb-table tbody td,.fb-table thead th{border-bottom:1px solid var(--border-light);padding:12px 10px}.fb-table tbody td{color:var(--text);vertical-align:middle}.fb-table tbody tr{transition:background-color .2s cubic-bezier(.25,1,.5,1);transition:background-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1))}.fb-table tbody tr:hover{background:color-mix(in srgb,var(--brand-50) 32%,#0000)}.fb-avatar{border:2px solid var(--border-light);border-radius:50%;box-shadow:var(--shadow-sm);height:34px;object-fit:cover;width:34px}.fb-avatar--sm{height:36px;width:36px}.fb-muted{color:var(--muted);font-size:14px}.fb-status{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:12px;font-weight:650;padding:4px 10px}.fb-status--open{background:color-mix(in srgb,var(--warning) 12%,#fff);border-color:color-mix(in srgb,var(--warning) 22%,#0000);color:color-mix(in srgb,var(--warning) 65%,var(--text))}.fb-status--progress{background:color-mix(in srgb,var(--brand) 10%,#fff);border-color:color-mix(in srgb,var(--brand) 18%,#0000);color:var(--brand-700)}.fb-status--resolved{background:color-mix(in srgb,var(--success) 12%,#fff);border-color:color-mix(in srgb,var(--success) 20%,#0000);color:color-mix(in srgb,var(--success) 50%,var(--text))}.fb-actions{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.fb-actions .btn{border-radius:999px;font-size:12px;font-weight:650;padding:6px 12px;transition:transform .2s cubic-bezier(.25,1,.5,1);transition:transform .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1))}.fb-actions .btn:hover:not(:disabled){transform:translateY(-1px)}.fb-empty,.fb-loading{color:var(--muted);font-size:15px;padding:32px 16px;text-align:center}.ap-panel-head.fb-filters{margin-bottom:12px}.ap-table-panel .fb-empty,.ap-table-panel .fb-loading{align-items:center;display:flex;flex:1 1 auto;justify-content:center}.fb-pagination{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.fb-pagination-actions{display:flex;gap:10px}.fb-toast-slot{margin-top:12px}@keyframes fbBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes fbModalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.fb-modal-backdrop{align-items:center;animation:fbBackdropIn .22s cubic-bezier(.25,1,.5,1) forwards;animation:fbBackdropIn .22s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)) forwards;background:color-mix(in srgb,#1a1d24 48%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.fb-modal{animation:fbModalIn .38s cubic-bezier(.16,1,.3,1) forwards;animation:fbModalIn .38s var(--ap-ease,cubic-bezier(.16,1,.3,1)) forwards;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 75%,var(--brand) 8%);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-height:min(82vh,720px);max-width:620px;overflow:auto;padding:24px 26px;width:100%}.fb-modal--sm{max-height:none;max-width:420px}.fb-modal-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:18px}.fb-modal-title{color:var(--text);font-size:18px;font-weight:700;margin:0}.fb-modal-close{background:color-mix(in srgb,var(--bg) 80%,var(--card));border:none;border-radius:999px;color:var(--muted);cursor:pointer;flex-shrink:0;font-size:22px;height:36px;line-height:1;transition:background-color .2s cubic-bezier(.25,1,.5,1),color .2s cubic-bezier(.25,1,.5,1);transition:background-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)),color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1));width:36px}.fb-modal-close:hover{background:var(--border-light);color:var(--text)}.fb-user-row{align-items:center;display:flex;gap:12px;margin-bottom:16px}.fb-user-row .fb-avatar{height:42px;width:42px}.fb-user-name{color:var(--text);font-size:16px;font-weight:700}.fb-user-name--compact{font-size:15px}.fb-user-id{color:var(--muted);font-size:13px}.fb-block-label{color:var(--text-secondary);display:block;font-size:13px;font-weight:700;margin-bottom:8px}.fb-callout{background:color-mix(in srgb,var(--bg) 65%,var(--card));border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:16px;padding:14px 16px}.fb-callout-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr}@media (max-width:480px){.fb-callout-grid{grid-template-columns:1fr}}.fb-stat-label{color:var(--muted);font-size:13px;margin-bottom:4px}.fb-stat-value{font-size:18px;font-weight:700}.fb-stat-value--danger{color:var(--danger)}.fb-stat-value--ok{color:var(--success)}.fb-callout-foot{color:var(--muted);font-size:12px;margin-top:8px;text-align:center}.fb-callout-actions{margin-top:12px;text-align:center}.fb-content-box{background:color-mix(in srgb,var(--bg) 55%,var(--card));color:var(--text);font-size:14px;line-height:1.55;margin-bottom:16px;padding:14px 16px;white-space:pre-wrap}.fb-content-box,.fb-msg-scroll{border:1px solid var(--border-light);border-radius:var(--radius-md)}.fb-msg-scroll{background:color-mix(in srgb,var(--bg) 50%,var(--card));margin-bottom:8px;max-height:200px;overflow-y:auto;padding:12px}.fb-msg-list{display:flex;flex-direction:column;gap:8px}.fb-msg{border-radius:12px;font-size:14px;line-height:1.45;max-width:85%;padding:8px 11px}.fb-msg--user{align-self:flex-start;background:color-mix(in srgb,var(--border-light) 90%,var(--card));color:var(--text)}.fb-msg--admin{align-self:flex-end;background:color-mix(in srgb,var(--brand-50) 75%,var(--card));border:1px solid color-mix(in srgb,var(--brand) 12%,#0000);color:var(--text)}.fb-msg-meta{color:var(--muted);font-size:11px;font-weight:600;margin-bottom:4px}.fb-msg-row{display:flex;gap:8px;margin-top:8px}.fb-msg-input{border:1px solid var(--border);border-radius:var(--radius-md);flex:1 1;font-family:inherit;font-size:14px;padding:10px 12px;transition:border-color .2s cubic-bezier(.25,1,.5,1),box-shadow .2s;transition:border-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)),box-shadow .2s}.fb-msg-input:focus{border-color:color-mix(in srgb,var(--brand) 40%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 10%,#0000);outline:none}.fb-modal-grid2{grid-gap:14px 16px;display:grid;gap:14px 16px;grid-template-columns:1fr 1fr;margin-bottom:16px}@media (max-width:520px){.fb-modal-grid2{grid-template-columns:1fr}}.fb-modal-grid2 .fb-muted{color:var(--muted);font-size:14px}.fb-modal-footer{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:8px}.fb-modal-footer .btn{border-radius:999px;font-weight:650}.fb-preview-box{background:color-mix(in srgb,var(--bg) 70%,var(--card));border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:18px;padding:12px 14px}.fb-preview-title{color:var(--text);font-size:14px;font-weight:700;margin-bottom:8px}.fb-preview-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.fb-field-stack{margin-bottom:18px}.fb-input-hint{color:var(--muted);font-size:12px;margin-top:6px}@media (prefers-reduced-motion:reduce){.fb-modal,.fb-modal-backdrop{animation:none;opacity:1;transform:none}.fb-actions .btn:hover:not(:disabled){transform:none}}.em-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.em-tab{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:650;gap:7px;padding:6px 12px;transition:border-color .2s cubic-bezier(.25,1,.5,1),background-color .2s cubic-bezier(.25,1,.5,1),color .2s cubic-bezier(.25,1,.5,1);transition:border-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)),background-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)),color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1))}.em-tab:hover{border-color:color-mix(in srgb,var(--brand) 25%,var(--border));color:var(--text)}.em-tab--active{background:color-mix(in srgb,var(--brand) 10%,var(--card));border-color:color-mix(in srgb,var(--brand) 35%,var(--border));color:var(--brand);color:var(--brand-700,var(--brand))}.em-badge{background:color-mix(in srgb,var(--muted) 12%,#0000);border-radius:999px;color:var(--text-secondary);font-size:11px;font-weight:700;min-width:20px;padding:1px 7px;text-align:center}.em-tab--active .em-badge{background:color-mix(in srgb,var(--brand) 16%,#0000);color:var(--brand);color:var(--brand-700,var(--brand))}.em-search{flex:1 1 240px;max-width:320px}.em-table-wrap{border-radius:var(--radius-md);margin:4px -4px 0;overflow-x:auto;padding:4px}.em-table{border-collapse:initial;border-spacing:0;font-size:14px;width:100%}.em-table thead th{background:color-mix(in srgb,var(--bg) 55%,var(--card));color:color-mix(in srgb,var(--muted) 85%,var(--brand) 15%);font-size:11px;font-weight:700;letter-spacing:.05em;text-align:left;text-transform:uppercase;white-space:nowrap}.em-table tbody td,.em-table thead th{border-bottom:1px solid var(--border-light);padding:12px 10px}.em-table tbody td{color:var(--text);vertical-align:middle}.em-table tbody tr{transition:background-color .2s cubic-bezier(.25,1,.5,1);transition:background-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1))}.em-table tbody tr:hover{background:color-mix(in srgb,var(--brand-50) 32%,#0000)}.em-name{font-weight:650}.em-mono,.em-name{white-space:nowrap}.em-mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.em-email{color:var(--text-secondary)}.em-last-sent{white-space:nowrap}.em-attempts{color:var(--muted);display:block;font-size:12px;margin-top:2px}.em-tag{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:12px;font-weight:650;padding:4px 10px;white-space:nowrap}.em-tag--ok{background:color-mix(in srgb,var(--success) 12%,#fff);border-color:color-mix(in srgb,var(--success) 20%,#0000);color:color-mix(in srgb,var(--success) 50%,var(--text))}.em-tag--danger{background:color-mix(in srgb,var(--danger) 10%,#fff);border-color:color-mix(in srgb,var(--danger) 22%,#0000);color:color-mix(in srgb,var(--danger) 60%,var(--text))}.em-tag--warn{background:color-mix(in srgb,var(--warning) 12%,#fff);border-color:color-mix(in srgb,var(--warning) 22%,#0000);color:color-mix(in srgb,var(--warning) 65%,var(--text))}.em-tag--muted{background:color-mix(in srgb,var(--muted) 10%,#0000);border-color:var(--border-light);color:var(--muted)}.em-actions{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-start}.em-actions .btn{border-radius:999px;font-size:12px;font-weight:650;padding:6px 12px;transition:transform .2s cubic-bezier(.25,1,.5,1);transition:transform .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1));white-space:nowrap}.em-actions .btn:hover:not(:disabled){transform:translateY(-1px)}.em-empty{color:var(--muted);font-size:15px;padding:32px 16px;text-align:center}.em-pagination{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:16px}.em-pagination-meta{color:var(--muted);font-size:14px;font-weight:600}.em-pagination-controls{display:flex;gap:8px}@keyframes emBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes emModalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.em-modal-backdrop{align-items:center;animation:emBackdropIn .22s cubic-bezier(.25,1,.5,1) forwards;animation:emBackdropIn .22s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)) forwards;background:color-mix(in srgb,#1a1d24 48%,#0000);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.em-modal{animation:emModalIn .38s cubic-bezier(.16,1,.3,1) forwards;animation:emModalIn .38s var(--ap-ease,cubic-bezier(.16,1,.3,1)) forwards;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 75%,var(--brand) 8%);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-height:min(82vh,720px);max-width:620px;overflow:auto;padding:24px 26px;width:100%}.em-modal--sm{max-height:none;max-width:440px}.em-modal-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:18px}.em-modal-title{color:var(--text);font-size:18px;font-weight:700;margin:0}.em-modal-close{background:color-mix(in srgb,var(--bg) 80%,var(--card));border:none;border-radius:999px;color:var(--muted);cursor:pointer;flex-shrink:0;font-size:22px;height:36px;line-height:1;transition:background-color .2s cubic-bezier(.25,1,.5,1),color .2s cubic-bezier(.25,1,.5,1);transition:background-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)),color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1));width:36px}.em-modal-close:hover:not(:disabled){background:var(--border-light);color:var(--text)}.em-mail-meta{grid-gap:10px 16px;background:color-mix(in srgb,var(--bg) 55%,var(--card));border:1px solid var(--border-light);border-radius:var(--radius-md);display:grid;font-size:13px;gap:10px 16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:16px;padding:14px 16px}.em-mail-meta>div{align-items:baseline;display:flex;gap:8px}.em-mail-meta span{color:var(--muted);flex-shrink:0;font-weight:650}.em-mail-meta strong{color:var(--text);font-weight:600;word-break:break-all}.em-mail-error strong{color:color-mix(in srgb,var(--danger) 70%,var(--text))}.em-mail-subject{color:var(--text);font-size:15px;font-weight:700;margin:0 0 10px}.em-mail-body{background:color-mix(in srgb,var(--bg) 45%,var(--card));border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text);font-family:inherit;font-size:14px;line-height:1.7;margin:0;padding:16px 18px;white-space:pre-wrap;word-break:break-word}.em-confirm-text{color:var(--text-secondary);font-size:14px;line-height:1.65;margin:0 0 20px}.em-modal-foot{display:flex;gap:10px;justify-content:flex-end}.announcement-rich-editor{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;position:relative;transition:border-color .22s cubic-bezier(.25,1,.5,1),box-shadow .22s cubic-bezier(.25,1,.5,1)}.announcement-rich-editor:focus-within{border-color:color-mix(in srgb,var(--brand) 38%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,#0000)}.announcement-rich-editor.is-disabled{opacity:.65;pointer-events:none}.are-toolbar{align-items:center;background:color-mix(in srgb,var(--bg) 70%,var(--card) 30%);border-bottom:1px solid color-mix(in srgb,var(--border) 88%,var(--brand) 8%);display:flex;flex-wrap:wrap;gap:8px 10px;padding:10px 12px}.are-tool{background:var(--card);border:1px solid color-mix(in srgb,var(--border) 78%,var(--brand) 10%);border-radius:10px;color:var(--text);cursor:pointer;font-family:var(--font-sans);font-size:15px;font-weight:700;height:34px;min-width:34px;padding:0 10px;transition:background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1),color .18s cubic-bezier(.22,1,.36,1),transform .12s cubic-bezier(.22,1,.36,1)}.are-tool:hover:not(:disabled){background:color-mix(in srgb,var(--brand-50) 35%,var(--card));border-color:color-mix(in srgb,var(--brand) 28%,var(--border))}.are-tool:active:not(:disabled){transform:scale(.96)}.are-tool.is-active{background:color-mix(in srgb,var(--brand) 88%,#1a0a0e 12%);border-color:color-mix(in srgb,var(--brand) 55%,#1a0a0e 45%);color:#fff}.are-tool--italic span{font-style:italic}.are-toolbar-sep{background:color-mix(in srgb,var(--border) 75%,var(--brand) 12%);height:22px;margin:0 2px;width:1px}.are-colors-label{color:color-mix(in srgb,var(--muted) 85%,var(--brand) 15%);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.are-color-presets{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.are-swatch{background:var(--brand);background:var(--are-swatch,var(--brand));border:2px solid color-mix(in srgb,var(--border) 80%,#0000);border-radius:8px;cursor:pointer;height:26px;padding:0;transition:transform .15s cubic-bezier(.22,1,.36,1),box-shadow .18s cubic-bezier(.25,1,.5,1);width:26px}.are-swatch:hover:not(:disabled){box-shadow:0 2px 10px color-mix(in srgb,var(--brand) 45%,#0000);box-shadow:0 2px 10px color-mix(in srgb,var(--are-swatch,var(--brand)) 45%,#0000);transform:scale(1.08)}.are-swatch:active:not(:disabled){transform:scale(.95)}.are-tool--more-color{font-family:inherit;font-size:12px;font-weight:650;min-width:auto;padding:0 12px}label.are-color-label{align-items:center;cursor:pointer;display:inline-flex;justify-content:center;position:relative;vertical-align:middle}label.are-color-label.is-disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.are-color-input-overlay{background:#0000;border:0;border-radius:inherit;cursor:pointer;height:100%;inset:0;margin:0;min-height:100%;min-width:100%;opacity:0;padding:0;position:absolute;width:100%;z-index:2}.are-color-label-text{pointer-events:none;position:relative;-webkit-user-select:none;user-select:none;z-index:1}.are-editable{border:none!important;border-radius:0!important;color:var(--text);font-size:15px;line-height:1.65;max-height:min(38vh,380px);min-height:220px;outline:none;overflow-y:auto;padding:14px 16px}.are-editable,.are-editable:focus{box-shadow:none!important}.are-editable p{margin:0 0 10px}.are-editable p:last-child{margin-bottom:0}@media (prefers-reduced-motion:reduce){.announcement-rich-editor,.are-swatch,.are-tool{transition:none}.are-swatch:active:not(:disabled),.are-swatch:hover:not(:disabled),.are-tool:active:not(:disabled){transform:none}}.sc-banner{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:20px;padding:18px 20px;transition:border-color .2s cubic-bezier(.25,1,.5,1),background-color .2s cubic-bezier(.25,1,.5,1);transition:border-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)),background-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1))}.sc-banner--off{background:color-mix(in srgb,var(--success) 6%,var(--card));border-color:color-mix(in srgb,var(--success) 22%,var(--border))}.sc-banner--on{background:color-mix(in srgb,var(--warning) 10%,var(--card));border-color:color-mix(in srgb,var(--warning) 35%,var(--border))}.sc-banner-title{font-size:17px;font-weight:700;letter-spacing:.02em;margin-bottom:8px}.sc-banner--off .sc-banner-title{color:color-mix(in srgb,var(--success) 55%,var(--text))}.sc-banner--on .sc-banner-title{color:color-mix(in srgb,var(--warning) 70%,var(--text))}.sc-banner-body{color:var(--text-secondary);font-size:14px;line-height:1.65}.sc-banner-body ul{margin:0;padding-left:1.2em}.sc-maintain-btn{border-radius:999px;font-size:15px;font-weight:650;padding:12px 24px;transition:transform .2s cubic-bezier(.25,1,.5,1);transition:transform .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1))}.sc-maintain-btn:hover:not(:disabled){transform:translateY(-1px)}.sc-form-actions .btn{border-radius:999px;font-weight:650}.sc-form-row{grid-gap:0 14px;display:grid;gap:0 14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.ap-page--fit .sc-form{flex:1 1 auto;min-height:0;overflow:auto}.form-group .ap-input,.form-group textarea.ap-input{border-radius:var(--radius-md);transition:border-color .2s cubic-bezier(.25,1,.5,1),box-shadow .2s cubic-bezier(.25,1,.5,1);transition:border-color .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1)),box-shadow .2s var(--ap-ease-soft,cubic-bezier(.25,1,.5,1))}.form-group textarea.ap-input{font-family:inherit;min-height:160px;resize:vertical}.form-group .form-label input[type=checkbox]{accent-color:var(--brand);margin-right:8px}@media (prefers-reduced-motion:reduce){.sc-maintain-btn:hover:not(:disabled){transform:none}}.tum-page{--tum-ease:cubic-bezier(0.16,1,0.3,1);background:radial-gradient(ellipse 120% 70% at 0 0,color-mix(in srgb,var(--brand) 7%,#0000),#0000 52%),linear-gradient(180deg,color-mix(in srgb,var(--bg) 90%,var(--brand) 2.5%) 0,var(--bg) 100%);min-height:100vh}.tum-main{margin:0 auto;max-width:1600px;padding-bottom:48px}.tum-hero{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px 24px;justify-content:space-between;margin-bottom:20px;margin-top:28px}.tum-create-btn{border-radius:999px;font-weight:650;padding:10px 22px;white-space:nowrap}.tum-alert{background:color-mix(in srgb,var(--danger) 10%,#fff);border-radius:var(--radius-md);color:var(--danger);font-size:14px;font-weight:600;margin-bottom:16px;padding:12px 16px}.tum-panel{background:color-mix(in srgb,var(--card) 97%,#0000);border:1px solid color-mix(in srgb,var(--border) 72%,var(--brand) 5%);border-radius:var(--radius-xl);box-shadow:0 1px 0 #ffffffa6 inset,var(--shadow-md);padding:clamp(20px,2.5vw,28px)}.tum-panel-title{color:var(--text);font-size:16px;font-weight:700;margin:0 0 4px}.tum-panel-hint{color:color-mix(in srgb,var(--muted) 82%,var(--brand) 18%);font-size:12px;font-weight:600;letter-spacing:.07em;margin:0 0 20px;text-transform:uppercase}.tum-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.tum-table{border-collapse:initial;border-spacing:0;font-size:14px;width:100%}.tum-table thead th{background:color-mix(in srgb,var(--bg) 65%,var(--card));color:color-mix(in srgb,var(--muted) 88%,var(--brand) 12%);font-size:12px;font-weight:700;letter-spacing:.04em;padding:12px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.tum-table tbody td,.tum-table thead th{border-bottom:1px solid var(--border-light)}.tum-table tbody td{padding:14px;vertical-align:middle}.tum-row{transition:background-color .2s}.tum-row:hover{background:color-mix(in srgb,var(--brand-50) 40%,#0000)}.tum-cell-name{font-weight:650}.tum-cell-time{white-space:nowrap}.tum-cell-time,.tum-no-action{color:var(--muted);font-size:13px}.tum-delete-btn{background:#0000;border:1px solid color-mix(in srgb,var(--danger) 30%,#0000);border-radius:999px;color:var(--danger);cursor:pointer;font-size:12px;font-weight:650;padding:4px 12px;transition:transform .15s,box-shadow .15s}.tum-delete-btn:hover:not(:disabled){box-shadow:0 2px 8px color-mix(in srgb,var(--danger) 20%,#0000);transform:translateY(-1px)}.tum-delete-btn:disabled{cursor:not-allowed;opacity:.5}.tum-skel-cell{border-bottom:1px solid var(--border-light)!important;padding:20px 14px!important}.tum-skel{animation:tumSkel 1.15s ease-in-out infinite;background:linear-gradient(90deg,var(--border-light),color-mix(in srgb,var(--border) 75%,var(--brand) 8%),var(--border-light));background-size:200% 100%;border-radius:6px;display:block;height:12px;max-width:100%}.tum-skel--short{max-width:60%}@keyframes tumSkel{0%,to{opacity:.4}50%{opacity:.85}}.tum-empty{color:var(--muted);font-size:15px;padding:36px 20px;text-align:center}.tum-pagination{align-items:center;border-top:1px solid var(--border-light);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-top:18px;padding-top:16px}.tum-pagination-meta{color:var(--muted);font-size:14px;font-weight:500}.tum-pagination-actions{display:flex;gap:8px}.tum-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.tum-modal{background:var(--card);border-radius:var(--radius-xl);box-shadow:0 20px 60px #00000026;max-height:90vh;max-width:440px;overflow-y:auto;width:90vw}.tum-modal-header{align-items:center;display:flex;justify-content:space-between;padding:20px 24px 0}.tum-modal-header h3{font-size:18px;font-weight:700;margin:0}.tum-modal-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px;padding:4px}.tum-modal-close:hover{color:var(--text)}.tum-modal-body{padding:20px 24px 24px}.tum-success-msg{background:color-mix(in srgb,var(--success) 10%,#fff);border:1px solid color-mix(in srgb,var(--success) 20%,#0000);border-radius:var(--radius-md);color:var(--success);font-size:14px;font-weight:650;margin-bottom:16px;padding:12px 16px;text-align:center}.tum-result-info{font-size:14px;line-height:1.8}.tum-result-info code{background:var(--bg);border-radius:4px;font-family:monospace;padding:2px 8px}.tum-error-msg{background:color-mix(in srgb,var(--danger) 10%,#fff);border:1px solid color-mix(in srgb,var(--danger) 20%,#0000);border-radius:var(--radius-md);color:var(--danger);font-size:13px;font-weight:600;margin-bottom:12px;padding:10px 14px}.tum-field{margin-bottom:14px}.tum-field label{color:var(--text-secondary);display:block;font-size:13px;font-weight:650;margin-bottom:6px}.tum-input{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text);font-family:inherit;font-size:14px;padding:10px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.tum-input:focus{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,#0000);outline:none}.tum-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.admin-root{--adm-sidebar-w:232px;min-height:100vh}.admin-sidebar{background:linear-gradient(180deg,#fff 0,color-mix(in srgb,var(--brand-50) 55%,#fff) 100%);border-right:1px solid color-mix(in srgb,var(--border) 85%,var(--brand) 6%);bottom:0;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;left:0;overflow-y:auto;position:fixed;top:0;width:var(--adm-sidebar-w);z-index:100}.admin-brand{align-items:center;display:flex;padding:16px 16px 10px}.admin-brand__logo{border-radius:6px;flex-shrink:0;height:40px;max-width:calc(var(--adm-sidebar-w) - 32px);object-fit:contain;object-position:left center;width:auto}.admin-nav{padding:2px 12px 12px}.admin-nav__group+.admin-nav__group{margin-top:10px}.admin-nav__group-label{color:color-mix(in srgb,var(--muted) 82%,var(--brand) 18%);font-size:11px;font-weight:650;letter-spacing:.12em;padding:10px 10px 6px;text-transform:uppercase}.admin-nav__link{align-items:center;border-radius:var(--radius-sm);color:var(--text-secondary);display:flex;font-size:14px;font-weight:550;gap:10px;margin-bottom:2px;padding:9px 10px;position:relative;text-decoration:none;transition:background .18s ease,color .18s ease}.admin-nav__link:hover{background:color-mix(in srgb,var(--brand-50) 70%,#0000);color:var(--brand-600);text-decoration:none}.admin-nav__link.is-active{background:color-mix(in srgb,var(--brand) 9%,#0000);color:var(--brand);font-weight:650}.admin-nav__link.is-active:before{background:var(--brand);border-radius:2px;bottom:8px;content:"";left:0;position:absolute;top:8px;width:3px}.admin-nav__icon{font-size:16px;line-height:1}.admin-nav__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-sidefoot{border-top:1px solid color-mix(in srgb,var(--border) 80%,#0000);display:flex;flex-direction:column;gap:8px;margin-top:auto;padding:12px 16px 16px}.admin-lang{align-self:flex-start;background:var(--card);border:1px solid color-mix(in srgb,var(--brand) 25%,var(--border));border-radius:999px;color:var(--brand-600);cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:650;padding:5px 12px;transition:background .18s ease}.admin-lang:hover{background:var(--brand-50)}.admin-sidefoot__user{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-logout{width:100%}.admin-main{display:flex;flex-direction:column;margin-left:var(--adm-sidebar-w);min-height:100vh}.admin-main>.page-shell{flex:1 0 auto}.admin-backdrop,.admin-mobile-bar{display:none}@media (max-width:768px){.admin-sidebar{transform:translateX(-100%);transition:transform .25s ease;width:min(280px,84vw);z-index:300}.admin-root.is-drawer-open .admin-sidebar{transform:none}.admin-backdrop{background:#0f121973;display:block;inset:0;position:fixed;z-index:290}.admin-root:not(.is-drawer-open) .admin-backdrop{display:none}.admin-main{margin-left:0}.admin-mobile-bar{align-items:center;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);background:#ffffffeb;border-bottom:1px solid var(--border-light);display:flex;gap:12px;height:52px;padding:0 14px;position:-webkit-sticky;position:sticky;top:0;z-index:95}.admin-burger{align-items:stretch;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;flex-direction:column;gap:4px;height:36px;justify-content:center;padding:8px;width:36px}.admin-burger span{background:var(--text-secondary);border-radius:1px;display:block;height:2px}.admin-mobile-bar__title{color:var(--text);font-size:14px;font-weight:650}.admin-main>.page-shell{min-height:calc(100vh - 52px);padding-bottom:0}}@media (prefers-reduced-motion:reduce){.admin-sidebar{transition:none}}@media (min-width:1200px){.ap-page--fit{display:flex;flex-direction:column;height:100vh;overflow:hidden}.ap-page--fit .ap-main,.ap-page--fit>main{display:flex;flex:1 1 auto;flex-direction:column;height:100%;min-height:0;padding-bottom:20px;padding-top:20px}.ap-page--fit .ap-hero,.ap-page--fit .ap-toolbar-row,.ap-page--fit .tum-hero{flex:0 0 auto;margin-bottom:14px;margin-top:0}.ap-fill{flex:1 1 auto;margin-bottom:0}.ap-fill,.ap-table-panel{display:flex;flex-direction:column;min-height:0}.ap-panel-head{flex:0 0 auto;margin-bottom:12px}.ap-table-scroll{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-gutter:stable}.ap-panel-foot{border-top:1px solid var(--border-light);flex:0 0 auto;margin-top:12px;padding-top:12px}.ap-table-scroll thead th{box-shadow:inset 0 -1px 0 var(--border-light);position:-webkit-sticky;position:sticky;top:0;z-index:2}.ap-cols{grid-gap:16px;display:grid;flex:1 1 auto;gap:16px;min-height:0}.ap-cols--2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.ap-cols--half{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ap-cols--wide-right{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}.ap-col{display:flex;flex-direction:column;gap:16px;min-height:0}.ap-col-scroll{flex:1 1 auto;min-height:0;overflow:auto}.ap-page--fit .ap-panel,.ap-page--fit .tum-panel{margin-bottom:14px;padding:clamp(16px,1.6vw,22px)}.ap-page--fit .ap-panel-hint{margin-bottom:12px}}@media (min-width:1200px) and (max-height:800px){.ap-page--fit .ap-main,.ap-page--fit>main{padding-bottom:14px;padding-top:14px}.ap-page--fit .ap-panel,.ap-page--fit .tum-panel{margin-bottom:10px;padding:14px 16px}.ap-page--fit .ap-panel-hint{margin-bottom:8px}}.ff-fab{background:linear-gradient(160deg,var(--brand) 0,var(--brand-600) 100%);border:none;border-radius:999px;box-shadow:0 10px 24px -10px color-mix(in srgb,var(--brand) 40%,#0000);color:#fff;font-size:14px;font-weight:600;padding:11px 16px;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1),filter .2s cubic-bezier(.22,1,.36,1)}.ff-fab:hover{box-shadow:0 14px 30px -12px color-mix(in srgb,var(--brand) 52%,#0000);filter:brightness(1.04);transform:translateY(-1px)}.ff-fab.is-dragging{box-shadow:0 16px 34px -14px color-mix(in srgb,var(--brand) 58%,#0000);filter:brightness(1.08);transform:scale(1.05)}.ff-overlay{align-items:center;animation:ffOverlayIn .22s cubic-bezier(.25,1,.5,1);background:color-mix(in srgb,#0b0f17 38%,#0000);display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1001}.ff-modal{animation:ffModalIn .28s cubic-bezier(.16,1,.3,1);background:color-mix(in srgb,#fff 97%,var(--brand) 3%);border:1px solid color-mix(in srgb,var(--border) 80%,var(--brand) 16%);box-shadow:0 28px 56px -28px color-mix(in srgb,var(--brand) 36%,#0000);display:flex;flex-direction:column;max-height:80vh;overflow:hidden;padding:18px;width:min(620px,94vw)}.ff-title{font-size:22px;font-weight:750;letter-spacing:.01em;margin:2px 0 14px}.ff-tabs{border-bottom:1px solid var(--border-light);display:flex;gap:8px;margin-bottom:14px}.ff-tab{background:#0000;border:none;border-bottom:2px solid #0000;border-radius:10px 10px 0 0;color:var(--muted);cursor:pointer;font-weight:650;padding:9px 14px;transition:all .22s cubic-bezier(.22,1,.36,1)}.ff-tab:hover{background:color-mix(in srgb,var(--brand-50) 50%,#0000);color:var(--brand)}.ff-tab.is-active{background:color-mix(in srgb,var(--brand-50) 72%,#fff);border-bottom-color:var(--brand);color:var(--brand-700)}.ff-body{flex:1 1;overflow:auto}.ff-form{display:flex;flex-direction:column;gap:10px}.ff-label{color:var(--muted);font-size:12px;margin:2px 2px -4px}.ff-control{background:#fff;border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.ff-control:focus{border-color:color-mix(in srgb,var(--brand) 42%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,#0000);outline:none}.ff-control--textarea{min-height:108px;resize:vertical}.ff-control--readonly{background:color-mix(in srgb,var(--bg) 55%,#fff);color:var(--text-secondary)}.ff-footer{border-top:1px solid var(--border-light);display:flex;gap:8px;justify-content:flex-end;margin-top:14px;padding-top:14px}@keyframes ffOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes ffModalIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.ff-fab,.ff-modal,.ff-overlay,.ff-tab{animation:none!important;transition:none!important}.ff-fab.is-dragging,.ff-fab:hover{filter:none;transform:none}}
/*# sourceMappingURL=main.368a3985.css.map*/