.adm-root{display:grid;grid-template-columns:240px 1fr;height:100%;background:var(--bg-deep);color:var(--text)}.adm-root.editor-mode{grid-template-columns:1fr}.adm-root.editor-mode .adm-side{display:none}.adm-side{display:flex;flex-direction:column;background:var(--bg);border-right:1px solid var(--line);padding:16px 12px;gap:14px}.adm-brand{display:flex;align-items:center;gap:10px;padding:6px 8px;cursor:pointer}.adm-brand-logo{font-size:26px}.adm-brand div{display:flex;flex-direction:column;line-height:1.15}.adm-brand span{font-size:12px;color:var(--text-dim)}.adm-nav{display:flex;flex-direction:column;gap:4px}.adm-nav button{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;border-radius:10px;background:transparent;color:var(--text-dim);font-weight:500;text-align:left}.adm-nav button:hover{background:#ffffff0d;color:var(--text)}.adm-nav button.active{background:var(--accent);color:#fff}.adm-nav-icon{width:20px;text-align:center}.adm-side-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px}.adm-me{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;background:var(--card);margin-bottom:4px}.adm-me div{display:flex;flex-direction:column;min-width:0}.adm-me span{font-size:11.5px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-main{overflow:auto;min-width:0}.adm-page{padding:28px 32px 48px;max-width:1400px;margin:0 auto}.adm-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.adm-page-head h1{font-size:26px}.adm-page-head p{color:var(--text-dim);font-size:14px;margin-top:2px}.adm-actions{display:flex;gap:8px;flex-wrap:wrap}.adm-btn{padding:9px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--text);font-weight:500;font-size:13.5px;transition:filter .15s,background .15s;white-space:nowrap}.adm-btn:hover{filter:brightness(1.12)}.adm-btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.adm-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.adm-btn.danger{background:var(--red);border-color:var(--red);color:#fff}.adm-btn.danger-ghost{color:#ff9f95;border-color:#e8484f55;background:transparent}.adm-btn.danger-ghost:hover{background:#e8484f22}.adm-btn.ghost{background:transparent}.adm-btn.sm{padding:6px 10px;font-size:12.5px;border-radius:8px}.adm-btn.full{width:100%}.adm-btn.pulse{box-shadow:0 0 #6c5ce7aa;animation:adm-pulse 1.6s infinite}@keyframes adm-pulse{70%{box-shadow:0 0 0 8px #6c5ce700}to{box-shadow:0 0 #6c5ce700}}.adm-icon-btn{background:none;border:none;color:var(--text-dim);font-size:16px;padding:6px 8px;border-radius:8px}.adm-icon-btn:hover{background:#ffffff12;color:var(--text)}.adm-link{background:none;border:none;color:var(--accent);font-weight:500;padding:0}.adm-link:hover{text-decoration:underline}.adm-input{padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg-deep);color:var(--text);font:inherit;font-size:13.5px;min-width:0}.adm-input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.adm-input.grow{flex:1;min-width:180px}select.adm-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}input[type=color].adm-input{padding:4px;height:40px}.adm-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.adm-muted{color:var(--text-dim);font-size:12.5px}.adm-hint{color:var(--text-dim);font-size:12px}.adm-error{color:#ff9f95;font-size:12px}.adm-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:#ffffff14;color:var(--text-dim);white-space:nowrap}.adm-badge.green{background:#23c48322;color:#5fe0a7}.adm-badge.red{background:#e8484f22;color:#ff9f95}.adm-badge.accent{background:var(--accent-soft);color:#b9b0ff}.adm-chips{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.adm-chip{--c: var(--accent);display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 6px;border-radius:999px;font-size:11.5px;background:#ffffff0f;border:1px solid #ffffff14}.adm-chip:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}.adm-toggle{width:38px;height:22px;border-radius:999px;background:#fff2;border:none;position:relative;padding:0;transition:background .15s;flex-shrink:0}.adm-toggle .knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}.adm-toggle.on{background:var(--green)}.adm-toggle.on .knob{left:19px}.adm-toggle:disabled{opacity:.45;cursor:not-allowed}.adm-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.adm-dot.on{background:var(--green)}.adm-dot.off{background:var(--red)}.adm-status{display:flex;align-items:center;gap:8px;font-size:13px}.ua{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;flex-shrink:0}.adm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:22px}.adm-stat{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:18px 18px 16px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);text-align:left;transition:transform .12s,border-color .12s}.adm-stat:hover{transform:translateY(-2px);border-color:var(--accent)}.adm-stat-label{font-size:12.5px;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.adm-stat-value{font-size:32px;font-weight:700;line-height:1.1}.adm-stat.green .adm-stat-value{color:#5fe0a7}.adm-stat.red .adm-stat-value{color:#ff9f95}.adm-stat-sub{font-size:12px;color:var(--text-dim)}.adm-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.adm-card h2{font-size:16px}.adm-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.adm-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.adm-list{list-style:none;display:flex;flex-direction:column}.adm-list li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.adm-list li:first-child{border-top:none}.adm-list-main{display:flex;flex-direction:column;min-width:0;flex:1}.adm-list-main span{font-size:12px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-list-side{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.adm-room-ico{font-size:22px;width:32px;text-align:center}.adm-quick h2{margin-bottom:12px}.adm-quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.adm-quick-grid button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border-radius:12px;border:1px solid var(--line);background:var(--bg-deep);text-align:left}.adm-quick-grid button:hover{border-color:var(--accent)}.adm-quick-grid span{font-size:20px}.adm-quick-grid small{color:var(--text-dim)}.adm-table-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:auto;transition:opacity .15s}.adm-table-wrap.loading{opacity:.6}.adm-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:900px}.adm-table th{text-align:left;padding:12px 14px;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border-bottom:1px solid var(--line);white-space:nowrap}.adm-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.adm-table th.sortable:hover{color:var(--text)}.adm-table td{padding:11px 14px;border-bottom:1px solid #ffffff0a;vertical-align:middle}.adm-table tr:last-child td{border-bottom:none}.adm-table tr:hover td{background:#ffffff05}.adm-table tr.inactive td{opacity:.7}.adm-table .right{text-align:right}.adm-user-cell{display:flex;align-items:center;gap:10px}.adm-user-cell div{display:flex;flex-direction:column}.adm-user-cell span{font-size:12px;color:var(--text-dim)}.adm-row-actions{display:inline-flex;gap:6px;justify-content:flex-end}.adm-row-actions.wrap{flex-wrap:wrap;justify-content:flex-start}.adm-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 4px;color:var(--text-dim);font-size:13px;flex-wrap:wrap}.adm-pager-btns{display:flex;gap:4px;align-items:center}.adm-ellipsis{padding:0 4px}.adm-empty{text-align:center;padding:48px 20px;color:var(--text-dim);display:flex;flex-direction:column;align-items:center;gap:8px}.adm-empty-icon{font-size:40px}.adm-empty h3{color:var(--text)}.adm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}.team-card{display:flex;flex-direction:column;gap:12px;border-top:3px solid var(--c, var(--accent))}.team-card-head{display:flex;gap:12px;align-items:flex-start}.team-card-head h3{font-size:16px}.team-card-head p{color:var(--text-dim);font-size:13px}.team-swatch{width:12px;height:12px;border-radius:4px;display:inline-block;flex-shrink:0}.team-swatch.lg{width:18px;height:18px;margin-top:2px}.team-card-stats{display:flex;gap:6px}.team-members{display:flex;gap:-4px;align-items:center;flex-wrap:wrap}.team-members .ua{margin-right:-6px;border:2px solid var(--card)}.team-members .adm-muted{margin-left:12px}.adm-main-room{display:grid;grid-template-columns:420px 1fr;padding:0;overflow:hidden;margin-bottom:22px}.adm-main-room-thumb{cursor:pointer;background:#111426;display:flex;align-items:center;justify-content:center}.adm-main-room-thumb canvas{width:100%;height:100%;display:block;object-fit:cover}.adm-main-room-body{padding:18px 20px;display:flex;flex-direction:column;gap:10px}.adm-main-room-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.adm-main-room-title h2{font-size:20px}.adm-main-room-title code{font-size:11.5px;color:var(--text-dim)}.adm-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 12px;flex-wrap:wrap}.adm-section-head h2{font-size:17px}.adm-section-head .adm-input{max-width:280px}.adm-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.adm-room-card{padding:0;overflow:hidden;display:flex;flex-direction:column}.adm-room-thumb{position:relative;cursor:pointer;background:#111426}.adm-room-thumb canvas{width:100%;height:auto;display:block}.adm-room-thumb-cta{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;color:#fff;font-weight:600;opacity:0;transition:opacity .15s}.adm-room-thumb:hover .adm-room-thumb-cta{opacity:1}.adm-room-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}.adm-room-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.adm-room-title h3{font-size:16px}.adm-room-title code{font-size:11.5px;color:var(--text-dim)}.adm-room-desc{font-size:13px;color:var(--text-dim)}.adm-room-meta{display:flex;gap:6px;flex-wrap:wrap}.adm-room-access{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:10px;background:var(--bg-deep)}.adm-inline-toggle{display:flex;align-items:center;gap:10px;font-size:13px;cursor:pointer}.adm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0d1acc;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.adm-modal{background:var(--card);border:1px solid var(--line);border-radius:18px;width:min(560px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 24px 80px #0009}.adm-modal.wide{width:min(980px,100%)}.adm-modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 22px 8px;gap:12px}.adm-modal-head h3{font-size:18px}.adm-modal-head p{font-size:13px;color:var(--text-dim);margin-top:3px}.adm-modal-body{padding:10px 22px 18px;overflow:auto}.adm-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px 20px;border-top:1px solid var(--line)}.adm-confirm-text{font-size:14px;line-height:1.5;color:var(--text-dim)}.adm-form{display:flex;flex-direction:column;gap:14px}.adm-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.adm-form-row.four{grid-template-columns:repeat(4,1fr)}.adm-form-row.dimmed{opacity:.45;pointer-events:none}.adm-field{display:flex;flex-direction:column;gap:6px;min-width:0}.adm-field.inline{flex-direction:row;align-items:center;gap:10px;font-size:13.5px;cursor:pointer}.adm-field.inline input{width:16px;height:16px;accent-color:var(--accent)}.adm-label{font-size:12.5px;font-weight:600;color:var(--text-dim)}.adm-field.has-error .adm-input{border-color:var(--red)}.adm-checklist{display:flex;flex-direction:column;gap:6px}.adm-checklist-items{overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--bg-deep)}.adm-check-row{display:flex;align-items:center;gap:10px;padding:8px 10px;font-size:13px;cursor:pointer;border-bottom:1px solid #ffffff08}.adm-check-row:last-child{border-bottom:none}.adm-check-row:hover{background:#ffffff08}.adm-check-row.on{background:var(--accent-soft)}.adm-check-row input{accent-color:var(--accent)}.adm-check-row span:first-of-type{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-swatches{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.adm-swatch{width:26px;height:26px;border-radius:8px;border:2px solid transparent}.adm-swatch.on{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}.adm-color-input{width:34px;height:30px;border:none;background:none;padding:0}.adm-effective{margin-top:14px;padding:12px;border-radius:10px;background:var(--bg-deep);font-size:13px;display:flex;flex-direction:column;gap:8px}.adm-toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:100}.adm-toast{padding:11px 16px;border-radius:12px;background:var(--card);border:1px solid var(--line);box-shadow:0 10px 30px #0006;font-size:13.5px;cursor:pointer;animation:adm-in .2s ease-out;max-width:360px}.adm-toast.ok{border-left:4px solid var(--green)}.adm-toast.error{border-left:4px solid var(--red)}@keyframes adm-in{0%{transform:translateY(8px);opacity:0}}.ed-root{display:flex;flex-direction:column;height:100%}.ed-top{display:flex;align-items:center;gap:14px;padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap}.ed-title{display:flex;flex-direction:column;min-width:160px}.ed-name{background:transparent;border:1px solid transparent;color:var(--text);font:inherit;font-weight:700;font-size:16px;padding:2px 6px;border-radius:6px}.ed-name:hover,.ed-name:focus{border-color:var(--line);background:var(--bg-deep);outline:none}.ed-size{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--text-dim)}.ed-size label{display:flex;align-items:center;gap:5px}.ed-size input,.ed-size select{width:58px;padding:5px 7px;border-radius:7px;border:1px solid var(--line);background:var(--bg-deep);color:var(--text);font:inherit;font-size:12.5px}.ed-size select{width:auto}.ed-size input[type=color]{width:34px;padding:1px;height:28px}.ed-tools{margin-left:auto;display:flex;gap:6px;align-items:center}.ed-zoom{font-size:12px;color:var(--text-dim);min-width:42px;text-align:center}.ed-body{display:grid;grid-template-columns:220px 1fr 260px;flex:1;min-height:0}.ed-palette{display:flex;flex-direction:column;background:var(--bg);border-right:1px solid var(--line);min-height:0}.ed-cats{display:flex;flex-wrap:wrap;gap:4px;padding:10px;border-bottom:1px solid var(--line)}.ed-cats button{padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text-dim);font-size:11.5px}.ed-cats button.active{background:var(--accent);border-color:var(--accent);color:#fff}.ed-items{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px;overflow:auto;flex:1;align-content:start}.ed-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-size:11.5px;color:var(--text-dim)}.ed-item canvas{background:#ffffff0a;border-radius:6px}.ed-item:hover{border-color:var(--accent);color:var(--text)}.ed-item.armed{border-color:var(--accent);background:var(--accent-soft);color:#fff}.ed-help{padding:10px 12px;font-size:11.5px;color:var(--text-dim);border-top:1px solid var(--line);line-height:1.5}.ed-help kbd{background:#ffffff14;padding:1px 5px;border-radius:4px;font-family:inherit;font-size:11px}.ed-canvas-wrap{overflow:auto;background:#111426 radial-gradient(#ffffff0a 1px,transparent 1px) 0 0 / 20px 20px;padding:12px;min-height:0}.ed-canvas-wrap.placing{cursor:crosshair}.ed-canvas-wrap canvas{display:block;box-shadow:0 10px 40px #0008;touch-action:none;cursor:default}.ed-canvas-wrap.placing canvas{cursor:crosshair}.ed-props{background:var(--bg);border-left:1px solid var(--line);padding:14px;overflow:auto;font-size:13px}.ed-props h3{font-size:15px}.ed-props-empty,.ed-props-form{display:flex;flex-direction:column;gap:12px}.ed-props-head{display:flex;align-items:baseline;justify-content:space-between}.ed-num-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ed-num-grid label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--text-dim);font-weight:600}.ed-num-grid input{padding:7px 8px;border-radius:8px;border:1px solid var(--line);background:var(--bg-deep);color:var(--text);font:inherit;font-size:13px}.ed-rot-row{display:flex;gap:4px}.ed-color-row{display:flex;gap:8px;align-items:center}.ed-color-row input{width:44px;height:32px;border:none;background:none;padding:0}.ed-props-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}@media (max-width: 960px){.adm-root{grid-template-columns:1fr;grid-template-rows:auto 1fr}.adm-side{flex-direction:row;align-items:center;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--line);padding:10px 12px;gap:8px}.adm-brand{padding:0}.adm-brand span{display:none}.adm-nav{flex-direction:row;flex:1;overflow-x:auto}.adm-nav button{padding:8px 10px;font-size:13px}.adm-side-foot{margin:0;flex-direction:row;align-items:center;width:100%}.adm-side-foot .adm-me{display:none}.adm-side-foot .adm-btn.full{width:auto}.adm-page{padding:18px 16px 40px}.adm-grid-2,.adm-form-row,.adm-form-row.four,.adm-room-grid,.adm-main-room{grid-template-columns:1fr}.adm-main-room-thumb canvas{height:auto}.ed-body{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.ed-palette{max-height:200px;border-right:none;border-bottom:1px solid var(--line)}.ed-items{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.ed-help{display:none}.ed-props{border-left:none;border-top:1px solid var(--line);max-height:260px}.ed-tools{margin-left:0;width:100%;flex-wrap:wrap}}.adm-board-section{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--bg-deep);display:flex;flex-direction:column;gap:10px}.adm-board-head{display:flex;flex-direction:column;gap:2px}.board-picker{display:flex;flex-direction:column;gap:8px}.board-picker-canvas{width:100%;height:auto;display:block;border-radius:10px;touch-action:none;box-shadow:0 4px 20px #0005;outline:none}.board-picker-canvas:focus{box-shadow:0 0 0 2px var(--accent),0 4px 20px #0005}.board-picker-canvas.cursor-pan{cursor:grab}.board-picker-canvas.cursor-move{cursor:move}.board-picker-canvas.cursor-resize{cursor:nwse-resize}.board-picker-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.board-picker-status{font-size:13px;font-weight:600;color:var(--text-dim)}.board-picker-status.ok{color:#5fe0a7}.board-picker-status.bad{color:#ff8a8f}.board-picker-tools{display:flex;gap:6px}.board-picker-hint{font-size:12px}.floorplan-wrap{border:1px solid var(--line);border-radius:12px;overflow:auto;background:var(--bg-deep);padding:8px}.floorplan-canvas{width:100%;height:auto;display:block;border-radius:8px;cursor:crosshair}.pr-col{width:44px;text-align:center}.adm-check{width:18px;height:18px;accent-color:var(--accent, #6c5ce7);cursor:pointer}.adm-check:disabled{cursor:not-allowed;opacity:.5}.pr-status{display:block;font-size:11.5px;margin-top:2px}.pr-status.pr-active{color:#23c483}.pr-status.pr-inactive{color:#9aa3c7}.pr-status.pr-none{color:#7b84a8}.pr-status.pr-pending{color:#f5a623}.pr-status.pr-error,.pr-status.pr-unavailable{color:#ff8a8f}.pr-areas{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;font-size:13px}*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #202540;--bg-deep: #171b30;--card: #282d4f;--card-glass: #282d4fe6;--line: #3c4270;--text: #f0f1f7;--text-dim: #9ba0c0;--accent: #6c5ce7;--accent-soft: #6c5ce733;--green: #23c483;--red: #e8484f;--radius: 14px}html,body,#root{height:100%;font-family:Segoe UI,system-ui,sans-serif;background:var(--bg-deep);color:var(--text)}button{cursor:pointer;font:inherit;color:inherit}.center-screen{height:100%;display:flex;align-items:center;justify-content:center}.lobby-bg{background:radial-gradient(1000px 500px at 20% 0%,#2c3158 0%,transparent 60%),radial-gradient(800px 500px at 90% 100%,#24294a 0%,transparent 60%),var(--bg-deep)}.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px;width:min(420px,92vw);box-shadow:0 18px 60px #00000073}.panel h1{font-size:24px;margin-bottom:4px}.panel .sub{color:var(--text-dim);font-size:14px;margin-bottom:18px}.panel input{width:100%;margin-bottom:10px;padding:11px 13px;border-radius:10px;border:1px solid var(--line);background:var(--bg-deep);color:var(--text)}.panel input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.panel .tabs{display:flex;gap:6px;margin-bottom:14px}.panel .tabs button{flex:1;padding:9px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--text-dim)}.panel .tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.panel .primary{width:100%;padding:13px;border:none;border-radius:10px;background:var(--accent);color:#fff;font-weight:600;transition:filter .15s}.panel .primary:hover{filter:brightness(1.12)}.panel .primary:disabled{opacity:.6}.panel .hint{margin-top:14px;font-size:12px;color:var(--text-dim);text-align:center}.form-error{background:#e8484f22;border:1px solid #e8484f66;color:#ff9f95;border-radius:10px;padding:8px 10px;font-size:13px;margin-bottom:10px}.char-picker{display:flex;align-items:center;gap:16px;background:var(--bg-deep);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:16px}.char-selected{display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0;background:var(--card);border-radius:12px;padding:8px 14px 6px}.char-selected-name{font-size:12px;font-weight:600;color:var(--text-dim)}.char-picker-cta{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.char-count{font-size:12.5px;color:var(--text-dim)}.char-browse-btn{padding:9px 18px;border:1px solid var(--accent);border-radius:999px;background:var(--accent-soft);color:var(--text);font-size:13px;font-weight:600;transition:background .15s,transform .1s}.char-browse-btn:hover{background:var(--accent);transform:scale(1.03)}.char-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c0f1acc;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.char-modal{width:min(560px,calc(100vw - 24px));max-height:min(640px,calc(100vh - 40px));display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 80px #0008;animation:msgr-in .16s ease}.char-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px}.char-modal-head h3{font-size:17px}.char-modal-close{background:none;border:none;color:var(--text-dim);font-size:15px;padding:6px}.char-modal-close:hover{color:var(--text)}.char-modal-tabs{display:flex;gap:6px;padding:4px 18px 12px}.char-modal-tabs button{padding:7px 18px;border:1px solid var(--line);border-radius:999px;background:var(--bg-deep);font-size:13px;font-weight:600;color:var(--text-dim)}.char-modal-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.char-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;padding:4px 18px 18px}.char-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;background:var(--bg-deep);border:2px solid transparent;border-radius:12px;font-size:12px;font-weight:600;color:var(--text-dim);transition:transform .1s,border-color .1s}.char-cell:hover{transform:scale(1.05);color:var(--text)}.char-cell.active{border-color:var(--accent);color:var(--text);box-shadow:0 0 0 2px var(--accent-soft)}.space-root{position:relative;height:100%;overflow:hidden}.game-host{position:absolute;top:0;right:0;bottom:0;left:0}.game-host canvas{display:block}.world-clock{position:absolute;top:10px;left:10px;z-index:25;display:flex;flex-direction:column;gap:3px;padding:5px 8px;background:var(--card-glass);border:1px solid var(--line);border-radius:9px;box-shadow:0 4px 12px #0004;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.world-clock-zone{display:flex;align-items:center;gap:6px}.world-clock-flag{font-size:13px;line-height:1}.world-clock-text{display:flex;align-items:baseline;gap:5px;line-height:1.1}.world-clock-time{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.3px}.world-clock-meta{font-size:9px;color:var(--text-dim)}.video-zone{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;max-width:96vw;z-index:20}.video-strip{display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:8px;max-width:96vw;max-height:60vh;overflow-y:auto}.strip-arrow,.bar-arrow{display:none;width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:1px solid var(--line);background:var(--card-glass);color:var(--text);align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 16px #0005;transition:opacity .15s}.strip-arrow.hidden,.bar-arrow.hidden{opacity:0;pointer-events:none}.audio-unlock{position:absolute;top:-6px;left:50%;transform:translate(-50%,-100%);white-space:nowrap;background:var(--accent);color:#fff;border:none;border-radius:999px;padding:7px 16px;font-size:13px;font-weight:600;box-shadow:0 6px 18px #0006;animation:unlock-pulse 1.6s ease-in-out infinite}@keyframes unlock-pulse{0%,to{transform:translate(-50%,-100%) scale(1)}50%{transform:translate(-50%,-100%) scale(1.05)}}.video-tile{position:relative;width:var(--tile-w, 168px);height:calc(var(--tile-w, 168px) * .667);flex:0 0 auto;border-radius:12px;overflow:hidden;background:var(--bg-deep);border:2px solid var(--line);box-shadow:0 8px 24px #00000059}.video-tile.self{border-color:var(--accent)}.video-tile video{width:100%;height:100%;object-fit:cover}.video-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:clamp(11px,calc(var(--tile-w, 168px) * .17),28px);font-weight:700;color:#565d8f;background:var(--bg-deep)}.video-label{position:absolute;left:7px;bottom:5px;font-size:11px;background:#000a;border-radius:5px;padding:1px 7px}.audio-meter{position:absolute;right:6px;bottom:6px;width:12px;height:16px;display:flex;align-items:flex-end;justify-content:center;background:#000a;border-radius:4px;padding:2px}.audio-meter i{display:block;width:6px;height:100%;border-radius:2px;background:#6b7280;transform-origin:bottom center;transition:transform 80ms linear}.audio-meter.live i{background:var(--green)}.audio-meter.none{background:#7f1d1d}.audio-meter.none:after{content:"🔇";font-size:9px;position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.audio-meter.none i{display:none}.video-tile.speaking{border-color:var(--green);box-shadow:0 0 0 3px #23c48355,0 8px 24px #00000059}.video-tile.pending video{filter:grayscale(.6) brightness(.6)}.tile-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:11px;font-weight:600;color:#fff;background:#0b0d1aaa;text-align:center;padding:6px}.tile-state.failed{color:#ff8a8f}.tile-spinner{width:16px;height:16px;border-radius:50%;border:2px solid #ffffff44;border-top-color:#fff;animation:spin .9s linear infinite}.tile-state.failed .tile-spinner{border-top-color:#ff8a8f}@keyframes spin{to{transform:rotate(360deg)}}.tile-badges{position:absolute;top:5px;left:6px;display:flex;gap:4px}.tile-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:#000a;color:#fff}.tile-badge.off{color:#ff8a8f}.tile-badge.share{color:#5fe0a7}.quality-dot{position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;border:1.5px solid #000000aa}.quality-dot.good{background:var(--green)}.quality-dot.fair{background:#f59e0b}.quality-dot.poor{background:#e8484f;animation:unlock-pulse-opacity 1s ease-in-out infinite}@keyframes unlock-pulse-opacity{50%{opacity:.35}}.video-tile.screen{width:calc(var(--tile-w, 168px) * 1.8);background:#000;cursor:zoom-in;border-color:#5fe0a7}.video-tile.screen video{object-fit:contain}.video-tile.screen .video-label{display:inline-flex;align-items:center;gap:4px}.video-tile.screen.expanded{position:fixed;top:56px;right:16px;bottom:110px;left:16px;width:auto;height:auto;z-index:60;cursor:zoom-out;border-radius:14px}.screen-close{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:none;background:#000a;color:#fff;display:flex;align-items:center;justify-content:center}.link-banner{position:absolute;top:96px;left:50%;transform:translate(-50%);background:#e67e22;color:#fff;font-weight:600;font-size:13px;padding:7px 14px;border-radius:999px;z-index:25;box-shadow:0 6px 18px #0006}.media-warning{display:flex;align-items:center;gap:10px}.media-warning button{border:1px solid #ffffff66;background:#fff2;color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;cursor:pointer}.person-media{display:flex;gap:3px;margin-left:auto;margin-right:4px}.person-media .pm{font-style:normal;font-size:12px;opacity:.9}.person-media .pm.off{filter:grayscale(1);opacity:.55;text-decoration:line-through}.person-media .pm.speaking{animation:unlock-pulse-opacity .8s ease-in-out infinite}.object-modal.settings{width:min(520px,92vw);height:auto}.settings-body{display:flex;flex-direction:column;gap:14px;padding:14px 16px 18px}.settings-field{display:flex;flex-direction:column;gap:6px;font-size:13px}.settings-field>span{color:var(--text-dim);font-weight:600}.settings-field select{background:var(--bg-deep);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px}.mic-test{display:flex;align-items:center;gap:3px;height:18px}.mic-test i{display:block;width:7px;height:12px;border-radius:2px;background:#2a2f4a}.mic-test i.on{background:var(--green)}.mic-test small{margin-left:8px;color:var(--text-dim)}.cam-preview{width:180px;aspect-ratio:4 / 3;background:#000;border-radius:8px;object-fit:cover}.settings-denied{background:#e8484f22;border:1px solid #e8484f66;border-radius:10px;padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:6px}.settings-denied button.primary{align-self:flex-start}.settings-hint{font-size:12px;color:var(--text-dim)}.zone-banner,.busy-banner,.media-warning,.unread-pill{position:absolute;left:50%;transform:translate(-50%);z-index:25;border-radius:999px;padding:7px 16px;font-size:13px;box-shadow:0 6px 18px #0005}.zone-banner{top:136px;background:var(--accent)}.door-controls{position:absolute;top:174px;left:50%;transform:translate(-50%);z-index:26;display:flex;flex-direction:column;gap:6px;max-width:92vw;padding:8px 10px;background:var(--card-glass);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 18px #0005;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.door-controls.locked{border-color:var(--red)}.door-row{display:flex;align-items:center;gap:8px}.door-status{font-size:12px;white-space:nowrap}.door-btn{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:8px;padding:4px 10px;font-size:12px}.door-btn:hover{border-color:var(--accent)}.door-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.door-allowed{display:flex;flex-wrap:wrap;gap:5px}.door-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;background:var(--accent-soft);border-radius:999px;padding:2px 8px}.door-chip button{background:none;border:none;color:var(--text-dim);padding:0;line-height:1}.door-chip button:hover{color:var(--red)}.door-picker{display:flex;flex-wrap:wrap;gap:5px;max-height:132px;overflow-y:auto;border-top:1px solid var(--line);padding-top:6px}.door-picker button{background:var(--bg-deep);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:3px 9px;font-size:11px}.door-picker button:hover{border-color:var(--accent)}.door-empty{font-size:11px;color:var(--text-dim)}.door-notice{position:absolute;top:96px;left:50%;transform:translate(-50%);z-index:30;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:13px;box-shadow:0 6px 18px #0006}.busy-banner{top:176px;background:var(--red)}.follow-banner{position:absolute;top:176px;left:50%;transform:translate(-50%);z-index:25;border-radius:999px;padding:7px 16px;font-size:13px;background:var(--card-glass);border:1px solid var(--accent);color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.media-warning{bottom:96px;background:#e67e22;cursor:pointer}.unread-pill{bottom:96px;background:var(--accent);border:none;color:#fff;font-weight:600}.control-wrap{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:40;display:flex;flex-direction:column;align-items:center}.control-zone{display:flex;align-items:center;gap:6px;max-width:98vw}.control-bar{display:flex;align-items:center;gap:10px;background:var(--card-glass);border:1px solid var(--line);border-radius:999px;padding:10px 14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 32px #0006}.control-sep{width:1px;height:30px;background:var(--line);margin:0 2px}.ctl{position:relative;display:flex}.ctl-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s,background .15s,border-color .15s,color .15s}.ctl-btn:hover{transform:scale(1.08);background:#333963}.ctl-btn:active{transform:scale(.96)}.ctl-btn.off{background:var(--red);border-color:var(--red);color:#fff}.ctl-btn.off:hover{background:#f25b62}.ctl-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.ctl-btn.active:hover{background:#7d6ff0}.ctl-tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(3px);background:#10131f;color:var(--text);font-size:12px;font-weight:500;white-space:nowrap;padding:5px 10px;border-radius:7px;border:1px solid var(--line);opacity:0;pointer-events:none;transition:opacity .12s,transform .12s}.ctl:hover .ctl-tip{opacity:1;transform:translate(-50%) translateY(0)}.leave-btn{display:flex;align-items:center;gap:8px;height:48px;padding:0 20px;border-radius:999px;border:none;background:var(--red);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:transform .12s,background .15s}.leave-btn:hover{transform:scale(1.05);background:#f25b62}.leave-btn:active{transform:scale(.97)}.leave-label{line-height:1}.identity-chip{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:8px 14px 8px 8px;cursor:pointer}.identity-chip:hover{background:#333963}.chip-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700}.chip-name{font-size:13px;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-status{width:9px;height:9px;border-radius:50%}.chip-status.online{background:var(--green)}.chip-status.busy{background:var(--red)}.identity-menu,.emote-popover{margin-bottom:10px;background:var(--card-glass);border:1px solid var(--line);border-radius:var(--radius);padding:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 32px #0006}.identity-menu{display:flex;flex-direction:column;gap:4px;min-width:210px}.identity-menu button{display:flex;align-items:center;gap:8px;text-align:left;padding:9px 12px;border:none;border-radius:9px;background:transparent;font-size:13px}.identity-menu button:hover{background:var(--accent-soft)}.identity-menu button.active{background:var(--accent-soft);outline:1px solid var(--accent)}.identity-menu button.danger{color:#ff9f95}.identity-menu hr{border:none;border-top:1px solid var(--line);margin:4px 0}.emote-popover{display:flex;gap:4px}.emote-popover button{width:40px;height:40px;border:none;border-radius:10px;background:transparent;font-size:20px;transition:transform .1s}.emote-popover button:hover{transform:scale(1.25);background:var(--accent-soft)}@media (max-width: 720px){.control-wrap{max-width:100vw}.control-zone{max-width:calc(100vw - 8px)}.control-bar{gap:6px;padding:8px 10px;flex-wrap:nowrap;overflow-x:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}.control-bar::-webkit-scrollbar{display:none}.ctl-btn{width:44px;height:44px;flex:0 0 44px}.leave-btn{padding:0 14px;height:44px}.leave-label,.chip-name{display:none}.identity-chip{padding:7px}.ctl{flex:0 0 auto}.ctl-tip{display:none}.control-sep{flex:0 0 1px}.bar-arrow,.strip-arrow{display:flex}.video-zone{max-width:calc(100vw - 4px);gap:4px}.video-strip{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;max-width:calc(100vw - 108px);max-height:none;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 0}.video-strip::-webkit-scrollbar{display:none}.video-tile{flex:0 0 var(--tile-w, 168px)}}.side-panel{position:absolute;top:12px;right:12px;bottom:80px;width:320px;z-index:30;display:flex;flex-direction:column;background:var(--card-glass);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 32px #0006}.side-header{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid var(--line)}.side-tabs{display:flex;gap:4px}.side-tabs button{border:none;background:transparent;color:var(--text-dim);border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600}.side-tabs button.active{background:var(--accent);color:#fff}.side-close{background:none;border:none;color:var(--text-dim);font-size:14px}.participants{flex:1;overflow-y:auto;padding:10px}.person-row{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:10px}.person-row:hover{background:#ffffff08}.person-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0}.person-meta{display:flex;flex-direction:column;flex:1;min-width:0}.person-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-sub{font-size:11px;color:var(--text-dim)}.person-actions{display:flex;gap:2px;opacity:0;transition:opacity .12s}.person-row:hover .person-actions{opacity:1}.person-actions button{width:28px;height:28px;border:none;border-radius:8px;background:transparent;font-size:14px}.person-actions button:hover{background:var(--accent-soft)}.dm-compose-tag{display:flex;align-items:center;gap:6px;font-size:12px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:999px;padding:4px 10px}.dm-compose-tag button{border:none;background:none;color:var(--text-dim);font-size:12px}.chat-msg.dm .chat-body{color:#cdc5ff}.dm-tag{background:var(--accent);color:#fff}.chat-embedded{flex:1;display:flex;flex-direction:column;min-height:0}.chat-panel{position:absolute;left:12px;bottom:80px;width:300px;height:380px;z-index:30;display:flex;flex-direction:column;background:var(--card-glass);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:8px}.chat-scope{display:flex;gap:4px}.chat-scope button{border:1px solid var(--line);background:transparent;color:var(--text-dim);border-radius:999px;padding:4px 12px;font-size:12px}.chat-scope button.active{background:var(--accent);border-color:var(--accent);color:#fff}.chat-close{background:none;border:none;color:var(--text-dim);font-size:14px}.chat-messages{flex:1;overflow-y:auto;padding:8px 10px;font-size:13px}.chat-msg{margin-bottom:9px}.chat-from{font-weight:600;color:#a8a0ff;margin-right:6px}.chat-tag{font-size:10px;background:var(--accent-soft);border-radius:4px;padding:0 5px;vertical-align:middle}.chat-body{color:#d9dbec;word-wrap:break-word}.chat-empty{color:var(--text-dim);text-align:center;margin-top:20px}.chat-emoji-row{display:flex;gap:2px;padding:4px 8px 0}.chat-emoji-row button{background:none;border:none;font-size:16px}.chat-emoji-row button:hover{transform:scale(1.2)}.chat-input-row{display:flex;gap:6px;padding:8px}.chat-input-row input{flex:1;padding:9px 11px;border-radius:10px;border:1px solid var(--line);background:var(--bg-deep);color:var(--text)}.chat-input-row button{border:none;border-radius:10px;background:var(--accent);color:#fff;padding:0 14px;font-weight:600}.minimap{position:absolute;right:12px;bottom:16px;z-index:20;border:1px solid var(--line);border-radius:10px;opacity:.92;box-shadow:0 8px 24px #00000059}.object-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;background:#000000b3;display:flex;align-items:center;justify-content:center}.object-modal{width:min(940px,92vw);height:min(620px,84vh);background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.object-header{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);font-weight:600}.object-header button{background:none;border:none;color:var(--text-dim)}.object-modal iframe{flex:1;border:none;background:#fff}.object-modal.game{width:min(560px,92vw);height:auto}.minigame{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 14px 16px}.minigame-bar{display:flex;gap:14px;align-items:baseline;width:100%;font-size:13px;color:var(--text-dim)}.minigame-bar strong{color:var(--text);font-size:15px}.minigame-hint{margin-left:auto;font-size:11.5px}.minigame-canvas{width:100%;max-width:480px;aspect-ratio:3 / 2;background:#0b0f1a;border-radius:10px;outline:none;touch-action:none;cursor:crosshair}.minigame-status{font-size:13px;color:var(--text-dim)}.object-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.msgr{position:absolute;right:16px;bottom:92px;width:min(760px,calc(100vw - 32px));height:min(560px,calc(100vh - 150px));display:flex;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;z-index:40;box-shadow:0 24px 60px #00000070;animation:msgr-in .18s ease}@keyframes msgr-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.msgr-list{width:264px;flex:0 0 264px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--bg)}.msgr-list-head{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 8px}.msgr-list-head h3{font-size:18px}.msgr-search{display:flex;align-items:center;gap:8px;margin:4px 12px 8px;padding:7px 10px;background:var(--bg-deep);border-radius:999px;color:var(--text-dim)}.msgr-search input{flex:1;background:none;border:none;color:var(--text);outline:none;font-size:13px}.msgr-convos{flex:1;overflow-y:auto;padding:4px 6px 8px}.msgr-convo{width:100%;display:flex;align-items:center;gap:10px;padding:8px;border:none;background:none;color:var(--text);border-radius:12px;cursor:pointer;text-align:left;transition:background .12s}.msgr-convo:hover{background:var(--card-glass)}.msgr-convo.active{background:var(--accent-soft)}.msgr-convo-meta{flex:1;min-width:0}.msgr-convo-top{display:flex;justify-content:space-between;align-items:baseline;gap:6px}.msgr-convo-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msgr-convo-time{font-size:11px;color:var(--text-dim);flex:0 0 auto}.msgr-convo-bottom{display:flex;justify-content:space-between;align-items:center;gap:6px}.msgr-convo-preview{font-size:12.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msgr-badge{flex:0 0 auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.msgr-avatar{position:relative;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;flex:0 0 auto}.msgr-avatar.live{background:linear-gradient(135deg,#6c5ce7,#48b1e7)}.msgr-presence{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;background:#7a8199;border:2px solid var(--card)}.msgr-presence.on{background:var(--green)}.msgr-avatar-spacer{width:28px;flex:0 0 28px}.msgr-window{flex:1;display:flex;flex-direction:column;min-width:0}.msgr-empty-window{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-dim)}.msgr-window-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.msgr-window-title{display:flex;flex-direction:column;line-height:1.2;min-width:0}.msgr-window-name{font-weight:700;font-size:15px}.msgr-window-sub{font-size:12px;color:var(--text-dim)}.msgr-back{display:none}.msgr-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:3px;position:relative}.msgr-day-sep{align-self:center;color:var(--text-dim);font-size:12px;margin:10px 0}.msgr-msg{display:flex;align-items:flex-end;gap:8px;margin-top:2px}.msgr-msg.mine{flex-direction:row-reverse}.msgr-bubble-wrap{display:flex;flex-direction:column;max-width:74%}.msgr-msg.mine .msgr-bubble-wrap{align-items:flex-end}.msgr-sender{font-size:11px;color:var(--text-dim);margin:0 0 2px 10px}.msgr-bubble{padding:8px 12px;border-radius:18px;background:var(--card-glass);border:1px solid var(--line);font-size:14px;line-height:1.35;word-break:break-word}.msgr-msg.mine .msgr-bubble{background:var(--accent);border-color:transparent;color:#fff}.msgr-bubble.img{padding:4px}.msgr-text{white-space:pre-wrap}.msgr-meta{display:flex;align-items:center;gap:4px;font-size:10.5px;color:var(--text-dim);margin:2px 6px 0}.msgr-read{color:#4aa3ff}.msgr-att-img{max-width:240px;max-height:240px;border-radius:14px;display:block}.msgr-att-file{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none;padding:4px 2px}.msgr-att-name{font-size:13px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msgr-typing{display:flex;gap:4px;padding:12px;background:var(--card-glass);border:1px solid var(--line);border-radius:18px}.msgr-typing i{width:7px;height:7px;border-radius:50%;background:var(--text-dim);animation:msgr-bounce 1.2s infinite}.msgr-typing i:nth-child(2){animation-delay:.15s}.msgr-typing i:nth-child(3){animation-delay:.3s}@keyframes msgr-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.msgr-messages.drag{outline:2px dashed var(--accent);outline-offset:-8px}.msgr-drop-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#171b30cc;color:var(--accent);font-weight:600;pointer-events:none}.msgr-staged{display:flex;align-items:center;gap:10px;padding:8px 14px;border-top:1px solid var(--line)}.msgr-staged img{height:56px;border-radius:8px}.msgr-staged-file{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.msgr-emoji{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;padding:8px 12px;border-top:1px solid var(--line)}.msgr-emoji button{background:none;border:none;font-size:20px;padding:4px;border-radius:8px;cursor:pointer}.msgr-emoji button:hover{background:var(--card-glass)}.msgr-composer{display:flex;align-items:flex-end;gap:4px;padding:10px 12px;border-top:1px solid var(--line)}.msgr-composer textarea{flex:1;resize:none;max-height:120px;background:var(--bg-deep);border:1px solid var(--line);border-radius:18px;color:var(--text);padding:9px 14px;font:inherit;font-size:14px;outline:none}.msgr-composer textarea:focus{border-color:var(--accent)}.msgr-icon-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:8px;border-radius:10px;display:inline-flex}.msgr-icon-btn:hover{background:var(--card-glass);color:var(--text)}.msgr-send{background:var(--accent);color:#fff;border:none;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;transition:transform .1s,opacity .1s}.msgr-send:hover:not(:disabled){transform:scale(1.06)}.msgr-send:disabled{opacity:.4;cursor:default}@media (max-width: 640px){.msgr{right:0;left:0;bottom:0;width:100vw;height:100vh;border-radius:0}.msgr-list{width:100%;flex-basis:100%}.msgr-window,.msgr.has-active .msgr-list{display:none}.msgr.has-active .msgr-window{display:flex}.msgr-back{display:inline-flex}}.workspace{min-height:100%;padding:28px clamp(16px,4vw,48px) 40px;display:flex;flex-direction:column;gap:22px}.ws-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.ws-brand{display:flex;align-items:center;gap:14px}.ws-logo{font-size:36px}.ws-brand h1{font-size:24px}.ws-brand .sub{color:var(--text-dim);font-size:14px}.ws-user{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ws-avatar-btn{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:2px;display:flex}.ws-avatar-btn:hover{border-color:var(--accent)}.ws-user-meta{display:flex;flex-direction:column;line-height:1.2}.ws-user-meta span{font-size:12px;color:var(--text-dim)}.ws-btn{padding:9px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--text);font-weight:500}.ws-btn:hover{filter:brightness(1.12)}.ws-btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.ws-error{display:flex;justify-content:space-between;align-items:center;gap:10px}.ws-error button{background:none;border:1px solid currentColor;color:inherit;border-radius:8px;padding:4px 10px}.ws-empty{text-align:center;color:var(--text-dim);padding:60px 20px}.ws-empty h2{color:var(--text);margin-bottom:6px}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.room-card{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;padding:0;display:flex;flex-direction:column;transition:transform .15s,border-color .15s,box-shadow .15s}.room-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 18px 50px #0006}.room-card:disabled{opacity:.7;cursor:progress}.room-card.busy{border-color:var(--accent)}.room-thumb{width:100%;height:auto;display:block;background:#111426}.room-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px}.room-card-title{display:flex;justify-content:space-between;align-items:center;gap:8px}.room-card-title h3{font-size:17px}.room-card-body p{color:var(--text-dim);font-size:13px;line-height:1.4}.room-card-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--text-dim);align-items:center}.room-card-cta{color:var(--accent);font-weight:600;font-size:13px;margin-top:4px}.pill{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:#ffffff14;color:var(--text-dim);white-space:nowrap}.pill-green{background:#23c48322;color:#5fe0a7}.team-dot{--team: var(--accent);display:inline-flex;align-items:center;gap:5px}.team-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--team)}.ws-hint{margin-top:auto}.room-chip{position:absolute;top:66px;left:12px;background:var(--card-glass);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;z-index:5;pointer-events:none}.touch-controls{position:absolute;left:16px;right:16px;bottom:96px;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none;z-index:6}.touch-controls>*{pointer-events:auto}.dpad{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,52px);gap:4px}.dpad-btn{border:none;border-radius:12px;background:#282d4fcc;color:#fff;font-size:18px;touch-action:none;user-select:none;-webkit-user-select:none}.dpad-btn:active{background:var(--accent)}.dpad-btn.up{grid-column:2;grid-row:1}.dpad-btn.left{grid-column:1;grid-row:2}.dpad-btn.right{grid-column:3;grid-row:2}.dpad-btn.down{grid-column:2;grid-row:3}.touch-action{width:64px;height:64px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-weight:700;font-size:20px;box-shadow:0 8px 24px #0006;touch-action:none}.touch-action:active{filter:brightness(1.2)}@media (max-width: 640px){.workspace{padding:18px 16px 32px}.room-grid{grid-template-columns:1fr}.ws-brand h1{font-size:20px}}.room-chip{pointer-events:auto;display:flex;align-items:center;gap:8px}.room-chip-owner{color:var(--text-dim);font-weight:500}.room-chip-back{background:var(--accent);border:none;color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.room-card.mine{border-color:var(--green)}.ws-section{color:var(--text-dim);font-size:13px}.ws-section-title{font-size:17px;margin-top:6px}.room-grid-main{grid-template-columns:minmax(320px,560px)}.door-controls{display:flex;gap:6px;align-items:center}.lock-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--card-glass);color:#8fe0b5;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 16px #0005}.lock-btn.locked{color:#ff8a8f;border-color:#e8484f88;background:#e8484f22}.lock-btn.static{cursor:default;opacity:.85}.door-picker{position:absolute;top:44px;left:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px;display:flex;flex-direction:column;gap:4px;min-width:160px;z-index:30}.door-picker button{background:none;border:none;color:var(--text);text-align:left;padding:6px 8px;border-radius:8px;cursor:pointer}.door-picker button:hover{background:#ffffff10}.door-picker button.allowed{color:var(--text-dim)}.door-empty{color:var(--text-dim);font-size:12px;padding:6px 8px}.emp-search{position:absolute;top:56px;left:12px;width:min(340px,calc(100vw - 24px));z-index:22}.emp-search-box{display:flex;align-items:center;gap:8px;background:var(--card-glass);border:1px solid var(--line);border-radius:999px;padding:6px 12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 6px 18px #0005;color:var(--text-dim)}.emp-search-box input{flex:1;background:none;border:none;color:var(--text);font-size:13px;outline:none;min-width:0}.emp-clear{background:none;border:none;color:var(--text-dim);cursor:pointer;display:inline-flex}.emp-suggest{list-style:none;margin:6px 0 0;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px #0006;max-height:320px;overflow-y:auto}.emp-suggest.empty{padding:10px 12px;color:var(--text-dim);font-size:13px}.emp-suggest li{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;cursor:pointer}.emp-suggest li:hover{background:#ffffff10}.emp-suggest canvas{border-radius:50%;background:#ffffff10}.emp-name{font-weight:600;font-size:13px}.emp-where{margin-left:auto;font-size:11px;color:var(--text-dim);white-space:nowrap}.emp-where.on{color:#5fe0a7}.emp-where.busy{color:#f59e0b}.emp-where.off{color:#94a3b8}.emp-card{margin-top:6px;display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--accent);border-radius:14px;padding:10px 12px;box-shadow:0 10px 30px #0006}.emp-card canvas{border-radius:50%;background:#ffffff10;flex:0 0 auto}.emp-card-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;font-size:12px}.emp-card-main strong{font-size:14px}.emp-card-main .emp-where{margin-left:0}.emp-rooms{color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-card-actions{display:flex;gap:4px}.emp-card-actions button{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:#ffffff08;color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.emp-card-actions button.active{background:var(--accent);border-color:var(--accent);color:#fff}@media (max-width: 720px){.emp-search{top:48px;left:8px}}.access-bar{position:absolute;top:182px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid #f59e0b88;border-radius:999px;padding:8px 10px 8px 16px;font-size:13px;z-index:26;box-shadow:0 8px 24px #0006;white-space:nowrap}.access-bar button{border:1px solid var(--line);background:#ffffff10;color:var(--text);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer}.access-bar button.primary{background:#f59e0b;border-color:#f59e0b;color:#1b1b2f}.approval-panel{position:absolute;top:56px;right:12px;display:flex;flex-direction:column;gap:8px;z-index:26;max-width:min(380px,calc(100vw - 24px))}.approval-row{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid #f59e0b88;border-radius:14px;padding:10px 12px;font-size:13px;box-shadow:0 8px 24px #0006}.approval-row span{flex:1}.approval-row button{border:none;border-radius:999px;padding:6px 12px;font-weight:600;font-size:12px;cursor:pointer;color:#fff}.approval-row button.approve{background:#23c483}.approval-row button.reject{background:#e8484f}.security-toasts{position:absolute;bottom:110px;right:12px;display:flex;flex-direction:column;gap:6px;z-index:26}.security-toast{background:#1b1b2fee;border:1px solid var(--line);border-left:4px solid #f59e0b;border-radius:10px;padding:8px 12px;font-size:12px;box-shadow:0 8px 20px #0006}.security-toast.blocked{border-left-color:#e8484f}.security-toast.access_approved{border-left-color:#23c483}.object-modal.share-dialog{width:min(640px,92vw);height:auto}.share-body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:14px}.share-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.share-option{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;border-radius:14px;border:1px solid var(--line);background:#ffffff08;color:var(--text);text-align:left;cursor:pointer}.share-option:hover:not(:disabled){border-color:var(--accent);background:#6c5ce722}.share-option:disabled{opacity:.5;cursor:not-allowed}.share-icon{font-size:26px}.share-option small{color:var(--text-dim);font-size:12px;line-height:1.35}.share-settings{display:flex;flex-direction:column;gap:8px;font-size:13px}.share-settings select{margin-left:8px;background:var(--bg-deep);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px}@media (max-width: 640px){.share-options{grid-template-columns:1fr}}.screen-viewer{position:fixed;top:12px;right:12px;bottom:108px;left:12px;z-index:55;background:#05070fee;border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #000a}.screen-viewer.fullscreen{top:0;right:0;bottom:0;left:0;border-radius:0}.screen-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:#0f1222;border-bottom:1px solid var(--line);font-size:13px}.screen-viewer-title small{color:var(--text-dim);font-weight:400}.screen-viewer-tools{display:flex;gap:4px}.screen-viewer-tools button{min-width:34px;height:30px;border-radius:8px;border:1px solid var(--line);background:#ffffff10;color:var(--text);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0 8px}.screen-viewer-tools button.active{background:var(--accent);border-color:var(--accent);color:#fff}.screen-viewer-tools button:disabled{opacity:.4;cursor:default}.screen-viewer-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000;touch-action:none}.screen-viewer-stage.zoomed{cursor:grab}.screen-viewer-stage video{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;transform-origin:center center;transition:transform .12s ease-out}.screen-viewer-pip{position:absolute;right:16px;bottom:36px;width:180px;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;border:2px solid var(--accent);background:#000;box-shadow:0 8px 24px #000a}.screen-viewer-pip video{width:100%;height:100%;object-fit:cover}.screen-viewer-pip span{position:absolute;left:6px;bottom:4px;font-size:11px;background:#000a;border-radius:5px;padding:1px 6px}.screen-viewer-hint{position:absolute;left:12px;bottom:8px;font-size:11px;color:var(--text-dim)}.video-tile.screen{cursor:pointer}.screen-open{position:absolute;top:6px;right:8px;font-size:14px;background:#000a;border-radius:6px;padding:1px 6px}.bg-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;margin-top:6px}.bg-picker.disabled{opacity:.5}.bg-thumb{position:relative;display:flex;flex-direction:column;gap:4px;align-items:center;padding:4px;border-radius:10px;border:2px solid transparent;background:#ffffff08;color:var(--text);font-size:11px;cursor:pointer}.bg-thumb canvas{width:96px;height:54px;border-radius:6px;display:block}.bg-thumb.active{border-color:var(--accent);background:#6c5ce722}.bg-thumb:disabled{cursor:not-allowed}.bg-replace{position:absolute;top:6px;right:8px;font-style:normal;font-size:11px;background:#000a;border-radius:5px;padding:1px 5px}button.link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:inherit;padding:0}.lobby-preview{width:min(640px,94vw)}.lobby-preview-body{padding:12px 16px 18px;display:flex;flex-direction:column;gap:12px}.cam-preview-large{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;border-radius:12px;overflow:hidden}.cam-preview-large video{width:100%;height:100%;object-fit:cover}.cam-status{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:13px}.msgr-list-head h3{flex:1}.mention{display:inline;padding:0 3px;border-radius:5px;background:#6c5ce733;color:#b9b0ff;border:none;font:inherit;font-weight:600;cursor:pointer}.mention.me{background:#f5a62340;color:#ffd37a}.mention.all{background:#23c48333;color:#7ee2b8;cursor:default}.msgr-msg.mine .mention{background:#fff3;color:#fff}.msgr-msg.mentions-me .msgr-bubble{box-shadow:0 0 0 2px #f5a623aa}.msgr-bubble.failed{opacity:.7;border:1px dashed #ff8a8f}.msgr-failed{color:#ff8a8f}.msgr-older{align-self:center;margin:4px auto 8px;display:block;background:var(--card-glass);border:1px solid var(--line);color:var(--text-dim);border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer}.msgr-mention-list{list-style:none;margin:0;padding:4px;border-top:1px solid var(--line);max-height:220px;overflow-y:auto}.msgr-mention-list li{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;cursor:pointer;font-size:13px}.msgr-mention-list li.active{background:#6c5ce733}.msgr-mention-name{font-weight:600}.msgr-mention-user{color:var(--text-dim);font-size:12px}.msgr-bell-wrap{position:relative}.msgr-bell{font-weight:800;font-size:15px;position:relative}.msgr-bell.has{color:#ffd37a}.msgr-bell .msgr-badge{position:absolute;top:-2px;right:-4px;background:#f5a623}.msgr-notes{position:absolute;top:38px;right:-40px;z-index:5;width:min(330px,86vw);max-height:380px;overflow-y:auto;background:var(--bg-deep);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 40px #000a;padding:6px}.msgr-notes-head{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;font-size:13px}.msgr-notes-empty{padding:14px 8px;color:var(--text-dim);font-size:13px}.msgr-note{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:none;border:none;color:var(--text);padding:8px;border-radius:10px;cursor:pointer;font-size:12.5px}.msgr-note:hover{background:var(--card-glass)}.msgr-note.unread{background:#f5a6231a}.msgr-note-preview{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.msgr-note-time{color:var(--text-dim);font-size:11px}.object-modal.game.table{width:min(900px,94vw);height:auto;max-height:92vh}.tg{display:grid;grid-template-columns:240px 1fr;gap:0;min-height:420px}.tg-side{padding:14px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px;background:#ffffff05}.tg-main{padding:16px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,#1d2340,#0b0d1a 75%)}.tg-seats{display:flex;flex-direction:column;gap:6px}.tg-vs{text-align:center;color:var(--text-dim);font-size:11px;letter-spacing:2px}.tg-seat{display:grid;grid-template-columns:34px 1fr auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:8px;border-radius:12px;border:1px solid var(--line);background:#ffffff06;transition:box-shadow .2s,border-color .2s}.tg-seat.turn{border-color:#f5a623;box-shadow:0 0 0 2px #f5a62355,0 0 18px #f5a62333}.tg-seat.won{border-color:#23c483;box-shadow:0 0 0 2px #23c48355}.tg-avatar{grid-row:1 / 3;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#fff}.tg-seat-name{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tg-seat-empty{grid-column:1 / 4;color:var(--text-dim);font-size:13px;text-align:center;padding:6px 0}.tg-turn-tag{grid-column:2 / 4;font-size:11px;color:#f5a623}.tg-seat.won .tg-turn-tag{color:#23c483}.tg-piece{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}.tg-piece.tictactoe-0{color:#ff6b81}.tg-piece.tictactoe-1{color:#60a5fa}.tg-piece.connect4-0,.tg-piece.checkers-0{background:radial-gradient(circle at 35% 35%,#ff8a8f,#c0392b 70%);box-shadow:inset 0 -2px 3px #0005}.tg-piece.connect4-1{background:radial-gradient(circle at 35% 35%,#fde68a,#d97706 70%);box-shadow:inset 0 -2px 3px #0005}.tg-piece.checkers-1{background:radial-gradient(circle at 35% 35%,#4b5563,#111827 70%);box-shadow:inset 0 -2px 3px #0008}.tg-piece.pong-0,.tg-piece.pong-1{width:6px;height:22px;border-radius:3px;background:#e2e8f0}.tg-status{margin:0;font-size:13.5px;font-weight:600;min-height:18px}.tg-notice{margin:0;font-size:12px;color:#7ee2b8}.tg-error{margin:0;font-size:12px;color:#ff8a8f}.tg-actions{display:flex;flex-direction:column;gap:8px}.tg-actions button{padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:#ffffff10;color:var(--text);cursor:pointer;font:inherit;font-size:13px}.tg-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.tg-actions button:disabled{opacity:.55;cursor:default}.tg-invite{display:flex;gap:6px}.tg-invite select{flex:1;min-width:0;background:var(--bg-deep);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:7px 8px;font:inherit;font-size:13px}.tg-rules{margin:auto 0 0;font-size:11.5px;color:var(--text-dim);line-height:1.4}.tg-placeholder{color:var(--text-dim);font-size:14px;text-align:center;max-width:320px}.tg-placeholder.tg-felt{width:min(360px,100%);aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:16px;background:radial-gradient(circle at 50% 40%,#2f6b3a,#1d4a27 70%);border:10px solid #5d4037;box-shadow:inset 0 0 40px #0008,0 18px 40px #000a;color:#fffa;font-weight:700;letter-spacing:1px}.tg-board{display:grid;gap:6px;width:min(100%,440px);aspect-ratio:1;padding:14px;border-radius:16px;background:#5d4037;box-shadow:0 18px 40px #000a,inset 0 0 0 4px #3e2723}.tg-board.ttt{grid-template-columns:repeat(3,1fr);background:linear-gradient(135deg,#6d4c41,#4e342e)}.ttt-cell{border:none;border-radius:12px;background:#f5efe6;color:#ff6b81;font-size:clamp(32px,9vw,64px);font-weight:800;cursor:pointer;box-shadow:inset 0 -4px #0002;transition:transform .1s}.ttt-cell:nth-child(odd):empty{background:#f5efe6}.ttt-cell:not(:disabled):hover{transform:scale(1.04);background:#fff7ea}.ttt-cell:disabled{cursor:default}.ttt-cell.win{background:#bbf7d0}.ttt-cell:not(:empty){color:#c0392b}.tg-board.ttt button:not(:empty)[aria-label$=" O"]{color:#2563eb}.tg-board.c4{aspect-ratio:7 / 7;gap:5px;background:linear-gradient(180deg,#2563eb,#1e3a8a);box-shadow:0 18px 40px #000a,inset 0 0 0 4px #1e40af}.c4-drop{border:none;background:#fff2;color:#fff;border-radius:8px;cursor:pointer;font-size:12px;height:26px}.c4-drop:not(:disabled):hover{background:#fff4}.c4-drop:disabled{opacity:.35;cursor:default}.c4-cell{aspect-ratio:1;border-radius:50%;background:#0b0d1a;box-shadow:inset 0 3px 6px #000a;display:flex;align-items:center;justify-content:center}.c4-cell.win{box-shadow:inset 0 3px 6px #000a,0 0 0 3px #fde68a}.c4-disc{width:86%;height:86%;border-radius:50%;box-shadow:inset 0 -4px 6px #0005,inset 0 3px 4px #fff3}.c4-disc.p0{background:radial-gradient(circle at 35% 35%,#ff8a8f,#c0392b 70%)}.c4-disc.p1{background:radial-gradient(circle at 35% 35%,#fde68a,#d97706 70%)}.c4-disc.drop{animation:c4drop .45s cubic-bezier(.3,1.4,.6,1)}@keyframes c4drop{0%{transform:translateY(calc(-100% * (var(--row) + 1) - 30px))}to{transform:translateY(0)}}.tg-board.checkers{grid-template-columns:repeat(8,1fr);gap:0;padding:10px;background:#3e2723}.ck-sq{border:none;aspect-ratio:1;background:#f3e5cf;display:flex;align-items:center;justify-content:center;padding:0;position:relative}.ck-sq.dark{background:#7b5a3c;cursor:default}.ck-sq.dark.movable{cursor:pointer;box-shadow:inset 0 0 0 2px #fde68a88}.ck-sq.dark.from{box-shadow:inset 0 0 0 3px #fde68a;background:#8c6a48}.ck-sq.dark.target{cursor:pointer}.ck-sq.dark.target:after{content:"";width:30%;height:30%;border-radius:50%;background:#23c483cc;position:absolute}.ck-sq.dark.last{background:#6f5438}.ck-piece{width:78%;height:78%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:clamp(10px,2.6vw,20px);color:#fde68a;box-shadow:0 3px 4px #0008,inset 0 -3px 4px #0006,inset 0 3px 4px #fff3;transition:transform .15s}.ck-piece.p0{background:radial-gradient(circle at 35% 35%,#ff8a8f,#b91c1c 70%)}.ck-piece.p1{background:radial-gradient(circle at 35% 35%,#4b5563,#0f172a 70%)}.ck-sq.from .ck-piece{transform:scale(1.1)}.game-invite{position:absolute;top:72px;left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:var(--card);border:1px solid var(--accent);box-shadow:0 14px 40px #000a;font-size:13px;max-width:calc(100vw - 32px);flex-wrap:wrap}.game-invite button{padding:6px 12px;border-radius:10px;border:1px solid var(--line);background:#ffffff10;color:var(--text);cursor:pointer;font:inherit;font-size:13px}.game-invite button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.pong-mode{display:flex;flex-direction:column;gap:10px;padding:24px;align-items:stretch}.pong-mode p{margin:0 0 6px;text-align:center}.pong-mode button{padding:12px;border-radius:12px;border:1px solid var(--line);background:#ffffff10;color:var(--text);cursor:pointer;font:inherit;font-size:14px}.pong-mode button.primary{background:var(--accent);border-color:var(--accent);color:#fff}@media (max-width: 720px){.tg{grid-template-columns:1fr}.tg-side{border-right:none;border-bottom:1px solid var(--line)}.tg-seats{flex-direction:row;align-items:center}.tg-seat{flex:1}.tg-rules{display:none}.tg-main{padding:10px}.tg-board{padding:8px}}.areas-menu{position:absolute;top:56px;left:16px;z-index:30}.areas-btn{background:#26314cdd;color:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}.areas-btn:hover{background:#3a4668}.areas-list{margin-top:6px;width:min(320px,calc(100vw - 32px));max-height:60vh;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:0 14px 40px #000a}.areas-row{display:flex;align-items:center;gap:6px;padding:7px 8px;border-radius:10px}.areas-row:hover{background:#ffffff0c}.areas-row>span{flex:1;min-width:0;display:flex;flex-direction:column}.areas-row strong{font-size:13px;display:flex;align-items:center;gap:6px}.areas-row small{color:var(--text-dim);font-size:11.5px}.areas-row button{padding:4px 10px;border-radius:8px;border:1px solid var(--line);background:#ffffff10;color:var(--text);cursor:pointer;font:inherit;font-size:12px}.areas-row button:hover{background:var(--accent);border-color:var(--accent);color:#fff}.areas-row.mine{background:#6c5ce722}.areas-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.areas-empty{padding:12px;color:var(--text-dim);font-size:13px}
