:root{--bg:#1c1c26;--panel:#262634;--panel-border:#3a3a4e;--text:#ecebf3;--muted:#a3a2b8;--accent:#7c8cff;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}.game-host,.game-host canvas{display:block;position:absolute;inset:0}.overlay{pointer-events:none;position:absolute;inset:0}.overlay>*{pointer-events:auto}button{font:inherit;color:inherit;cursor:pointer}.menu{position:absolute;top:12px;left:12px}.menu-button{border:1px solid var(--panel-border);background:var(--panel);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-weight:600;display:flex}.menu-list{border:1px solid var(--panel-border);background:var(--panel);border-radius:10px;min-width:180px;margin-top:6px;padding:4px;box-shadow:0 8px 24px #00000059}.menu-list button{text-align:left;background:0 0;border:0;border-radius:6px;width:100%;padding:8px 10px;display:block}.menu-list button:hover,.menu-list button:focus-visible{background:#34344a;outline:none}.status-picker{position:relative}.status-button{border:1px solid var(--panel-border);background:var(--panel);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-weight:600;display:flex}.status-picker .dot{border-radius:50%;flex:none;width:9px;height:9px}.status-list{min-width:150px;position:absolute;right:0}.menu-list.status-list button{align-items:center;gap:8px;display:flex}.status-list .check{color:var(--muted);margin-left:auto}.status-bar{color:var(--muted);background:#262634d9;border-radius:8px;padding:6px 10px;font-size:12px;position:absolute;bottom:12px;right:12px}.hud-right{align-items:flex-start;gap:8px;display:flex;position:absolute;top:12px;right:12px}.zone-hud{border:1px solid var(--panel-border);background:var(--panel);border-radius:10px;padding:8px 12px;font-weight:600}.overlay>.zone-toast{pointer-events:none}.zone-toast{border:1px solid var(--panel-border);letter-spacing:.02em;white-space:nowrap;background:#262634e6;border-radius:12px;padding:10px 22px;font-size:22px;font-weight:700;animation:2s ease-out forwards zone-toast;position:absolute;top:18%;left:50%;translate:-50%}@keyframes zone-toast{0%{opacity:0;transform:translateY(-6px)}10%,80%{opacity:1;transform:none}to{opacity:0}}@media (prefers-reduced-motion:reduce){.zone-toast{animation:none}}.loading{background:var(--bg);text-align:center;place-content:center;gap:12px;display:grid;position:absolute;inset:0}.progress{background:var(--panel-border);border-radius:3px;width:220px;height:6px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .12s linear}.dialog{border:1px solid var(--panel-border);background:var(--panel);width:min(440px,100vw - 32px);color:var(--text);border-radius:14px;padding:20px 24px}.dialog::backdrop{background:#00000080}.dialog h2{margin:0 0 12px;font-size:20px}.dialog h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 4px;font-size:13px}.dialog p{margin:4px 0;line-height:1.5}.dialog a{color:var(--accent)}.dialog form{text-align:right;margin-top:20px}.muted{color:var(--muted);font-size:13px}.primary,.secondary{background:var(--accent);color:#10101a;border:0;border-radius:8px;padding:8px 16px;font-weight:600}.secondary{border:1px solid var(--panel-border);color:var(--text);background:#34344a}.primary:focus-visible,.secondary:focus-visible{outline:2px solid var(--text);outline-offset:2px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.dialog.avatar-editor{width:min(600px,100vw - 32px);max-height:calc(100vh - 32px)}.avatar-editor form{text-align:left;margin:0}.avatar-editor-body{gap:24px;display:flex}.avatar-editor-side{flex-direction:column;align-items:center;gap:12px;display:flex}.avatar-preview{background:var(--bg);border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:8px 12px;display:flex}.avatar-preview canvas{image-rendering:pixelated}.avatar-turn{gap:6px;display:flex}.avatar-turn button,.stepper button{border:1px solid var(--panel-border);background:#34344a;border-radius:8px;width:30px;height:30px;padding:0;font-size:18px;line-height:1}.avatar-turn button:hover,.stepper button:hover{background:#40405a}.avatar-editor-fields{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.field{margin-bottom:8px}.field label{margin-bottom:4px;font-weight:600;display:block}.field input{border:1px solid var(--panel-border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:8px 10px}.field input:focus-visible{outline:2px solid var(--accent);outline-offset:0}.field input[aria-invalid=true]{border-color:#ff7a7a}.dialog .field p{margin:4px 0 0;font-size:12px}.field-error{color:#ff9a9a}.stepper{grid-template-columns:1fr 30px minmax(96px,auto) 30px;align-items:center;gap:6px;display:grid}.stepper.sub .stepper-label{color:var(--muted);padding-left:14px;font-size:13px}.stepper-label{font-weight:600}.stepper-value{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width:520px){.avatar-editor-body{flex-direction:column}}.profile-card{border:1px solid var(--panel-border);background:var(--panel);border-radius:14px;width:min(320px,100vw - 24px);max-height:calc(100vh - 120px);padding:14px 16px 16px;animation:.12s ease-out card-in;position:absolute;top:60px;right:12px;overflow-y:auto;box-shadow:0 8px 24px #00000059}@keyframes card-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.profile-card{animation:none}}.card-close{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:8px;padding:0;font-size:20px;line-height:1;position:absolute;top:8px;right:8px}.card-close:hover,.card-close:focus-visible{color:var(--text);background:#34344a;outline:none}.profile-card-header{align-items:center;gap:14px;display:flex}.profile-card-header .avatar-preview{flex:none;padding:2px 6px}.profile-card-who{min-width:0}.profile-card h2{overflow-wrap:anywhere;margin:0 28px 6px 0;font-size:18px}.profile-card p{margin:4px 0}.profile-card-status{align-items:center;gap:6px;font-size:14px;display:flex}.profile-card-status .dot{border-radius:50%;width:9px;height:9px}.profile-card h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 6px;font-size:12px}.card-actions{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.card-actions button{white-space:nowrap;flex:auto;padding:7px 10px}.card-actions button:disabled{opacity:.6;cursor:default}.agenda{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.agenda-event{background:var(--bg);border-left:3px solid var(--accent);border-radius:8px;align-items:baseline;gap:8px;padding:6px 8px;font-size:13px;display:flex}.agenda-event.past{opacity:.5}.agenda-event.ongoing{background:#2f3150}.agenda-time{color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.agenda-title{flex:1;min-width:0}.agenda-now{color:#fff;background:#e5484d;border-radius:6px;flex:none;padding:0 6px;font-size:11px;font-weight:700}.now-line{color:#ff6b70;font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.now-line:after{content:"";background:#e5484d;border-radius:1px;flex:1;height:2px}.go-to-status{border:1px solid var(--panel-border);background:#262634eb;border-radius:12px;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:8px 8px 8px 14px;font-size:14px;display:flex;position:absolute;bottom:48px;left:50%;translate:-50%}.go-to-status button{padding:4px 12px}.overlay>.go-to-status.notice{pointer-events:none;padding-right:14px;animation:2.5s ease-out forwards zone-toast}@media (prefers-reduced-motion:reduce){.overlay>.go-to-status.notice{animation:none}}@media (max-width:520px){.profile-card{max-height:60vh;top:auto;bottom:12px}}.chat-panel{border:1px solid var(--panel-border);background:#262634eb;border-radius:12px;flex-direction:column;width:min(340px,100vw - 24px);font-size:13px;display:flex;position:absolute;bottom:12px;left:12px;box-shadow:0 8px 24px #0000004d}.chat-header{border-bottom:1px solid var(--panel-border);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:6px 6px 6px 12px;display:flex}.chat-panel.collapsed .chat-header{border-bottom:0}.chat-header strong{color:var(--text)}.chat-toggle{width:26px;height:26px;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:0;font-size:14px;line-height:1}.chat-toggle:hover,.chat-toggle:focus-visible{color:var(--text);background:#34344a;outline:none}.chat-log{flex-direction:column;gap:8px;height:min(220px,30vh);margin:0;padding:6px 12px;list-style:none;display:flex;overflow-y:auto}.chat-empty{color:var(--muted);text-align:center;margin:auto 0;line-height:1.4}.chat-meta{align-items:baseline;gap:8px;display:flex}.chat-sender{overflow-wrap:anywhere;font-weight:600}.chat-msg.own .chat-sender{color:var(--accent)}.chat-meta time{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.chat-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0;line-height:1.4}.chat-heard{color:var(--muted);margin:2px 0 0;font-size:11px}.chat-input{border-top:1px solid var(--panel-border);padding:8px;position:relative}.chat-input input{border:1px solid var(--panel-border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:7px 10px}.chat-input input:focus-visible{outline:2px solid var(--accent);outline-offset:0}.chat-count{color:var(--muted);font-variant-numeric:tabular-nums;pointer-events:none;font-size:11px;position:absolute;top:50%;right:16px;translate:0 -50%}.chat-input:has(.chat-count) input{padding-right:64px}@media (max-width:520px){.chat-log{height:min(160px,25vh)}}.menu-list button:disabled{color:var(--muted);cursor:default}.edit-button{cursor:pointer}.edit-toolbar{border:1px solid var(--accent);background:var(--panel);border-radius:12px;max-width:calc(100vw - 24px);padding:8px 12px;position:absolute;top:12px;left:50%;translate:-50%;box-shadow:0 8px 24px #00000059}.edit-toolbar-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.edit-title{margin-right:4px}.edit-hint{color:var(--muted);margin:6px 0 0;font-size:12px}.link-button{color:var(--accent);background:0 0;border:0;padding:0;text-decoration:underline}.danger.primary{color:#fff;background:#e5484d}.item-toolbar{border:1px solid var(--panel-border);background:var(--panel);white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:4px;font-size:13px;display:flex;position:absolute;translate:-50% -100%;box-shadow:0 6px 18px #00000059}.item-toolbar-name{padding:0 6px;font-weight:600}.item-toolbar button{background:#34344a;border:0;border-radius:6px;padding:4px 8px}.item-toolbar button:hover,.item-toolbar button:focus-visible{background:#44445e;outline:none}.item-toolbar button.danger{color:#ff9b9e}.dialog.furniture-picker{flex-direction:column;gap:10px;width:min(640px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px 20px 20px;display:flex}.dialog.furniture-picker:not([open]){display:none}.furniture-header{position:relative}.furniture-header h2{margin:0}.furniture-search{border:1px solid var(--panel-border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:8px 10px}.furniture-tabs{flex-wrap:wrap;gap:4px;display:flex}.furniture-tabs button{border:1px solid var(--panel-border);color:var(--muted);background:0 0;border-radius:999px;padding:6px 12px}.furniture-tabs button.selected{border-color:var(--accent);background:var(--accent);color:#10101a;font-weight:600}.furniture-tabs button:focus-visible,.furniture-cell:focus-visible{outline:2px solid var(--text);outline-offset:2px}.furniture-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;min-height:160px;margin:0;padding:2px;list-style:none;display:grid;overflow-y:auto}.furniture-empty{text-align:center;grid-column:1/-1;padding:24px 0}.furniture-cell{border:1px solid var(--panel-border);background:var(--bg);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:4px;width:100%;height:100%;padding:8px 6px;display:flex}.furniture-cell:hover{border-color:var(--accent)}.furniture-thumb-box{justify-content:center;align-items:center;width:72px;height:72px;display:flex}.furniture-thumb{image-rendering:pixelated;background-repeat:no-repeat;display:block}.furniture-name{font-size:13px;line-height:1.25}.furniture-size{font-size:12px}.furniture-header .card-close{top:-4px;right:-8px}
