@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-cyrillic-ext-wght-normal-BCp_3N7R.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-cyrillic-wght-normal-fOt7epNf.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-greek-ext-wght-normal-Bgw4czJT.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-greek-wght-normal-DlT9XTxE.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-math-wght-normal-4a3xuzGk.woff2) format("woff2-variations");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-symbols-wght-normal-B7iHSfaG.woff2) format("woff2-variations");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-vietnamese-wght-normal-_f1XEJpo.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-latin-ext-wght-normal-DYIxWhlt.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-latin-wght-normal-ccAYIvAh.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-thai-thai-wght-normal-CtQSZ1tK.woff2) format("woff2-variations");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-thai-latin-ext-wght-normal-DH1q_yQ5.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-thai-latin-wght-normal-Bi3VDbYN.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--primary: #0b57d0;--on-primary: #ffffff;--primary-container: #d3e3fd;--on-primary-container: #041e49;--secondary-container: #c2e7ff;--on-secondary-container: #001d35;--surface: #ffffff;--surface-1: #f8fafd;--surface-2: #f0f4f9;--surface-3: #e9eef6;--surface-4: #dde3ea;--on-surface: #1f1f1f;--on-surface-variant: #444746;--outline: #747775;--outline-variant: #c4c7c5;--error: #b3261e;--on-error: #ffffff;--error-container: #fce8e6;--on-error-container: #410e0b;--success: #1e8e3e;--warning: #e37400;--inverse-surface: #303030;--inverse-on-surface: #f2f2f2;--scrim: rgba(0, 0, 0, .4);--state-hover: rgba(31, 31, 31, .08);--state-press: rgba(31, 31, 31, .12);--brand-blue: #1a73e8;--live: #d93025;--live-on: #ffffff;--elev-1: 0 1px 2px rgba(60, 64, 67, .3), 0 1px 3px 1px rgba(60, 64, 67, .15);--elev-2: 0 1px 2px rgba(60, 64, 67, .3), 0 2px 6px 2px rgba(60, 64, 67, .15);--elev-3: 0 1px 3px rgba(60, 64, 67, .3), 0 4px 8px 3px rgba(60, 64, 67, .15);--code-surface: #f8fafd;--code-head: #eef2f8;--code-border: #d7dce3;--code-gutter: #9aa0a6;--code-comment: #6e7781;--code-keyword: #cf222e;--code-string: #0a3069;--code-number: #0550ae;--code-literal: #0550ae;--code-type: #953800;--code-function: #6639ba;--code-meta: #116329;--code-punctuation: #57606a;--diff-add-bg: #e6ffec;--diff-add-sign: #116329;--diff-remove-bg: #ffebe9;--diff-remove-sign: #a40e26;--diff-hunk: #6e7781;--diff-hunk-bg: #eef2f8;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 24px;--r-xl: 28px;--r-full: 999px;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-emphasized: cubic-bezier(.05, .7, .1, 1);--dur-short: .15s;--dur-medium: .25s;--dur-long: .4s;font-family:Roboto Variable,Noto Sans Thai Variable,Roboto,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;background:var(--surface-2);color:var(--on-surface)}:root[data-theme=dark]{color-scheme:dark;--primary: #a8c7fa;--on-primary: #062e6f;--primary-container: #0842a0;--on-primary-container: #d3e3fd;--secondary-container: #004a77;--on-secondary-container: #c2e7ff;--surface: #131314;--surface-1: #1b1b1b;--surface-2: #1e1f20;--surface-3: #282a2c;--surface-4: #333537;--on-surface: #e3e3e3;--on-surface-variant: #c4c7c5;--outline: #8e918f;--outline-variant: #444746;--error: #f2b8b5;--on-error: #601410;--error-container: #601410;--on-error-container: #f9dedc;--success: #6dd58c;--warning: #fdd663;--inverse-surface: #e3e3e3;--inverse-on-surface: #303030;--scrim: rgba(0, 0, 0, .6);--state-hover: rgba(227, 227, 227, .08);--state-press: rgba(227, 227, 227, .12);--brand-blue: #8ab4f8;--live: #f2b8b5;--live-on: #601410;--elev-1: 0 1px 2px rgba(0, 0, 0, .5), 0 1px 3px 1px rgba(0, 0, 0, .3);--elev-2: 0 1px 2px rgba(0, 0, 0, .5), 0 2px 6px 2px rgba(0, 0, 0, .3);--elev-3: 0 1px 3px rgba(0, 0, 0, .5), 0 4px 8px 3px rgba(0, 0, 0, .3);--code-surface: #0f1114;--code-head: #1b1d21;--code-border: #33363b;--code-gutter: #6e7681;--code-comment: #8b949e;--code-keyword: #ff7b72;--code-string: #a5d6ff;--code-number: #79c0ff;--code-literal: #79c0ff;--code-type: #ffa657;--code-function: #d2a8ff;--code-meta: #7ee787;--code-punctuation: #a2aab4;--diff-add-bg: rgba(46, 160, 67, .18);--diff-add-sign: #7ee787;--diff-remove-bg: rgba(248, 81, 73, .18);--diff-remove-sign: #ffa198;--diff-hunk: #8b949e;--diff-hunk-bg: #1b1d21}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--surface-2);color:var(--on-surface);min-height:100dvh;min-width:320px;overflow:hidden}button,input,textarea{font:inherit}button{color:inherit}:where(button,a,[tabindex]):focus-visible{outline:3px solid var(--primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon{display:block;fill:currentColor;height:20px;width:20px}.brand-mark{display:block;height:32px;width:32px}.brand-mark-lg{height:48px;width:48px}.brand-bubble{fill:var(--brand-blue)}.filled-button,.tonal-button{align-items:center;border:0;border-radius:var(--r-full);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:8px;justify-content:center;letter-spacing:.01em;min-height:40px;padding:0 24px;transition:box-shadow var(--dur-short) var(--ease-standard),filter var(--dur-short) var(--ease-standard);white-space:nowrap}.filled-button{background:var(--primary);color:var(--on-primary)}.tonal-button{background:var(--secondary-container);color:var(--on-secondary-container)}.filled-button:hover,.tonal-button:hover{box-shadow:var(--elev-1);filter:brightness(1.06)}.filled-button:active,.tonal-button:active{box-shadow:none;filter:brightness(.96)}.text-button{align-items:center;background:transparent;border:0;border-radius:var(--r-full);color:var(--primary);cursor:pointer;display:inline-flex;font-size:.8125rem;font-weight:600;gap:6px;min-height:36px;padding:0 12px;transition:background var(--dur-short) var(--ease-standard);white-space:nowrap}.text-button:hover{background:color-mix(in srgb,var(--primary) 10%,transparent)}.text-button.is-danger{color:var(--error)}.text-button.is-danger:hover{background:color-mix(in srgb,var(--error) 12%,transparent)}.text-button .icon{height:18px;width:18px}.danger-button{background:var(--error);border:0;border-radius:var(--r-full);color:var(--on-error);cursor:pointer;font-size:.875rem;font-weight:600;min-height:40px;padding:0 24px;white-space:nowrap}.danger-button:hover{filter:brightness(1.08)}.icon-button{align-items:center;background:transparent;border:0;border-radius:var(--r-full);color:var(--on-surface-variant);cursor:pointer;display:inline-flex;flex:none;height:40px;justify-content:center;transition:background var(--dur-short) var(--ease-standard),color var(--dur-short) var(--ease-standard);width:40px}.icon-button:hover{background:var(--state-hover);color:var(--on-surface)}.icon-button:active{background:var(--state-press)}.round-button{align-items:center;border:0;border-radius:var(--r-full);cursor:pointer;display:inline-flex;height:52px;justify-content:center;transition:box-shadow var(--dur-short) var(--ease-standard),filter var(--dur-short) var(--ease-standard);width:52px}.round-button .icon{height:24px;width:24px}.round-button.is-tonal{background:var(--secondary-container);color:var(--on-secondary-container)}.round-button.is-muted{background:var(--error-container);color:var(--on-error-container)}.round-button.is-danger,.round-button.is-live{background:var(--live);color:var(--live-on)}.round-button.is-live{animation:live-pulse 2.2s var(--ease-standard) infinite}.round-button:hover{box-shadow:var(--elev-2);filter:brightness(1.05)}@keyframes live-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--live) 45%,transparent)}70%{box-shadow:0 0 0 12px transparent}to{box-shadow:0 0 0 0 transparent}}button:disabled{box-shadow:none;cursor:not-allowed;filter:none;opacity:.38}.field{position:relative}.field input{background:transparent;border:1px solid var(--outline);border-radius:var(--r-xs);color:var(--on-surface);height:56px;padding:0 16px;transition:border-color var(--dur-short) var(--ease-standard),box-shadow var(--dur-short) var(--ease-standard);width:100%}.field input:hover{border-color:var(--on-surface)}.field input:focus{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);outline:0}.field label{background:var(--surface);color:var(--on-surface-variant);left:12px;padding:0 4px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:transform var(--dur-short) var(--ease-standard),font-size var(--dur-short) var(--ease-standard),color var(--dur-short) var(--ease-standard)}.field input:focus+label,.field input:not(:placeholder-shown)+label{font-size:.75rem;top:0;transform:translateY(-50%) scale(1)}.field input:focus+label{color:var(--primary)}.field-with-action input{padding-right:52px}.field-action{position:absolute;right:6px;top:8px}.field-support{color:var(--on-surface-variant);font-size:.75rem;margin:6px 0 0 16px}.field-error,.voice-error,.splash-error{align-items:center;color:var(--error);display:flex;font-size:.8125rem;gap:8px;margin:0}.field-error .icon,.voice-error .icon,.splash-error .icon{flex:none;height:18px;width:18px}.splash{align-items:center;background:var(--surface-2);display:flex;flex-direction:column;gap:28px;justify-content:center;min-height:100dvh;padding:24px}.spinner-wrap{align-items:center;color:var(--on-surface-variant);display:flex;flex-direction:column;font-size:.875rem;gap:16px}.spinner{animation:spinner-rotate 1.4s linear infinite;height:44px;width:44px}.spinner circle{animation:spinner-dash 1.4s ease-in-out infinite,spinner-hue 5.6s linear infinite;fill:none;stroke-linecap:round;stroke-width:4}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes spinner-dash{0%{stroke-dasharray:1 120;stroke-dashoffset:0}50%{stroke-dasharray:90 120;stroke-dashoffset:-28}to{stroke-dasharray:90 120;stroke-dashoffset:-118}}@keyframes spinner-hue{0%,24%{stroke:#4285f4}25%,49%{stroke:#ea4335}50%,74%{stroke:#fbbc04}75%,to{stroke:#34a853}}.login-page{align-items:center;background:radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--primary) 12%,transparent),transparent 42%),radial-gradient(circle at 88% 92%,color-mix(in srgb,var(--brand-blue) 10%,transparent),transparent 42%),var(--surface-2);display:flex;justify-content:center;min-height:100dvh;overflow-y:auto;padding:24px}.login-card{align-self:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-xl);box-shadow:var(--elev-1);max-width:448px;padding:40px;width:100%}.auth-eyebrow{color:var(--primary);display:block;font-size:.6875rem;font-weight:700;letter-spacing:.12em;margin-top:24px;text-transform:uppercase}.login-card h1{font-size:1.75rem;font-weight:400;letter-spacing:0;margin:24px 0 8px}.auth-eyebrow+h1{margin-top:6px}.login-subtitle code{background:var(--surface-2);border-radius:4px;font-size:.8125rem;padding:1px 5px}.login-subtitle{color:var(--on-surface-variant);font-size:.9375rem;line-height:1.6;margin:0 0 32px}.login-card form{display:grid;gap:20px}.login-submit{margin-top:4px;min-height:48px;width:100%}.login-footnote{align-items:center;border-top:1px solid var(--outline-variant);color:var(--on-surface-variant);display:flex;font-size:.75rem;gap:8px;margin:32px 0 0;padding-top:20px}.login-footnote .icon{flex:none;height:16px;width:16px}.app-shell{background:var(--surface-2);display:grid;grid-template-columns:280px minmax(0,1fr) 320px;height:100dvh;overflow:hidden}.nav-scrim{display:none}.nav-drawer{background:var(--surface-2);display:flex;flex-direction:column;gap:4px;min-width:0;padding:12px 12px 12px 8px}.workspace{align-items:center;display:flex;gap:8px;padding:8px 4px 8px 12px}.workspace .brand-mark{flex:none;margin-right:4px}.workspace-text{flex:1}.workspace-text,.account-text{display:grid;min-width:0}.workspace-text strong{font-size:1rem;font-weight:500}.account-text strong{font-size:.875rem;font-weight:500}.workspace-text strong,.account-text strong,.account-text small,.member-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-text small,.account-text small{align-items:center;color:var(--on-surface-variant);display:flex;font-size:.75rem;gap:6px;margin-top:2px}.presence-dot{background:var(--success);border-radius:50%;flex:none;height:8px;width:8px}.nav-close{display:none;margin-left:auto}.nav-label-row{align-items:center;display:flex;justify-content:space-between;padding-right:4px}.nav-label{color:var(--on-surface-variant);font-size:.6875rem;font-weight:500;letter-spacing:.08em;margin:12px 0 4px;padding:0 16px;text-transform:uppercase}.nav-list{display:grid;gap:2px;overflow-y:auto}.nav-item{align-items:center;background:transparent;border:0;border-radius:var(--r-full);color:var(--on-surface-variant);cursor:pointer;display:flex;font-size:.875rem;gap:12px;min-height:40px;padding:0 16px;text-align:left;transition:background var(--dur-short) var(--ease-standard),color var(--dur-short) var(--ease-standard);width:100%}.nav-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item>span:first-of-type{flex:1;min-width:0}.nav-item .nav-voice{align-items:center;background:var(--surface-2);border-radius:var(--r-xs);color:var(--on-surface-variant);display:inline-flex;flex:none;font-size:.6875rem;font-weight:600;gap:4px;padding:2px 6px}.nav-item .nav-voice .icon{height:14px;width:14px}.nav-item.is-active .nav-voice{background:var(--surface);color:var(--on-primary-container)}.nav-item .icon{flex:none;height:18px;width:18px}.nav-item:hover{background:var(--state-hover);color:var(--on-surface)}.nav-item.is-active{background:var(--primary-container);color:var(--on-primary-container);font-weight:600}.account-card{align-items:center;background:var(--surface);border-radius:var(--r-md);display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto auto;margin-top:auto;padding:8px 8px 8px 12px}.avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex:none;font-weight:500;justify-content:center;line-height:1}.avatar-sm{font-size:.6875rem;height:24px;width:24px}.avatar-md{font-size:.8125rem;height:32px;width:32px}.avatar-lg{font-size:.9375rem;height:36px;width:36px}.room{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;margin:12px 0;min-width:0;overflow:hidden;position:relative}.room-loading{align-items:center;display:flex;justify-content:center}.room-bar{align-items:center;border-bottom:1px solid var(--outline-variant);display:flex;gap:12px;min-height:64px;padding:10px 16px}.room-title{flex:1;min-width:0}.room-title h1{align-items:center;display:flex;font-size:1.125rem;font-weight:500;gap:6px;margin:0;min-width:0}.room-title h1 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-title h1 .icon{color:var(--on-surface-variant);flex:none;height:18px;width:18px}.room-title p{color:var(--on-surface-variant);font-size:.75rem;margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-trigger{display:none}.status-chip{align-items:center;background:var(--surface-2);border-radius:var(--r-xs);color:var(--on-surface-variant);display:inline-flex;flex:none;font-size:.75rem;gap:6px;padding:5px 10px}.status-chip .icon{height:16px;width:16px}.status-dot{background:var(--outline);border-radius:50%;height:8px;width:8px}.status-chip.live .status-dot{background:var(--success)}.status-chip.connecting .status-dot{background:var(--warning)}.status-chip.offline .status-dot{background:var(--error)}.message-scroll{overflow-y:auto;padding:8px 8px 12px;scrollbar-color:var(--outline-variant) transparent;scrollbar-width:thin}.message-list{padding:0 8px}.day-divider{align-items:center;display:flex;gap:12px;margin:16px 0 12px}.day-divider:before,.day-divider:after{background:var(--outline-variant);content:"";flex:1;height:1px}.day-divider span{background:var(--surface-2);border-radius:var(--r-full);color:var(--on-surface-variant);font-size:.75rem;font-weight:500;padding:4px 12px}.message-group{border-radius:var(--r-sm);display:grid;gap:12px;grid-template-columns:36px minmax(0,1fr);padding:6px 8px;transition:background var(--dur-short) var(--ease-standard)}.message-group:hover{background:var(--surface-1)}.message-body{min-width:0}.message-body header{align-items:baseline;display:flex;gap:8px}.message-body strong{font-size:.875rem;font-weight:500}.message-body time{color:var(--on-surface-variant);font-size:.6875rem}.message-row{display:grid;gap:6px}.message-body p{color:var(--on-surface);font-size:.9375rem;line-height:1.55;margin:2px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.room-welcome{margin:min(18vh,140px) auto 0;max-width:420px;padding:0 16px;text-align:center}.welcome-badge{align-items:center;background:var(--primary-container);border-radius:50%;color:var(--on-primary-container);display:inline-flex;height:64px;justify-content:center;width:64px}.welcome-badge .icon{height:30px;width:30px}.room-welcome h2{font-size:1.375rem;font-weight:400;margin:20px 0 8px}.room-welcome p{color:var(--on-surface-variant);font-size:.875rem;line-height:1.6;margin:0}.skeleton-list{display:grid;gap:20px;padding:20px 8px}.skeleton-row{display:grid;gap:12px;grid-template-columns:36px minmax(0,1fr)}.skeleton-avatar,.skeleton-line{animation:skeleton-pulse 1.6s var(--ease-standard) infinite;background:var(--surface-3);display:block}.skeleton-avatar{border-radius:50%;height:36px;width:36px}.skeleton-lines{display:grid;gap:8px}.skeleton-line{border-radius:var(--r-xs);height:12px;width:82%}.skeleton-line.short{width:26%}@keyframes skeleton-pulse{50%{opacity:.45}}.jump-latest{align-items:center;background:var(--primary);border:0;border-radius:var(--r-full);bottom:92px;box-shadow:var(--elev-2);color:var(--on-primary);cursor:pointer;display:inline-flex;font-size:.8125rem;font-weight:600;gap:6px;left:50%;padding:8px 16px;position:absolute;transform:translate(-50%);z-index:3}.jump-latest .icon{height:18px;width:18px}.attachment-list{display:flex;flex-wrap:wrap;gap:8px}.attachment-image{border-radius:var(--r-sm);display:block;line-height:0;overflow:hidden}.attachment-image img{background:var(--surface-2);display:block;max-height:280px;max-width:min(100%,420px);object-fit:contain}.attachment-image:hover{box-shadow:var(--elev-1)}.attachment-chip{align-items:center;background:var(--surface-2);border:1px solid var(--outline-variant);border-radius:var(--r-sm);color:inherit;display:inline-flex;gap:10px;max-width:100%;padding:8px 12px;text-decoration:none}.attachment-chip:hover{background:var(--surface-3)}.attachment-chip .icon{color:var(--on-surface-variant);flex:none}.attachment-chip-text{display:grid;min-width:0}.attachment-chip-text strong{font-size:.8125rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip-text small{color:var(--on-surface-variant);font-size:.6875rem}.composer-attachments{display:grid;gap:6px;grid-column:1 / -1;list-style:none;margin:0;padding:4px 4px 0}.attachment-pending{align-items:center;background:var(--surface);border-radius:var(--r-sm);display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;padding:6px 6px 6px 8px}.attachment-pending.is-error{background:var(--error-container);color:var(--on-error-container)}.attachment-thumb{border-radius:var(--r-xs);flex:none;height:36px;object-fit:cover;width:36px}.attachment-thumb.is-generic{align-items:center;background:var(--surface-3);color:var(--on-surface-variant);display:flex;justify-content:center}.attachment-pending-text{display:grid;gap:4px;min-width:0}.attachment-pending-text strong{font-size:.8125rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-pending-text small{color:var(--on-surface-variant);font-size:.6875rem}.is-error .attachment-pending-text small{color:inherit}.attachment-progress{background:var(--surface-3);border-radius:var(--r-full);display:block;height:4px;overflow:hidden}.attachment-progress span{background:var(--primary);display:block;height:100%;transition:width var(--dur-short) var(--ease-standard)}.inline-code{background:var(--surface-3);border-radius:var(--r-xs);font-family:var(--mono);font-size:.8125rem;padding:1px 6px;white-space:pre-wrap}.code-block{background:var(--code-surface);border:1px solid var(--code-border);border-radius:var(--r-xs);margin-top:6px;min-width:0;overflow:hidden}.code-block-head{align-items:center;background:var(--code-head);border-bottom:1px solid var(--code-border);display:flex;gap:8px;padding:4px 6px 4px 12px}.code-lang{color:var(--on-surface-variant);font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.diff-stat{display:flex;font-family:var(--mono);font-size:.6875rem;font-weight:600;gap:6px}.diff-stat-add{color:var(--diff-add-sign)}.diff-stat-remove{color:var(--diff-remove-sign)}.code-copy{background:none;border:0;border-radius:var(--r-xs);color:var(--on-surface-variant);cursor:pointer;display:inline-flex;margin-left:auto;padding:5px;transition:background var(--dur-short) var(--ease-standard)}.code-copy:hover{background:var(--state-hover)}.code-copy .icon{height:16px;width:16px}.code-copy.is-failed{color:var(--error)}.code-scroll{font-family:var(--mono);font-size:.8125rem;line-height:1.55;margin:0;overflow-x:auto;padding:8px 0;scrollbar-color:var(--outline-variant) transparent;scrollbar-width:thin;tab-size:2}.code-scroll code{display:block;min-width:max-content}.code-line{display:flex;gap:12px;min-height:1.55em;padding-right:12px}.code-line-no{color:var(--code-gutter);flex:none;min-width:2.5ch;padding-left:12px;text-align:right;-webkit-user-select:none;user-select:none}.code-line-no.is-new{padding-left:8px}.code-line-text{color:var(--on-surface);white-space:pre}.tok-comment{color:var(--code-comment);font-style:italic}.tok-keyword{color:var(--code-keyword)}.tok-string{color:var(--code-string)}.tok-number{color:var(--code-number)}.tok-literal{color:var(--code-literal)}.tok-type{color:var(--code-type)}.tok-function{color:var(--code-function)}.tok-meta{color:var(--code-meta)}.tok-punctuation{color:var(--code-punctuation)}.diff-sign{flex:none;text-align:center;white-space:pre;width:1ch}.diff-add{background:var(--diff-add-bg)}.diff-add .diff-sign{color:var(--diff-add-sign)}.diff-remove{background:var(--diff-remove-bg)}.diff-remove .diff-sign{color:var(--diff-remove-sign)}.diff-hunk{background:var(--diff-hunk-bg);color:var(--diff-hunk);margin:4px 0}.diff-hunk .code-line-text,.diff-meta .code-line-text{color:var(--diff-hunk)}.diff-meta .code-line-text{font-style:italic}.code-share{background:var(--code-surface);border:1px solid var(--code-border);border-left:3px solid var(--outline-variant);border-radius:var(--r-xs);margin-top:6px;min-width:0;overflow:hidden}.code-share.tone-live{border-left-color:var(--success)}.code-share.tone-idle{border-left-color:var(--warning)}.code-share.tone-stopped{border-left-color:var(--outline)}.code-share-head{align-items:center;background:var(--code-head);border-bottom:1px solid var(--code-border);display:flex;flex-wrap:wrap;gap:8px;padding:6px 12px}.code-share-head .icon{color:var(--on-surface-variant);flex:none;height:16px;width:16px}.code-share-path{font-family:var(--mono);font-size:.8125rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-share-meta{color:var(--on-surface-variant);font-size:.6875rem;margin-left:auto}.code-share-body{max-height:420px;overflow-y:auto}.code-share-error,.code-share-truncated{color:var(--on-surface-variant);font-size:.75rem;margin:0;padding:10px 12px}.code-share-truncated{border-top:1px solid var(--code-border)}.code-line.is-changed{animation:code-line-flash 1.4s var(--ease-standard);background:var(--diff-add-bg)}@keyframes code-line-flash{0%{background:var(--diff-add-bg)}to{background:transparent}}.room.is-drop-target:after{align-items:center;background:color-mix(in srgb,var(--primary) 12%,transparent);border:2px dashed var(--primary);border-radius:var(--r-md);color:var(--primary);content:"วางไฟล์เพื่อแนบ";display:flex;font-size:1rem;font-weight:600;inset:8px;justify-content:center;pointer-events:none;position:absolute;z-index:4}.composer{align-items:end;background:var(--surface-2);border:1px solid transparent;border-radius:var(--r-xl);display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;margin:8px 16px 16px;padding:6px 6px 6px 8px;transition:background var(--dur-short) var(--ease-standard),border-color var(--dur-short) var(--ease-standard),box-shadow var(--dur-short) var(--ease-standard)}.composer:focus-within{background:var(--surface);border-color:var(--outline-variant);box-shadow:var(--elev-1)}.composer textarea{background:transparent;border:0;color:var(--on-surface);font-size:.9375rem;line-height:1.5;max-height:168px;outline:0;padding:12px 0;resize:none}.composer textarea::placeholder{color:var(--on-surface-variant)}.composer-attach{align-self:end;margin-bottom:4px}.send-fab{align-items:center;background:var(--primary);border:0;border-radius:50%;color:var(--on-primary);cursor:pointer;display:flex;height:44px;justify-content:center;transition:background var(--dur-short) var(--ease-standard),box-shadow var(--dur-short) var(--ease-standard);width:44px}.send-fab .icon{height:22px;width:22px}.send-fab:hover:not(:disabled){box-shadow:var(--elev-2)}.send-fab:disabled{background:var(--surface-4);color:var(--on-surface-variant);opacity:1}.voice-panel{background:transparent;display:flex;flex-direction:column;gap:12px;min-width:0;padding:12px}.voice-panel>.spinner-wrap{margin:auto}.voice-bar{align-items:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);display:flex;gap:12px;justify-content:space-between;padding:14px 16px}.voice-title h2{font-size:1rem;font-weight:500;margin:0}.voice-title p{color:var(--on-surface-variant);font-size:.75rem;margin:2px 0 0}.voice-empty{align-items:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);display:flex;flex:1;flex-direction:column;gap:16px;justify-content:center;padding:28px 24px;text-align:center}.voice-badge{align-items:center;background:var(--primary-container);border-radius:50%;color:var(--on-primary-container);display:flex;height:72px;justify-content:center;width:72px}.voice-badge .icon{height:34px;width:34px}.voice-empty p{color:var(--on-surface-variant);font-size:.8125rem;line-height:1.6;margin:0;max-width:240px}.voice-members{align-content:start;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);display:grid;flex:0 1 auto;gap:2px;overflow-y:auto;padding:8px}.voice-member{align-items:center;border-radius:var(--r-xs);display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;min-height:48px;padding:0 8px}.voice-member.is-speaking{background:var(--primary-container);color:var(--on-primary-container)}.member-name{font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-muted{color:var(--on-surface-variant);height:18px;width:18px}.equalizer{align-items:center;display:flex;gap:2px;height:16px}.equalizer i{animation:equalize .9s var(--ease-standard) infinite;background:currentColor;border-radius:2px;display:block;height:100%;width:3px}.equalizer i:nth-child(2){animation-delay:.15s}.equalizer i:nth-child(3){animation-delay:.3s}@keyframes equalize{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}.voice-cta{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);display:flex;justify-content:center;margin-top:auto;padding:14px}.voice-controls{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);display:flex;gap:16px;justify-content:center;margin-top:auto;padding:14px}.voice-error{background:var(--error-container);border-radius:var(--r-sm);color:var(--on-error-container);padding:10px 12px}.remote-audio{display:none}.live-badge{background:var(--live);border-radius:4px;color:var(--live-on);font-size:.625rem;font-weight:700;letter-spacing:.08em;padding:2px 6px}.live-strip{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);padding:12px}.live-label{align-items:center;color:var(--on-surface-variant);display:flex;font-size:.75rem;font-weight:500;gap:8px;margin:0 0 10px}.live-cards{display:grid;gap:8px}.live-card{aspect-ratio:16 / 9;background:#0b0b0c;border:0;border-radius:var(--r-sm);cursor:pointer;overflow:hidden;padding:0;position:relative;width:100%}.live-thumb{display:block;height:100%;object-fit:contain;width:100%}.live-card-name{background:linear-gradient(to top,rgba(0,0,0,.78),transparent);bottom:0;color:#fff;font-size:.75rem;left:0;overflow:hidden;padding:18px 10px 8px;position:absolute;right:0;text-align:left;text-overflow:ellipsis;white-space:nowrap}.live-card-cta{align-items:center;background:#0000008c;color:#fff;display:flex;font-size:.8125rem;font-weight:600;gap:8px;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity var(--dur-short) var(--ease-standard)}.live-card:hover .live-card-cta,.live-card:focus-visible .live-card-cta{opacity:1}.member-live{color:var(--live);flex:none;height:16px;width:16px}.theater{align-items:center;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:40}.theater-scrim{background:#000000b8;border:0;cursor:pointer;inset:0;padding:0;position:absolute}.theater-frame{background:#0b0b0c;border-radius:var(--r-md);box-shadow:var(--elev-3);display:flex;flex-direction:column;max-height:min(88dvh,100%);overflow:hidden;position:relative;width:min(1120px,100%)}.theater-bar{align-items:center;background:#17181a;color:#e3e3e3;display:flex;gap:10px;padding:8px 8px 8px 14px}.theater-bar strong{flex:1;font-size:.875rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theater-bar .icon-button{color:#c4c7c5}.theater-bar .icon-button:hover{background:#ffffff1f;color:#fff}.theater-video{background:#000;display:block;flex:1;min-height:0;object-fit:contain;width:100%}.theater-frame:fullscreen{border-radius:0;height:100%;max-height:none;width:100%}.room.has-stage{grid-template-rows:auto minmax(0,var(--stage-h, clamp(260px, 46dvh, 520px))) minmax(0,1fr) auto}.game-stage{background:var(--surface-1);border-bottom:1px solid var(--outline-variant);display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;position:relative}.game-stage.is-loading{align-items:center;display:flex;justify-content:center}.game-stage.is-stale{opacity:.72}.game-bar{align-items:center;border-bottom:1px solid var(--outline-variant);display:flex;gap:10px;min-height:52px;padding:6px 6px 6px 16px}.game-bar h2{align-items:center;display:flex;font-size:.9375rem;font-weight:500;gap:8px;margin:0}.game-bar h2 .icon{color:var(--on-surface-variant);flex:none;height:18px;width:18px}.game-turn{color:var(--on-surface-variant);flex:1;font-size:.75rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-turn.is-stale{color:var(--warning)}.game-body{align-content:center;display:grid;gap:20px;grid-auto-flow:column;justify-content:center;min-height:0;overflow:auto;padding:14px 16px}.game-side{align-content:start;display:grid;gap:10px;min-width:180px}.game-lobby{display:grid;gap:12px;justify-items:center}.game-footer{border-top:1px solid var(--outline-variant);display:flex;justify-content:flex-end;padding:8px 12px}.game-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.game-hint{color:var(--on-surface-variant);font-size:.8125rem;line-height:1.6;margin:0;max-width:320px;text-align:center}.game-result{animation:game-result-in var(--dur-medium) var(--ease-emphasized);background:var(--primary-container);border-radius:var(--r-md);color:var(--on-primary-container);font-size:1rem;font-weight:600;margin:0;padding:12px 20px;text-align:center}.game-result.is-loss{background:var(--surface-3);color:var(--on-surface-variant)}@keyframes game-result-in{0%{opacity:0;transform:translateY(10px) scale(.96)}}.board{--cell: clamp(44px, 12vmin, 84px);background:var(--surface-3);border-radius:var(--r-md);display:grid;gap:6px;padding:6px}.board.is-7x6{--cell: clamp(34px, 8vmin, 62px)}.cell{align-items:center;background:var(--surface);border:0;border-radius:var(--r-xs);color:var(--on-surface);cursor:pointer;display:flex;font-size:calc(var(--cell) * .46);font-weight:500;height:var(--cell);justify-content:center;line-height:1;transition:background var(--dur-short) var(--ease-standard),transform var(--dur-short) var(--ease-emphasized);width:var(--cell)}.board.is-7x6 .cell{border-radius:50%}.cell:hover:not(:disabled){background:var(--surface-2)}.cell:active:not(:disabled){transform:scale(.94)}.cell:disabled{cursor:default;opacity:1}.cell.is-p1{background:var(--primary-container);color:var(--on-primary-container)}.cell.is-p2{background:var(--secondary-container);color:var(--on-secondary-container)}.cell.is-ghost{background:var(--surface-2);color:var(--outline)}.cell.is-win{animation:cell-pop var(--dur-long) var(--ease-emphasized) both;box-shadow:inset 0 0 0 3px var(--success)}@keyframes cell-pop{0%,to{transform:scale(1)}45%{transform:scale(1.16)}}.scoreboard,.seat-list{align-content:start;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);display:grid;gap:2px;list-style:none;margin:0;min-width:190px;padding:6px}.score-row,.seat-row{align-items:center;border-radius:var(--r-xs);display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;min-height:38px;padding:0 8px;transition:background var(--dur-short) var(--ease-standard)}.score-row.is-you,.seat-row.is-ready{background:var(--surface-2)}.score-row.is-turn{background:var(--primary-container);color:var(--on-primary-container)}.score-glyph{font-size:.9375rem;font-weight:600}.score-name{font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-value{font-size:.875rem;font-variant-numeric:tabular-nums;font-weight:600}.seat-tag{color:var(--on-surface-variant);font-size:.6875rem}.seat-row.is-ready .seat-tag{color:var(--success)}.seat-bot{background:var(--surface-3);border-radius:999px;color:var(--on-surface-variant);font-size:.625rem;font-weight:600;margin-inline-start:6px;padding:1px 6px}.icon-button.is-small{block-size:32px;inline-size:32px}.team-status{color:var(--on-surface-variant);font-size:.8125rem;margin-block:8px 12px}.team-status.is-live{color:var(--success)}.game-picker-section{display:grid;gap:8px}.game-picker-section h3{color:var(--on-surface-variant);font-size:.75rem;font-weight:600;letter-spacing:.04em;margin:0;text-transform:uppercase}.game-picker{display:grid;gap:8px;list-style:none;margin:0;padding:0}.game-picker li{align-items:center;background:var(--surface-1);border:1px solid var(--outline-variant);border-radius:var(--r-md);display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr) auto;padding:10px 12px}.game-picker-badge{align-items:center;background:var(--primary-container);border-radius:var(--r-sm);color:var(--on-primary-container);display:flex;height:38px;justify-content:center;width:38px}.game-picker-text{display:grid;gap:2px;min-width:0}.game-picker-text strong{font-size:.875rem;font-weight:500}.game-picker-text small{color:var(--on-surface-variant);font-size:.75rem}.countdown-ring{display:block;flex:none;height:44px;position:relative;width:44px}.countdown-ring svg{display:block;height:100%;transform:rotate(-90deg);width:100%}.countdown-ring circle{fill:none;stroke-width:4}.countdown-track{stroke:var(--surface-4)}.countdown-progress{animation:countdown-sweep var(--total, 20s) linear forwards;animation-delay:calc(var(--elapsed, 0) * -1ms);stroke:var(--primary);stroke-dasharray:125.66;stroke-linecap:round}.countdown-ring.is-urgent .countdown-progress{stroke:var(--error)}.countdown-ring.is-urgent .countdown-value{color:var(--error)}@keyframes countdown-sweep{0%{stroke-dashoffset:0}to{stroke-dashoffset:125.66}}.countdown-value{align-items:center;display:flex;font-size:.8125rem;font-variant-numeric:tabular-nums;font-weight:600;inset:0;justify-content:center;position:absolute}.quiz-main{display:grid;gap:14px;justify-items:center;max-width:560px}.quiz-head{align-items:center;display:flex;gap:14px;justify-content:center}.quiz-round{color:var(--on-surface-variant);font-size:.75rem;font-weight:600;letter-spacing:.04em}.quiz-prompt{font-size:1.125rem;line-height:1.5;margin:0;max-width:520px;text-align:center}.answer-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));max-width:520px;width:100%}.answer-button{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-sm);color:var(--on-surface);cursor:pointer;font-size:.9375rem;min-height:52px;padding:10px 16px;text-align:left;transition:background var(--dur-short) var(--ease-standard),border-color var(--dur-short) var(--ease-standard)}.answer-button:hover:not(:disabled){background:var(--surface-2);border-color:var(--outline)}.answer-button.is-picked{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.answer-button.is-right{background:color-mix(in srgb,var(--success) 18%,var(--surface));border-color:var(--success)}.answer-button.is-wrong{background:var(--error-container);border-color:var(--error);color:var(--on-error-container)}.answer-button:disabled{cursor:default;opacity:1}.score-delta{animation:score-bump var(--dur-long) var(--ease-emphasized);color:var(--success);font-size:.6875rem;font-weight:600}.score-flagged{color:var(--success);font-size:.75rem;min-width:12px}@keyframes score-bump{0%{opacity:0;transform:translateY(8px)}}.reaction-pad{align-items:center;background:var(--surface-3);border:2px solid var(--outline-variant);border-radius:var(--r-lg);color:var(--on-surface-variant);cursor:pointer;display:grid;gap:6px;justify-items:center;min-height:168px;padding:24px 32px;transition:background var(--dur-short) var(--ease-standard),border-color var(--dur-short) var(--ease-standard),transform var(--dur-short) var(--ease-emphasized);width:min(360px,100%)}.reaction-pad-label{font-size:1.5rem;font-weight:600}.reaction-pad small{font-size:.75rem}.reaction-pad.is-arming{background:var(--surface-4)}.reaction-pad.is-armed{background:var(--success);border-color:var(--success);color:#0b1f12;transform:scale(1.02)}.reaction-pad.is-armed .reaction-pad-label{font-size:2rem}.reaction-pad.is-done{background:var(--surface-2)}.reaction-pad:disabled{cursor:default;opacity:1}.reaction-results{display:grid;gap:4px;list-style:none;margin:0;padding:0;width:min(360px,100%)}.reaction-results li{align-items:center;border-radius:var(--r-xs);display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto auto;padding:4px 8px}.reaction-results li:first-child{background:var(--primary-container);color:var(--on-primary-container)}.draw-main{display:grid;gap:10px;justify-items:center;max-width:640px;min-width:0;width:100%}.draw-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.draw-word{background:var(--secondary-container);border-radius:var(--r-full);color:var(--on-secondary-container);font-size:.9375rem;font-weight:600;letter-spacing:.02em;padding:6px 16px}.draw-word.is-hidden{background:var(--surface-3);color:var(--on-surface-variant);letter-spacing:.18em}.draw-clock{font-size:.8125rem;font-variant-numeric:tabular-nums;font-weight:600}.draw-clock.is-urgent{color:var(--error)}.draw-wrap{aspect-ratio:4 / 3;background:#fff;border:1px solid var(--outline-variant);border-radius:var(--r-sm);max-height:100%;max-width:640px;min-height:0;overflow:hidden;position:relative;width:100%}:root[data-theme=dark] .draw-wrap{border-color:var(--outline)}.draw-layer{display:block;height:100%;inset:0;position:absolute;width:100%}.draw-wrap.is-drawer .draw-layer{cursor:crosshair;touch-action:none}.draw-toolbar{align-items:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-full);display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:6px 10px}.swatches,.brushes{display:flex;gap:6px}.swatch{border:2px solid transparent;border-radius:50%;box-shadow:inset 0 0 0 1px var(--state-press);cursor:pointer;height:26px;padding:0;transition:transform var(--dur-short) var(--ease-emphasized);width:26px}.swatch:hover{transform:scale(1.12)}.swatch.is-active{border-color:var(--on-surface)}.brush{align-items:center;background:var(--surface-2);border:0;border-radius:var(--r-full);color:var(--on-surface-variant);cursor:pointer;display:flex;height:30px;justify-content:center;width:30px}.brush.is-active{background:var(--secondary-container);color:var(--on-secondary-container)}.brush i{background:currentColor;border-radius:50%;display:block}.wolf-main{display:grid;gap:12px;justify-items:center;max-width:340px}.wolf-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.phase-banner{align-items:center;border-radius:var(--r-full);display:inline-flex;font-size:.75rem;font-weight:600;gap:6px;padding:6px 14px}.phase-banner .icon{height:16px;width:16px}.phase-banner.is-night{background:var(--inverse-surface);color:var(--inverse-on-surface)}.phase-banner.is-day{background:var(--secondary-container);color:var(--on-secondary-container)}.role-card{background:linear-gradient(140deg,var(--surface-3),var(--surface));border:1px solid var(--outline-variant);border-radius:var(--r-lg);box-shadow:var(--elev-2);display:grid;gap:8px;justify-items:center;padding:18px 22px;text-align:center;width:min(280px,100%)}.role-emblem{align-items:center;background:var(--primary-container);border-radius:50%;color:var(--on-primary-container);display:flex;height:56px;justify-content:center;width:56px}.role-emblem .icon{height:28px;width:28px}.role-card strong{display:block;font-size:1.125rem;font-weight:500}.role-card p{color:var(--on-surface-variant);font-size:.8125rem;line-height:1.6;margin:4px 0 0}.role-secret{filter:blur(10px);transition:filter var(--dur-medium) var(--ease-standard);-webkit-user-select:none;user-select:none}.role-secret.is-peeking{filter:none}.vote-list{display:grid;gap:6px;list-style:none;margin:0;min-width:240px;padding:0}.vote-row{align-items:center;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-full);display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;min-height:44px;padding:0 12px 0 8px;transition:border-color var(--dur-short) var(--ease-standard)}.vote-row.is-mine{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.vote-row.is-out{opacity:.5}.vote-row.is-out .score-name{text-decoration:line-through}.vote-count{color:var(--on-surface-variant);font-size:.75rem;font-variant-numeric:tabular-nums}.role-hint{font-size:.6875rem;font-weight:600}.role-hint.is-werewolf{color:var(--error)}.role-hint.is-seer{color:var(--primary)}.role-hint.is-villager{color:var(--on-surface-variant)}.tonal-button.is-compact{font-size:.75rem;min-height:32px;padding:0 12px}.leaderboard{display:grid;gap:8px}.leaderboard-filters{display:flex;flex-wrap:wrap;gap:6px}.leaderboard-table{display:grid;gap:2px;list-style:none;margin:0;padding:0}.leaderboard-table li{align-items:center;border-radius:var(--r-xs);display:grid;gap:10px;grid-template-columns:28px auto minmax(0,1fr) repeat(3,56px);min-height:40px;padding:0 8px}.leaderboard-table li.is-head{color:var(--on-surface-variant);font-size:.6875rem;font-weight:600;letter-spacing:.04em;min-height:28px;text-transform:uppercase}.leaderboard-table li.is-you{background:var(--surface-2)}.leaderboard-rank{font-variant-numeric:tabular-nums;font-weight:600;text-align:center}.leaderboard-table li:not(.is-head) .leaderboard-rank:first-child{color:var(--primary)}.leaderboard-stat{font-size:.8125rem;font-variant-numeric:tabular-nums;text-align:right}.game-theater{align-items:center;background:#000000b8;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:60}.game-theater-frame{border:0;border-radius:var(--r-lg);box-shadow:var(--elev-3);max-height:min(92dvh,100%);width:min(1000px,100%)}.dialog-layer{align-items:center;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:35}.dialog-scrim{background:var(--scrim);border:0;cursor:pointer;inset:0;padding:0;position:absolute}.dialog{animation:dialog-in var(--dur-medium) var(--ease-emphasized);background:var(--surface-1);border-radius:var(--r-xl);box-shadow:var(--elev-3);display:flex;flex-direction:column;max-height:min(86dvh,100%);position:relative;width:min(460px,100%)}.dialog.is-wide{width:min(680px,100%)}@keyframes dialog-in{0%{opacity:0;transform:translateY(16px) scale(.98)}}.dialog-head{align-items:center;display:flex;gap:12px;padding:20px 12px 8px 24px}.dialog-head h2{flex:1;font-size:1.375rem;font-weight:400;margin:0}.dialog-body{display:grid;gap:16px;overflow-y:auto;padding:8px 24px 24px}.dialog-body>form{display:grid;gap:16px}.dialog-text{color:var(--on-surface-variant);font-size:.875rem;line-height:1.6;margin:0}.dialog-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding-top:4px}.dialog-actions .text-button.is-danger{margin-right:auto}.dialog .field label{background:var(--surface-1)}.select-field{display:grid;gap:6px}.select-field label{color:var(--on-surface-variant);font-size:.75rem;font-weight:500}.select-field select{background:var(--surface);border:1px solid var(--outline);border-radius:var(--r-xs);color:var(--on-surface);min-height:44px;padding:0 12px;width:100%}.select-field select:focus{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);outline:0}.tab-bar{border-bottom:1px solid var(--outline-variant);display:flex;gap:4px}.tab{background:transparent;border:0;border-bottom:3px solid transparent;color:var(--on-surface-variant);cursor:pointer;font-size:.875rem;font-weight:600;margin-bottom:-1px;padding:12px 16px;transition:color var(--dur-short) var(--ease-standard),border-color var(--dur-short) var(--ease-standard)}.tab:hover{color:var(--on-surface)}.tab.is-active{border-bottom-color:var(--primary);color:var(--primary)}.team-list{display:grid;gap:4px;list-style:none;margin:0;padding:0}.team-row{align-items:center;border-radius:var(--r-sm);display:flex;flex-wrap:wrap;gap:10px;padding:10px 12px}.team-row:hover{background:var(--surface-2)}.team-row.is-muted{opacity:.6}.team-row-text{display:grid;flex:1;min-width:140px}.team-row-text strong{font-size:.875rem;font-weight:500}.team-row-text small{color:var(--on-surface-variant);font-size:.75rem;margin-top:2px}.team-self{color:var(--on-surface-variant);font-weight:400}.team-row-actions{align-items:center;display:flex;gap:2px}.team-empty{color:var(--on-surface-variant);font-size:.8125rem;padding:16px 12px;text-align:center}.role-chip{align-items:center;background:var(--surface-3);border-radius:var(--r-xs);color:var(--on-surface-variant);display:inline-flex;flex:none;font-size:.6875rem;font-weight:600;gap:4px;padding:4px 8px}.role-chip .icon{height:14px;width:14px}.role-chip.is-admin{background:var(--primary-container);color:var(--on-primary-container)}.role-chip.is-off{background:var(--error-container);color:var(--on-error-container)}.invite-icon{align-items:center;background:var(--surface-3);border-radius:50%;color:var(--on-surface-variant);display:flex;flex:none;height:32px;justify-content:center;width:32px}.invite-icon .icon{height:18px;width:18px}.invite-creator{background:var(--surface-2);border-radius:var(--r-md);display:grid;gap:14px;padding:16px}.invite-creator .field label{background:var(--surface-2)}.invite-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.fresh-invite{background:var(--primary-container);border-radius:var(--r-md);color:var(--on-primary-container);display:grid;gap:10px;padding:16px}.fresh-invite p{font-size:.8125rem;line-height:1.5;margin:0}.fresh-invite-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.fresh-invite code{background:var(--surface);border-radius:var(--r-xs);color:var(--on-surface);flex:1;font-family:var(--mono);font-size:.75rem;min-width:200px;overflow-wrap:anywhere;padding:10px 12px}.tab-intro{color:var(--on-surface-variant);font-size:.8125rem;line-height:1.6;margin:0}.tab-intro code{background:var(--surface-3);border-radius:var(--r-xs);color:var(--on-surface);font-family:var(--mono);font-size:.75rem;padding:1px 6px}.snackbar{align-items:center;animation:snackbar-in var(--dur-medium) var(--ease-emphasized);background:var(--inverse-surface);border-radius:var(--r-xs);bottom:24px;box-shadow:var(--elev-3);color:var(--inverse-on-surface);display:flex;font-size:.875rem;gap:12px;left:50%;max-width:min(560px,calc(100vw - 32px));padding:12px 8px 12px 16px;position:fixed;transform:translate(-50%);z-index:20}.snackbar>span{flex:1}.snackbar .icon{flex:none}.snackbar-action{background:transparent;border:0;border-radius:var(--r-full);color:inherit;cursor:pointer;display:flex;flex:none;height:32px;padding:6px;width:32px}.snackbar-action:hover{background:#ffffff1f}:root[data-theme=dark] .snackbar-action:hover{background:#0000001f}@keyframes snackbar-in{0%{opacity:0;transform:translate(-50%,16px)}}@media(max-width:1180px){.app-shell{grid-template-columns:264px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.nav-drawer{grid-row:1 / 3}.room{grid-column:2;grid-row:1;margin-bottom:0}.voice-panel{flex-direction:row;grid-column:2;grid-row:2;padding-top:12px}.voice-bar{flex:none;min-width:180px}.voice-empty{flex-direction:row;gap:16px;padding:12px 16px;text-align:left}.voice-badge{display:none}.voice-empty p{max-width:none}.voice-members{display:flex;flex:1;overflow-x:auto;overflow-y:hidden}.voice-member{flex:none;min-width:160px}.voice-cta,.voice-controls{flex:none;margin-top:0}.voice-error{align-items:center;flex:none}.live-strip{flex:none;padding:8px;width:210px}.live-label{margin-bottom:6px}.live-label span:not(.live-badge){display:none}.room.has-stage{--stage-h: clamp(240px, 40dvh, 420px)}.game-body{gap:12px;padding:10px 12px}}@media(max-width:880px){.app-shell{grid-template-columns:minmax(0,1fr)}.nav-trigger,.nav-close{display:inline-flex}.nav-drawer{background:var(--surface);border-right:1px solid var(--outline-variant);bottom:0;box-shadow:var(--elev-3);left:0;padding:12px;position:fixed;top:0;transform:translate(-100%);transition:transform var(--dur-long) var(--ease-emphasized);width:min(300px,86vw);z-index:30}.nav-open .nav-drawer{transform:translate(0)}.nav-scrim{background:var(--scrim);display:block;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity var(--dur-medium) var(--ease-standard);z-index:25}.nav-open .nav-scrim{opacity:1;pointer-events:auto}.room{border-radius:0;border-left:0;border-right:0;border-top:0;grid-column:1;margin:0}.voice-panel{grid-column:1;padding:8px 12px 12px}.room-bar{padding-left:8px}.room.has-stage{--stage-h: 48dvh}.game-body{grid-auto-flow:row;justify-items:center}.game-side,.scoreboard,.seat-list{min-width:0;width:100%}.game-bar{padding-left:12px}}@media(max-width:620px){.login-card{border:0;box-shadow:none;padding:32px 24px}.message-scroll,.message-list{padding-inline:4px}.composer{margin-inline:12px;padding-left:4px}.attachment-image img{max-height:220px}.voice-panel{flex-wrap:wrap}.voice-bar,.voice-empty,.voice-members,.voice-cta,.voice-controls,.live-strip{flex:1 1 100%}.voice-bar{padding:10px 14px}.voice-empty{justify-content:space-between}.live-cards{grid-auto-columns:220px;grid-auto-flow:column;overflow-x:auto}.room.has-stage{--stage-h: 52dvh}.board{--cell: clamp(40px, 17vw, 72px)}.board.is-7x6{--cell: clamp(28px, 12vw, 46px)}.game-turn{display:none}.game-theater{padding:0}.game-theater-frame{border-radius:0;height:100dvh;max-height:none;width:100%}.game-picker li{grid-template-columns:auto minmax(0,1fr)}.game-picker li button{grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.countdown-progress{animation:none!important;opacity:.32;stroke-dashoffset:0!important}.cell.is-win{box-shadow:inset 0 0 0 3px var(--success)}}
