:root{color:#1d1f22;--ui-bg-alpha:20%;--page-rgb:243 241 234;--surface-rgb:255 253 248;--paper-rgb:255 250 240;--quota-rgb:247 240 226;--warn-rgb:255 240 223;--ok-rgb:229 243 229;--success-rgb:231 240 221;--danger-rgb:255 230 217;--complete-rgb:229 237 242;--muted-rgb:251 246 233;--cool-rgb:234 242 243;--player-rgb:240 248 249;--gm-rgb:255 246 239;--login-rgb:245 239 225;--avatar-rgb:238 244 241;--dark-rgb:31 42 46;--dark-hover-rgb:44 61 66;--primary-rgb:184 71 47;--accent-rgb:44 114 128;--dice-rgb:140 107 47;--overlay-rgb:19 23 24;--black-rgb:0 0 0;--white-rgb:255 255 255;--page:rgb(var(--page-rgb) / var(--ui-bg-alpha));--surface:rgb(var(--surface-rgb) / var(--ui-bg-alpha));--paper:rgb(var(--paper-rgb) / var(--ui-bg-alpha));--quota:rgb(var(--quota-rgb) / var(--ui-bg-alpha));--warn:rgb(var(--warn-rgb) / var(--ui-bg-alpha));--ok:rgb(var(--ok-rgb) / var(--ui-bg-alpha));--success:rgb(var(--success-rgb) / var(--ui-bg-alpha));--danger:rgb(var(--danger-rgb) / var(--ui-bg-alpha));--complete:rgb(var(--complete-rgb) / var(--ui-bg-alpha));--muted:rgb(var(--muted-rgb) / var(--ui-bg-alpha));--cool:rgb(var(--cool-rgb) / var(--ui-bg-alpha));--player:rgb(var(--player-rgb) / var(--ui-bg-alpha));--gm:rgb(var(--gm-rgb) / var(--ui-bg-alpha));--login:rgb(var(--login-rgb) / var(--ui-bg-alpha));--avatar:rgb(var(--avatar-rgb) / var(--ui-bg-alpha));--dark:rgb(var(--dark-rgb) / var(--ui-bg-alpha));--dark-hover:rgb(var(--dark-hover-rgb) / var(--ui-bg-alpha));--primary:rgb(var(--primary-rgb) / var(--ui-bg-alpha));--accent:rgb(var(--accent-rgb) / var(--ui-bg-alpha));--dice:rgb(var(--dice-rgb) / var(--ui-bg-alpha));--overlay:rgb(var(--overlay-rgb) / var(--ui-bg-alpha));--black-a:rgb(var(--black-rgb) / var(--ui-bg-alpha));--white-a:rgb(var(--white-rgb) / var(--ui-bg-alpha));background:var(--page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box;gap:7px}body{min-width:320px;min-height:100vh;margin:0}button,.button-like{background:var(--dark);color:#fff;cursor:pointer;font:inherit;border:1px solid #1f2a2e;border-radius:8px;justify-content:center;align-items:center;min-height:42px;padding:0 14px;font-weight:700;text-decoration:none;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.6}button:hover,.button-like:hover{background:var(--dark-hover)}button.primary{background:var(--primary);border-color:#b8472f}input,select,textarea{background:var(--surface);color:#1d1f22;font:inherit;border:1px solid #c9c1b2;border-radius:8px;width:100%;min-height:42px;padding:10px 12px}textarea{resize:vertical;min-height:120px}label{color:#4f5457;font-size:.86rem;font-weight:700;display:grid}h1,h2,h3,p{margin:0}:where(.creator-session-row,.panel,.session-item,.session-top,.session-title-card,.spectator-pill,.roster,.log-panel,.seat,.choice-panel,.creator-panel,.creator-number-setting,.waiting-summary>section,.voice-panel,.voice-control-group,.voice-dropdown,.story-export-box,.message,.action-suggestions){background:var(--surface);border:1px solid #d6cdbf;border-radius:8px}.home-shell{background-color:#101518;background-image:linear-gradient(#080c106b,#080c104d),url(/assets/home-llmtrpg-background-DbSMlGZA.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;place-items:center;min-height:100vh;padding:24px;display:grid}.home-stack{width:100%;max-width:720px;display:grid}.home-board{background:var(--paper);-webkit-backdrop-filter:blur(7px)saturate(118%);backdrop-filter:blur(7px)saturate(118%);border:1px solid #d7c6a7;border-radius:8px;width:100%;max-width:560px;padding:28px;display:grid;box-shadow:0 18px 60px #241f181f}.create-board{max-width:720px}.language-board{justify-self:center;max-width:460px}.creator-session-board{justify-self:stretch;max-width:720px}.creator-session-board h2{font-size:1.05rem}.empty-state{color:#20272b;font-weight:800}.quota-line{background:var(--quota);color:#3c403f;border:1px solid #d9c8aa;border-radius:8px;margin:-8px 0 0;padding:10px 12px;font-weight:800}.quota-line.depleted{background:rgb(var(--warn-rgb) / 84%);color:#8a351f;border-color:#e4b194}.creator-session-list{display:grid}.creator-session-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:12px;display:grid}.creator-session-row div{flex-wrap:wrap;align-items:center;min-width:0;display:flex}.creator-session-row strong{overflow-wrap:anywhere}.creator-session-row p,.creator-session-row small{color:#20272b;grid-column:1;font-size:.88rem;font-weight:800}.creator-session-row .button-like{grid-area:1/2/span 3}.creator-session-status{border:1px solid #b8ad9b;border-radius:999px;padding:3px 8px;font-size:.78rem;font-weight:900}.creator-session-status.draft{background:var(--muted);color:#6f5427}.creator-session-status.running{background:var(--success);color:#355829}.creator-session-status.paused,.creator-session-status.error{background:var(--danger);color:#8a351f}.creator-session-status.completed{background:var(--complete);color:#294b5a}.language-grid{background:var(--surface);border:1px solid #c9c1b2;border-radius:8px;grid-template-columns:1fr 1fr;margin:0;padding:12px;display:grid}.language-grid legend{background:var(--paper);color:#1f2a2e;border:1px solid #c9c1b2;border-radius:999px;grid-column:1/-1;width:fit-content;margin-bottom:6px;padding:2px 10px;font-size:.86rem;font-weight:900}.language-grid label{background:var(--surface);color:#1f2a2e;cursor:pointer;border:1px solid #c9c1b2;border-radius:8px;justify-content:center;align-items:center;min-height:54px;font-size:1rem;display:flex}.language-grid label.selected{background:rgb(var(--cool-rgb) / 88%);border-color:#2c7280}.language-grid input{width:16px;height:16px;min-height:0}.brand-row{background:var(--surface);color:#1f2a2e;letter-spacing:0;border:1px solid #c9c1b2;border-radius:8px;align-items:center;padding:12px 14px;font-size:2.2rem;font-weight:900;text-decoration:none;display:inline-flex}.language-board>label{background:var(--surface);color:#1f2a2e;border:1px solid #c9c1b2;border-radius:8px;padding:12px}.brand-row.small{font-size:1.1rem}.join-line{grid-template-columns:1fr auto;display:grid}.admin-link{color:#5f402f;align-items:center;font-weight:800;text-decoration:none;display:inline-flex}.admin-shell{min-height:100vh;padding:18px}.session-shell{height:100vh;min-height:100vh;padding:3px;position:relative;overflow:hidden}.session-shell.has-table-background{--table-ui-surface:var(--surface);--table-ui-warm-surface:var(--gm);--table-ui-cool-surface:var(--player);--table-ui-muted-surface:var(--muted);--table-ui-dark-surface:var(--dark);--table-ui-border:#ffffffad;--table-ui-shadow:0 18px 60px #0003;--table-ui-backdrop:blur(8px) saturate(112%);isolation:isolate}.session-shell.has-table-background:before{background:linear-gradient(var(--overlay), var(--overlay));content:"";pointer-events:none;z-index:0;position:absolute;inset:0}.table-background-base,.table-background-front{object-fit:cover;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.table-background-base{z-index:-1}.table-background-front{opacity:.05;z-index:999}.session-shell.has-table-background>:not(.table-background-base):not(.table-background-front){z-index:1;position:relative}.session-shell.has-table-background input,.session-shell.has-table-background select,.session-shell.has-table-background textarea{background:var(--table-ui-surface);border-color:var(--table-ui-border)}.session-shell.has-table-background button,.session-shell.has-table-background .button-like{background:var(--table-ui-dark-surface);border-color:var(--table-ui-border)}.session-shell.has-table-background button:hover,.session-shell.has-table-background .button-like:hover{background:var(--dark-hover)}.session-shell.has-table-background button.primary{background:var(--primary);border-color:#b8472fe0}.session-shell.has-table-background :is(.brand-row.small,.session-top,.session-title-card,.spectator-pill,.roster,.log-panel,.creator-number-setting,.waiting-summary>section,.cast-card,.seat-avatar,.cast-portrait,.choice-panel,.creator-panel,.voice-panel,.voice-control-group,.voice-dropdown,.seat,.world-state,.action-bar,.action-suggestions,.completion-panel,.story-export-box){-webkit-backdrop-filter:var(--table-ui-backdrop);backdrop-filter:var(--table-ui-backdrop);background:var(--table-ui-surface);border-color:var(--table-ui-border)}.session-shell.has-table-background .brand-row.small{border:1px solid var(--table-ui-border);border-radius:8px;padding:6px}.topbar{justify-content:space-between;align-items:center;max-width:1280px;margin:0 auto 18px;display:flex}.admin-grid{grid-template-columns:minmax(280px,.8fr) minmax(320px,1.2fr);max-width:1280px;margin:0 auto;display:grid}.panel{padding:18px;display:grid}.create-panel{grid-template-columns:1fr 160px}.create-panel h2,.create-panel .wide,.create-panel button{grid-column:1/-1}.button-row,.session-actions{flex-wrap:wrap;display:flex}.state,.error{border-radius:8px;padding:10px 12px;font-weight:800}.state.ok{background:var(--ok);color:#24502a}.state.warn,.error{background:var(--warn);color:#8a351f}.login-box{background:var(--login);border:1px solid #d9c8aa;border-radius:8px;padding:12px;display:grid}.login-box.compact{padding:10px}.login-box a{color:#1d5362;overflow-wrap:anywhere}.codex-auth-panel{align-items:stretch}.codex-auth-panel p,.codex-auth-panel ol,.codex-auth-panel small{color:#4f5457;font-weight:800}.codex-auth-panel ol{margin:0;padding-left:20px}.codex-auth-panel strong a{color:#1d5362}.codex-cooldown-note{background:var(--warn);border:1px solid #d6aa87;border-radius:6px;padding:8px;display:grid}.codex-auth-approved-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.codex-auth-approved-status{color:#4f5457;min-width:0;font-weight:800}.codex-auth-approved-row button{white-space:nowrap;min-height:36px;padding:0 12px}.device-code-box{border-top:1px solid #d9c8aa;padding-top:10px;display:grid}.session-list{max-width:1280px;margin:18px auto 0;display:grid}.session-item{justify-content:space-between;align-items:center;padding:14px;display:flex}.session-item p{color:#697074;font-size:.92rem}.session-top{z-index:20;border-bottom:2px solid #b8ad9b;max-width:1500px;margin-bottom:3px;padding:3px;position:relative;box-shadow:0 10px 30px #241f181a}.session-top-left{flex:1;align-items:center;min-width:0;display:flex}.session-title-card{color:#1f2a2e;flex:1;align-items:center;min-width:0;min-height:36px;padding:0;display:flex;position:relative}.session-title-card h1{flex:1;align-self:stretch;align-items:center;min-width:0;padding:0 8px;font-size:1.08rem;line-height:1.2;display:flex;position:relative;overflow:visible}.session-title-heading:focus{outline:none}.session-title-heading:focus-visible{box-shadow:inset 0 0 0 2px #2c7280}.session-title-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;display:block;overflow:hidden}.title-menu-toggle{background:0 0;border:0;border-right:1px solid #d6cdbf;border-radius:0;flex:0 0 42px;justify-content:center;align-self:stretch;align-items:center;height:auto;min-height:34px;padding:0;display:inline-flex}.title-menu-toggle:hover{background:var(--avatar)}.session-shell.has-table-background .session-top{box-shadow:var(--table-ui-shadow);border-bottom-color:#ffffff94}.session-shell.has-table-background .session-title-card .title-menu-toggle{border-color:var(--table-ui-border);background:0 0}.session-shell.has-table-background .session-title-card .title-menu-toggle:hover{background:var(--dark)}.session-top-status{flex-wrap:nowrap;justify-content:flex-end;align-items:center;display:flex}.spectator-pill{color:#1f2a2e;align-items:center;min-height:36px;padding:6px;display:inline-flex}.spectator-pill span{color:#566064;font-size:.85rem;font-weight:900}.spectator-pill strong{font-size:1rem}.status-pill{text-align:center;border:1px solid #b8ad9b;border-radius:8px;justify-content:center;align-items:center;min-width:92px;min-height:36px;padding:6px;font-weight:900;display:inline-flex}.status-pill.running{background:var(--success);color:#355829}.status-pill.draft{background:var(--muted);color:#6f5427}.status-pill.paused,.status-pill.error{background:var(--danger);color:#8a351f}.status-pill.completed{background:var(--complete);color:#294b5a}.session-shell.has-table-background .status-pill{border-color:var(--table-ui-border)}.table-layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:stretch;max-width:1500px;height:calc(100vh - 56px);margin:0 auto;display:grid}.roster,.log-panel{background-clip:padding-box}.session-shell.has-table-background .roster,.session-shell.has-table-background .log-panel{box-shadow:var(--table-ui-shadow)}.roster{clip-path:inset(0 round 8px);flex-direction:column;align-self:start;min-height:0;max-height:100%;padding:6px;display:flex;overflow:hidden}:is(.seat-grid,.message-list,.setup-panel,.waiting-scroll-body,.creator-dropdown){scrollbar-color:#1f2a2e61 transparent;scrollbar-width:thin}:is(.seat-grid,.message-list,.setup-panel,.waiting-scroll-body,.creator-dropdown)::-webkit-scrollbar{width:10px;height:10px}:is(.seat-grid,.message-list,.setup-panel,.waiting-scroll-body,.creator-dropdown)::-webkit-scrollbar-track{background:0 0;border-radius:999px}:is(.seat-grid,.message-list,.setup-panel,.waiting-scroll-body,.creator-dropdown)::-webkit-scrollbar-thumb{background:var(--dark);background-clip:padding-box;border:3px solid #0000;border-radius:999px}:is(.seat-grid,.message-list,.setup-panel,.waiting-scroll-body,.creator-dropdown)::-webkit-scrollbar-thumb:hover{background:var(--dark-hover);background-clip:padding-box}.round-box{background:var(--dark);color:#fff;border-radius:8px;grid-template-columns:1fr auto auto;align-items:center;min-height:68px;padding:12px;display:grid}.round-box span,.round-box em{color:#d8e1df;font-style:normal;font-weight:800}.round-box strong{padding:0 12px;font-size:2rem;line-height:1}.top-round-box{color:#1f2a2e;background:0 0;border-left:1px solid #d6cdbf;border-radius:0;flex:none;justify-content:center;align-self:stretch;gap:4px;min-width:104px;min-height:34px;padding:0 8px;display:flex}.top-round-box span,.top-round-box em{color:#566064;font-size:.75rem}.top-round-box strong{padding:0 4px;font-size:1.15rem}.top-round-box strong.round-over-limit{color:#b42318}.top-round-box .round-limit-alert{color:#9f2d20;white-space:nowrap;border:1px solid #d7956f;border-radius:999px;padding:3px 6px;font-size:.68rem;line-height:1}.top-round-box .round-limit-alert.exceeded{background:var(--danger)}.session-shell.has-table-background .top-round-box{border-color:var(--table-ui-border);color:#1f2a2e;background:0 0}.seat-grid{scrollbar-gutter:stable;flex:auto;min-height:0;display:grid;overflow:auto}.seat{grid-template-columns:auto 1fr auto;align-items:center;min-height:42px;padding:6px;display:grid}.seat-avatar{background:var(--avatar);border:1px solid #c9d5d2;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex;overflow:hidden}.seat-avatar img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.seat.human{background:var(--cool);border-color:#a8c4c9}.gm-seat{border-color:#b78c53}.seat.selectable{color:#1d1f22;cursor:pointer;font-weight:inherit;text-align:left;justify-content:stretch;width:100%}.seat.selectable:hover{border-color:#2c7280;box-shadow:inset 0 0 0 1px #2c7280}.seat.selected{background:var(--cool);border-color:#2c7280;box-shadow:inset 0 0 0 2px #2c7280}.seat small{color:#6d7478;font-weight:900}.seat em{color:#566064;overflow-wrap:anywhere;grid-column:2/-1;font-size:.82rem;font-style:normal;font-weight:700}.join-form,.character-name-form{display:grid}.join-form{grid-template-columns:minmax(0,1fr) auto;align-items:center}.join-form input{min-width:0}.join-form small{grid-column:1/-1}.character-profile-form textarea{min-height:96px}.setup-inline-fields{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.action-assist-setup{grid-template-columns:minmax(0,1fr) minmax(110px,auto) minmax(120px,auto);display:grid}.checkbox-line{align-items:center;display:flex}.checkbox-line input{width:auto}.choice-panel,.creator-panel{padding:6px;display:grid}.roster-join-panel{z-index:5;border-width:0 0 1px;border-radius:0;margin:-6px -6px 0}.roster-watch-panel{align-items:stretch}.creator-panel small{color:#566064;font-weight:800}.creator-panel-header{justify-content:space-between;align-items:center;display:flex}.creator-dropdown{z-index:40;width:min(340px,100vw - 36px);max-height:calc(100vh - 120px);position:absolute;top:calc(100% + 3px);left:0;overflow:auto}.icon-toggle{border-radius:8px;min-width:36px;min-height:32px;padding:0;font-size:1rem}.creator-number-setting{grid-template-columns:minmax(0,1fr) 92px;align-items:center;padding:6px;display:grid}.creator-number-setting span{color:#4f5457;min-width:0;font-size:.86rem;font-weight:800}.creator-number-setting input{text-align:right;min-width:0}.creator-assist-setting{grid-template-columns:minmax(96px,1fr) minmax(86px,auto) minmax(104px,auto);padding:6px;display:grid}.creator-assist-setting label{min-width:0}.creator-assist-setting span{color:#4f5457;font-size:.82rem;font-weight:900}.creator-assist-setting select{min-width:0}.log-panel{grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;display:grid;overflow:hidden}.log-panel.has-background{background:var(--table-ui-surface)}.setup-panel,.waiting-panel{overscroll-behavior:contain;scrollbar-gutter:stable;grid-row:1/-1;align-content:start;min-height:0;max-height:100%;padding:6px;display:grid;overflow-y:auto}.waiting-panel{scrollbar-gutter:auto;flex-direction:column;display:flex;overflow:hidden}.log-panel.has-background .setup-panel,.log-panel.has-background .waiting-panel{background:var(--table-ui-surface)}.log-panel.has-background .waiting-panel{background:0 0}.log-panel.has-background:has(.waiting-panel){background:0 0}.setup-panel textarea{min-height:280px}.setup-actions,.waiting-actions{-webkit-backdrop-filter:blur(8px)saturate(112%);backdrop-filter:blur(8px)saturate(112%);background:var(--surface);z-index:5;border-top:1px solid #d6cdbf;align-items:center;margin:3px -6px -6px;padding:6px;display:flex;position:sticky;bottom:-18px}.setup-submit-button,.waiting-start-button{box-shadow:0 10px 24px #241f182e}.log-panel.has-background .setup-actions,.log-panel.has-background .waiting-actions{background:var(--table-ui-surface);border-color:var(--table-ui-border)}.setup-title-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.setup-title-copy{justify-items:stretch;display:grid}.setup-title-copy button{white-space:nowrap;min-height:40px;padding:0 12px}.setup-title-copy small{color:#697074;text-align:center;font-size:.78rem;font-weight:800;line-height:1.2}.waiting-panel{color:#4d5559}.waiting-panel strong{color:#1f2a2e;font-size:1.25rem}.waiting-summary{width:100%;display:grid}.waiting-summary>section{width:100%;padding:6px;display:grid}.waiting-summary strong{color:#1f2a2e}.waiting-summary p{color:#3f484c;overflow-wrap:anywhere}.cast-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.cast-card{background:var(--paper);isolation:isolate;border:1px solid #d6cdbf;border-radius:8px;min-height:132px;padding:10px;display:grid;position:relative;overflow:hidden}.cast-card>div:not(.cast-portrait){z-index:1;align-content:end;min-height:112px;display:grid;position:relative}.cast-card span,.cast-name-button{color:#1f2a2e;overflow-wrap:anywhere;text-shadow:0 1px 10px var(--paper);font-weight:900;display:block}.cast-name-button{cursor:pointer;font:inherit;text-align:left;white-space:normal;background:0 0;border:0;min-height:0;padding:0}.cast-name-button:hover,.cast-name-button:focus-visible{color:#1d5362;background:0 0;text-decoration:underline}.cast-name-button:disabled{cursor:not-allowed;opacity:.72}.session-shell.has-table-background .cast-name-button,.session-shell.has-table-background .cast-name-button:hover,.session-shell.has-table-background .cast-name-button:focus-visible{background:0 0;border:0}.cast-card p{color:#566064;text-shadow:0 1px 10px var(--paper);font-size:.82rem;font-weight:700}.cast-portrait{opacity:.34;z-index:0;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;width:68%;height:calc(100% + 36px);display:inline-flex;position:absolute;inset:-18px -8px -18px auto;overflow:hidden}.cast-portrait img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.cast-portrait svg{width:82px;height:82px}.session-shell.has-table-background .cast-card .cast-portrait{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0}.world-state{background:var(--surface);border-bottom:1px solid #d6cdbf;padding:6px;display:grid}.world-state span{color:#6d7478;text-transform:uppercase;font-size:.78rem;font-weight:900}.waiting-state strong{font-size:1rem;font-weight:900;line-height:1.5}.waiting-panel>.waiting-state{z-index:5;margin:-6px -6px 0}.waiting-state p:first-of-type{line-height:1.5}.waiting-scroll-body{scrollbar-gutter:stable;flex:auto;min-height:0;display:grid;overflow:auto}.voice-panel{grid-template-columns:1fr auto;align-items:center;padding:6px;display:grid}.top-voice-panel,.top-map-panel{display:inline-flex;position:relative}.top-map-button{white-space:nowrap;min-height:36px;padding:0 10px}.top-map-button span,.top-map-button strong{font-weight:900}.voice-control-group{align-items:center;min-height:36px;display:inline-flex;overflow:hidden}.voice-control-group button{color:#1f2a2e;background:0 0;border:0;border-radius:0;min-height:34px}.voice-control-group button:hover{background:var(--avatar)}.voice-control-group button+button{border-left:1px solid #d6cdbf}.voice-menu-toggle{white-space:nowrap;min-width:42px;padding:0}.voice-play-button{padding:0 8px}.session-shell.has-table-background .voice-control-group button{border-color:var(--table-ui-border);background:0 0}.session-shell.has-table-background .voice-control-group button:hover{background:var(--dark)}.voice-dropdown,.map-dropdown{z-index:30;width:min(360px,100vw - 36px);padding:6px;display:grid;position:absolute;top:calc(100% + 3px);right:0;box-shadow:0 18px 60px #10121433}.map-dropdown{width:min(620px,100vw - 16px)}.session-map-view{display:grid}.session-map-canvas{background:var(--surface);border:1px solid #d6cdbf;border-radius:8px;height:260px;position:relative;overflow:hidden}.session-map-canvas.is-diagram{background:linear-gradient(90deg, #ffffff38 1px, transparent 1px), linear-gradient(#ffffff38 1px, transparent 1px), var(--surface);background-size:28px 28px}.session-map-fallback{color:#536066;text-transform:uppercase;font-size:.78rem;font-weight:900;position:absolute;top:8px;left:8px}.session-map-image{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.session-map-lines,.session-map-nodes{width:100%;height:100%;position:absolute;inset:0}.session-map-lines line{stroke:#ffffffb8;stroke-linecap:round;stroke-width:1.4px;vector-effect:non-scaling-stroke}.session-map-node{overflow:visible}.session-map-node-label{text-align:center;background:#f5f8fae0;border:1px solid #ffffffe6;border-radius:999px;justify-content:center;align-items:center;min-width:0;height:100%;padding:0 5px;display:flex;box-shadow:0 6px 18px #1012142e}.session-map-node-label strong{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;display:block;overflow:hidden}.session-map-list{max-height:180px;display:grid;overflow:auto}.session-map-list article{background:var(--surface);border:1px solid #d6cdbf;border-radius:8px;padding:6px}.session-map-list strong{color:#1f2a2e}.map-image-missing{justify-content:space-between;align-items:center;padding:4px;display:flex}.map-image-missing small{color:#4f5a60;font-weight:800}.voice-panel small{color:#6d7478;grid-column:1/-1;font-weight:800}.voice-panel-header{grid-column:1/-1;justify-content:space-between;align-items:center;display:flex}.voice-panel-actions{flex-shrink:0;display:flex}.voice-toggle{color:#1f2a2e;align-items:center;font-size:.92rem;display:inline-flex}.voice-toggle input{width:18px;height:18px;min-height:0}.voice-settings{grid-column:1/-1;grid-template-columns:1fr;display:grid}.voice-setting-row{grid-template-columns:44px minmax(0,1fr) 52px;align-items:center;display:grid}.voice-setting-row span{color:#1f2a2e;font-weight:900}.voice-setting-row strong{color:#1f2a2e;text-align:right;font-size:.92rem}.voice-setting-row input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:28px;min-height:28px;padding:0}.voice-setting-row input[type=range]::-webkit-slider-runnable-track{background:var(--dark);border:1px solid var(--white-a);border-radius:999px;height:8px}.voice-setting-row input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2px solid var(--white-a);box-shadow:0 2px 8px var(--black-a);border-radius:50%;width:18px;height:18px;margin-top:-6px}.voice-setting-row input[type=range]::-moz-range-track{background:var(--dark);border:1px solid var(--white-a);border-radius:999px;height:8px}.voice-setting-row input[type=range]::-moz-range-progress{background:var(--accent);border-radius:999px;height:8px}.voice-setting-row input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid var(--white-a);box-shadow:0 2px 8px var(--black-a);border-radius:50%;width:16px;height:16px}.voice-setting-row input[type=range]:focus-visible{outline:none}.voice-setting-row input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--accent), 0 2px 8px var(--black-a)}.voice-setting-row input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px var(--accent), 0 2px 8px var(--black-a)}.voice-setting-row input[type=range]:disabled{cursor:not-allowed;opacity:.55}.message-list{scrollbar-gutter:stable;min-height:0;padding:6px;display:grid;overflow:auto}.log-panel.has-background .message-list{background:var(--table-ui-surface);background:0 0}.session-shell.has-table-background .round-box{background:var(--table-ui-dark-surface)}.session-shell.has-table-background .message:is(.gm,.player,.dice,.system){-webkit-backdrop-filter:var(--table-ui-backdrop);backdrop-filter:var(--table-ui-backdrop);border-color:var(--table-ui-border)}.session-shell.has-table-background .message.gm{background:var(--table-ui-warm-surface);border-left-color:#b8472f}.session-shell.has-table-background .message.player{background:var(--table-ui-cool-surface);border-left-color:#2c7280}.session-shell.has-table-background .message.dice{background:var(--table-ui-muted-surface);border-left-color:#8c6b2f}.session-shell.has-table-background .message.dice span{background:var(--dice);border-color:#ffffff5c}.session-shell.has-table-background .message.system{background:var(--table-ui-surface);border-left-color:#6d7478}.message{contain-intrinsic-size:96px;content-visibility:auto;border-left:4px solid #b8ad9b;padding:6px;display:grid}.message span{color:#566064;font-size:.82rem;font-weight:900}.message-heading{flex-wrap:wrap;align-items:center;display:flex}.message-heading strong{color:#566064}.message-heading em{background:var(--dice);color:#5f4721;border:1px solid #8c6b2f47;border-radius:999px;padding:3px 7px;font-size:.72rem;font-style:normal;font-weight:900;line-height:1}.message p{overflow-wrap:anywhere}.message-image{border:1px solid var(--table-ui-border);object-fit:contain;border-radius:8px;width:100%;max-width:100%;max-height:min(58vh,620px);display:block}.message.gm{background:var(--gm);border-left-color:#b8472f}.message.player{background:var(--player);border-left-color:#2c7280}.message.dice{background:var(--muted);border-left-color:#8c6b2f;grid-template-columns:auto minmax(0,1fr);align-items:center;min-height:30px;padding:4px 6px;display:grid}.message.dice span{background:var(--dice);color:#6f5427;text-align:center;border:1px solid #8c6b2f47;border-radius:999px;min-width:42px;padding:4px 8px;font-size:.72rem;line-height:1}.message.dice p{overflow-wrap:anywhere;font-weight:800;line-height:1.25}.message.system{background:var(--surface);color:#4d5559;border-left-color:#6d7478}.message-participant-result{border-left:3px solid #b8472f;margin-top:2px;padding:4px 6px;display:grid}.action-bar{background:var(--surface);border-top:1px solid #d6cdbf;grid-template-columns:minmax(0,1fr) auto auto;padding:6px;display:grid}.action-suggestions{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);align-items:center;padding:6px;display:grid}.action-suggestions strong,.action-suggestions small{color:#4f5457;font-size:.82rem;font-weight:900}.action-suggestion-list{flex-wrap:wrap;min-width:0;display:flex}.action-suggestion-list button{text-align:left;white-space:normal;flex:180px;justify-content:flex-start;min-width:0;min-height:34px}.action-input{min-width:0;display:grid}.action-bar textarea{resize:none;height:56px;min-height:56px;max-height:56px}.action-input small{color:#6d7478;font-weight:800}.voice-input{white-space:nowrap;min-width:0;line-height:1.15;position:relative}.voice-input.unsupported{min-height:56px;padding:4px 14px 18px}.voice-input small{color:#1d1f22;overflow-wrap:anywhere;text-align:center;white-space:normal;min-width:0;font-size:.72rem;font-weight:800;line-height:1.1;position:absolute;bottom:4px;left:8px;right:8px}.completion-panel{background:var(--surface);border-top:1px solid #d6cdbf;grid-template-columns:minmax(0,1fr) minmax(240px,320px);padding:6px;display:grid}.feedback-form{min-width:0;display:grid}.feedback-form textarea{resize:vertical;height:76px;min-height:64px;max-height:140px}.completion-actions{flex-wrap:wrap;align-items:center;display:flex}.completion-actions span{color:#2f6a54;font-weight:900}.story-export-box{align-content:start;padding:6px;display:grid}.story-export-box strong{color:#1f2a2e}.story-export-box small,.story-export-box span{color:#566064;overflow-wrap:anywhere;font-weight:800}.voice-input.active{background:var(--accent);border-color:#2c7280}@media (width<=1100px){.action-bar{grid-template-columns:minmax(0,1fr) auto auto}.action-input{grid-column:1/-1}.action-bar button{min-width:0}}@media (width<=860px){.admin-grid,.table-layout,.create-panel,.join-line,.creator-session-row,.action-bar,.action-assist-setup,.action-suggestions,.completion-panel,.setup-inline-fields,.voice-panel,.voice-settings,.setup-title-row{grid-template-columns:1fr}.creator-session-row .button-like{grid-area:auto/1}.voice-panel-header{flex-direction:column;align-items:stretch}.voice-panel-actions{justify-content:stretch}.voice-panel-actions button:not(.icon-toggle){flex:1}.session-top,.session-top-left{flex-direction:column;align-items:stretch}.session-top-status{justify-content:flex-start;align-items:stretch}.top-map-panel,.top-voice-panel,.spectator-pill,.status-pill,.top-map-button,.voice-control-group{width:100%}.voice-play-button{flex:1}.voice-input{width:100%}.voice-dropdown,.map-dropdown{width:100%;position:static}.creator-dropdown{width:100%;max-height:none;position:static}.session-title-card{flex-wrap:wrap;align-items:stretch}.session-title-card h1{white-space:nowrap;flex:1 1 0}.top-round-box{border-top:1px solid #d6cdbf;border-left:0;flex-wrap:wrap;width:100%;min-height:38px}.session-shell{height:auto;overflow:visible}.table-layout{height:auto}.roster{clip-path:none;max-height:none;overflow:visible}.roster-join-panel{margin:0}.seat-grid,.waiting-scroll-body{scrollbar-gutter:auto;overflow:visible}.session-item{flex-direction:column;align-items:stretch}.log-panel{height:auto;min-height:auto;overflow:visible}.setup-panel,.waiting-panel{overscroll-behavior:auto;scrollbar-gutter:auto;max-height:none;overflow:visible}.setup-actions,.waiting-actions{margin:4px 0 0;padding:0;position:static;bottom:auto}.setup-submit-button,.waiting-start-button{width:100%}.message-list{min-height:280px;max-height:55vh}}
