.tour-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;overflow:hidden;pointer-events:auto}.tour-root.is-plain{background:var(--overlay)}.tour-hole{position:fixed;box-sizing:border-box;border-radius:var(--radius-md);box-shadow:0 0 0 2px var(--accent),0 0 0 9999px var(--overlay);pointer-events:none;transition:left .18s ease,top .18s ease,width .18s ease,height .18s ease}.tour-card{position:fixed;z-index:1;box-sizing:border-box;width:320px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 32px rgba(var(--shadow-rgb),.45)}.tour-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.tour-step-no{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:var(--text);font-size:var(--fs-caption);font-weight:600;line-height:1}.tour-card-title{flex:1;min-width:0;font-size:var(--fs-h2);font-weight:600;line-height:1.4;color:var(--text)}.tour-card-count{flex-shrink:0;font-size:var(--fs-caption);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.tour-card-body{margin:0 0 16px;font-size:var(--fs-caption);line-height:1.7;color:var(--text-secondary)}.tour-card-actions{display:flex;align-items:center;gap:8px}.tour-card-actions .tour-skip{margin-right:auto}.tour-arrow{position:absolute;width:10px;height:10px;background:var(--surface);border:1px solid var(--border);transform:rotate(45deg);pointer-events:none}.tour-card[data-placement=right] .tour-arrow{left:-6px;top:22px;border-right:0;border-top:0}.tour-card[data-placement=left] .tour-arrow{right:-6px;top:22px;border-left:0;border-bottom:0}.tour-card[data-placement=top] .tour-arrow{left:24px;bottom:-6px;border-left:0;border-top:0}.tour-card[data-placement=bottom] .tour-arrow{left:24px;top:-6px;border-right:0;border-bottom:0}@media(max-width:767px){.tour-card.is-narrow{max-height:min(48vh,360px);overflow:auto}.tour-card.is-narrow[data-placement=bottom] .tour-arrow,.tour-card.is-narrow[data-placement=top] .tour-arrow{left:50%;margin-left:-5px}.tour-card.is-narrow .tour-card-actions{flex-wrap:wrap;gap:8px}.tour-card.is-narrow .tour-card-actions .btn{min-height:44px}.tour-card.is-narrow .tour-skip{min-width:64px}}@media(prefers-reduced-motion:reduce){.tour-hole{transition:none}}:root{--bg: #0E1117;--bg-rgb: 14, 17, 23;--sidebar: #141820;--surface: #1A1F29;--surface-alt: #1E2430;--surface-hover: #242B38;--border: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .14);--border-focus: #5B6CFF;--text: #EEF0F4;--text-secondary: #9BA3B0;--text-tertiary: #6B7380;--accent: #5B6CFF;--accent-rgb: 91, 108, 255;--accent-hover: #6D7CFF;--accent-pressed: #4A5AE8;--accent-soft: rgba(91, 108, 255, .16);--speak: #2EE56B;--speak-rgb: 46, 229, 107;--speak-soft: rgba(46, 229, 107, .18);--online: #2EE56B;--offline: #6B7380;--success: #2EE56B;--success-rgb: 46, 229, 107;--warning: #E0A106;--warning-rgb: 224, 161, 6;--error: #F05252;--error-rgb: 240, 82, 82;--info: #5B6CFF;--used: #3BA3F7;--overlay: rgba(8, 10, 14, .62);--shadow-rgb: 0, 0, 0;--font-sans: "思源黑体", "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-display: "思源黑体", "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "思源黑体", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", ui-monospace, monospace;--fs-caption: 14px;--fs-body: 16px;--fs-link: 16px;--fs-h2: 18px;--fs-h1: 24px;--fs-display: 48px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--sidebar-w: 280px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--radius: 8px;--radius-md: 10px}.landing{--landing-max: 1440px;height:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bg);color:var(--text)}.landing-wrap{width:100%;max-width:var(--landing-max);margin-inline:auto;padding-inline:var(--space-8)}.landing-hero,.landing-panels,.landing-info,.landing-changelog,#features,#help,#about{scroll-margin-top:80px}.landing::-webkit-scrollbar{width:8px}.landing::-webkit-scrollbar-thumb{background:var(--surface-hover);border-radius:var(--radius)}.landing::-webkit-scrollbar-track{background:transparent}.landing-header{position:sticky;top:0;z-index:20;height:80px;background:var(--bg)}.landing-header-bar{display:flex;align-items:center;gap:var(--space-6);height:80px}.landing-logo{flex-shrink:0}.landing-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-4);flex:1}.landing-nav-item{height:36px;padding:0 2px;border:0;background:transparent;color:var(--text-secondary);font-size:var(--fs-body);font-weight:500;cursor:pointer;white-space:nowrap;transition:color .18s ease,box-shadow .18s ease}.landing-nav-item:hover{color:var(--text)}.landing-nav-item.is-active{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.landing-actions{display:flex;align-items:center;gap:var(--space-3)}.landing-round{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.landing-round:hover{background:var(--surface-hover)}.landing-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:var(--space-8);padding:var(--space-8) 0 var(--space-6);position:relative}.landing-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 28% 40%,rgba(var(--accent-rgb),.16),transparent 52%),radial-gradient(ellipse at 78% 70%,rgba(var(--accent-rgb),.1),transparent 46%);pointer-events:none}.landing-hero-copy,.landing-hero-art{position:relative}.landing-badge{display:inline-flex;align-items:center;height:28px;padding:0 var(--space-3);border-radius:999px;border:1px solid rgba(var(--accent-rgb),.45);background:var(--accent-soft);color:var(--text);font-size:var(--fs-caption)}.landing-hero-title{margin:var(--space-4) 0 0;font-size:var(--fs-display);font-weight:700;line-height:1.15;letter-spacing:0;color:var(--text)}.landing-hero-title span{display:block;color:var(--accent)}.landing-hero-lead{margin:var(--space-4) 0 0;max-width:28em;color:var(--text-secondary);font-size:var(--fs-body)}.landing-feats{display:flex;gap:var(--space-8);margin:var(--space-8) 0 0;padding:0;list-style:none}.landing-feats li{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-width:96px;text-align:center}.landing-feat-icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--accent)}.landing-feats strong{font-size:var(--fs-body);font-weight:600}.landing-feats em{font-style:normal;font-size:var(--fs-caption);color:var(--text-tertiary)}.landing-hero-art img{display:block;width:100%;height:auto;-o-object-fit:contain;object-fit:contain}.landing-panels{display:grid;grid-template-columns:1.1fr .9fr 1fr;gap:var(--space-4);margin:0 0 var(--space-8);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.landing-card{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;padding:var(--space-4)}.landing-card h2{margin:0;font-size:var(--fs-h2);font-weight:600}.landing-card>p{margin:var(--space-2) 0 var(--space-4);color:var(--text-secondary);font-size:var(--fs-caption)}.landing-card-qr{border-left:1px solid var(--border);border-right:1px solid var(--border)}.landing-devices{display:block;width:100%;max-width:360px;height:auto;-o-object-fit:contain;object-fit:contain}.landing-qr{width:184px;height:184px;padding:var(--space-2);background:#fff;border-radius:var(--radius-md)}.landing-qr-code{display:block;width:100%;height:100%}.landing-qr-slot{width:100%;height:100%;background:var(--surface-hover)}.landing-win-btn{max-width:280px}.landing-meta{margin-top:var(--space-3)!important;margin-bottom:var(--space-2)!important;color:var(--text-tertiary)!important}.landing-changelog{padding:0 0 var(--space-8)}.landing-changelog>h2{margin:0 0 var(--space-6);font-size:var(--fs-h2);font-weight:600}.landing-tl{position:relative;display:flex;flex-direction:column;gap:var(--space-6)}.landing-tl:before{content:"";position:absolute;top:12px;bottom:12px;left:50%;width:1px;background:var(--border);transform:translate(-50%)}.landing-tl-item{display:grid;grid-template-columns:1fr 20px 1fr;align-items:start;-moz-column-gap:var(--space-4);column-gap:var(--space-4)}.landing-tl-item.is-left .landing-tl-card{grid-column:1;grid-row:1}.landing-tl-item.is-left .landing-tl-dot{grid-column:2;grid-row:1}.landing-tl-item.is-left .landing-tl-spacer{grid-column:3;grid-row:1}.landing-tl-item.is-right .landing-tl-spacer{grid-column:1;grid-row:1}.landing-tl-item.is-right .landing-tl-dot{grid-column:2;grid-row:1}.landing-tl-item.is-right .landing-tl-card{grid-column:3;grid-row:1}.landing-tl-dot{width:10px;height:10px;margin-top:18px;justify-self:center;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.landing-tl-card{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.landing-tl-card header{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3)}.landing-tl-card h3{margin:0;font-size:var(--fs-body);font-weight:600}.landing-changelog-tech,.landing-tl-card time{color:var(--text-tertiary);font-size:var(--fs-caption)}.landing-tl-list{margin:0;padding:0;list-style:none}.landing-tl-line{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--fs-body)}.landing-tl-line+.landing-tl-line{margin-top:var(--space-2)}.landing-tl-ico{flex-shrink:0;margin-top:3px}.landing-tl-tag{flex-shrink:0;font-size:var(--fs-caption);font-weight:600;line-height:1.7}.landing-tl-text{min-width:0;color:var(--text-secondary)}.landing-tl-line.is-added .landing-tl-ico,.landing-tl-line.is-added .landing-tl-tag{color:var(--success)}.landing-tl-line.is-changed .landing-tl-ico,.landing-tl-line.is-changed .landing-tl-tag{color:var(--accent)}.landing-tl-line.is-fixed .landing-tl-ico,.landing-tl-line.is-fixed .landing-tl-tag{color:var(--warning)}.landing-tl-line.is-removed .landing-tl-ico,.landing-tl-line.is-removed .landing-tl-tag{color:var(--error)}.landing-tl-more{display:inline-flex;align-items:center;gap:var(--space-1);margin-top:var(--space-3);padding:0;height:28px;border:0;background:transparent;color:var(--accent);font-size:var(--fs-caption);font-weight:500;cursor:pointer}.landing-tl-more:hover{color:var(--accent-hover)}.landing-contact-grid{display:grid;grid-template-columns:220px 1fr;gap:var(--space-5)}.landing-legal-body{max-height:min(52vh,420px);overflow-x:hidden;overflow-y:auto;padding-right:var(--space-2);color:var(--text-secondary);font-size:var(--fs-body)}.landing-legal-body::-webkit-scrollbar{width:8px}.landing-legal-body::-webkit-scrollbar-thumb{background:var(--surface-hover);border-radius:var(--radius)}.landing-legal-body::-webkit-scrollbar-track{background:transparent}.landing-legal-block h3{margin:var(--space-4) 0 var(--space-2);color:var(--text);font-size:var(--fs-body);font-weight:600}.landing-legal-block:first-of-type h3{margin-top:var(--space-3)}.landing-legal-body>p,.landing-legal-block p{margin:0 0 var(--space-2)}.landing-legal-block ul{margin:0 0 var(--space-2);padding-left:1.2em}.landing-legal-block li+li{margin-top:2px}.landing-info{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);padding:0 0 var(--space-8)}.landing-info h2{margin:0 0 var(--space-2);font-size:var(--fs-h2);font-weight:600}.landing-info p{margin:0;color:var(--text-secondary);font-size:var(--fs-body)}.landing-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0 var(--space-6);color:var(--text-tertiary);font-size:var(--fs-caption)}.landing-footer-links{display:flex;gap:var(--space-4)}@media(max-width:767px){.landing-wrap{padding-inline:var(--space-4)}.landing-header{height:calc(64px + var(--safe-top));padding-top:var(--safe-top)}.landing-header-bar{height:64px;gap:var(--space-3)}.landing-logo img{height:40px!important}.landing-nav,.landing-action-download,.landing-round{display:none}.landing-hero{grid-template-columns:1fr;padding:var(--space-6) 0;gap:var(--space-4)}.landing-hero-title{font-size:var(--fs-h1)}.landing-feats{flex-wrap:wrap;gap:var(--space-4);justify-content:space-around}.landing-panels{grid-template-columns:1fr;margin:0 0 var(--space-6);padding:var(--space-4)}.landing-card-qr{border-left:0;border-right:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.landing-info,.landing-changelog{padding:0 0 var(--space-6)}.landing-info{grid-template-columns:1fr;gap:var(--space-6)}.landing-tl:before{left:5px}.landing-tl-item,.landing-tl-item.is-left,.landing-tl-item.is-right{grid-template-columns:10px 1fr;-moz-column-gap:var(--space-3);column-gap:var(--space-3)}.landing-tl-item.is-left .landing-tl-dot,.landing-tl-item.is-right .landing-tl-dot{grid-column:1;grid-row:1}.landing-tl-item.is-left .landing-tl-card,.landing-tl-item.is-right .landing-tl-card{grid-column:2;grid-row:1}.landing-tl-spacer{display:none}.landing-contact-grid{grid-template-columns:1fr}.landing-footer{flex-direction:column;align-items:flex-start;padding:var(--space-4) 0 calc(var(--space-6) + var(--safe-bottom))}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-1{bottom:4px}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:8px}.left-3{left:12px}.left-3\.5{left:.875rem}.right-0{right:0}.right-1{right:4px}.right-3{right:12px}.right-4{right:16px}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:16px}.z-50{z-index:50}.z-\[100\]{z-index:100}.mx-5{margin-left:20px;margin-right:20px}.my-1{margin-top:4px;margin-bottom:4px}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.ml-2{margin-left:8px}.mr-1{margin-right:4px}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1{height:4px}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-3\.5{height:.875rem}.h-4{height:16px}.h-6{height:24px}.h-7{height:1.75rem}.h-8{height:32px}.h-9{height:2.25rem}.h-\[14px\]{height:14px}.h-\[168px\]{height:168px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:0px}.w-10{width:2.5rem}.w-16{width:4rem}.w-2{width:8px}.w-3\.5{width:.875rem}.w-4{width:16px}.w-6{width:24px}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:32px}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[14px\]{width:14px}.w-\[168px\]{width:168px}.w-\[var\(--radix-dropdown-menu-trigger-width\)\]{width:var(--radix-dropdown-menu-trigger-width)}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[160px\]{min-width:160px}.min-w-\[var\(--radix-dropdown-menu-trigger-width\)\]{min-width:var(--radix-dropdown-menu-trigger-width)}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-\[640px\]{max-width:640px}.max-w-\[720px\]{max-width:720px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1\.4fr_1fr\]{grid-template-columns:1.4fr 1fr}.grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:4px}.gap-1\.5{gap:.375rem}.gap-2{gap:8px}.gap-2\.5{gap:.625rem}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(8px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(8px * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(12px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(12px * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(16px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(16px * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(20px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(20px * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded-\[5px\]{border-radius:5px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius-md)}.rounded-md{border-radius:var(--radius)}.rounded-xl{border-radius:var(--radius-md)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-accent{border-color:var(--accent)}.border-border{border-color:var(--border)}.border-border-hover{border-color:var(--border-hover)}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.bg-accent{background-color:var(--accent)}.bg-accent-soft{background-color:var(--accent-soft)}.bg-bg{background-color:var(--bg)}.bg-border{background-color:var(--border)}.bg-speak-soft{background-color:var(--speak-soft)}.bg-surface{background-color:var(--surface)}.bg-surface-hover{background-color:var(--surface-hover)}.bg-text{background-color:var(--text)}.bg-transparent{background-color:transparent}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:4px}.p-3{padding:12px}.p-4{padding:16px}.p-6{padding:24px}.p-8{padding:32px}.p-px{padding:1px}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:4px;padding-right:4px}.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.px-5{padding-left:20px;padding-right:20px}.py-1{padding-top:4px;padding-bottom:4px}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.pb-3{padding-bottom:12px}.pl-8{padding-left:32px}.pr-2{padding-right:8px}.pt-2{padding-top:8px}.pt-4{padding-top:16px}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-base{font-size:16px;line-height:1.7}.text-sm{font-size:16px;line-height:1.65}.text-xs{font-size:14px;line-height:1.4}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-relaxed{line-height:1.625}.text-accent{color:var(--accent)}.text-error{color:var(--error)}.text-speak{color:var(--speak)}.text-text{color:var(--text)}.text-text-secondary{color:var(--text-secondary)}.text-text-tertiary{color:var(--text-tertiary)}.text-warning{color:var(--warning)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.shadow-\[0_8px_24px_rgba\(var\(--shadow-rgb\)\,0\.28\)\]{--tw-shadow: 0 8px 24px rgba(var(--shadow-rgb),.28);--tw-shadow-colored: 0 8px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.7;letter-spacing:.02em;-webkit-font-smoothing:antialiased;font-synthesis:weight}html,body{overflow:hidden}button,input,select,textarea{font-family:inherit}button,a,[role=button]{touch-action:manipulation}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand-mark{display:flex;align-items:center;gap:8px;color:var(--text);font-family:var(--font-display);font-weight:600;letter-spacing:.06em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:var(--radius);border:1px solid transparent;font-family:var(--font-sans);font-size:var(--fs-body);font-weight:500;line-height:1;cursor:pointer;transition:background .16s ease,border-color .16s ease,opacity .16s ease}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-pressed)}.btn-secondary{background:transparent;color:var(--text);border-color:var(--border-hover)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover)}.btn-danger{background:transparent;color:var(--error);border-color:var(--border-hover)}.btn-danger:hover:not(:disabled){background:rgba(var(--error-rgb),.12);border-color:var(--error)}.btn-block{width:100%;height:44px;font-weight:600}.voice-bar{display:flex;align-items:center;gap:16px;min-height:80px;border-top:1px solid var(--border);padding:10px 24px;background:var(--bg)}.voice-panel{flex:1;display:grid;grid-template-columns:minmax(248px,300px) minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.voice-mode-tabs{display:flex;min-width:0;padding:3px;gap:3px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg)}.voice-mode-tab{flex:1;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;height:36px;min-height:36px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--fs-caption);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer}.voice-mode-tab-key{padding:2px 6px;border-radius:4px;background:var(--surface-hover);font-size:var(--fs-caption);font-weight:400;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.voice-mode-tab.is-on .voice-mode-tab-key{background:rgba(var(--accent-rgb),.22);color:var(--text)}.voice-mode-tab.is-hot .voice-mode-tab-key{background:rgba(var(--speak-rgb),.22);color:var(--speak)}.voice-mode-tab:hover:not(.is-on){background:var(--surface-hover);color:var(--text)}.voice-mode-tab.is-on{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.voice-mode-tab.is-hot,.voice-mode-tab.is-on.is-hot{background:var(--speak-soft);border-color:var(--speak);color:var(--speak);box-shadow:0 0 0 2px rgba(var(--speak-rgb),.28)}.voice-meter{position:relative;min-width:0;display:flex;flex-direction:column;justify-content:center;overflow:visible}.voice-meter-row{display:flex;align-items:center;gap:8px;min-width:0}.voice-meter-row>svg{flex-shrink:0;color:var(--text-tertiary)}.voice-meter.is-out .voice-meter-row>svg{color:var(--used)}.voice-meter-track{flex:1;display:flex;align-items:stretch;gap:3px;height:14px;min-width:64px;cursor:pointer;touch-action:none}.voice-meter-track i{flex:1;min-width:3px;border-radius:2px;background:var(--surface-hover)}.voice-meter.is-in .voice-meter-track i.is-gain{background:rgba(var(--speak-rgb),.38)}.voice-meter.is-in .voice-meter-track i.is-live{background:var(--speak)}.voice-meter.is-out .voice-meter-track i.is-gain{background:rgba(var(--accent-rgb),.38)}.voice-meter.is-out .voice-meter-track i.is-live{background:var(--used)}.voice-meter-track i.is-hot{background:var(--warning)}.voice-meter-pct{flex-shrink:0;width:3.2em;font-size:var(--fs-caption);color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:right}.voice-speak{position:relative;flex-shrink:0;display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 6px;border-radius:var(--radius);color:var(--text-tertiary)}.voice-speak.is-speaking{color:var(--speak)}.voice-meter.is-out .voice-speak.is-speaking{color:var(--used)}.voice-speak.is-speaking:before,.voice-speak.is-speaking:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:calc(var(--radius) + 5px);border:1px solid currentColor;pointer-events:none;animation:member-speak-ripple 1.8s ease-out infinite}.voice-speak.is-speaking:after{animation-delay:.9s}.voice-speak-eq{display:flex;align-items:flex-end;gap:2px;width:14px;height:16px}.voice-speak-eq i{flex:1;min-width:2px;border-radius:1px;background:currentColor;transform-origin:center bottom}.voice-speak.is-speaking .voice-speak-eq i{animation:voice-eq-pulse .9s ease-in-out infinite}.voice-speak.is-speaking .voice-speak-eq i:nth-child(2){animation-delay:80ms}.voice-speak.is-speaking .voice-speak-eq i:nth-child(3){animation-delay:.16s}.voice-speak.is-speaking .voice-speak-eq i:nth-child(4){animation-delay:80ms}.voice-speak.is-speaking .voice-speak-eq i:nth-child(5){animation-delay:.2s}@keyframes voice-eq-pulse{0%,to{transform:scaleY(.72)}50%{transform:scaleY(1)}}.voice-actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-shrink:0}.voice-icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:var(--radius-md);border:1px solid var(--border-hover);background:var(--surface-alt);color:var(--text);cursor:pointer;box-shadow:0 1px rgba(var(--shadow-rgb),.28)}.voice-icon:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-focus)}.voice-icon:disabled{opacity:.4;cursor:not-allowed}.voice-icon.is-off{color:var(--error);border-color:rgba(var(--error-rgb),.45);background:rgba(var(--error-rgb),.1)}.voice-icon.is-hot{border-color:var(--speak);background:var(--speak-soft);color:var(--speak);box-shadow:0 0 0 2px rgba(var(--speak-rgb),.28)}.voice-icon.is-deaf{position:relative}.voice-icon.is-deaf:after{content:"";position:absolute;width:22px;height:2px;background:var(--error);transform:rotate(-32deg);border-radius:1px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:var(--fs-caption);font-weight:500;color:var(--text-secondary)}.settings-profile-row{display:flex;align-items:flex-end;gap:var(--space-4)}.settings-profile-row .field{flex:1;min-width:0}.settings-profile-role{display:flex;align-items:center;min-height:36px}.settings-profile-action{flex:0 0 auto}.login-device-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.login-device-row{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 10px 8px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.login-device-row.is-current{border-color:rgba(var(--accent-rgb),.35);background:var(--accent-soft)}.login-device-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);background:var(--surface-alt);color:var(--text-secondary)}.login-device-row.is-current .login-device-icon{background:rgba(var(--accent-rgb),.22);color:var(--accent)}.login-device-body{min-width:0;flex:1}.login-device-name{display:flex;align-items:center;gap:8px;font-size:var(--fs-body);font-weight:500;line-height:1.4}.login-device-badge{flex-shrink:0;font-size:var(--fs-caption);font-weight:500;color:var(--accent)}.login-device-meta{margin-top:2px;overflow:hidden;color:var(--text-tertiary);font-size:var(--fs-caption);line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.login-device-action,.login-device-row .btn{flex-shrink:0}.input,.select{height:42px;width:100%;padding-block:0;padding-inline:12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);letter-spacing:0;outline:none;transition:border-color .16s ease,box-shadow .16s ease}.input::-moz-placeholder{color:var(--text-tertiary)}.input::placeholder{color:var(--text-tertiary)}.input:hover,.select:hover{border-color:var(--border-hover)}.input:focus,.select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-soft)}.input:disabled,.select:disabled{opacity:.45;cursor:not-allowed}.input.is-error{border-color:var(--error);box-shadow:0 0 0 3px rgba(var(--error-rgb),.16)}.input-with-leading-icon{padding-left:40px}.input-with-trailing-icon{padding-right:40px}.input-chat{height:46px;background:var(--surface);border-radius:var(--radius-md)}.chat-composer{display:flex;align-items:stretch;gap:12px}.btn-send{height:46px;min-width:88px;padding:0 24px;border-radius:var(--radius-md);font-weight:600;flex-shrink:0}.slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:999px;background:var(--surface-hover)}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 0 0 0 transparent}.slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--accent-soft)}.switch{width:40px;height:22px;border-radius:999px;background:var(--surface-hover);border:0;position:relative;cursor:pointer;flex-shrink:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .16s ease}.switch[data-state=checked],.switch[aria-checked=true]{background:var(--accent)}.switch[data-state=checked]:after,.switch[aria-checked=true]:after{transform:translate(18px)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch:disabled{opacity:.4;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px}.card:focus-within{border-color:var(--border-hover)}.stat-card{min-height:88px;padding:16px 18px}.stat-card .stat-num{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:600;color:var(--text)}.member-card{position:relative;overflow:visible;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:136px;min-width:136px;min-height:140px;padding:20px 12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .18s ease,box-shadow .18s ease,background .16s ease}.member-card:hover{background:var(--surface-hover)}.member-card.is-speaking{border-color:var(--speak);box-shadow:0 0 0 1px var(--speak),0 0 10px rgba(var(--speak-rgb),.18)}.member-card.is-speaking:before,.member-card.is-speaking:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:calc(var(--radius-md) + 4px);border:1px solid rgba(var(--speak-rgb),.5);pointer-events:none;z-index:0;animation:member-speak-ripple 2s ease-out infinite}.member-card.is-speaking:after{animation-delay:1s}.member-card .avatar-ring.is-speaking:after{display:none}.member-card>:not(.speak-badge){position:relative;z-index:1}.member-meta{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;width:100%;max-width:100%}.member-name{min-width:0;font-size:var(--fs-caption);font-weight:500;line-height:1.4;text-align:center;color:var(--text)}.member-mic-off{flex-shrink:0;color:var(--text-tertiary)}.member-kick{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex-shrink:0;height:24px;padding:0 8px;border-radius:var(--radius);border:1px solid transparent;background:transparent;color:var(--error);font-size:var(--fs-caption);font-weight:500;line-height:1;opacity:.55;cursor:pointer;transition:opacity .16s ease,background .16s ease,border-color .16s ease}.member-card:hover .member-kick,.member-kick:hover,.member-kick:focus-visible{opacity:1;background:rgba(var(--error-rgb),.12);border-color:var(--error)}@media(hover:none){.member-kick{opacity:.9}}.speak-badge{position:absolute;top:0;right:0;z-index:2;display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--speak);color:var(--bg);font-size:var(--fs-caption);font-weight:600;line-height:1.4;white-space:nowrap;pointer-events:none;transform:translate(28%,-45%);animation:speak-badge-in .18s ease}@keyframes member-speak-ripple{0%{transform:scale(1);opacity:.5}to{transform:scale(1.07);opacity:0}}@keyframes speak-badge-in{0%{opacity:0}to{opacity:1}}.nav-side{width:var(--sidebar-w);background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.nav-label{padding:16px 16px 8px 24px;font-size:var(--fs-caption);color:var(--text-tertiary);letter-spacing:.04em}.nav-item{display:flex;align-items:center;gap:10px;box-sizing:border-box;width:calc(100% - 24px);margin:2px 12px;padding:8px 12px 8px 16px;border-radius:var(--radius);color:var(--text-secondary);font-size:var(--fs-body);font-weight:500;border:0;background:transparent;cursor:pointer;text-decoration:none;text-align:left}.nav-item:hover{background:var(--surface-hover);color:var(--text)}.nav-item.is-active{background:var(--accent-soft);color:var(--text)}.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.nav-item:disabled{opacity:.4;cursor:not-allowed}.nav-channel{flex-direction:column;align-items:stretch;gap:0;margin:6px 12px;padding:10px 12px 10px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .16s ease,box-shadow .16s ease,color .16s ease,border-color .16s ease}.nav-channel:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--text)}.nav-channel:active{background:var(--accent-soft);color:var(--text)}.nav-channel.is-active,.nav-channel.is-active:hover,.nav-channel.is-active:active{color:var(--text);border-color:rgba(var(--accent-rgb),.45);background:linear-gradient(90deg,rgba(var(--accent-rgb),.42),rgba(var(--accent-rgb),.18) 58%,rgba(var(--accent-rgb),.1));box-shadow:inset 3px 0 0 var(--accent),0 0 0 1px rgba(var(--accent-rgb),.45),0 0 18px rgba(var(--accent-rgb),.22)}.nav-channel.is-active:hover{background:linear-gradient(90deg,rgba(var(--accent-rgb),.52),rgba(var(--accent-rgb),.24) 58%,rgba(var(--accent-rgb),.14))}.nav-channel.is-active:active{background:linear-gradient(90deg,rgba(var(--accent-rgb),.34),rgba(var(--accent-rgb),.14) 58%,rgba(var(--accent-rgb),.08))}.nav-channel-head{display:flex;align-items:center;gap:10px;min-width:0}.nav-channel-name{flex:1;min-width:0;font-size:var(--fs-body);font-weight:500}.nav-channel-count{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;min-width:28px;color:var(--text-secondary);font-size:var(--fs-caption);font-weight:600;font-variant-numeric:tabular-nums}.nav-channel-users{flex-shrink:0;color:var(--text-tertiary)}.nav-channel:hover .nav-channel-users,.nav-channel:active .nav-channel-users,.nav-channel.is-active .nav-channel-users{color:var(--text-secondary)}.nav-hash{width:20px;height:auto;border-radius:0;background:transparent;color:var(--text-tertiary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--fs-h2);font-weight:600;line-height:1}.nav-item.is-active .nav-hash,.nav-channel:hover .nav-hash,.nav-channel:active .nav-hash,.nav-channel.is-active .nav-hash{background:transparent;color:var(--text)}.nav-avatars-slot{display:grid;grid-template-rows:0fr;transition:grid-template-rows .16s ease-out}.nav-avatars-slot.is-open{grid-template-rows:1fr}.nav-avatars-clip{overflow:hidden;min-height:0}.nav-avatars{display:flex;align-items:center;padding-top:8px;padding-left:30px;opacity:0;transition:opacity .16s ease-out}.nav-avatars-slot.is-open .nav-avatars{opacity:1}.nav-avatars .avatar-ring{margin-left:-8px;border-radius:50%;background:var(--sidebar)}.nav-channel.is-active .nav-avatars .avatar-ring{background:rgba(var(--accent-rgb),.18)}.nav-avatars .avatar-ring:first-child{margin-left:0}.nav-avatars .avatar,.nav-avatars .avatar-sm{width:24px;height:24px}.nav-avatar-more{width:28px;height:28px;margin-left:-8px;border-radius:50%;background:var(--surface-alt);color:var(--text-secondary);font-size:var(--fs-caption);font-weight:600;letter-spacing:.04em;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.nav-channel.is-active .nav-avatar-more{background:rgba(var(--accent-rgb),.28);color:var(--text)}.nav-channel.is-joined:not(.is-active){box-shadow:inset 3px 0 0 var(--online)}.nav-channel .dot.is-online{flex-shrink:0}.nav-channel-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.nav-channel-action{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius);background:transparent;color:var(--text-tertiary);cursor:pointer}.nav-channel-action:hover{background:var(--surface-hover);color:var(--text)}.nav-channel-action.is-join:hover{color:var(--online)}.nav-channel-action.is-leave:hover{color:var(--error)}.nav-channel.is-active .nav-channel-action{color:var(--text-secondary)}.channel-ctx-menu{position:fixed;z-index:80;min-width:140px;padding:4px;font-family:var(--font-sans)}.channel-ctx-item{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border:0;border-radius:var(--radius);background:transparent;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);font-weight:400;line-height:1.7;letter-spacing:.02em;text-align:left;cursor:pointer}.channel-ctx-item:hover{background:var(--surface-hover)}.channel-ctx-item.is-danger{color:var(--error)}.link{color:var(--accent);text-decoration:none;font-size:var(--fs-link);background:none;border:0;cursor:pointer}.link:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:3px}.link:active{color:var(--accent-pressed)}.link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.link:disabled{color:var(--text-tertiary);cursor:not-allowed;text-decoration:none}.badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;font-size:var(--fs-caption);font-weight:500;line-height:1}.badge-admin{background:var(--accent);color:#fff}.badge-member{background:var(--surface-hover);color:var(--text-secondary)}.badge-guest{background:var(--surface-hover);color:var(--text-tertiary)}.badge-online{color:var(--online)}.badge-offline{color:var(--offline)}.badge-used{color:var(--used)}.badge-expired{color:var(--error)}.badge-ok{color:var(--success)}.dot{width:8px;height:8px;border-radius:50%;background:var(--offline);flex-shrink:0}.dot.is-online{background:var(--online)}.avatar{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover;background:var(--surface-hover);display:inline-flex;align-items:center;justify-content:center;color:var(--text);font-weight:600;font-size:var(--fs-body);overflow:hidden;flex-shrink:0}.avatar-sm{width:32px;height:32px;font-size:var(--fs-caption)}.avatar-lg{width:56px;height:56px;font-size:var(--fs-h2)}.avatar-xl{width:96px;height:96px;font-size:var(--fs-h1)}.settings-avatar-grid{display:flex;flex-wrap:wrap;gap:var(--space-3)}.settings-avatar-grid button{position:relative;width:88px;height:88px;flex-shrink:0;padding:0;overflow:hidden;border-radius:8px;border:2px solid var(--border);background:var(--bg);cursor:pointer}.settings-avatar-grid button:hover{border-color:var(--border-hover)}.settings-avatar-grid button.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.4)}.settings-avatar-grid button.is-selected:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 0 2px var(--accent);pointer-events:none}.settings-avatar-grid .preset-check{position:absolute;right:6px;bottom:6px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;pointer-events:none}.settings-avatar-grid img{width:88px;height:88px;-o-object-fit:cover;object-fit:cover;display:block}.seg-group{display:flex;width:100%;padding:4px;gap:4px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg)}.seg-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:8px 12px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text-secondary);cursor:pointer}.seg-item:hover:not(.is-on){background:var(--surface-hover);color:var(--text)}.seg-item.is-on{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.seg-item-title{font-size:var(--fs-body);font-weight:600;line-height:1.3}.seg-item-sub{font-size:var(--fs-caption);color:var(--text-tertiary)}.seg-item.is-on .seg-item-sub{color:var(--text-secondary)}.audio-test{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg)}.audio-test.is-live{border-color:rgba(var(--speak-rgb),.45)}.audio-test.is-play{border-color:rgba(var(--accent-rgb),.45)}.audio-test-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.audio-test-action{flex-shrink:0}.audio-test-meta{display:flex;align-items:center;gap:var(--space-3);min-width:0}.audio-test-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--surface-hover);color:var(--text-secondary);flex-shrink:0}.audio-test.is-live .audio-test-icon{background:var(--speak-soft);color:var(--speak)}.audio-test.is-play .audio-test-icon{background:var(--accent-soft);color:var(--accent)}.audio-test-title{font-size:var(--fs-body);font-weight:500;color:var(--text)}.audio-test-hint{font-size:var(--fs-caption);color:var(--text-tertiary)}.vu-meter{display:flex;align-items:flex-end;gap:3px;height:28px}.vu-meter i{flex:1;min-width:4px;height:30%;border-radius:2px;background:var(--surface-hover)}.vu-meter i.is-on{background:var(--speak);height:100%}.vu-meter i.is-on.is-hot{background:var(--warning)}.vu-meter.is-demo i{animation:vu-demo .9s ease-in-out infinite alternate}.vu-meter.is-demo i:nth-child(3n){animation-delay:80ms}.vu-meter.is-demo i:nth-child(3n+1){animation-delay:.16s}.vu-meter.is-demo i:nth-child(3n+2){animation-delay:.24s}@keyframes vu-demo{0%{height:28%;background:var(--surface-hover)}to{height:92%;background:var(--accent)}}.hotkey-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.hotkey-chip{min-width:160px}.btn.hotkey-chip.is-hot,.btn.hotkey-chip.is-hot:hover:not(:disabled){border-color:var(--speak);background:var(--speak-soft);color:var(--speak);box-shadow:0 0 0 2px rgba(var(--speak-rgb),.28)}.hotkey-error{font-size:var(--fs-caption);color:var(--error);line-height:1.5}.avatar-ring{position:relative;border-radius:50%;padding:2px;border:2px solid transparent;display:inline-flex;flex-shrink:0;transition:border-color .18s ease,box-shadow .18s ease}.avatar-ring.is-speaking{border-color:var(--speak);animation:speak-breathe 1.8s ease-in-out infinite}.avatar-ring.is-speaking:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid var(--speak);pointer-events:none;animation:speak-ripple 1.8s ease-out infinite}@keyframes speak-breathe{0%,to{box-shadow:0 0 0 1px var(--speak),0 0 8px rgba(var(--speak-rgb),.18)}50%{box-shadow:0 0 0 4px rgba(var(--speak-rgb),.32),0 0 18px rgba(var(--speak-rgb),.36)}}@keyframes speak-ripple{0%{transform:scale(.92);opacity:.7}to{transform:scale(1.28);opacity:0}}.table{width:100%;border-collapse:collapse;font-size:var(--fs-link)}.table th{text-align:left;font-weight:500;color:var(--text-tertiary);padding:10px 14px;border-bottom:1px solid var(--border)}.table td{padding:12px 14px;color:var(--text);border-bottom:1px solid var(--border)}.table tr:hover td{background:var(--surface-hover)}.table tr.is-active td{background:rgba(var(--accent-rgb),.08);box-shadow:inset 3px 0 0 var(--accent)}.pager{display:flex;align-items:center;gap:6px}.pager-btn{min-width:28px;height:28px;border-radius:6px;border:0;background:transparent;color:var(--text-secondary);cursor:pointer}.pager-btn:hover{background:var(--surface-hover);color:var(--text)}.pager-btn.is-current{background:var(--accent);color:#fff}.pager-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pager-btn:disabled{opacity:.35;cursor:not-allowed}.chat-log{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;overflow-y:auto}.chat-row{display:grid;grid-template-columns:44px max-content 1fr;gap:8px;align-items:baseline;padding:4px 0;font-size:var(--fs-body);line-height:1.65}.chat-time{color:var(--text-tertiary);font-size:var(--fs-caption)}.chat-name{font-weight:500}.chat-name.is-self{color:var(--accent)}.chat-name.is-peer-a{color:var(--speak)}.chat-name.is-peer-b{color:var(--used)}.chat-body{color:var(--text)}.dock{margin-top:auto;height:64px;padding:10px 12px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0}.dock-name{font-size:var(--fs-body);font-weight:500;color:var(--text)}.dock-status{font-size:var(--fs-caption);color:var(--online)}.app-shell{width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-sans);overflow:hidden;overscroll-behavior:none}.app-shell-body{flex:1;min-height:0;display:flex;flex-direction:column}.app-shell-body>*{flex:1;min-height:0}.titlebar{height:40px;flex-shrink:0;display:flex;align-items:center;background:var(--surface);border-bottom:1px solid var(--border-hover);-webkit-user-select:none;-moz-user-select:none;user-select:none}.titlebar-brand{display:flex;align-items:center;gap:8px;height:100%;padding:0 12px}.titlebar-name{font-size:var(--fs-caption);font-weight:600;color:var(--text);letter-spacing:.04em}.titlebar-drag{flex:1;height:100%}.titlebar-btn{width:46px;height:40px;border:0;background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.titlebar-btn:hover{background:var(--surface-hover);color:var(--text)}.titlebar-btn.is-close:hover{background:var(--error);color:var(--text)}.app-body{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:0}.main-col{display:grid;grid-template-rows:1fr auto;min-width:0;min-height:0}.member-row{display:flex;flex-wrap:wrap;gap:10px;padding:8px;margin:-8px}@keyframes skel-pulse{0%,to{opacity:.42}50%{opacity:.78}}.skel{display:inline-block;background:var(--surface-hover);border-radius:var(--radius);animation:skel-pulse 1.4s ease-in-out infinite}.skel-title{width:88px;height:24px}.skel-caption{width:72px;height:14px}.skel-line{display:block;height:14px}.skel-input{height:46px;border-radius:var(--radius-md)}.skel-btn{width:88px;height:46px;border-radius:var(--radius-md);flex-shrink:0}.skel-card{pointer-events:none;width:136px;min-width:136px;min-height:140px;background:var(--surface)}.skel-card:before{content:"";width:56px;height:56px;border-radius:50%;background:var(--surface-hover);animation:skel-pulse 1.4s ease-in-out infinite}.skel-card:after{content:"";width:56px;height:14px;border-radius:var(--radius);background:var(--surface-hover);animation:skel-pulse 1.4s ease-in-out infinite}.skel-nav{pointer-events:none;min-height:44px;background:var(--surface-hover);animation:skel-pulse 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.nav-avatars-slot,.nav-avatars{transition:none}.skel,.skel-card:before,.skel-card:after,.skel-nav{animation:none}}.channel-main{display:flex;flex-direction:column;gap:16px;height:100%;min-height:0;overflow:hidden;padding:20px 24px}.channel-main.is-empty{align-items:stretch}.channel-main.is-empty .channel-empty{flex:1}.channel-main-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.channel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);width:100%;min-height:0}.channel-empty-art{display:block;width:100%;height:auto;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.channel-empty.is-main .channel-empty-art{max-width:min(720px,100%);max-height:min(480px,100%)}.channel-empty-hint{margin:0;color:var(--text-secondary);font-size:var(--fs-body);font-weight:500;text-align:center}.channel-empty.is-nav{box-sizing:border-box;padding:24px 16px 32px}.channel-empty.is-nav .channel-empty-art{max-width:220px}.settings-main{height:100%;min-height:0;padding:24px}.file-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:180px;padding:20px;border:1px dashed var(--border-hover);border-radius:10px;background:var(--bg);text-align:center}.file-drop.is-over{border-color:var(--accent);background:var(--accent-soft)}.file-drop.is-disabled{opacity:.45;pointer-events:none}.avatar-crop-canvas{width:360px;height:360px;border-radius:12px;cursor:grab;touch-action:none;background:var(--bg)}.avatar-crop-canvas:active{cursor:grabbing}.avatar-crop-dialog{max-width:720px}.avatar-crop-split{display:grid;grid-template-columns:360px 1fr;gap:var(--space-6);align-items:center}.avatar-crop-aside{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.avatar-crop-preview{width:128px;height:128px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:2px solid var(--accent);background:var(--bg)}.avatar-crop-preview.is-empty{border-style:dashed;border-color:var(--border-hover)}.avatar-carousel{display:flex;align-items:center;gap:var(--space-3)}.avatar-carousel-nav{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;border:1px solid var(--border-hover);background:var(--surface-hover);color:var(--text);cursor:pointer}.avatar-carousel-nav:hover{background:var(--surface-alt);border-color:var(--accent);color:var(--accent)}.avatar-carousel-nav svg{width:20px;height:20px;stroke:currentColor}.avatar-carousel-viewport{flex:1;min-width:0}.avatar-carousel-track{display:grid;grid-template-rows:repeat(2,auto);grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/5);gap:var(--space-3);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:var(--space-3);scrollbar-width:thin;scrollbar-color:var(--border-hover) var(--bg)}.avatar-carousel-track::-webkit-scrollbar{height:8px}.avatar-carousel-track::-webkit-scrollbar-track{background:var(--bg);border-radius:4px}.avatar-carousel-track::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:4px}.avatar-carousel-track::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.avatar-carousel-item{position:relative;width:100%;aspect-ratio:1;min-height:56px;scroll-snap-align:start}.avatar-carousel-item img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.app-toast{background:var(--surface-alt)!important;color:var(--text)!important;border:1px solid var(--border-hover)!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(var(--shadow-rgb),.28)!important;font-family:var(--font-sans)!important;font-size:var(--fs-body)!important}[role=alertdialog],[role=dialog]{font-family:var(--font-sans)!important}[data-sonner-toast][data-type=success]{border-color:rgba(var(--success-rgb),.45)!important}[data-sonner-toast][data-type=error]{border-color:rgba(var(--error-rgb),.5)!important}[data-sonner-toast][data-type=warning]{border-color:rgba(var(--warning-rgb),.45)!important}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-filters{display:flex;flex-wrap:nowrap;align-items:center;gap:12px}.admin-filters .admin-search{position:relative;flex:0 0 240px;width:240px}.admin-filters .admin-search .input{width:100%}.admin-filters>.select{flex:0 0 160px;width:160px}.admin-filters>.input{flex:0 0 160px;width:160px}.web-site-actions{display:flex;align-items:center;gap:var(--space-3)}.web-site-actions.is-overlay{position:absolute;top:var(--space-4);right:var(--space-4);z-index:2}.web-site-actions.is-stack{flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-4) var(--space-5) 0;flex-shrink:0}.auth-stage-wrap{position:relative;height:100%;min-height:0;display:flex;flex-direction:column}.auth-stage-wrap>.auth-stage{flex:1;min-height:0}.auth-stage{display:grid;grid-template-columns:1fr 1fr;align-items:center;height:100%;padding:48px 64px;gap:48px;position:relative}.auth-stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 30% 40%,rgba(var(--accent-rgb),.12),transparent 55%);pointer-events:none}.auth-hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.auth-hero img{width:100%;max-width:640px;height:auto;-o-object-fit:contain;object-fit:contain}.auth-hero-title{margin:20px 0 0;font-size:var(--fs-h1);font-weight:700;line-height:1.3;color:var(--text)}.auth-hero-sub{margin:8px 0 0;font-size:var(--fs-caption);color:var(--text-secondary)}.auth-panel{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;height:100%}.auth-form-card{width:440px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:32px}.auth-panel.is-wide .auth-form-card{width:min(720px,100%)}.auth-brand{display:flex;justify-content:center;margin-bottom:24px}.auth-brand .brand-mark{justify-content:center}.elev-menu{background:var(--surface-alt);border:1px solid var(--border-hover);border-radius:var(--radius-md);box-shadow:0 8px 24px rgba(var(--shadow-rgb),.28);font-family:var(--font-sans)}.elev-menu.channel-action-pop{width:auto;min-width:0;padding:6px 10px;pointer-events:none;font-family:var(--font-sans);font-size:var(--fs-caption);font-weight:400;line-height:1.4;letter-spacing:.02em;color:var(--text)}.overlay{background:var(--overlay)}.scroll-y{overflow-y:auto}.scroll-y::-webkit-scrollbar{width:8px}.scroll-y::-webkit-scrollbar-thumb{background:var(--surface-hover);border-radius:8px}.scroll-y::-webkit-scrollbar-track{background:transparent}.interactive{transition:background .16s ease,border-color .16s ease,color .16s ease}.invite-code{font-family:var(--font-mono);font-size:var(--fs-link);font-weight:500;letter-spacing:.04em;font-variant-numeric:tabular-nums}.h1{font-size:var(--fs-h1);font-weight:700;line-height:1.3;color:var(--text)}.h2{font-size:var(--fs-h2);font-weight:600;line-height:1.4}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.avatar-ring.is-speaking,.member-card.is-speaking,.voice-speak.is-speaking{animation:none;box-shadow:0 0 0 1px var(--speak)}.avatar-ring.is-speaking:after,.member-card.is-speaking:before,.member-card.is-speaking:after,.voice-speak.is-speaking:before,.voice-speak.is-speaking:after{animation:none;display:none}.vu-meter.is-demo i{animation:none;height:55%;background:var(--accent)}}.narrow-topbar,.nav-backdrop{display:none}@media(max-width:767px){.narrow-topbar{display:flex;align-items:center;gap:8px;flex-shrink:0;height:calc(48px + var(--safe-top));padding:var(--safe-top) 8px 0 4px;border-bottom:1px solid var(--border);background:var(--bg)}.narrow-menu-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text);cursor:pointer;flex-shrink:0}.narrow-topbar-title{flex:1;min-width:0;font-size:var(--fs-h2);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;border:0;padding:0;background:var(--overlay);cursor:pointer}.app-body.is-narrow{display:flex;flex-direction:column;grid-template-columns:none}.app-body.is-narrow .nav-side{position:fixed;top:0;left:0;bottom:0;z-index:40;width:min(var(--sidebar-w),86vw);transform:translate(-105%);transition:transform .2s ease;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left)}.app-body.is-narrow.is-drawer-open .nav-side{transform:translate(0);box-shadow:8px 0 24px rgba(var(--shadow-rgb),.28)}.app-body.is-narrow .main-col,.app-body.is-narrow .settings-main{flex:1;min-height:0;min-width:0}.channel-main{padding:12px 16px;gap:12px}.app-body.is-narrow .channel-main-head .h1{display:none}.member-row{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;-webkit-overflow-scrolling:touch}.member-card{width:104px;min-width:104px;min-height:120px;padding:16px 8px 12px}.chat-log{min-height:0}.chat-row{grid-template-columns:40px max-content minmax(0,1fr)}.chat-name{max-width:7em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-body{min-width:0;overflow-wrap:anywhere}.chat-composer{gap:8px}.btn-send{min-width:72px;padding:0 16px}.voice-bar{flex-direction:column;align-items:stretch;height:auto;min-height:0;padding:8px max(12px,var(--safe-right)) calc(8px + var(--safe-bottom)) max(12px,var(--safe-left));gap:8px}.voice-panel{grid-template-columns:max-content minmax(0,1fr) minmax(0,1fr);gap:8px;padding:8px 10px}.voice-mode-tabs{width:-moz-max-content;width:max-content;max-width:100%}.voice-mode-tab{flex:0 0 auto;height:44px;min-height:44px;padding:0 10px;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.voice-mode-tab.is-ptt{touch-action:none}.voice-speak{padding:0;width:22px;justify-content:center}.voice-speak-eq,.voice-speak.is-speaking:before,.voice-speak.is-speaking:after{display:none}.voice-meter-pct{display:none}.voice-meter-track{min-width:48px}.voice-actions{width:100%;justify-content:flex-end;gap:8px;padding:6px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.voice-icon{width:48px;height:48px}.settings-main{padding:12px 16px calc(16px + var(--safe-bottom))}.settings-main .card{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-4)}.settings-main .card>:not([hidden])~:not([hidden]){margin-top:0}.settings-main-head,.app-body.is-narrow .settings-main>header{margin-bottom:var(--space-3);justify-content:stretch}.settings-main-head .h1,.app-body.is-narrow .settings-main>header .h1{display:none}.settings-main-head .btn,.app-body.is-narrow .settings-main>header .btn{width:100%;min-height:44px;height:44px}.settings-main .field{min-width:0;width:100%}.settings-main .input,.settings-main .select{width:100%;min-width:0;height:44px;min-height:44px}.settings-main .settings-slider{min-height:44px}.settings-profile-row{flex-direction:column;align-items:stretch;gap:var(--space-3)}.settings-profile-role{min-height:44px}.settings-profile-action{width:100%}.settings-profile-action .btn{width:100%;min-height:44px;height:44px}.settings-main .seg-item{min-height:48px}.settings-speak-group{flex-wrap:nowrap}.settings-res-group{flex-direction:column}.settings-res-group .seg-item{width:100%;min-height:48px}.audio-test{padding:var(--space-3)}.audio-test-head{flex-direction:column;align-items:stretch}.audio-test-meta{width:100%}.audio-test-title,.audio-test-hint{overflow-wrap:anywhere}.audio-test-action,.audio-test-action .btn,.audio-test-head .btn{width:100%;min-height:44px;height:44px}.hotkey-row{flex-direction:column;align-items:stretch}.hotkey-chip{min-width:0}.hotkey-row .btn{width:100%;min-height:44px;height:44px}.settings-avatar-layout{flex-direction:column;align-items:stretch;gap:var(--space-4)}.settings-avatar-current{align-self:center}.settings-avatar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.settings-avatar-grid button{width:auto;height:auto;aspect-ratio:1}.settings-avatar-grid img{width:100%;height:100%}.settings-avatar-grid .preset-check{right:4px;bottom:4px;width:16px;height:16px}.settings-main .file-drop{min-height:0;padding:var(--space-4);gap:var(--space-2)}.settings-main .file-drop .btn{min-height:44px;height:44px}.login-device-list{gap:var(--space-3)}.login-device-row{flex-wrap:wrap;align-items:flex-start;min-height:0;padding:var(--space-3);gap:var(--space-3)}.login-device-name{flex-wrap:wrap}.login-device-name .truncate,.login-device-meta{white-space:normal;overflow:visible;text-overflow:unset;overflow-wrap:anywhere}.login-device-action{flex:1 1 100%;width:100%}.login-device-action .btn,.login-device-row .btn{width:100%;margin-left:0;min-height:44px;height:44px}.settings-block-actions,.settings-block-actions .btn,#settings-about .btn,#settings-tour .btn{width:100%}.settings-block-actions .btn,#settings-about .btn,#settings-tour .btn{min-height:44px;height:44px}#settings-about,#settings-tour{overflow-wrap:anywhere}.settings-side .nav-item{min-height:44px}.settings-side .btn{min-height:44px;height:44px}.settings-user-card{min-width:0}.web-site-actions.is-overlay{position:static;justify-content:stretch;flex-wrap:wrap;padding:calc(var(--space-3) + var(--safe-top)) var(--space-4) 0}.web-site-actions.is-overlay .btn{flex:1 1 calc(50% - var(--space-3))}.auth-stage{grid-template-columns:1fr;padding:16px 16px calc(16px + var(--safe-bottom));gap:0;align-items:stretch;overflow-y:auto;-webkit-overflow-scrolling:touch}.auth-hero{display:none}.auth-panel{height:auto;align-items:flex-start}.auth-form-card,.auth-panel.is-wide .auth-form-card{width:100%;padding:20px 16px}.auth-stage:before{background:radial-gradient(ellipse at 50% 0%,rgba(var(--accent-rgb),.12),transparent 55%)}.register-steps{flex-wrap:wrap;row-gap:8px}.register-steps .h-px{width:16px}.avatar-crop-dialog{max-width:calc(100vw - 32px)}.avatar-crop-split{grid-template-columns:1fr;justify-items:center}.avatar-crop-canvas{width:min(360px,100%);height:auto;aspect-ratio:1}.avatar-carousel-track{grid-auto-columns:calc((100% - 24px) / 3)}.overlay+[role=dialog],.overlay+[role=alertdialog]{width:calc(100vw - 32px);max-width:calc(100vw - 32px);max-height:calc(100dvh - 24px);overflow-y:auto}}.hover\:bg-surface-hover:hover{background-color:var(--surface-hover)}.hover\:text-text:hover{color:var(--text)}.focus\:bg-surface-hover:focus{background-color:var(--surface-hover)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-4:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-accent:focus-visible{--tw-ring-color: var(--accent)}.focus-visible\:ring-accent-soft:focus-visible{--tw-ring-color: var(--accent-soft)}.data-\[state\=checked\]\:border-accent[data-state=checked]{border-color:var(--accent)}.data-\[state\=checked\]\:bg-accent[data-state=checked]{background-color:var(--accent)}.data-\[state\=active\]\:text-text[data-state=active]{color:var(--text)}.data-\[state\=active\]\:after\:absolute[data-state=active]:after{content:var(--tw-content);position:absolute}.data-\[state\=active\]\:after\:inset-x-0[data-state=active]:after{content:var(--tw-content);left:0;right:0}.data-\[state\=active\]\:after\:bottom-0[data-state=active]:after{content:var(--tw-content);bottom:0}.data-\[state\=active\]\:after\:h-0\.5[data-state=active]:after{content:var(--tw-content);height:.125rem}.data-\[state\=active\]\:after\:bg-accent[data-state=active]:after{content:var(--tw-content);background-color:var(--accent)}.admin-main{min-height:0;overflow:hidden}.admin-card-grid{display:none}@media(max-width:767px){.app-body.is-narrow .admin-main{flex:1;min-height:0;min-width:0}.admin-page{padding:var(--space-4) max(var(--space-4),var(--safe-right)) calc(var(--space-4) + var(--safe-bottom)) max(var(--space-4),var(--safe-left));-webkit-overflow-scrolling:touch}.admin-page-header{flex-direction:column;align-items:stretch}.admin-page-header-text .h1{font-size:var(--fs-h1)}.admin-page-header-text p{font-size:var(--fs-caption)}.admin-page-header-actions{flex-wrap:wrap;width:100%;justify-content:stretch}.admin-page-header-actions .btn{flex:1 1 auto;min-height:44px;height:44px}.admin-page-header-back{display:none}.admin-page-header-actions:not(:has(.btn:not(.admin-page-header-back))){display:none}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stats>:last-child:nth-child(odd){grid-column:1 / -1}.admin-filters{flex-wrap:wrap}.admin-filters>span{flex:1 1 100%}.admin-filters .admin-search,.admin-filters>.select,.admin-filters>.input{flex:1 1 100%;width:100%;max-width:100%}.admin-filters .select,.admin-filters .input{min-height:44px;height:44px}.admin-filters>.btn{flex:1 1 100%;min-height:44px;height:44px}.admin-wide-table{display:none}.admin-card-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.card.p-0>.admin-card-grid{padding:var(--space-3)}.admin-card{display:flex;flex-direction:column;gap:var(--space-3);min-width:0;padding:var(--space-3) var(--space-4)}.admin-card-head{display:flex;align-items:center;gap:var(--space-3);min-width:0}.admin-card-title{font-size:var(--fs-body);font-weight:600;color:var(--text);overflow-wrap:anywhere}.admin-card-sub{font-size:var(--fs-caption);color:var(--text-secondary);overflow-wrap:anywhere}.admin-card-fields{display:grid;gap:var(--space-2);margin:0}.admin-card-fields>div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);min-width:0}.admin-card-fields dt{margin:0;flex:0 0 auto;font-size:var(--fs-caption);color:var(--text-tertiary)}.admin-card-fields dd{margin:0;min-width:0;text-align:right;font-size:var(--fs-body);color:var(--text);overflow-wrap:anywhere}.admin-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.admin-card-actions .btn{min-width:44px;min-height:44px;height:44px}.admin-card-empty{grid-column:1 / -1;padding:var(--space-6) var(--space-3);text-align:center;color:var(--text-secondary);font-size:var(--fs-body)}.card.p-0 .admin-pager{padding-inline:var(--space-3);padding-bottom:var(--space-3)}.admin-pager{flex-wrap:wrap;gap:var(--space-2);justify-content:center}.admin-pager .pager{flex-wrap:wrap;justify-content:center}.admin-pager .pager-btn{min-width:44px;height:44px}.admin-rtc-hero{grid-template-columns:1fr}.admin-rtc-hero>.card{flex-direction:column;align-items:stretch}.admin-rtc-hero .btn{width:100%;min-height:44px;height:44px}.admin-rtc-fields{grid-template-columns:1fr}.card:has(>.admin-rtc-fields)>.flex{flex-wrap:wrap;gap:var(--space-2)}.card:has(>.admin-rtc-fields)>.flex .btn{min-height:44px;height:44px}}
