.reactEasyCrop_Container{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none;cursor:move;display:flex;justify-content:center;align-items:center}.reactEasyCrop_Image,.reactEasyCrop_Video{will-change:transform}.reactEasyCrop_Contain{max-width:100%;max-height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0}.reactEasyCrop_Cover_Horizontal{width:100%;height:auto}.reactEasyCrop_Cover_Vertical{width:auto;height:100%}.reactEasyCrop_CropArea{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.5);box-sizing:border-box;box-shadow:0 0 0 9999em;color:#00000080;overflow:hidden}.reactEasyCrop_CropAreaRound{border-radius:50%}.reactEasyCrop_CropAreaGrid:before{content:" ";box-sizing:border-box;position:absolute;border:1px solid rgba(255,255,255,.5);top:0;bottom:0;left:33.33%;right:33.33%;border-top:0;border-bottom:0}.reactEasyCrop_CropAreaGrid:after{content:" ";box-sizing:border-box;position:absolute;border:1px solid rgba(255,255,255,.5);top:33.33%;bottom:33.33%;left:0;right:0;border-left:0;border-right:0}:root{color-scheme:dark}*{box-sizing:border-box}.app{display:grid;grid-template-columns:220px 1fr 260px;height:100%;width:100%}.canvas-wrap{position:relative;background:#2a2a2a}.sidebar,.inspector{background:#1f1f1f;border-right:1px solid #333;overflow-y:auto;padding:14px}.inspector{border-right:none;border-left:1px solid #333}.sidebar h2,.inspector h2{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#aaa;margin:4px 0 10px}.palette{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tile{background:#2b2b2b;border:1px solid #3a3a3a;color:#eee;padding:14px 6px;border-radius:6px;cursor:pointer;font-size:12px;text-align:center;transition:background .15s,border-color .15s}.tile:hover{background:#353535;border-color:#4f8cff}.import-btn{display:block;width:100%;margin-top:12px;padding:10px;background:#4f8cff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500}.import-btn:hover{background:#3d7ae8}.import-btn:disabled{opacity:.45;cursor:not-allowed}.sidebar-subheading{margin-top:16px}.sidebar-catalog-error{font-size:12px;color:#ff8989;margin-bottom:8px}.import-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.import-modal{background:#252525;border:1px solid #444;border-radius:10px;max-width:440px;width:100%;max-height:90vh;overflow-y:auto;padding:18px 20px 20px;box-shadow:0 16px 48px #00000073}.import-modal-title{margin:0 0 8px;font-size:16px;color:#eee}.import-modal-hint{margin:0 0 14px;font-size:12px;color:#999;line-height:1.45}.import-modal-tabs{display:flex;gap:8px;margin-bottom:14px}.import-modal-tab{flex:1;padding:8px 10px;border-radius:6px;border:1px solid #444;background:#1a1a1a;color:#bbb;cursor:pointer;font-size:12px;font-family:inherit}.import-modal-tab[aria-selected=true]{background:#333;border-color:#4f8cff;color:#eee}.import-modal-tab:disabled{opacity:.5;cursor:not-allowed}.import-modal-generate-preview{display:block;max-width:100%;max-height:180px;object-fit:contain;border-radius:6px;border:1px solid #3a3a3a;margin-bottom:12px;background:#1a1a1a}.import-modal-poster-crop{margin-bottom:8px}.import-modal-poster-crop-frame{position:relative;height:240px;border-radius:6px;border:1px solid #3a3a3a;margin-bottom:12px;background:#0f0f0f;overflow:hidden}.import-modal-poster-crop-result{margin-bottom:8px}.import-modal-poster-crop-caption{display:block;font-size:11px;color:#888;margin-bottom:6px}.import-modal-poster-crop-preview{display:block;max-width:100%;max-height:140px;margin:0 auto;border-radius:6px;border:1px solid #3a3a3a;object-fit:contain;background:#1a1a1a}.import-modal-generate-status{margin:0 0 12px;font-size:12px;color:#999;line-height:1.45}.import-modal-code{font-size:11px;color:#ccc;word-break:break-all}.import-modal-generate-hint{margin:-6px 0 12px;font-size:11px;color:#8ab4ff;line-height:1.4}.import-modal-decimate-info{margin:-6px 0 12px;padding:8px 10px;border-radius:6px;border:1px solid #3a4a66;background:#1e2738;font-size:12px;color:#8ab4ff;line-height:1.4}.import-modal-decimate-skip{margin:-6px 0 12px;font-size:11px;color:#aaa;line-height:1.45}.import-modal-decimate-btn{width:100%;margin-bottom:12px;padding:8px 12px;border-radius:6px;border:1px solid #555;background:#2b2b2b;color:#ddd;font-size:12px;font-family:inherit;cursor:pointer}.import-modal-decimate-btn:hover:not(:disabled){background:#333}.import-modal-decimate-btn:disabled{opacity:.5;cursor:not-allowed}.import-modal-field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;font-size:12px;color:#bbb}.import-modal-field input,.import-modal-field textarea{background:#1a1a1a;border:1px solid #3a3a3a;color:#eee;border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit}.import-modal-field input:focus,.import-modal-field textarea:focus{outline:none;border-color:#4f8cff}.import-modal-dims{display:grid;grid-template-columns:1fr 1fr;gap:8px}.import-modal-dims .import-modal-field{margin-bottom:4px}.import-modal-error{font-size:12px;color:#ff8989;margin-bottom:10px}.import-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.import-modal-btn{padding:8px 16px;border-radius:6px;font-size:13px;cursor:pointer;border:1px solid #444}.import-modal-btn:disabled{opacity:.5;cursor:not-allowed}.import-modal-btn.secondary{background:#2b2b2b;color:#ddd}.import-modal-btn.secondary:hover:not(:disabled){background:#333}.import-modal-btn.primary{background:#4f8cff;border-color:#4f8cff;color:#fff;font-weight:500}.import-modal-btn.primary:hover:not(:disabled){background:#3d7ae8}.tile:disabled{opacity:.45;cursor:not-allowed}.inspector .row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px}.inspector .row label{color:#aaa}.inspector input[type=range]{width:130px}.inspector .btn{background:#2b2b2b;border:1px solid #3a3a3a;color:#eee;padding:6px 10px;border-radius:4px;cursor:pointer;font-size:12px}.inspector .btn:hover{background:#353535}.inspector .btn.danger{background:#5a2a2a;border-color:#7a3a3a}.inspector .btn.danger:hover{background:#6a3a3a}.empty-hint{color:#777;font-size:12px;font-style:italic}.hint-overlay{position:absolute;bottom:10px;left:10px;color:#bbb;font-size:11px;background:#00000080;padding:6px 10px;border-radius:4px;pointer-events:none;line-height:1.5}.hint-overlay .hint-switch-room{pointer-events:auto;margin-top:6px;padding:4px 8px;font-size:11px;border-radius:4px;border:1px solid #555;background:#282828f2;color:#cce0ff;cursor:pointer}.hint-overlay .hint-switch-room:hover{border-color:#4f8cff;color:#fff}.intro{position:relative;height:100%;width:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 20% 0%,rgba(79,140,255,.1),transparent 60%),radial-gradient(900px 500px at 100% 100%,rgba(79,140,255,.08),transparent 60%),#1a1a1a;padding:24px;overflow:auto}.intro-back-btn{position:absolute;top:16px;left:16px;z-index:2;padding:6px 12px;border-radius:6px;border:1px solid #444;background:#252525;color:#aaa;font-size:14px;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.intro-back-btn:hover{background:#4f8cff;border-color:#4f8cff;color:#fff}.intro-card{width:100%;max-width:520px;background:#1f1f1f;border:1px solid #333;border-radius:12px;padding:36px 36px 28px;box-shadow:0 12px 40px #00000073;display:flex;flex-direction:column;gap:10px}.intro-logo-mark{align-self:flex-start;width:56px;height:56px;border-radius:50%;border:2px solid #4f8cff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:600;color:#4f8cff;line-height:1;flex-shrink:0}.intro-card h1{margin:0;padding-bottom:12px;border-bottom:1px solid rgba(79,140,255,.35);font-size:32px;letter-spacing:.01em;color:#fff}.intro-card>p:not(.login-page-lede):not(.intro-room-banner):not(.auth-splash-label){margin:8px 0 0;line-height:1.6;color:#bbb}.login-page .intro-card h1{font-size:26px}.intro-card ul{list-style:none;margin:0 0 24px;padding:0}.intro-card li{position:relative;padding:8px 0 8px 22px;color:#ddd;font-size:14px;line-height:1.45;border-bottom:1px solid #2a2a2a}.intro-card li:last-child{border-bottom:none}.intro-card li:before{content:"";position:absolute;left:4px;top:16px;width:8px;height:8px;border-radius:50%;background:#4f8cff}.intro-start{display:block;width:100%;padding:12px 16px;background:#252525;color:#ccc;border:1px solid #444;border-radius:8px;cursor:pointer;font-size:15px;font-weight:500;transition:background .15s,border-color .15s,color .15s}.intro-start:hover:not(:disabled){background:#4f8cff;border-color:#4f8cff;color:#fff}.intro-start+.intro-start{margin-top:10px}.intro-start--primary{background:#4f8cff;border-color:#4f8cff;color:#fff}.intro-start--primary:hover:not(:disabled){background:#3d7ae8;border-color:#3d7ae8;color:#fff}.intro-start--ghost{background:#252525;border:1px solid #444;color:#ccc}.intro-start.intro-start--ghost:hover:not(:disabled){background:#4f8cff;border-color:#4f8cff;color:#fff}.welcome-page .intro-card{align-items:center;text-align:center}.welcome-page .intro-logo-mark{align-self:center}.welcome-divider{width:100%;margin:8px 0;border:none;border-top:1px solid rgba(79,140,255,.2)}.welcome-page .welcome-use-case{margin:0}.mode-picker-page .intro-card{align-items:center;text-align:center}.login-tabs{display:flex;gap:4px;margin-bottom:20px;background:#2b2b2b;border-radius:8px;padding:4px}.login-tab{flex:1;padding:8px 0;border:none;border-radius:6px;background:transparent;color:#888;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.login-tab.active{background:#1f1f1f;color:#eee;box-shadow:inset 0 -2px #4f8cff}.login-tab:not(.active):hover{color:#ccc}.login-form{display:flex;flex-direction:column;gap:8px}.login-form .intro-start{margin-top:4px}.login-label{font-size:12px;color:#aaa;margin-bottom:-2px}.login-input{padding:10px 12px;border-radius:6px;border:1px solid #3a3a3a;background:#2b2b2b;color:#eee;font-size:14px;outline:none;transition:border-color .15s;margin-bottom:6px}.login-input:focus{border-color:#4f8cff}.login-input::placeholder{color:#555}.intro-start:disabled{opacity:.6;cursor:not-allowed}.oauth-error-banner{margin-bottom:12px;padding:10px 12px;border-radius:8px;background:#b43c3c33;border:1px solid rgba(200,80,80,.45);color:#f8b4b4;font-size:13px}.oauth-info-banner{margin-bottom:12px;padding:10px 12px;border-radius:8px;background:#32785033;border:1px solid rgba(70,160,100,.45);color:#9fe0b4;font-size:13px}.auth-splash-inner{text-align:center;padding:48px}.auth-splash-label{margin:0;font-size:15px;color:#aaa}.sidebar-footer{margin-top:20px;padding-top:14px;border-top:1px solid #333}.sidebar-account{font-size:11px;color:#777;word-break:break-all;margin-bottom:8px}.sidebar-logout{display:block;width:100%;padding:8px 10px;border-radius:6px;border:1px solid #3a3a3a;background:#2b2b2b;color:#bbb;font-size:12px;cursor:pointer}.sidebar-logout:hover{border-color:#555;color:#eee}.intro-room-banner{margin:-8px 0 14px;font-size:14px;color:#aaa;background:#4f8cff1a;border:1px solid rgba(79,140,255,.22);border-radius:6px;padding:8px 12px}.intro-room-banner strong{color:#eaeaea}.intro-room-switch{background:none;border:none;padding:0;color:#4f8cff;cursor:pointer;font-size:inherit;text-decoration:underline}.room-picker-page .intro-card{max-width:520px;overflow-x:hidden}.room-picker-page .intro-card h1{text-align:center;align-self:center}.login-page-lede{font-size:14px;color:#aaa;margin:-4px 0 18px;line-height:1.5}.room-list{display:flex;flex-direction:column;gap:8px;margin-bottom:22px;max-height:280px;overflow-x:hidden;overflow-y:auto}.room-empty{color:#777;font-size:14px;margin:0 0 8px}.room-list-row{display:flex;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:14px 16px;border-radius:8px;border:1px solid #3a3a3a;background:#2b2b2b;color:#eee;text-align:left;cursor:pointer;font-size:14px;outline:none;transition:border-color .15s,background .15s,transform .15s}.room-list-row:focus-visible:not(.room-list-row--editing):not(.room-list-row--disabled){border-color:#4f8cff}.room-list-row:hover:not(.room-list-row--editing):not(.room-list-row--disabled){border-color:#4f8cff;background:#303030;transform:translate(2px)}.room-list-row--disabled{opacity:.5;cursor:not-allowed}.room-list-row--editing{cursor:default}.room-list-row--editing:hover{border-color:#3a3a3a;background:#2b2b2b;transform:none}.room-list-row-main{min-width:0;flex:1}.room-list-row-tail{display:flex;align-items:center;gap:14px;flex-shrink:0}.room-list-name{font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-list-meta{font-size:11px;color:#888;flex-shrink:0;white-space:nowrap}.room-row-actions{display:flex;align-items:center;gap:4px}.room-action-btn{width:28px;height:28px;padding:0;border-radius:6px;border:1px solid #444;background:#252525;color:#999;font-size:14px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s}.room-action-btn:hover:not(:disabled){background:#4f8cff;border-color:#4f8cff;color:#fff}.room-action-btn.delete:hover:not(:disabled){background:#c8484859;border-color:#c74a4a;color:#ffb4b4}.room-action-btn:disabled{opacity:.45;cursor:not-allowed}.room-row-edit-form{display:flex;align-items:center;gap:8px;width:100%}.room-row-edit-form .login-input{flex:1;min-width:0;margin-bottom:0}.room-edit-inline-btn{padding:8px 12px;border-radius:6px;border:1px solid #444;background:#252525;color:#bbb;font-size:12px;font-weight:500;cursor:pointer;flex-shrink:0;transition:background .15s,border-color .15s,color .15s}.room-edit-inline-btn:hover:not(:disabled){background:#4f8cff;border-color:#4f8cff;color:#fff}.room-edit-inline-btn.secondary:hover:not(:disabled){background:#333;border-color:#666;color:#eee}.room-limit-msg{margin:0 0 10px;font-size:12px;color:#888;line-height:1.4}.room-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:#0000008c}.room-confirm-modal{background:#1f1f1f;border:1px solid #333;border-radius:12px;padding:28px 32px 24px;max-width:360px;width:100%;box-shadow:0 16px 48px #00000080}.room-confirm-text{margin:0 0 20px;font-size:15px;color:#ddd;line-height:1.5;text-align:center}.room-confirm-text strong{color:#fff}.room-confirm-actions{display:flex;gap:10px}.room-confirm-actions .intro-start{flex:1}.room-confirm-actions .intro-start+.intro-start{margin-top:0}.room-create-form{margin-top:0;padding-top:0;border-top:none}.room-create-form .intro-start{background:#252525;border:1px solid #3a3a3a;color:#8ab4ff}.room-create-form .intro-start:hover:not(:disabled){background:#4f8cff;border-color:#4f8cff;color:#fff}.sidebar-room{font-size:12px;color:#4f8cff;margin-bottom:8px;word-break:break-word}.sidebar-save{display:block;width:100%;margin-bottom:8px;padding:8px 10px;border-radius:6px;border:none;background:#2d5016;color:#dfe;font-size:12px;font-weight:600;cursor:pointer}.sidebar-save:hover:not(:disabled){background:#37661c}.sidebar-save:disabled{opacity:.5;cursor:not-allowed}.sidebar-save-error{font-size:11px;color:#f8a8a8;margin-bottom:8px}.sidebar-switch-room{display:block;width:100%;margin-bottom:10px;padding:6px 10px;border-radius:6px;border:1px solid #444;background:#2a2a2a;color:#999;font-size:11px;cursor:pointer}.onboarding-page{position:relative;color-scheme:light;min-height:100%;width:100%;display:flex;flex-direction:column;align-items:stretch;background:radial-gradient(ellipse 140% 90% at 50% -25%,rgba(26,79,191,.06),transparent 52%),#f8fafc;color:#1f2933;overflow-x:hidden;overflow-y:auto}.onboarding-page--splash{justify-content:center;align-items:center}.onboarding-header{flex-shrink:0;display:flex;align-items:center;min-height:58px;height:auto;padding:12px clamp(20px,4vw,48px);background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 2px #0000000a}@media (max-width: 600px){.onboarding-header{padding:0 20px}}.onboarding-wordmark{font-size:18px;font-weight:700;letter-spacing:-.02em;color:#111827}.onboarding-logo-img{height:34px;width:auto;display:block;object-fit:contain;flex-shrink:0}.onboarding-hero-logo{height:88px;width:auto;display:block;object-fit:contain}.onboarding-main{flex:1;width:100%;max-width:740px;margin:0 auto;padding:64px 32px 84px;box-sizing:border-box}.onboarding-main--narrow{max-width:640px}.onboarding-main--wide{max-width:900px}.onboarding-back-btn{position:absolute;top:70px;left:clamp(16px,3vw,24px);z-index:5;padding:8px 16px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;color:#667085;font-size:13px;font-weight:500;line-height:1.2;cursor:pointer;font-family:inherit;transition:border-color .18s ease,color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;box-shadow:0 1px 2px #0000000d}.onboarding-back-btn:hover{border-color:#1a4fbf;color:#1a4fbf;background:#f8fafc;transform:translateY(-1px);box-shadow:0 2px 8px #1118270f}@media (max-width: 600px){.onboarding-back-btn{left:16px;top:66px}}.onboarding-card{width:100%;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:48px;box-shadow:0 1px 3px #0000000f,0 4px 20px #00000014;box-sizing:border-box}@media (max-width: 600px){.onboarding-card{padding:28px 22px}}.login-page .onboarding-card{padding:44px 40px}@media (max-width: 600px){.login-page .onboarding-card{padding:28px 22px}}.onboarding-card--compact{padding:36px 40px}.onboarding-logo-mark{width:52px;height:52px;border-radius:50%;border:2px solid #1A4FBF;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;color:#1a4fbf;line-height:1;flex-shrink:0}.onboarding-title{margin:0;font-size:clamp(28px,2.5vw,34px);font-weight:700;letter-spacing:-.02em;color:#111827;line-height:1.2}.onboarding-card .onboarding-title{padding-bottom:0;border-bottom:none}.onboarding-subtitle{margin:8px 0 0;font-size:16px;line-height:1.65;color:#667085}.onboarding-divider{width:100%;margin:16px 0;border:none;border-top:1px solid #e5e7eb}.onboarding-use-case{margin:0;font-size:16px;line-height:1.65;color:#1f2933}.onboarding-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}.onboarding-hero .onboarding-title{margin-top:4px;font-size:clamp(32px,3.2vw,42px);letter-spacing:-.03em}.onboarding-welcome-copy{max-width:440px;margin:0 auto;line-height:1.7;color:#374151}.onboarding-hero-cta{margin-top:12px;width:100%;max-width:280px}.onboarding-btn{display:block;width:100%;padding:13px 26px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;color:#374151;font-size:16px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.onboarding-btn:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db;color:#111827;transform:translateY(-1px);box-shadow:0 4px 12px #1118270f}.onboarding-btn-primary{background:#1a4fbf;border-color:#1a4fbf;color:#fff;box-shadow:0 1px 2px #1a4fbf40}.onboarding-btn-primary:hover:not(:disabled){background:#1540a8;border-color:#1540a8;color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #1a4fbf47}.onboarding-btn:disabled{opacity:.6;cursor:not-allowed}.intro.room-picker-shell{flex-direction:column;gap:16px;align-items:center}.admin-room-picker-banner{width:100%;max-width:520px}.admin-dash-open{margin:0}.admin-portal{min-height:100%;width:100%;display:flex;flex-direction:column;background:radial-gradient(1200px 600px at 20% 0%,rgba(79,140,255,.1),transparent 60%),radial-gradient(900px 500px at 100% 100%,rgba(79,140,255,.08),transparent 60%),#131313;color:#eee}.admin-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;padding:20px clamp(16px,4vw,36px);border-bottom:1px solid #333;background:#1f1f1fd9}.admin-title{margin:0 0 4px;font-size:clamp(22px,4vw,28px);font-weight:600}.admin-subtitle{margin:0;font-size:13px;color:#999}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px}.admin-btn-secondary,.admin-btn-exit{padding:10px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;border:1px solid #3a3a3a;background:#2b2b2b;color:#ddd}.admin-btn-secondary:hover:not(:disabled),.admin-btn-exit:hover:not(:disabled){border-color:#555;color:#fff}.admin-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.onboarding-tabs{display:flex;gap:4px;margin-bottom:24px;background:#eef2f7;border-radius:10px;padding:5px}.onboarding-tab{flex:1;padding:10px 14px;border:none;border-radius:8px;background:transparent;color:#9ca3af;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.onboarding-tab.active{background:#fff;color:#111827;box-shadow:0 1px 4px #11182714}.onboarding-tab:not(.active):hover{color:#6b7280}.onboarding-form{display:flex;flex-direction:column;gap:8px}.onboarding-form .onboarding-btn{margin-top:12px}.onboarding-label{font-size:13px;font-weight:500;color:#374151;margin-bottom:2px}.onboarding-input{padding:11px 14px;border-radius:10px;border:1.5px solid #e5e7eb;background:#fff;color:#1f2933;font-size:14px;font-family:inherit;outline:none;transition:border-color .18s ease,box-shadow .18s ease;margin-bottom:6px}.onboarding-input:focus{border-color:#1a4fbf;box-shadow:0 0 0 3px #1a4fbf26}.onboarding-input::placeholder{color:#9ca3af}.onboarding-lede{font-size:15px;color:#667085;margin:-4px 0 20px;line-height:1.6}.onboarding-error-banner{margin-bottom:12px;padding:12px 16px;border-radius:10px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:13px;line-height:1.45}.onboarding-info-banner{margin-bottom:12px;padding:12px 16px;border-radius:10px;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;font-size:13px;line-height:1.45}.onboarding-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}@media (max-width: 600px){.onboarding-choice-grid{grid-template-columns:1fr}}.onboarding-choice-card{display:block;width:100%;margin:0;padding:32px 28px;text-align:left;border-radius:14px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;font-family:inherit;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;box-sizing:border-box;min-height:160px}.onboarding-choice-card:hover{border-color:#1a4fbf;background:#fafbff;box-shadow:0 0 0 3px #1a4fbf24,0 8px 24px #1118270f;transform:translateY(-2px)}.onboarding-choice-card:focus-visible{outline:none;border-color:#1a4fbf;box-shadow:0 0 0 3px #1a4fbf40}.onboarding-choice-icon{display:block;font-size:32px;margin-bottom:14px;line-height:1}.onboarding-choice-title{display:block;font-size:17px;font-weight:600;color:#111827}.onboarding-choice-body{display:block;margin-top:10px;font-size:14px;line-height:1.55;color:#667085}.onboarding-mode-heading{text-align:center;margin-bottom:12px}.onboarding-mode-heading .onboarding-subtitle{margin-top:10px}.mode-picker-page .onboarding-subtitle{font-size:16px;line-height:1.55}.onboarding-room-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;max-height:340px;overflow-x:hidden;overflow-y:auto;padding:6px 8px}.room-picker-page .onboarding-card{overflow-x:hidden}.onboarding-room-row{display:flex;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:16px 18px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;color:#1f2933;text-align:left;cursor:pointer;font-size:15px;outline:none;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.onboarding-room-row:focus-visible:not(.onboarding-room-row--editing):not(.onboarding-room-row--disabled){border-color:#1a4fbf;box-shadow:0 0 0 3px #1a4fbf26}.onboarding-room-row:hover:not(.onboarding-room-row--editing):not(.onboarding-room-row--disabled){border-color:#1a4fbf;background:#eef3ff;box-shadow:0 4px 14px #1a4fbf14;transform:translateY(-1px)}.onboarding-room-row--disabled{opacity:.5;cursor:not-allowed}.onboarding-room-row--editing{cursor:default}.onboarding-room-row--editing:hover{border-color:#e5e7eb;background:#fff;box-shadow:none;transform:none}.onboarding-room-row-main{min-width:0;flex:1}.onboarding-room-row-tail{display:flex;align-items:center;gap:14px;flex-shrink:0}@media (max-width: 520px){.onboarding-room-row:not(.onboarding-room-row--editing){flex-wrap:wrap;align-items:flex-start;gap:12px}.onboarding-room-row-main{flex:1 1 100%;min-width:0}.onboarding-room-row-tail{flex:1 1 100%;justify-content:space-between;min-width:0}}.onboarding-room-name{font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111827}.onboarding-room-meta{font-size:11px;color:#9ca3af;flex-shrink:0;white-space:nowrap}.onboarding-room-actions{display:flex;align-items:center;gap:6px}.onboarding-room-action-btn{width:32px;height:32px;padding:0;border-radius:6px;border:1px solid #e5e7eb;background:#f9fafb;color:#6b7280;font-size:14px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.onboarding-room-action-btn:hover:not(:disabled){border-color:#1a4fbf;background:#eef3ff;color:#1a4fbf}.onboarding-room-action-btn.delete:hover:not(:disabled){border-color:#fca5a5;background:#fef2f2;color:#dc2626}.onboarding-room-action-btn:disabled{opacity:.45;cursor:not-allowed}.onboarding-room-edit-form{display:flex;align-items:center;gap:8px;width:100%}.onboarding-room-edit-form .onboarding-input{flex:1;min-width:0;margin-bottom:0}.onboarding-room-edit-btn{padding:8px 14px;border-radius:8px;border:1px solid #e5e7eb;background:#f3f4f6;color:#374151;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;flex-shrink:0;transition:background .15s ease,border-color .15s ease}.onboarding-room-edit-btn:hover:not(:disabled){background:#1a4fbf;border-color:#1a4fbf;color:#fff}.onboarding-room-edit-btn.secondary:hover:not(:disabled){background:#fff;border-color:#d1d5db;color:#374151}.onboarding-room-limit{margin:0 0 10px;font-size:13px;color:#9ca3af;line-height:1.4;text-align:center}.onboarding-room-empty{color:#9ca3af;font-size:14px;margin:0 0 8px}.onboarding-create-form{margin-top:8px}.onboarding-create-form .onboarding-btn-primary{margin-top:0}.onboarding-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:#0f172a6b;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.onboarding-confirm-modal{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:32px;max-width:380px;width:100%;box-shadow:0 24px 56px #11182724}.onboarding-confirm-text{margin:0 0 24px;font-size:16px;color:#1f2933;line-height:1.55;text-align:center}.onboarding-confirm-text strong{color:#111827}.onboarding-confirm-actions{display:flex;gap:16px}.onboarding-confirm-actions .onboarding-btn,.onboarding-confirm-actions .onboarding-btn-primary{flex:1;margin-top:0}.onboarding-splash-inner{text-align:center;padding:48px 40px;width:100%;max-width:400px}.onboarding-splash-label{margin:0;font-size:15px;color:#667085}.onboarding-room-banner{margin:4px 0 16px;font-size:14px;color:#667085;background:#eef3ff;border:1px solid #bfccf0;border-radius:8px;padding:10px 14px}.onboarding-room-banner strong{color:#1f2933}.onboarding-room-switch{background:none;border:none;padding:0;color:#1a4fbf;cursor:pointer;font-size:inherit;font-family:inherit;text-decoration:underline}.onboarding-room-switch:hover{color:#1540a8}.onboarding-feature-list{list-style:none;margin:0 0 32px;padding:0}.onboarding-feature-list li{position:relative;padding:12px 0 12px 28px;color:#374151;font-size:14px;line-height:1.55;border-bottom:1px solid #f3f4f6}.onboarding-feature-list li:last-child{border-bottom:none}.onboarding-feature-list li:before{content:"";position:absolute;left:6px;top:19px;width:8px;height:8px;border-radius:50%;background:#1a4fbf}.onboarding-ar-centered{display:flex;flex-direction:column;align-items:center;max-width:480px;margin:0 auto}.onboarding-ar-centered .onboarding-title{text-align:center}.onboarding-ar-centered>p{margin:12px 0 0;text-align:center;font-size:15px;line-height:1.65;color:#667085}.ar-qr-frame{margin-top:24px;padding:16px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 12px #00000014}.ar-qr-graphic{display:block;border-radius:4px}.onboarding-ar-centered>p.ar-qr-caption{margin:10px 0 0;font-size:12px;line-height:1.4;color:#9ca3af;letter-spacing:.04em;text-transform:uppercase}.onboarding-login-heading .onboarding-tabs{margin-top:0;margin-bottom:24px}.room-picker-page .onboarding-lede{margin-bottom:28px}.room-picker-page .onboarding-title{margin-bottom:8px}.onboarding-text-center{text-align:center}.admin-btn-exit{border-color:#5a3838;background:#5a323259}.admin-btn-exit:hover:not(:disabled){border-color:#884040}.admin-banner{margin:0 clamp(16px,4vw,36px);padding:12px 14px;border-radius:8px;font-size:13px}.admin-banner-error{background:#b43c3c33;border:1px solid rgba(200,80,80,.45);color:#f8b4b4}.admin-main{flex:1;padding:16px clamp(16px,4vw,36px) 36px;overflow:auto}.admin-table-wrap{border:1px solid #333;border-radius:10px;overflow:auto;background:#1f1f1f;box-shadow:0 8px 32px #00000059}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table thead{background:#252525;position:sticky;top:0;z-index:1}.admin-table th,.admin-table td{padding:12px 14px;text-align:left;border-bottom:1px solid #333}.admin-table tbody tr:last-child td{border-bottom:none}.admin-num{text-align:right}.admin-th-btn{padding:0;margin:0;border:none;background:none;color:inherit;font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:#ccc}.admin-th-btn:hover{color:#4f8cff}.admin-th-btn-num{width:100%;justify-content:flex-end}.admin-loading-cell{text-align:center;padding:28px 14px;color:#888;font-style:italic}.admin-row-muted td{opacity:.55}.admin-code{font-size:12px;background:#2c2c2c;border:1px solid #3a3a3a;border-radius:4px;padding:2px 6px;color:#c8d}.admin-badge{display:inline-block;min-width:2.25em;text-align:center;padding:4px 8px;border-radius:6px;font-size:13px;font-weight:600}.admin-badge-rooms{background:#4f8cff2e;border:1px solid rgba(79,140,255,.4);color:#bbd4ff}.admin-badge-placements{background:#648cc81f;border:1px solid rgba(90,120,170,.45);color:#a8c8f0}.admin-badge-likes{background:#c8506e26;border:1px solid rgba(200,100,120,.45);color:#fdb8cc}.admin-badge-recents{background:#aaaaaa1f;border:1px solid #555;color:#cfcfcf}.admin-empty{margin:0;padding:16px;font-size:13px;color:#888;border-top:1px solid #333}.admin-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:28px}.admin-summary-heading{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#aaa}.admin-summary-col{background:#1f1f1fe6;border:1px solid #333;border-radius:10px;padding:16px}.admin-summary-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.admin-summary-item{font-size:13px;line-height:1.4;padding:8px 0;border-bottom:1px solid #2a2a2a}.admin-summary-item:last-child{border-bottom:none;padding-bottom:0}.admin-summary-kind{font-size:11px;vertical-align:middle}.admin-summary-label{font-weight:500}.admin-section{margin-bottom:32px}.admin-section-lede{margin:-4px 0 14px;font-size:13px;color:#888}.admin-section-title{margin:0 0 6px;font-size:16px;font-weight:600}.admin-table-wrap-tight{max-height:min(340px,45vh)}.admin-muted-dash{color:#555}.admin-tags-cell{max-width:160px;font-size:12px;color:#bbb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-desc-cell{max-width:220px;font-size:12px;color:#bbb;overflow:hidden;text-overflow:ellipsis}.admin-desc-head{max-width:240px}.admin-th-btn-desc{justify-content:flex-start}.admin-empty-inline{padding:20px;color:#888;font-size:13px;text-align:center}.admin-badge-downloads{background:#78b46426;border:1px solid rgba(100,160,90,.45);color:#b8dfb0}@media (min-width: 1100px){.admin-tags-cell{max-width:200px}.admin-desc-cell{max-width:280px}}.admin-section-items-rooms{margin-bottom:32px}.admin-table-wrap-items-rooms{max-height:min(360px,45vh)}.admin-catalog-lede strong{font-weight:600;color:#c8c8c8}.admin-code-inline{font-size:12px;background:#2c2c2c;border:1px solid #3a3a3a;border-radius:4px;padding:1px 6px}.admin-section-bundles{margin-bottom:32px}.admin-bundle-intro{max-width:720px}.admin-bundle-cell-label{font-weight:500;margin-right:4px}html.admin-dashboard-open,html.admin-dashboard-open body{overflow-y:auto;overflow-x:hidden;height:auto;min-height:100%}html.admin-dashboard-open body #root{height:auto;min-height:100%;overflow-x:hidden}.onboarding-page.welcome-page-root{min-height:100vh;min-height:100dvh}.welcome-page-root main.onboarding-main.onboarding-main--narrow.welcome-page-main{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:center;width:100%;max-width:1100px;margin-left:auto;margin-right:auto;padding:clamp(16px,4vh,36px) clamp(20px,4vw,48px);box-sizing:border-box;min-height:0}.welcome-hero-stage{position:relative;width:100%;max-width:1100px;margin-left:auto;margin-right:auto;flex-shrink:0}.welcome-hero-stage .onboarding-hero{position:relative;z-index:2}@keyframes welcome-review-float{0%,to{transform:translateY(8px) rotate(var(--review-rotate, 0deg))}50%{transform:translateY(-8px) rotate(var(--review-rotate, 0deg))}}.welcome-review-cloud{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none;z-index:1}.welcome-review-card{position:absolute;max-width:220px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:16px 18px;box-shadow:0 2px 12px #00000012,0 1px 3px #0000000d;pointer-events:none;animation:welcome-review-float 6.5s ease-in-out infinite;box-sizing:border-box}.welcome-review-card-1{top:3%;left:max(8px,calc(50% - 520px));--review-rotate: -2.5deg;animation-delay:0s;animation-duration:6.8s}.welcome-review-card-2{top:7%;right:max(8px,calc(50% - 520px));left:auto;--review-rotate: 2deg;animation-delay:-1.8s;animation-duration:7.2s}.welcome-review-card-4{top:58%;right:max(8px,calc(50% - 520px));left:auto;--review-rotate: 2.8deg;animation-delay:-2.2s;animation-duration:7.6s}.welcome-review-card-5{bottom:11%;left:max(8px,calc(50% - 520px));--review-rotate: -2.2deg;animation-delay:-5s;animation-duration:5.6s}.welcome-review-stars{color:#1a4fbf;font-size:12px;margin-bottom:6px}.welcome-review-text{margin:0;font-size:14px;line-height:1.45;color:#1f2933}@media (max-width: 900px){.welcome-review-cloud{display:none}}@media (prefers-reduced-motion: reduce){.welcome-review-card{animation:none;transform:rotate(var(--review-rotate, 0deg))}}
