.qd-root{position:relative;width:100%;height:100%;overflow:hidden;outline:none;background:#fbf9f4;touch-action:none;border-radius:inherit;container-type:inline-size}.qd-root[data-qd-theme=dark]{background:#191713}.qd-canvas,.qd-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.qd-overlay{pointer-events:none}.qd-ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40}.qd-ui.qd-hidden{display:none}.qd-ui button{-webkit-tap-highlight-color:transparent}.qd-dock{position:absolute;left:50%;bottom:10px;transform:translate(-50%);transform-origin:50% 100%;display:flex;align-items:center;gap:2px;padding:5px 7px;border-radius:999px;background:#13110db8;border:1px solid rgba(255,255,255,.14);box-shadow:0 4px 16px #0a080440;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto}.qd-actions{position:absolute;left:var(--qd-actions-left, 10px);top:var(--qd-actions-top, 50%);transform:translateY(var(--qd-actions-shift, -50%));display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border-radius:999px;background:#13110db8;border:1px solid rgba(255,255,255,.14);box-shadow:0 4px 16px #0a080440;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto}.qd-actions button svg{width:17px;height:17px;display:block}.qd-actions .qd-div{width:18px;height:1px;margin:3px 0}.qd-actions button:hover{background:#ffffff1a}.qd-actions button:disabled{opacity:.32;pointer-events:none}.qd-actions .qd-tool{width:30px;height:30px}.qd-tool,.qd-dock button{width:32px;height:32px;flex:none;display:flex;align-items:center;justify-content:center;border:none;border-radius:9px;background:transparent;color:#ffffffd9;cursor:pointer;padding:0}.qd-dock button svg{width:19px;height:19px;display:block}.qd-dock button:hover{background:#ffffff1a}.qd-dock button.on{background:#ffffffeb;color:#211d14}.qd-dock button:disabled{opacity:.32;pointer-events:none}.qd-div{width:1px;height:20px;margin:0 3px;background:#ffffff29;flex:none}.qd-dock.qd-compact{gap:2px}.qd-geo-btn{position:relative}.qd-geo-btn:after{content:"";position:absolute;right:3px;bottom:3px;width:0;height:0;border-left:4px solid transparent;border-bottom:4px solid currentColor;opacity:.65}.qd-style-btn{position:relative}.qd-style-dot{width:16px;height:16px;border-radius:50%;border:2.5px solid rgba(255,255,255,.92);box-shadow:0 0 0 1px #0003}.qd-style-btn.on .qd-style-dot{border-color:#211d14}.qd-popover{position:absolute;bottom:54px;left:50%;border-radius:13px;background:#13110dd9;border:1px solid rgba(255,255,255,.14);box-shadow:0 8px 28px #0a080459;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:auto;padding:8px;max-width:calc(100% - 16px);box-sizing:border-box;transform-origin:50% 100%;animation:qd-pop-in .16s cubic-bezier(.2,.9,.3,1.15)}@keyframes qd-pop-in{0%{opacity:0;transform:translateY(7px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.qd-popover{animation:none}}.qd-popover .qd-tool svg{width:19px;height:19px;display:block}.qd-geo-pop{display:flex;gap:2px;flex-wrap:wrap}.qd-geo-pop .qd-tool{color:#ffffffd9}.qd-grid-pop{display:grid;grid-template-columns:repeat(4,32px);gap:2px}.qd-grid-pop .qd-tool{color:#ffffffd9}.qd-grid-pop .qd-tool.on{background:#ffffffeb;color:#211d14}.qd-style-pop{width:196px}.qd-row{display:flex;align-items:center;justify-content:space-between}.qd-row+.qd-row{margin-top:7px;padding-top:7px;border-top:1px solid rgba(255,255,255,.1)}.qd-colors{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}.qd-dot{width:26px;height:26px;border-radius:8px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.qd-dot:before{content:"";width:15px;height:15px;border-radius:50%;background:var(--dot);box-shadow:0 0 0 1px #ffffff1f}.qd-dot:hover{background:#ffffff1a}.qd-dot.on{background:#ffffff38}.qd-opt{width:40px;height:30px;border:none;border-radius:8px;background:transparent;color:#ffffffd9;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.qd-opt svg{width:20px;height:20px}.qd-opt:hover{background:#ffffff1a}.qd-opt.on{background:#ffffffeb;color:#211d14}.qd-size-pip{width:var(--pip);height:var(--pip);border-radius:50%;background:currentColor}.qd-menu-pop{display:flex;flex-direction:column;min-width:232px;padding:6px}.qd-menu-item{display:flex;align-items:center;gap:10px;border:none;background:transparent;color:#ffffffe0;text-align:left;font:500 12.5px -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;padding:7px 10px;border-radius:8px;cursor:pointer}.qd-menu-item:hover{background:#ffffff1a}.qd-mi-ico{display:flex;flex:0 0 16px;color:#ffffff9e}.qd-mi-ico svg{width:16px;height:16px}.qd-menu-item:hover .qd-mi-ico{color:inherit}.qd-mi-label{flex:1 1 auto;white-space:nowrap}.qd-mi-key{flex:0 0 auto;color:#fff6;font-size:11px;letter-spacing:.02em;font-variant-numeric:tabular-nums}.qd-menu-div{display:block;height:1px;margin:5px 4px;background:#ffffff1a}.qd-menu-row{display:flex;align-items:center;gap:10px;padding:4px 10px;color:#ffffffe0;font:500 12.5px -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.qd-menu-row+.qd-menu-row{margin-top:2px}.qd-seg{display:flex;gap:2px;padding:2px;border-radius:9px;background:#ffffff14}.qd-seg-btn{width:30px;height:26px;border:none;border-radius:7px;background:transparent;color:#ffffffb8;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .12s ease,color .12s ease}.qd-seg-btn svg{width:16px;height:16px}.qd-seg-btn:hover{background:#ffffff1f;color:#fff}.qd-seg-btn.on{background:#ffffffeb;color:#211d14}.qd-mi-value{flex:0 0 auto;color:#ffffff73;font-size:11.5px}.qd-mi-chev,.qd-mi-check{flex:0 0 14px;display:flex;color:#fff6}.qd-mi-chev svg,.qd-mi-check svg{width:14px;height:14px}.qd-mi-check{color:#ffffffd9}.qd-has-sub{position:relative}.qd-has-sub.sub-open{background:#ffffff1a}.qd-submenu{position:absolute;left:calc(100% + 2px);top:-7px;display:none;flex-direction:column;min-width:148px;padding:6px;border-radius:13px;background:#13110dd9;border:1px solid rgba(255,255,255,.14);box-shadow:0 8px 28px #0a080459;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:qd-sub-in .13s ease}.qd-has-sub.sub-open .qd-submenu{display:flex}.qd-submenu.qd-sub-left{left:auto;right:calc(100% + 2px)}@keyframes qd-sub-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:none}}.qd-submenu.qd-sub-left{animation-name:qd-sub-in-left}@keyframes qd-sub-in-left{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.qd-submenu{animation:none}}.qd-watermark{position:absolute;right:10px;bottom:10px;z-index:35;display:flex;align-items:center;gap:5px;padding:5px 9px 5px 7px;border-radius:999px;color:#1c1b186b;font:600 11.5px/1 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:.01em;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color .14s ease,background .14s ease}.qd-watermark svg{width:14px;height:14px;display:block}.qd-watermark:hover{color:#1c1b18d9;background:#1c1b180f}.qd-root[data-qd-theme=dark] .qd-watermark{color:#f4f2ea61}.qd-root[data-qd-theme=dark] .qd-watermark:hover{color:#f4f2ead9;background:#f4f2ea14}@container (max-width: 560px){.qd-watermark{bottom:58px}}.qd-text-edit{position:absolute;z-index:30;background:transparent;border:none;outline:1.5px dashed rgba(110,140,200,.55);outline-offset:3px;border-radius:2px;resize:none;overflow:hidden;padding:0;margin:0;white-space:pre-wrap;caret-color:currentColor;-webkit-user-select:text;user-select:text}:root{--primary: #2563eb;--primary-hover: #1d4ed8;--bg-page: #f8fafc;--text-main: #0f172a;--text-muted: #64748b;--border: #e2e8f0;--surface: #ffffff;--radius-lg: 12px;--radius-md: 8px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .14)}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background-color:var(--bg-page);color:var(--text-main);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;user-select:none;-webkit-user-select:none}.board-container{position:absolute;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:1}.top-nav{position:absolute;top:12px;left:12px;right:12px;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:#ffffffe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(226,232,240,.8);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:100;pointer-events:auto}.nav-left,.nav-right{display:flex;align-items:center;gap:12px}.logo{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--primary);letter-spacing:-.3px;padding-right:8px;border-right:1px solid var(--border)}.board-actions{display:flex;align-items:center;gap:6px}.btn-icon{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--text-main);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-icon:hover{background:#f1f5f9;border-color:var(--border)}.btn-icon.btn-danger:hover{background:#fef2f2;color:#dc2626;border-color:#fecaca}.status-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#f1f5f9;color:var(--text-muted);border:1px solid var(--border)}.status-dot{width:8px;height:8px;border-radius:50%;background:#94a3b8}.status-badge.online{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.status-badge.online .status-dot{background:#22c55e;box-shadow:0 0 0 3px #22c55e33}.status-badge.relay{background:#fffbeb;color:#92400e;border-color:#fde68a}.status-badge.relay .status-dot{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}.session-buttons{display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;border:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:#f1f5f9;color:var(--text-main);border:1px solid var(--border)}.btn-secondary:hover{background:#e2e8f0}.btn-danger-outline{background:transparent;color:#dc2626;border:1px solid #fca5a5}.btn-danger-outline:hover{background:#fef2f2}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:none;align-items:center;justify-content:center;padding:16px;opacity:0;transition:opacity .2s ease}.modal-backdrop.open{display:flex;opacity:1;pointer-events:auto}.modal-card{width:100%;max-width:440px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border);overflow:hidden;transform:translateY(12px) scale(.98);transition:transform .2s cubic-bezier(.16,1,.3,1)}.modal-backdrop.open .modal-card{transform:translateY(0) scale(1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:17px;font-weight:700}.btn-close{background:transparent;border:none;font-size:24px;line-height:1;color:var(--text-muted);cursor:pointer;padding:4px}.modal-body{padding:20px}.modal-desc{font-size:13.5px;color:var(--text-muted);line-height:1.5;margin-bottom:18px}.modal-footer{padding:12px 20px 16px;display:flex;justify-content:flex-end;border-top:1px solid #f1f5f9}.pin-display-wrapper{text-align:center;margin-bottom:18px}.pin-display-wrapper label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:700;margin-bottom:6px}.pin-display{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:38px;font-weight:800;letter-spacing:8px;padding:8px 24px;background:#eff6ff;color:var(--primary);border:2px dashed #bfdbfe;border-radius:var(--radius-md)}.share-link-group{display:flex;gap:8px;margin-bottom:18px}.share-link-group input{flex:1;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--border);font-size:13px;color:var(--text-main);background:#f8fafc;outline:none}.qr-container{display:flex;flex-direction:column;align-items:center;padding:14px;background:#f8fafc;border-radius:var(--radius-md);border:1px solid var(--border);margin-bottom:16px}#qrcode-box{padding:8px;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.qr-label{margin-top:8px;font-size:12px;color:var(--text-muted)}.session-connection-status{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--text-muted);justify-content:center}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#3b82f6;animation:pulse 1.6s infinite}@keyframes pulse{0%{transform:scale(.9);opacity:.7}50%{transform:scale(1.3);opacity:1}to{transform:scale(.9);opacity:.7}}.pin-inputs{display:flex;justify-content:center;gap:12px;margin:20px 0}.pin-box{width:56px;height:64px;border:2px solid var(--border);border-radius:var(--radius-md);font-size:28px;font-weight:700;text-align:center;text-transform:uppercase;font-family:ui-monospace,monospace;outline:none;transition:all .15s ease}.pin-box:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.error-msg{color:#dc2626;font-size:13px;text-align:center;min-height:18px;margin-top:8px}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2563eb26;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .15s ease}.drop-overlay.active{opacity:1;pointer-events:auto}.drop-card{background:#fff;padding:36px 48px;border-radius:var(--radius-lg);border:2px dashed var(--primary);box-shadow:var(--shadow-lg);text-align:center;max-width:460px}.drop-card h3{margin:12px 0 6px;font-size:18px;font-weight:700}.drop-card p{color:var(--text-muted);font-size:14px;line-height:1.5}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(30px);background:#0f172a;color:#fff;padding:10px 18px;border-radius:999px;font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:all .2s cubic-bezier(.16,1,.3,1);z-index:400}.toast.show{transform:translate(-50%) translateY(0);opacity:1}@media (max-width: 768px){.btn-text{display:none}.pin-box{width:46px;height:54px;font-size:22px}.top-nav{top:8px;left:8px;right:8px;padding:0 10px}}
