.modal-overlay[data-v-50330085]{align-items:center;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:rgba(0,30,80,.3);bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:fixed;right:0;top:0;transition:all .4s cubic-bezier(.16,1,.3,1);visibility:hidden;z-index:10000}.modal-overlay.active[data-v-50330085]{opacity:1;visibility:visible}.modal-container[data-v-50330085]{backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:hsla(0,0%,100%,.97);border:1px solid rgba(0,111,255,.08);border-radius:32px;box-shadow:0 32px 80px rgba(0,111,255,.14),inset 0 0 0 1px rgba(0,111,255,.04);display:flex;min-height:480px;overflow:hidden;position:relative;transform:scale(.95) translateY(20px);transition:all .4s cubic-bezier(.16,1,.3,1);width:840px}.modal-overlay.active .modal-container[data-v-50330085]{transform:scale(1) translateY(0)}.btn-close-modal[data-v-50330085]{align-items:center;background:#f1f5f9;border:1px solid rgba(0,111,255,.08);border-radius:50%;color:#64748b;cursor:pointer;display:flex;font-size:1.6rem;height:3.2rem;justify-content:center;position:absolute;right:1.5rem;top:1.5rem;transition:all .2s;width:3.2rem;z-index:100}.btn-close-modal[data-v-50330085]:hover{background:#e2e8f0;color:#334155}.modal-brand-side[data-v-50330085]{background:linear-gradient(135deg,#eff6ff,#f0f4ff);border-right:1px solid rgba(0,111,255,.08);display:flex;flex:1.1;flex-direction:column;gap:2.5rem;justify-content:center;overflow:hidden;padding:4rem;position:relative}.modal-brand-side[data-v-50330085]:after{background:radial-gradient(circle at center,rgba(0,111,255,.06) 0,transparent 60%);content:"";height:200%;left:-50%;pointer-events:none;position:absolute;top:-50%;width:200%}.brand-head h2[data-v-50330085]{color:#1e293b;font-size:2.4rem;font-weight:900;margin:0;position:relative;z-index:2}.brand-points[data-v-50330085]{display:flex;flex-direction:column;gap:1.8rem;position:relative;z-index:2}.point[data-v-50330085]{gap:1.2rem}.point-icon[data-v-50330085],.point[data-v-50330085]{align-items:center;display:flex}.point-icon[data-v-50330085]{background:#fff;border:1px solid rgba(0,111,255,.1);border-radius:14px;box-shadow:0 4px 12px rgba(0,111,255,.08);color:#006fff;flex-shrink:0;font-size:1.5rem;height:4rem;justify-content:center;width:4rem}.point-text h4[data-v-50330085]{color:#1e293b;font-size:1.5rem;font-weight:800;margin-bottom:.3rem;margin-top:0}.point-text p[data-v-50330085]{color:#64748b;font-size:1.3rem;font-weight:500;line-height:1.4;margin:0}.modal-login-side[data-v-50330085]{align-items:center;background:transparent;display:flex;flex:1;flex-direction:column;justify-content:center;padding:3.5rem 2rem;text-align:center}.scan-title h3[data-v-50330085]{color:#1e293b;font-size:2.2rem;font-weight:900;margin-bottom:.6rem;margin-top:0}.scan-title p[data-v-50330085]{color:#64748b;font-size:1.2rem;font-weight:500;margin-bottom:1.5rem;margin-top:0;white-space:nowrap}.qr-box[data-v-50330085]{background:#fff;border:1px solid rgba(0,111,255,.08);border-radius:16px;box-shadow:0 8px 32px rgba(0,111,255,.1);margin-bottom:3.5rem;margin-top:1rem;padding:1.2rem;position:relative}.qr-img-wrapper[data-v-50330085]{border-radius:8px;height:180px;overflow:hidden;position:relative;width:180px}.qr-img-wrapper img[data-v-50330085]{display:block;height:100%;pointer-events:none;width:100%}.qr-mask[data-v-50330085]{align-items:center;backdrop-filter:blur(3px);background:hsla(0,0%,100%,.9);bottom:0;cursor:pointer;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;transition:all .2s;z-index:10}.qr-mask[data-v-50330085]:hover{background:hsla(0,0%,100%,.75)}.refresh-icon[data-v-50330085]{color:#006fff;font-size:2.5rem;margin-bottom:.5rem;transition:transform .3s}.qr-mask:hover .refresh-icon[data-v-50330085]{transform:rotate(90deg)}.refresh-text[data-v-50330085]{color:#1e293b;font-size:1.4rem;font-weight:800}.qr-hint[data-v-50330085]{align-items:center;animation:pulse-50330085 1.5s infinite;bottom:-46px;color:#006fff;display:flex;font-size:1.3rem;font-weight:800;gap:4px;left:50%;position:absolute;transform:translateX(-50%);white-space:nowrap}.qr-hint--expired i[data-v-50330085],.qr-hint--expired[data-v-50330085]{color:#dc2626}.qr-placeholder[data-v-50330085]{align-items:center;background:#f8fafc;border-radius:8px;display:flex;height:180px;justify-content:center;width:180px}.loader-ring[data-v-50330085]{animation:spin-50330085 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#006fff;height:40px;width:40px}@keyframes spin-50330085{to{transform:rotate(1turn)}}@keyframes pulse-50330085{0%{opacity:1;transform:translateX(-50%) scale(1)}50%{opacity:.8;transform:translateX(-50%) scale(1.05)}to{opacity:1;transform:translateX(-50%) scale(1)}}.class-popup-overlay[data-v-32decac8]{align-items:center;backdrop-filter:blur(8px);background:hsla(0,0%,100%,.3);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:99999}.class-popup-modal[data-v-32decac8]{animation:popup-spring-in-32decac8 .4s cubic-bezier(.16,1,.3,1) forwards;backdrop-filter:blur(32px) saturate(180%);background:hsla(0,0%,100%,.85);border:1px solid hsla(0,0%,100%,.5);border-radius:28px;box-shadow:0 24px 64px -12px rgba(0,0,0,.12),0 12px 24px -8px rgba(0,111,255,.08),inset 0 1px 0 hsla(0,0%,100%,.8);display:flex;flex-direction:column;max-height:75vh;overflow:hidden;width:680px}@keyframes popup-spring-in-32decac8{0%{opacity:0;transform:scale(.95) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.mbar[data-v-32decac8]{align-items:center;border-bottom:1px solid rgba(0,111,255,.06);display:flex;flex-shrink:0;justify-content:space-between;padding:16px 24px}.mbar-title h2[data-v-32decac8]{color:#1e293b;font-size:22px;font-weight:800;margin:0}.mbar-title p[data-v-32decac8]{color:#94a3b8;font-size:13px;margin:.3rem 0 0}.btn-close[data-v-32decac8]{align-items:center;background:rgba(241,245,249,.6);border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;font-size:26px;height:44px;justify-content:center;padding:0;transition:all .25s cubic-bezier(.16,1,.3,1);width:44px}.btn-close[data-v-32decac8]:hover{background:rgba(226,232,240,.9);color:#1e293b;transform:rotate(90deg) scale(1.05)}.class-body[data-v-32decac8]{display:flex;flex:1;flex-direction:column;min-height:280px;overflow-y:auto;padding:16px 24px 24px}.class-grid[data-v-32decac8]{grid-gap:12px;align-content:start;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.class-body[data-v-32decac8]::-webkit-scrollbar{width:4px}.class-body[data-v-32decac8]::-webkit-scrollbar-thumb{background:rgba(0,111,255,.12);border-radius:10px}.class-card[data-v-32decac8]{align-items:center;background:rgba(248,250,252,.6);border:1px solid rgba(0,111,255,.04);border-radius:16px;cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:all .3s cubic-bezier(.16,1,.3,1)}.class-card[data-v-32decac8]:hover{background:#fff;border-color:rgba(0,111,255,.15);box-shadow:0 8px 24px -6px rgba(0,111,255,.08);transform:translateY(-2px)}.class-card.active[data-v-32decac8]{background:linear-gradient(145deg,#fff,#f0f7ff);border-color:rgba(0,111,255,.3);box-shadow:0 12px 32px -8px rgba(0,111,255,.15)}.class-icon[data-v-32decac8]{align-items:center;background:rgba(0,111,255,.06);border-radius:12px;color:#006fff;display:flex;flex-shrink:0;font-size:18px;height:40px;justify-content:center;transition:all .3s cubic-bezier(.16,1,.3,1);width:40px}.class-card:hover .class-icon[data-v-32decac8]{background:rgba(0,111,255,.1);transform:scale(1.08)}.class-card.active .class-icon[data-v-32decac8]{background:linear-gradient(135deg,#006fff,#4f46e5);box-shadow:0 8px 16px -4px rgba(0,111,255,.3);color:#fff}.class-info[data-v-32decac8]{flex:1;min-width:0}.class-name[data-v-32decac8]{color:#1e293b;font-size:15px;font-weight:700}.class-count[data-v-32decac8]{color:#94a3b8;flex-shrink:0;font-size:13px;font-weight:500}.class-check[data-v-32decac8]{color:#006fff;flex-shrink:0;font-size:18px}.loading-wrap[data-v-32decac8]{align-items:center;display:flex;height:200px;justify-content:center}.loader-ring[data-v-32decac8]{animation:spin-32decac8 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#006fff;height:40px;width:40px}@keyframes spin-32decac8{to{transform:rotate(1turn)}}.empty-state[data-v-32decac8]{align-items:center;display:flex;flex:1;flex-direction:column;gap:16px;justify-content:center;min-height:220px}.empty-emoji[data-v-32decac8]{filter:grayscale(100%);font-size:64px;opacity:.25}.empty-text[data-v-32decac8]{color:#94a3b8;font-size:15px;font-weight:500;margin:0;text-align:center}.btn-create-class[data-v-32decac8]{background:#006fff;border:none;border-radius:100px;box-shadow:0 4px 16px -4px rgba(0,111,255,.4);color:#fff;cursor:pointer;font-size:15px;font-weight:600;margin-top:8px;padding:10px 32px;transition:all .3s cubic-bezier(.16,1,.3,1)}.btn-create-class[data-v-32decac8]:hover{background:#0059d6;box-shadow:0 8px 24px -6px rgba(0,111,255,.5);transform:translateY(-2px) scale(1.02)}.popup-container[data-v-27386382]{align-items:center;background-color:rgba(0,0,0,.5);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:10000}.popup-container .popup-content[data-v-27386382]{background-color:#fff;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1);max-height:80%;max-width:80%;overflow-y:auto;padding:30px;position:relative;transform:scale(.9);transition:all .3s ease-in-out}.popup-container .popup-content .close-btn[data-v-27386382]{cursor:pointer;position:absolute;right:13px;top:10px}.fade-enter-active[data-v-27386382],.fade-leave-active[data-v-27386382]{transition:opacity .3s ease-in-out}.fade-enter[data-v-27386382],.fade-leave-to[data-v-27386382]{opacity:0}.fade-enter-to[data-v-27386382],.fade-leave[data-v-27386382]{opacity:1}.popup-content.fade-enter-active[data-v-27386382],.popup-content.fade-leave-active[data-v-27386382]{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.popup-content.fade-enter[data-v-27386382],.popup-content.fade-leave-to[data-v-27386382]{opacity:0;transform:scale(.9)}.db-layout{background:#f2f7ff;color:#1e293b;display:flex;font-family:Inter,-apple-system,sans-serif;height:100vh;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.db-sidebar{background:#fff;border-right:1px solid rgba(0,111,255,.06);flex-direction:column;height:100%;min-width:264px;width:264px}.db-sidebar,.sidebar-logo{display:flex;flex-shrink:0}.sidebar-logo{align-items:center;border-bottom:1px solid rgba(0,111,255,.06);cursor:pointer;gap:10px;padding:24px 20px 16px;transition:opacity .2s}.sidebar-logo:hover{opacity:.8}.sidebar-logo-img{border-radius:8px;flex-shrink:0;height:32px;-o-object-fit:cover;object-fit:cover;width:32px}.sidebar-logo-text{color:#1e293b;font-size:1.4rem;font-weight:900;line-height:32px;margin-top:-1px;white-space:nowrap}.sidebar-nav{display:flex;flex:1;flex-direction:column;gap:2px;overflow-y:auto;padding:12px}.nav-section-label{color:#94a3b8;font-size:.8rem;font-weight:600;letter-spacing:.3px;margin-bottom:14px;margin-top:20px;padding:0 10px}.nav-home-item{margin-bottom:6px}.nav-item{align-items:center;background:transparent;border:none;border-radius:8px;box-shadow:none;color:#64748b;cursor:pointer;display:flex;font-size:14px;font-weight:400;gap:10px;padding:11px 12px;position:relative;transition:all .15s}.nav-item:hover{background:rgba(0,111,255,.05);color:#1e293b}.nav-item-active{background:rgba(0,111,255,.08);color:#006fff;font-weight:600}.nav-icon-wrap{align-items:center;border-radius:8px;display:flex;flex-shrink:0;height:30px;justify-content:center;width:30px}.nav-icon-wrap,.nav-icon-wrap-avatar{background:transparent;border:none}.nav-icon{flex-shrink:0;font-size:1.5rem;text-align:center}.nav-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer{border-top:1px solid rgba(0,111,255,.06);display:flex;flex-direction:column;flex-shrink:0;gap:6px;padding:12px}.nav-account{position:relative}.sidebar-avatar{align-items:center;background:#006fff;border-radius:8px;color:#fff;display:flex;flex-shrink:0;font-size:1.3rem;font-weight:700;height:26px;justify-content:center;width:26px}.nav-caret{color:#94a3b8;flex-shrink:0;font-size:1.2rem;margin-left:auto}.account-popup{background:#fff;border:1px solid rgba(0,111,255,.1);border-radius:12px;bottom:calc(100% + 6px);box-shadow:0 10px 30px rgba(0,111,255,.12);left:0;padding:6px;position:absolute;right:0;z-index:200}.account-popup-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;font-size:1.4rem;gap:8px;padding:10px 12px;transition:background .15s}.account-popup-item:hover{background:#f8fafc}.account-popup-danger{color:#ef4444}.db-body{display:flex;flex:1;flex-direction:column;min-width:0;overflow:hidden}.db-topbar{backdrop-filter:blur(20px);background:hsla(0,0%,100%,.95);border-bottom:1px solid rgba(0,111,255,.05);flex-shrink:0;gap:16px;height:72px;justify-content:space-between;min-height:72px;padding:0 32px;z-index:10}.db-topbar,.topbar-left{align-items:center;display:flex}.topbar-left{gap:12px;min-width:0}.topbar-page-title{color:#1e293b;font-size:22px;font-weight:700;white-space:nowrap}.topbar-action-wrap{align-items:center;display:flex;gap:10px;position:relative}.ctx-capsule.ctx-capsule-active{background:rgba(0,111,255,.05);border-color:rgba(0,111,255,.2);color:#006fff}.share-popover{background:#fff;border:1px solid rgba(0,111,255,.1);border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.08);display:flex;flex-direction:column;gap:12px;margin-top:10px;padding:16px;position:absolute;right:0;top:100%;width:280px;z-index:1000}.share-url-box{background:#f8fafc;border:1px dashed rgba(0,111,255,.3);border-radius:8px;color:#475569;cursor:pointer;font-size:13px;padding:10px 12px;text-align:center;transition:background .2s;-webkit-user-select:all;-moz-user-select:all;user-select:all}.share-url-box:hover{background:#f1f5f9}.share-btn-primary{align-items:center;background:#006fff;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;height:40px;justify-content:center;transition:all .2s}.share-btn-primary:hover{background:#0050cc;box-shadow:0 4px 12px rgba(0,111,255,.3);transform:translateY(-1px)}.share-btn-primary:active{background:#0040a8;transform:translateY(1px)}.topbar-actions{align-items:center;display:flex;flex-shrink:0;gap:10px}.ctx-capsule.ctx-rect-btn{border-radius:10px}.ctx-capsule{align-items:center;background:#fff;border:1px solid rgba(0,111,255,.18);border-radius:100px;color:#475569;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:6px;height:38px;padding:0 14px;transition:all .2s;white-space:nowrap}.ctx-capsule:hover{background:#eff6ff;border-color:rgba(0,111,255,.4);color:#006fff}.ctx-capsule-unset{border-color:rgba(0,111,255,.2);border-style:dashed;color:#94a3b8}.ctx-capsule-caret{font-size:1.1rem;opacity:.5}.ctx-capsule>i.ph:not(.ctx-capsule-caret){font-size:16px}.topbar-login-btn{background:#006fff;border:none;border-radius:100px;box-shadow:0 4px 12px rgba(0,111,255,.25);color:#fff;cursor:pointer;font-size:1.35rem;font-weight:700;height:38px;padding:0 20px;transition:all .2s}.topbar-login-btn:hover{background:#0059d6;transform:translateY(-1px)}.topbar-user{align-items:center;border-radius:100px;cursor:pointer;display:flex;gap:6px;height:38px;padding:0 12px;position:relative;transition:background .2s}.topbar-user:hover{background:rgba(0,111,255,.06)}.topbar-user-active{background:rgba(0,111,255,.08)}.topbar-avatar{align-items:center;background:#006fff;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:1.25rem;font-weight:700;height:28px;justify-content:center;width:28px}.topbar-caret{color:#94a3b8;font-size:1.15rem}.topbar-dropdown{background:#fff;border:1px solid rgba(0,111,255,.1);border-radius:12px;box-shadow:0 10px 30px rgba(0,111,255,.1);min-width:160px;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:200}.topbar-dropdown-item{align-items:center;border-radius:8px;color:#475569;cursor:pointer;display:flex;font-size:1.4rem;gap:8px;padding:10px 14px;transition:background .15s;white-space:nowrap}.topbar-dropdown-item:hover{background:#f8fafc}.dropdown-danger{color:#ef4444}.db-stage{display:flex;flex:1;flex-direction:column;overflow-y:auto;padding:36px 44px}.db-stage::-webkit-scrollbar{width:6px}.db-stage::-webkit-scrollbar-thumb{background:rgba(0,111,255,.12);border-radius:10px}@media (max-width:1400px){.db-sidebar{min-width:220px;width:220px}.sidebar-logo{padding:20px 16px}.sidebar-logo-text{font-size:1.2rem}.nav-item{font-size:13px;padding:10px 12px}.db-stage{padding:24px 28px}.db-topbar{height:64px;min-height:64px;padding:0 24px}}