@property --glow-1{syntax:"<color>";inherits:true;initial-value:#4f7cff}@property --glow-2{syntax:"<color>";inherits:true;initial-value:#4f7cff}@property --glow-3{syntax:"<color>";inherits:true;initial-value:#4f7cff}:root{color-scheme:dark;--bg:color-mix(in srgb,var(--accent) 5%,#0b0f19);--bg-2:color-mix(in srgb,var(--accent) 5%,#070a13);--surface:color-mix(in srgb,var(--accent) 5%,#151a23);--surface-2:color-mix(in srgb,var(--accent) 9%,#131826);--border:color-mix(in srgb,var(--accent) 16%,#2b3446);--text:color-mix(in srgb,var(--accent) 8%,#f1f5f9);--text-dim:color-mix(in srgb,var(--accent) 10%,color-mix(in srgb,#f1f5f9 15%,#94a3b8));--text-placeholder:color-mix(in srgb,var(--accent) 6%,color-mix(in srgb,var(--surface-2) 20%,#94a3b8));--border-input:color-mix(in srgb,var(--border) 50%,var(--text-dim) 50%);--border-input-opacity:75%;--accent:#4f7cff;--accent-text:#ffffff;--accent-solid:#3559d1;--ok:color-mix(in srgb,var(--ok-text) 16%,transparent);--ok-text:#34d399;--warn:color-mix(in srgb,var(--warn-text) 16%,transparent);--warn-text:#fbbf24;--bad:color-mix(in srgb,var(--bad-text) 16%,transparent);--bad-text:#f87171;--bad-solid:#b91c1c;--idle:color-mix(in srgb,var(--idle-text) 16%,transparent);--idle-text:color-mix(in srgb,var(--accent) 10%,#98a2b3);--text-on-bright:#0b0e14;--qr-surface:#ffffff;--radius:18px;--radius-sm:12px;--radius-lg:28px;--spring:cubic-bezier(0.34,1.56,0.64,1);--scroll-y:0px;--glass-bg:color-mix(in srgb,color-mix(in srgb,var(--accent) 9%,#0f172a) 74%,transparent);--glass-bg-strong:color-mix(in srgb,color-mix(in srgb,var(--accent) 9%,#0f172a) 82%,transparent);--glass-bg-medium:color-mix(in srgb,color-mix(in srgb,var(--accent) 9%,#0f172a) 82%,transparent);--drawer-scrim:rgba(0,0,0,0.6);--scrim-tint:color-mix(in srgb,var(--accent) 8%,black);--glass-border:transparent;--glass-border-strong:transparent;--glass-shadow:0 16px 40px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.05);--glass-blur:16px;--glass-saturate:140%;--glass-fill:80%;--glow-1:color-mix(in srgb,var(--accent) 50%,transparent);--glow-2:color-mix(in srgb,var(--accent) 36%,transparent);--glow-3:color-mix(in srgb,var(--accent) 18%,transparent);--shine-highlight:rgba(255,255,255,0.16);--shine-edge:rgba(255,255,255,0.25);--inset-shadow:color-mix(in srgb,color-mix(in srgb,var(--accent) 15%,black) 40%,transparent);--card-shine:rgba(255,255,255,0.14);--btn-shine-highlight:rgba(255,255,255,0.16);--btn-shine-edge:rgba(255,255,255,0.28);--btn-glow-boost:0%;--btn-depth:rgba(0,0,0,0.1);--btn-secondary-shine-scale:55%;--btn-secondary-glow-pct:10%;--btn-secondary-border:none}:root[data-theme=light]{color-scheme:light;--bg:color-mix(in srgb,var(--accent) 5%,#f8fafc);--bg-2:color-mix(in srgb,var(--accent) 5%,#f1f5f9);--surface:color-mix(in srgb,var(--accent) 4%,#ffffff);--surface-2:color-mix(in srgb,var(--accent) 7%,#eef1f7);--border:color-mix(in srgb,var(--accent) 13%,#d7dbe4);--text:color-mix(in srgb,var(--accent) 8%,#0f172a);--text-dim:color-mix(in srgb,var(--accent) 10%,color-mix(in srgb,#0f172a 12%,#334155));--text-placeholder:color-mix(in srgb,var(--accent) 6%,color-mix(in srgb,var(--surface-2) 20%,#334155));--accent:#3559d1;--border-input-opacity:25%;--ok-text:#16a34a;--warn-text:#b45309;--bad-text:#dc2626;--idle-text:color-mix(in srgb,var(--accent) 10%,#6b7280);--ok:color-mix(in srgb,var(--ok-text) 26%,transparent);--warn:color-mix(in srgb,var(--warn-text) 26%,transparent);--bad:color-mix(in srgb,var(--bad-text) 26%,transparent);--idle:color-mix(in srgb,var(--idle-text) 26%,transparent);--glass-bg:color-mix(in srgb,color-mix(in srgb,var(--accent) 7%,#ffffff) 66%,transparent);--glass-bg-strong:color-mix(in srgb,color-mix(in srgb,var(--accent) 7%,#ffffff) 98%,transparent);--glass-bg-medium:color-mix(in srgb,color-mix(in srgb,var(--accent) 7%,#ffffff) 82%,transparent);--drawer-scrim:rgba(15,23,42,0.32);--glass-border:transparent;--glass-border-strong:transparent;--glass-shadow:0 14px 36px rgba(30,41,59,0.12),inset 0 1px 0 rgba(255,255,255,0.5);--glass-blur:16px;--glass-saturate:165%;--glass-fill:92%;--glow-1:color-mix(in srgb,var(--accent) 30%,transparent);--glow-2:color-mix(in srgb,var(--accent) 22%,transparent);--glow-3:color-mix(in srgb,var(--accent) 12%,transparent);--card-shine:rgba(255,255,255,0.95);--shine-highlight:rgba(255,255,255,0.55);--shine-edge:rgba(255,255,255,0.75);--inset-shadow:color-mix(in srgb,color-mix(in srgb,var(--accent) 15%,black) 22%,transparent);--btn-glow-boost:12%;--btn-depth:rgba(15,23,42,0.18);--btn-secondary-shine-scale:100%;--btn-secondary-glow-pct:20%;--btn-secondary-border:none}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){color-scheme:light;--bg:color-mix(in srgb,var(--accent) 5%,#f8fafc);--bg-2:color-mix(in srgb,var(--accent) 5%,#f1f5f9);--surface:color-mix(in srgb,var(--accent) 4%,#ffffff);--surface-2:color-mix(in srgb,var(--accent) 7%,#eef1f7);--border:color-mix(in srgb,var(--accent) 13%,#d7dbe4);--text:color-mix(in srgb,var(--accent) 8%,#0f172a);--text-dim:color-mix(in srgb,var(--accent) 10%,color-mix(in srgb,#0f172a 12%,#334155));--text-placeholder:color-mix(in srgb,var(--accent) 6%,color-mix(in srgb,var(--surface-2) 20%,#334155));--accent:#3559d1;--border-input-opacity:25%;--ok-text:#16a34a;--warn-text:#b45309;--bad-text:#dc2626;--idle-text:color-mix(in srgb,var(--accent) 10%,#6b7280);--ok:color-mix(in srgb,var(--ok-text) 26%,transparent);--warn:color-mix(in srgb,var(--warn-text) 26%,transparent);--bad:color-mix(in srgb,var(--bad-text) 26%,transparent);--idle:color-mix(in srgb,var(--idle-text) 26%,transparent);--glass-bg:color-mix(in srgb,color-mix(in srgb,var(--accent) 7%,#ffffff) 66%,transparent);--glass-bg-strong:color-mix(in srgb,color-mix(in srgb,var(--accent) 7%,#ffffff) 98%,transparent);--glass-bg-medium:color-mix(in srgb,color-mix(in srgb,var(--accent) 7%,#ffffff) 82%,transparent);--drawer-scrim:rgba(15,23,42,0.32);--glass-border:transparent;--glass-border-strong:transparent;--glass-shadow:0 14px 36px rgba(30,41,59,0.12),inset 0 1px 0 rgba(255,255,255,0.5);--glass-blur:16px;--glass-saturate:165%;--glass-fill:92%;--glow-1:color-mix(in srgb,var(--accent) 30%,transparent);--glow-2:color-mix(in srgb,var(--accent) 22%,transparent);--glow-3:color-mix(in srgb,var(--accent) 12%,transparent);--card-shine:rgba(255,255,255,0.95);--shine-highlight:rgba(255,255,255,0.55);--shine-edge:rgba(255,255,255,0.75);--inset-shadow:color-mix(in srgb,color-mix(in srgb,var(--accent) 15%,black) 22%,transparent);--btn-glow-boost:12%;--btn-depth:rgba(15,23,42,0.18);--btn-secondary-shine-scale:100%;--btn-secondary-glow-pct:20%;--btn-secondary-border:none}}.theme-transition{transition:--glow-1 .6s ease,--glow-2 .6s ease,--glow-3 .6s ease}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}*{box-sizing:border-box}body,html{padding:0;margin:0;touch-action:pan-x pan-y;overscroll-behavior-y:contain}body{background:linear-gradient(160deg,var(--bg) 0,var(--bg-2) 100%);color:var(--text);font-family:var(--font-inter),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .6s ease}.ambient-blobs{position:fixed;inset:0;overflow:hidden;pointer-events:none}.ambient-blob{position:absolute;border-radius:50%;filter:blur(75px);transition:opacity .6s ease;animation:blob-drift 26s ease-in-out infinite}.theme-transition .ambient-blob{transition:background .6s ease,opacity .6s ease}.ambient-blob-1{width:620px;height:620px;top:-160px;right:-140px;background:radial-gradient(circle,var(--glow-1) 0,transparent 70%);animation-delay:0s;translate:0 calc(var(--scroll-y) * .16)}.ambient-blob-2{width:520px;height:520px;top:-40px;left:-160px;background:radial-gradient(circle,var(--glow-2) 0,transparent 70%);animation-delay:-8s;animation-direction:reverse;translate:0 calc(var(--scroll-y) * -.12)}.ambient-blob-3{width:500px;height:500px;bottom:-180px;left:-100px;background:radial-gradient(circle,var(--glow-3) 0,transparent 70%);animation-delay:-16s;translate:0 calc(var(--scroll-y) * .2)}@keyframes blob-drift{0%,to{transform:translate(0)}50%{transform:translate(4%,6%)}}html.page-hidden .ambient-blob{animation-play-state:paused}a{color:var(--accent)}.page-shell{display:flex;flex-direction:column;min-height:100dvh}main.page{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;padding:20px 16px 40px;position:relative}@media (max-width:639px){main.page{padding-top:0}}.page-loading-spinner{width:32px;height:32px;margin:auto;border:3px solid var(--border);border-top-color:var(--text-dim);border-radius:50%;animation:page-loading-spin .8s linear infinite}@keyframes page-loading-spin{to{transform:rotate(1turn)}}.app-header{width:100%;max-width:480px;display:flex;align-items:center;justify-content:center;padding:24px 0;position:relative}.app-header .header-left{position:absolute;left:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:8px}.app-header .header-back,.app-header .header-history,.app-header .header-leave,.app-header .header-settings{display:flex;align-items:center;justify-content:center;border:none;background:none;padding:4px;margin:0;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent}.app-header .header-back:hover,.app-header .header-history:hover,.app-header .header-leave:hover,.app-header .header-settings:hover{color:var(--accent)}.app-header .app-title img,.app-header .app-title svg,.app-header .header-left svg,.app-header .header-settings svg{transform:translateZ(0)}.app-header .header-settings{position:absolute;right:0;top:50%;transform:translateY(-50%)}.app-title{font-size:22px;font-weight:800;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}.app-title-logo{max-height:50px;width:auto}.app-title-logo.brand-logo-dark{display:block}.app-title-logo.brand-logo-light{display:none}:root[data-theme=light] .app-title-logo.brand-logo-light{display:block}:root[data-theme=light] .app-title-logo.brand-logo-dark{display:none}.app-title span{color:var(--text);font-weight:800}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]) .app-title-logo.brand-logo-light{display:block}:root:not([data-theme=dark]):not([data-theme=light]) .app-title-logo.brand-logo-dark{display:none}}.card{width:100%;max-width:480px;background:var(--surface);border:1px solid transparent;border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--glass-shadow);transition:background .4s ease,border-color .4s ease,box-shadow .4s ease}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.card{background:radial-gradient(120% 100% at 50% calc(-20% + var(--scroll-y) * .12),var(--card-shine),transparent 60%),var(--glass-bg);border-color:var(--glass-border);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}.card h2{margin:0 0 12px;font-size:18px}.card h2:has(+.subtitle){margin-bottom:12px}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-help-link{flex-shrink:0;display:flex;color:var(--text);-webkit-tap-highlight-color:transparent}.card-help-link:focus-visible,.card-help-link:hover{color:var(--accent)}.info-box{width:100%;max-width:480px;background:var(--surface-2);border:1px solid transparent;border-radius:var(--radius);padding:16px;margin:0 0 16px;transition:background .4s ease,border-color .4s ease}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.info-box{background:var(--glass-bg-strong);border-color:var(--glass-border);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}.info-box p{margin:0}.info-box p+*{margin-top:12px}.card .subtitle{margin:0 0 16px;color:var(--text-dim);font-size:14px}.card .subtitle:has(+.disclosure){margin-bottom:8px}label{display:block;font-size:13px;font-weight:600;color:var(--text-dim);margin-bottom:6px}input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],select,textarea{width:100%;padding:14px;font-size:16px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--border-input) var(--border-input-opacity),transparent);background:var(--surface-2);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);box-shadow:inset 0 6px 8px var(--inset-shadow),inset 0 -1px 2px var(--shine-edge);color:var(--text);margin-bottom:14px;font-family:inherit}input[type=number]::placeholder,input[type=password]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder,textarea::placeholder{color:var(--text-placeholder)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent),inset 0 6px 8px var(--inset-shadow),inset 0 -1px 2px var(--shine-edge)}.field-row{display:flex;align-items:center;gap:10px;margin-bottom:20px}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex-shrink:0;width:20px;height:20px;margin:0;border-radius:8px;border:1px solid color-mix(in srgb,var(--border-input) var(--border-input-opacity),transparent);background-color:var(--surface-2);box-shadow:inset 0 2px 3px var(--inset-shadow),inset 0 -1px 1px var(--shine-edge);background-repeat:no-repeat;background-position:50%;background-size:13px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}input[type=checkbox]:hover:not(:disabled){border-color:var(--accent)}input[type=checkbox]:checked{border-color:var(--accent-solid);background-color:var(--accent-solid);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E")}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex-shrink:0;width:20px;height:20px;margin:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--border-input) var(--border-input-opacity),transparent);background-color:var(--surface-2);box-shadow:inset 0 2px 3px var(--inset-shadow),inset 0 -1px 1px var(--shine-edge);background-repeat:no-repeat;background-position:50%;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}input[type=radio]:hover:not(:disabled){border-color:var(--accent)}input[type=radio]:checked{border-color:var(--accent-solid);background-image:radial-gradient(circle,var(--accent-solid) 4px,transparent 4px)}input[type=radio]:disabled{opacity:.5;cursor:not-allowed}.field-row input[type=number],.field-row input[type=text]{margin-bottom:0;flex:1 1;min-width:0}.field-row .btn{width:auto;flex-shrink:0}.field-row label{margin:0;font-size:14px;font-weight:500;color:var(--text)}.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:none;border-radius:var(--radius);padding:15px 20px;font-size:15px;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .15s var(--spring),opacity .15s ease,box-shadow .4s ease,border-color .2s ease,background .2s ease;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}@media (hover:hover) and (pointer:fine){.btn-icon:focus-visible,.btn:focus-visible,.chip:focus-visible,.landing-card:focus-visible,.lang-toggle button:focus-visible,.quality-option:focus-within,.room-history-link:focus-visible,.tab-btn:focus-visible,.theme-toggle button:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent)}}.btn-primary{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(130% 160% at 50% -40%,var(--btn-shine-highlight),transparent 65%),linear-gradient(180deg,var(--btn-shine-highlight) 0,transparent 45%,transparent 55%,var(--btn-depth) 100%),color-mix(in srgb,var(--accent-solid) var(--glass-fill),transparent);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);color:var(--accent-text);box-shadow:0 10px 28px color-mix(in srgb,var(--accent-solid) calc(35% + var(--btn-glow-boost)),transparent),inset 0 1px 2px var(--btn-shine-edge)}.btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 15%,var(--btn-shine-edge) 50%,transparent 85%);background-size:200% 100%;background-position:130% 0;opacity:.2;transition:background-position .55s ease;pointer-events:none}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 34px color-mix(in srgb,var(--accent-solid) calc(45% + var(--btn-glow-boost)),transparent),inset 0 1px 2px var(--btn-shine-edge)}.btn-primary:hover:after{background-position:-30% 0}.btn-primary:active{transform:scale(.98)}.btn-secondary{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(130% 160% at 50% -40%,color-mix(in srgb,var(--shine-highlight) var(--btn-secondary-shine-scale),transparent),transparent 65%),linear-gradient(180deg,color-mix(in srgb,var(--btn-shine-highlight) var(--btn-secondary-shine-scale),transparent) 0,transparent 45%,transparent 55%,var(--btn-depth) 100%),var(--surface-2);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);color:var(--text);border:var(--btn-secondary-border);box-shadow:0 10px 24px transparent,inset 0 1px 2px var(--shine-edge)}.btn-secondary:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 15%,var(--shine-edge) 50%,transparent 85%);background-size:200% 100%;background-position:130% 0;opacity:.14;transition:background-position .55s ease;pointer-events:none}.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 10px 24px color-mix(in srgb,var(--text) var(--btn-secondary-glow-pct),transparent),inset 0 1px 2px var(--shine-edge)}.btn-secondary:hover:after{background-position:-30% 0}.btn-secondary:active{transform:scale(.98)}.btn-danger{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(130% 160% at 50% -40%,var(--btn-shine-highlight),transparent 65%),linear-gradient(180deg,var(--btn-shine-highlight) 0,transparent 45%,transparent 55%,var(--btn-depth) 100%),color-mix(in srgb,var(--bad-solid) var(--glass-fill),transparent);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);color:#ffffff;box-shadow:0 10px 24px transparent,inset 0 1px 2px var(--btn-shine-edge)}.btn-danger:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 15%,var(--btn-shine-edge) 50%,transparent 85%);background-size:200% 100%;background-position:130% 0;opacity:.18;transition:background-position .55s ease;pointer-events:none}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 10px 24px color-mix(in srgb,var(--bad-solid) calc(45% + var(--btn-glow-boost)),transparent),inset 0 1px 2px var(--btn-shine-edge)}.btn-danger:hover:after{background-position:-30% 0}.btn-danger:active{transform:scale(.98)}.btn:disabled,.btn:disabled:active,.btn:disabled:hover{transform:none!important}.btn:disabled:after{display:none}.btn-primary:disabled,.btn-primary:disabled:hover{box-shadow:0 10px 28px color-mix(in srgb,var(--accent-solid) calc(35% + var(--btn-glow-boost)),transparent),inset 0 1px 2px var(--btn-shine-edge)!important}.btn-secondary:disabled,.btn-secondary:disabled:hover{box-shadow:inset 0 1px 2px var(--shine-edge)!important}.btn-danger:disabled,.btn-danger:disabled:hover{box-shadow:inset 0 1px 2px var(--btn-shine-edge)!important}.btn-tertiary{background:none;color:var(--text-dim);border:none}.btn-tertiary:hover:not(:disabled){color:var(--text)}.btn-row{display:flex;gap:10px;width:100%}.btn-row .btn{flex:1 1;min-width:0}.form-actions{margin-top:8px}.mode-tab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px;margin-bottom:10px}.btn-inline{width:auto;flex:0 0 auto;padding:12px 18px;font-size:15px}.btn-lg{padding:24px;font-size:19px}.status-badge{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:700;border:none;font-family:inherit}.status-badge-button{cursor:pointer;-webkit-tap-highlight-color:transparent}.status-badge .pulse{width:8px;height:8px;border-radius:50%}.status-ok{background:var(--ok);color:var(--ok-text);box-shadow:0 0 14px color-mix(in srgb,var(--ok-text) 30%,transparent)}.status-ok .pulse{background:var(--ok-text);box-shadow:0 0 0 0 var(--ok-text);animation:pulse 1.6s infinite}.status-warn{background:var(--warn);color:var(--warn-text);box-shadow:0 0 14px color-mix(in srgb,var(--warn-text) 25%,transparent)}.status-warn .pulse{background:var(--warn-text)}.status-bad{background:var(--bad);color:var(--bad-text);box-shadow:0 0 14px color-mix(in srgb,var(--bad-text) 25%,transparent)}.status-bad .pulse{background:var(--bad-text)}.status-idle{background:var(--idle);color:var(--idle-text)}.status-idle .pulse{background:var(--idle-text)}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok-text) 50%,transparent)}70%{box-shadow:0 0 0 8px color-mix(in srgb,var(--ok-text) 0%,transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok-text) 0%,transparent)}}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.chip-offline{background:color-mix(in srgb,var(--warn-text) 12%,var(--surface-2));border-color:color-mix(in srgb,var(--warn-text) 40%,transparent);color:var(--warn-text);cursor:pointer}.chip-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent-solid);color:var(--accent-text);font-size:12px;font-weight:700}.admin-detail{display:grid;grid-template-columns:auto 1fr;grid-gap:8px 12px;gap:8px 12px;font-size:14px;margin:0 0 16px}.admin-detail dt{color:var(--text-dim)}.admin-detail dd{margin:0;text-align:right;font-weight:600}.row-between{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2px 10px}.row-between:has(>h2,>h3){margin-bottom:16px}.row-between:has(>h2,>h3):has(+.subtitle){margin-bottom:4px}.row-between>h2,.row-between>h3{margin:0}.row-between:has(.status-badge){flex-wrap:nowrap}.row-between:has(.status-badge)>h2,.row-between:has(.status-badge)>h3{line-height:32px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-between:has(.status-badge) .status-badge{flex-shrink:0}.stat{text-align:center}.stat .value{font-size:28px;font-weight:800}.stat .label{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.stats-row{display:flex;justify-content:space-around;padding:8px 0 4px}.qr-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}.qr-wrap img{width:200px;height:200px;background:var(--qr-surface);padding:10px}.link-box,.qr-wrap img{border-radius:var(--radius-sm)}.link-box{width:100%;padding:12px;background:var(--surface-2);border:1px solid var(--border);font-size:13px;color:var(--text-dim);word-break:break-all;text-align:center}input[type=range]{border:none;outline:none;box-shadow:none}.slider{width:100%;height:28px;margin:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}.slider::-webkit-slider-runnable-track{height:6px;border:none;border-radius:999px;box-shadow:none;background:linear-gradient(to right,var(--accent) var(--slider-fill,50%),var(--surface-2) var(--slider-fill,50%))}.slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border:none;border-radius:50%;box-shadow:none;background:var(--accent)}.slider:focus::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.slider::-moz-range-track{height:6px;border:none;border-radius:999px;box-shadow:none;background:var(--surface-2)}.slider::-moz-range-progress{height:6px;border-radius:999px;background:var(--accent)}.slider::-moz-range-thumb{width:20px;height:20px;border:none;border-radius:50%;box-shadow:none;background:var(--accent)}.slider:focus::-moz-range-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.expected-audience{display:flex;flex-direction:column;margin-top:4px}.expected-audience-value{align-self:center;font-size:20px;font-weight:700;color:var(--accent);margin-bottom:2px}.muted-toggle{font-size:15px;font-weight:700}.btn.is-muted{color:var(--bad-text);border:1px solid var(--bad-text);box-shadow:0 0 14px color-mix(in srgb,var(--bad-text) 35%,transparent)}.helper-text{font-size:13px;color:var(--text-dim);text-align:center;margin-top:8px}.pin-input+.helper-text,input[type=number]+.helper-text,input[type=password]+.helper-text,input[type=tel]+.helper-text,input[type=text]+.helper-text,input[type=url]+.helper-text,select+.helper-text,textarea+.helper-text{margin-top:-6px}.option-group .field-row+.helper-text{margin-top:-6px;text-align:left;padding-left:30px}.field-row+.helper-text{margin-top:-14px;text-align:left;padding-left:30px}.disclosure{margin:0 0 22px}.disclosure:not(.advanced-options){margin-bottom:16px}input[type=text]:has(+.advanced-options){margin-bottom:12px}.disclosure summary{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--accent);cursor:pointer;list-style:none;border-radius:6px;-webkit-tap-highlight-color:transparent}@media (hover:hover) and (pointer:fine){.disclosure summary:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent)}}.disclosure summary::-webkit-details-marker{display:none}.disclosure summary svg{transition:transform .15s ease}.disclosure[open] summary svg{transform:rotate(180deg)}.disclosure-content{margin-top:10px;font-size:13px;color:var(--text-dim);line-height:1.5}.disclosure-content p{margin:0 0 6px}.disclosure-content p:last-child{margin-bottom:0}.advanced-options .disclosure-content{margin-top:14px;font-size:inherit;color:inherit}.advanced-options .disclosure-content .field-row:last-child{margin-bottom:0}.option-group{display:flex;flex-direction:column;margin-bottom:14px}.option-group:last-child{margin-bottom:0}.option-group .field-row,.option-group .pin-input{margin-bottom:10px}.option-group .field-row:last-child,.option-group .helper-text:last-child,.option-group>input:last-child,.option-group>select:last-child,.option-group>textarea:last-child{margin-bottom:0}.option-group .pin-input:last-child,.pin-input{margin-bottom:14px}.pin-input{display:flex;gap:8px}.modal-content .option-group .pin-input:last-child,.modal-content .pin-input{margin-bottom:20px}.pin-input input{width:100%;min-width:0;max-width:48px;height:48px;aspect-ratio:1;padding:0;text-align:center;font-size:20px;font-weight:700;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--border-input) var(--border-input-opacity),transparent);background:var(--surface-2);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);box-shadow:inset 0 6px 8px var(--inset-shadow),inset 0 -1px 2px var(--shine-edge);color:var(--text);margin-bottom:0}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}.shake{animation:shake .35s ease-out}.error-text{color:var(--bad-text);font-size:14px;margin:8px 0 14px}.option-group .field-row+.error-text,.pin-input+.error-text,input[type=number]+.error-text,input[type=password]+.error-text,input[type=tel]+.error-text,input[type=text]+.error-text,input[type=url]+.error-text,select+.error-text,textarea+.error-text{margin-top:-6px}.field-row+.error-text{margin-top:-14px}.center{text-align:center}.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-row{display:flex;align-items:center;justify-content:center;gap:8px}.help-toc{margin-bottom:0}.help-toc h2{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin:0 0 10px}.help-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;counter-reset:help-toc}.help-toc li{counter-increment:help-toc}.help-toc a{display:block;padding:10px 12px;border-radius:var(--radius-sm);text-decoration:none;font-weight:600;font-size:15px;color:var(--text)}.help-toc a:before{content:counter(help-toc) ". ";color:var(--accent)}.help-toc a:focus-visible,.help-toc a:hover{background:var(--surface-2)}.help-category{margin:28px 0 8px;scroll-margin-top:12px}.help-category:first-of-type{margin-top:0}.help-category h2{font-size:17px;margin:0 0 4px}.help-category-intro{color:var(--text-dim);font-size:14px;line-height:1.5;margin:0 0 4px}.help-item:not(:last-child){background-image:linear-gradient(90deg,transparent,var(--border),transparent);background-repeat:no-repeat;background-position:bottom;background-size:100% 1px}.help-item summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 2px;font-weight:600;font-size:15px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}.help-item summary::-webkit-details-marker{display:none}.help-item summary svg{flex-shrink:0;color:var(--text-dim);transition:transform .15s ease}.help-item[open] summary svg{transform:rotate(180deg)}.help-item-content{padding:0 2px 16px;color:var(--text-dim);font-size:14px;line-height:1.6}.help-item-content p{margin:0 0 10px}.help-item-content p:last-child{margin-bottom:0}.help-item-content ul{margin:0 0 10px;padding-left:20px}.help-item-content li{margin-bottom:6px}.help-item-content li:last-child{margin-bottom:0}.help-item-content strong{color:var(--text)}.walkie-speaker{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:52px;margin:0 0 14px}.walkie-hold-hint{color:var(--text);font-weight:700}.speaker-progress{width:100%;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden;margin-top:10px}.speaker-progress-bar{height:100%;background:var(--accent);transition:width .25s linear}.participants-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.participants-list li{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);background:var(--surface-2);font-size:14px}.participants-list li.speaking{background:var(--ok-text);color:var(--text-on-bright);font-weight:700;box-shadow:0 4px 20px color-mix(in srgb,var(--ok-text) 45%,transparent)}.participants-list li.self{border:1px solid var(--surface-2)}.participants-list li.admin-muted{border:1px solid var(--bad-text);box-shadow:0 0 8px color-mix(in srgb,var(--bad-text) 25%,transparent)}.participant-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-kick-btn,.participant-mute-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border:none;border-radius:8px;background:none;color:var(--text);cursor:pointer}.participant-kick-btn:hover{color:var(--bad-text)}.participant-mute-btn:hover{color:var(--accent)}.participant-mute-btn.muted{color:var(--bad-text)}.participant-mute-btn.muted:hover{opacity:.7}.participant-muted-icon{flex-shrink:0;color:var(--bad-text)}.tab-bar{display:flex;width:100%;max-width:480px;background:var(--surface);border:1px solid var(--glass-border);border-radius:999px;padding:6px;gap:6px;margin-bottom:16px;position:-webkit-sticky;position:sticky;top:16px;z-index:2;box-shadow:0 4px 12px rgba(0,0,0,0);transition:box-shadow .15s ease,background .4s ease,border-color .4s ease}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.tab-bar{background:var(--glass-bg-medium);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}.tab-bar.is-stuck{box-shadow:0 4px 12px rgba(0,0,0,.35)}.tab-btn{position:relative;flex:1 1;min-width:0;border:none;background:transparent;color:var(--text);font-size:14px;font-weight:700;padding:14px 6px;border-radius:999px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s ease,color .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}.tab-btn.active{animation:pill-pop .3s var(--spring);background:radial-gradient(130% 200% at 50% -60%,var(--btn-shine-highlight),transparent 65%),linear-gradient(180deg,var(--btn-shine-highlight) 0,transparent 45%,transparent 55%,var(--btn-depth) 100%),color-mix(in srgb,var(--accent-solid) var(--glass-fill),transparent);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);color:var(--accent-text);box-shadow:0 4px 14px color-mix(in srgb,var(--accent-solid) calc(40% + var(--btn-glow-boost)),transparent),inset 0 1px 2px var(--btn-shine-edge)}.tab-badge{position:absolute;top:8px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--bad-text)}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:var(--surface-2);color:var(--text);cursor:pointer;transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent}.btn-icon:hover{background:color-mix(in srgb,var(--accent) 16%,var(--surface-2));color:var(--accent)}.walkie-reconnect-btn{background:none}.walkie-reconnect-btn:hover{background:none;color:var(--accent)}.scanner-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--scrim-tint) 70%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.scanner-box{width:100%;max-width:420px;background:var(--surface);border:1px solid transparent;border-radius:var(--radius);padding:20px;box-shadow:var(--glass-shadow)}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.scanner-box{background:var(--glass-bg-strong);border-color:var(--glass-border);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}.scanner-video-wrap{position:relative;width:100%;min-height:280px;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:#000}.scanner-video{width:100%;height:100%;object-fit:cover}.scanner-frame{position:absolute;inset:12%;border:3px solid var(--accent);border-radius:var(--radius-sm);pointer-events:none}.install-banner{position:fixed;bottom:0;left:0;right:0;z-index:999;display:flex;align-items:center;gap:8px;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid transparent}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.install-banner{background:var(--glass-bg-strong);border-top-color:var(--glass-border);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}.install-banner-text{flex:1 1;display:flex;flex-direction:column;gap:2px;min-width:0}.install-banner-text strong{font-size:14px}.install-banner-text span{font-size:12px;color:var(--text-dim)}.install-banner .btn-inline{width:auto;height:36px;padding:0 14px;font-size:13px;gap:6px}.install-fab{position:fixed;bottom:20px;right:20px;z-index:999;width:52px;height:52px;border-radius:50%;border:none;background:radial-gradient(130% 160% at 50% -20%,var(--btn-shine-highlight),transparent 65%),linear-gradient(180deg,var(--btn-shine-highlight) 0,transparent 45%,transparent 55%,var(--btn-depth) 100%),color-mix(in srgb,var(--accent-solid) var(--glass-fill),transparent);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);color:var(--accent-text);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px color-mix(in srgb,var(--accent-solid) calc(40% + var(--btn-glow-boost)),transparent),inset 0 1px 2px var(--btn-shine-edge);cursor:pointer;-webkit-tap-highlight-color:transparent}.install-fab-raised{bottom:calc(72px + env(safe-area-inset-bottom))}body.chat-tab-active .install-banner,body.chat-tab-active .install-fab,body.hide-footer footer.app-footer{display:none}body.chat-tab-active{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.ptt-button{position:relative;isolation:isolate;overflow:hidden;width:100%;min-height:160px;aspect-ratio:1.6;border-radius:var(--radius);font-size:22px;font-weight:800;background:radial-gradient(130% 160% at 50% -30%,var(--btn-shine-highlight),transparent 65%),linear-gradient(180deg,var(--btn-shine-highlight) 0,transparent 45%,transparent 55%,var(--btn-depth) 100%),color-mix(in srgb,var(--accent-solid) var(--glass-fill),transparent);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);color:var(--accent-text);border:none;box-shadow:0 10px 28px color-mix(in srgb,var(--accent-solid) calc(35% + var(--btn-glow-boost)),transparent),inset 0 1px 2px var(--btn-shine-edge);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,transform .1s ease}.ptt-button:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 15%,var(--btn-shine-edge) 50%,transparent 85%);background-size:200% 100%;background-position:130% 0;opacity:.2;transition:background-position .55s ease;pointer-events:none}.ptt-button:hover:after{background-position:-40% 0}.ptt-button.live{background:radial-gradient(130% 160% at 50% -30%,var(--btn-shine-highlight),transparent 65%),linear-gradient(180deg,var(--btn-shine-highlight) 0,transparent 45%,transparent 55%,var(--btn-depth) 100%),color-mix(in srgb,var(--ok-text) var(--glass-fill),transparent);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);color:var(--text-on-bright);animation:ptt-live-pulse 2.2s ease-in-out infinite}@keyframes ptt-live-pulse{0%,to{box-shadow:0 0 26px color-mix(in srgb,var(--ok-text) 45%,transparent),inset 0 1px 2px var(--btn-shine-edge)}50%{box-shadow:0 0 52px color-mix(in srgb,var(--ok-text) 78%,transparent),inset 0 1px 2px var(--btn-shine-edge)}}.ptt-button.admin-muted{background:color-mix(in srgb,var(--bad-text) 12%,var(--surface-2));color:var(--bad-text);border:2px solid var(--bad-text);box-shadow:0 0 16px color-mix(in srgb,var(--bad-text) 25%,transparent)}.ptt-button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.ptt-button.pressed:not(:disabled){transform:scale(.97)}.queue-btn{width:100%;margin-top:10px}.divider{border:none;height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);margin:18px 0}footer.app-footer{width:100%;max-width:480px;text-align:center;color:var(--text-dim);font-size:12px;margin:8px auto 24px;padding:0 16px env(safe-area-inset-bottom);position:relative}footer.app-footer.app-footer-wide{max-width:1180px}footer.app-footer p{margin:8px 0 0}.footer-links{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px}.footer-links a,.footer-links button{color:var(--text-dim)}.footer-links a,.footer-links button,.link-button{background:none;border:none;padding:0;font:inherit;text-decoration:underline;cursor:pointer}.link-button{color:inherit}.walkie-audio-hint{display:none}@media (max-width:639px){.walkie-audio-hint{display:block;margin:12px auto 0;font-size:13px;color:var(--text-dim);text-align:center}}.report-abuse-link{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px auto 0;background:none;border:none;padding:0;font-size:13px;color:var(--text-dim);text-decoration:underline;cursor:pointer}.footer-sep{color:var(--border)}.footer-contact a{color:var(--text-dim)}.footer-author{opacity:.6;font-size:11px}.modal-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--scrim-tint) 70%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.modal-box{position:relative;width:100%;max-width:480px;max-height:85vh;margin:0;display:flex;flex-direction:column;padding:0;background:radial-gradient(120% 100% at 50% calc(-20% + var(--scroll-y) * .12),var(--card-shine),transparent 60%),var(--glass-bg-strong);animation:modal-pop-in .22s var(--spring)}@keyframes modal-pop-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.modal-close{position:absolute;top:12px;right:12px;z-index:2}.modal-content{text-align:left;min-height:0;overflow-y:auto;padding:20px}.modal-content h2:first-child{margin-right:40px;margin-bottom:12px}.drawer-content h2:first-child:has(+.subtitle),.modal-content h2:first-child:has(+.subtitle){margin-bottom:12px}.modal-content .subtitle{margin-bottom:16px}.lang-toggle{display:flex;flex-direction:row;gap:4px;background:var(--surface-2);border:1px solid var(--surface-2);border-radius:9999px;padding:6px}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.lang-toggle{background:var(--glass-bg-medium);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}.lang-toggle button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1;border:none;background:transparent;color:var(--text);font-size:14px;font-weight:600;padding:14px 12px;border-radius:9999px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease}.lang-toggle button.active{animation:pill-pop .3s var(--spring);background:radial-gradient(130% 200% at 50% -60%,var(--btn-shine-highlight),transparent 65%),linear-gradient(180deg,var(--btn-shine-highlight) 0,transparent 45%,transparent 55%,var(--btn-depth) 100%),color-mix(in srgb,var(--accent-solid) var(--glass-fill),transparent);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);color:var(--accent-text);box-shadow:inset 0 1px 2px var(--btn-shine-edge)}@keyframes pill-pop{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.drawer-overlay{position:fixed;inset:0;background:var(--drawer-scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;justify-content:flex-end;z-index:1000}.drawer-panel{position:relative;width:100%;max-width:340px;height:100%;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid transparent;box-shadow:-8px 0 32px rgba(0,0,0,.5);animation:drawer-slide-in .18s ease-out}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.drawer-panel{background:radial-gradient(120% 100% at 50% calc(-20% + var(--scroll-y) * .12),var(--card-shine),transparent 60%),var(--glass-bg-medium);border-left-color:var(--glass-border);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}@keyframes drawer-slide-in{0%{transform:translateX(100%)}to{transform:translateX(0)}}.drawer-close{position:absolute;top:12px;right:12px;z-index:2}.drawer-content{text-align:left;min-height:0;overflow-y:auto;padding:20px 30px}.drawer-content .btn{justify-content:flex-start}.drawer-content h2:first-child{margin-right:40px;margin-bottom:32px}.settings-section{margin-bottom:20px}.settings-section label{margin-bottom:8px}.settings-section-title{font-size:13px;font-weight:600;color:var(--text-dim);margin:0 0 18px}.settings-btn-group{display:flex;flex-direction:column}.settings-btn-group>.btn{position:static;background:none;border:none;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding-left:0;padding-right:0}.settings-btn-group>.btn-danger{color:var(--bad-text)}.settings-btn-group>.btn:after{display:none}.settings-btn-group>.btn:hover{transform:none;background:none;box-shadow:none}.settings-btn-group>.btn:active{transform:none;opacity:.6}.theme-toggle{display:flex;flex-direction:row;gap:4px;background:var(--surface-2);border:1px solid var(--surface-2);border-radius:9999px;padding:6px}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.theme-toggle{background:var(--glass-bg-medium);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}.theme-toggle button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1;border:none;background:transparent;color:var(--text);font-size:14px;font-weight:600;padding:14px 12px;border-radius:9999px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease}.theme-toggle button.active{animation:pill-pop .3s var(--spring);background:radial-gradient(130% 200% at 50% -60%,var(--btn-shine-highlight),transparent 65%),linear-gradient(180deg,var(--btn-shine-highlight) 0,transparent 45%,transparent 55%,var(--btn-depth) 100%),color-mix(in srgb,var(--accent-solid) var(--glass-fill),transparent);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);color:var(--accent-text);box-shadow:inset 0 1px 2px var(--btn-shine-edge)}.quality-options{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.quality-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--surface-2);background:var(--surface-2);border-radius:var(--radius-sm);padding:12px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent}.quality-option.active{border-color:var(--surface-2)}.quality-option input[type=radio]{flex-shrink:0;width:18px;height:18px;margin:2px 0 0}.quality-option-text{display:flex;flex-direction:column;gap:2px}.quality-option-label{font-size:14px;font-weight:700;color:var(--text)}.quality-option-description{font-size:13px;color:var(--text-dim)}textarea.chat-input{width:100%;padding:14px;font-size:16px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--border-input) var(--border-input-opacity),transparent);background:var(--surface-2);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);box-shadow:inset 0 6px 8px var(--inset-shadow),inset 0 -1px 2px var(--shine-edge);color:var(--text);margin-bottom:10px;font-family:inherit;resize:none;overflow-y:auto;transition:height .1s ease}.chat-feed{display:flex;flex-direction:column;gap:10px;scroll-margin-top:76px;scroll-margin-bottom:76px}.chat-load-more{width:auto;margin:0 auto 12px;padding:10px 20px}.chat-input-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:flex-end;width:100%;max-width:480px;margin:0 auto;padding:10px 16px max(10px,env(safe-area-inset-bottom));gap:8px;background:var(--surface);border-top:1px solid transparent;box-shadow:0 -4px 20px rgba(0,0,0,.15)}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.chat-input-bar{background:var(--glass-bg-strong);border-top-color:var(--glass-border);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}@media (min-width:481px){.chat-input-bar{border-radius:var(--radius) var(--radius) 0 0}}.chat-input-bar textarea{flex:1 1;min-width:0;margin:0;box-sizing:border-box}.chat-send-btn{flex-shrink:0;width:48px;height:48px;padding:0}.chat-send-btn svg{transform:translate(-1px,1px)}.chat-message{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;max-width:calc(100% - 40px);align-self:flex-start}.chat-message.from-self{background:var(--accent-solid);color:var(--accent-text);border-color:var(--accent-solid);align-self:flex-end}.chat-message .chat-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:4px}.chat-message .chat-time{font-weight:400;text-transform:none;letter-spacing:normal;white-space:nowrap}.chat-message.from-self .chat-meta{color:var(--accent-text);opacity:.8}.chat-message .chat-text{font-size:14px;white-space:pre-wrap;word-break:break-word}.onboarding-mode{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.onboarding-mode svg{color:var(--accent);flex-shrink:0;margin-top:2px}.onboarding-mode strong{display:block;margin-bottom:2px}.onboarding-mode p{margin:0;font-size:13px;color:var(--text-dim);line-height:1.5}.onboarding-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.onboarding-step-count{font-size:12px;color:var(--text-dim)}.onboarding-footer .btn{flex:1 1}.spotlight-overlay{position:fixed;inset:0;z-index:1000}.spotlight-highlight{position:fixed;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:0 0 0 9999px color-mix(in srgb,var(--scrim-tint) 90%,transparent),0 0 0 2px var(--accent);pointer-events:none}.spotlight-tooltip{position:fixed;left:16px;right:16px;max-width:400px;max-height:calc(100vh - 32px);overflow-y:auto;margin:0 auto;background:var(--surface);border:1px solid transparent;border-radius:var(--radius);padding:16px;font-size:13px;color:var(--text-dim);box-shadow:0 8px 32px rgba(0,0,0,.55)}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.spotlight-tooltip{background:var(--glass-bg-strong);border-color:var(--glass-border);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}.spotlight-tooltip h2{margin:0 0 8px;font-size:16px;color:var(--text)}.spotlight-tooltip>p{margin:0 0 12px}.spotlight-tooltip>.btn{width:100%}.toast-stack{position:fixed;top:calc(64px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(440px,calc(100vw - 32px));z-index:1100;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;line-height:1.4;pointer-events:all;animation:toast-in .18s ease;box-shadow:0 4px 16px rgba(0,0,0,.25)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-message{flex:1 1}.toast-close{background:none;border:none;color:inherit;cursor:pointer;opacity:.65;padding:0;display:flex;flex-shrink:0;line-height:1}.toast-close:hover{opacity:1}.toast-error{background:color-mix(in srgb,var(--bad-text) 24%,var(--surface));color:color-mix(in srgb,var(--bad-text) 55%,var(--text));border:1px solid color-mix(in srgb,var(--bad-text) 45%,transparent)}.toast-warning{background:color-mix(in srgb,var(--warn-text) 24%,var(--surface));color:color-mix(in srgb,var(--warn-text) 55%,var(--text));border:1px solid color-mix(in srgb,var(--warn-text) 45%,transparent)}.toast-info{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.toast-success{background:color-mix(in srgb,var(--ok-text) 24%,var(--surface));color:color-mix(in srgb,var(--ok-text) 55%,var(--text));border:1px solid color-mix(in srgb,var(--ok-text) 45%,transparent)}.room-history-list{list-style:none;margin:-15px 0 16px;padding:0;display:flex;flex-direction:column}.room-history-list li:not(:last-child){background-image:linear-gradient(90deg,transparent,var(--border),transparent);background-repeat:no-repeat;background-position:bottom;background-size:100% 1px}.room-history-link{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:none;background:none;border-radius:0;padding:15px 0;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.room-history-link:active{opacity:.6}.room-history-main{display:flex;flex-direction:column;gap:4px;min-width:0}.room-history-date{font-size:11px;color:var(--text-dim);opacity:.7}.room-history-name{font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:-6px;margin-top:6px}.room-history-meta{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:12px}.room-history-code-row{display:flex;align-items:center;gap:4px}.room-history-code{color:var(--text-dim);word-break:break-all}.room-history-icon-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:26px;height:26px;border:none;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent}.room-history-icon-btn:hover{background:var(--border);color:var(--accent)}.room-history-tag{flex-shrink:0;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:10px;color:var(--accent)}.room-history-type{flex-shrink:0;display:flex;color:var(--text-dim);margin-top:-4px}.room-history-type-live{color:var(--ok-text);filter:drop-shadow(0 0 4px var(--ok-text))}.admin-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.admin-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius-sm);padding:12px 14px}.admin-list-main{display:flex;flex-direction:column;gap:4px;min-width:0}.admin-list-badge{display:inline-block;align-self:flex-start;font-size:12px;font-weight:600;color:var(--text-dim);background:var(--surface-3,var(--surface-2));border:1px solid var(--border);border-radius:999px;padding:2px 10px}.load-more{margin-top:14px}.admin-list-confirm{display:flex;flex-direction:column;gap:10px;flex:1 1 100%}.admin-list-confirm .field-row{margin-bottom:0}.landing-logo-preview{display:flex;align-items:center;justify-content:center;padding:16px;margin-bottom:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.landing-logo-preview img{max-height:50px;width:auto}.admin-card-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.admin-card-list-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 12px}.admin-card-list-icon{flex-shrink:0;display:flex;color:var(--text-dim)}.admin-card-list-fields{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:6px}.admin-card-list-fields input{margin-bottom:0}.admin-card-list-token{font-size:11px;color:var(--text-dim);word-break:break-all}.admin-add-card{margin-top:10px;margin-bottom:14px}.landing-hero-image{width:100%;max-width:480px;height:auto;max-height:min(320px,45vh);object-fit:cover;border-radius:var(--radius);display:block;margin:0 0 16px}.landing-description{width:100%;max-width:480px;text-align:center;color:var(--text-dim);font-size:14px;white-space:pre-wrap;margin:0 0 20px}.landing-cards{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px;width:100%;max-width:480px}.landing-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;border:1px solid transparent;background:var(--surface);border-radius:var(--radius);padding:18px 10px;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:var(--glass-shadow);transition:transform .15s var(--spring),background .4s ease,border-color .4s ease,box-shadow .4s ease}@supports (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){.landing-card{background:radial-gradient(120% 100% at 50% calc(-20% + var(--scroll-y) * .12),var(--card-shine),transparent 60%),var(--glass-bg);border-color:var(--glass-border);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}}.landing-card:hover{transform:translateY(-3px);box-shadow:var(--glass-shadow),0 10px 24px color-mix(in srgb,var(--accent) 18%,transparent)}.landing-card:active{transform:scale(.98)}.landing-card-live{border-color:var(--ok-text);box-shadow:0 0 12px var(--ok-text)}.landing-card-icon{color:var(--text-dim)}.landing-card-icon-live{color:var(--ok-text);filter:drop-shadow(0 0 4px var(--ok-text))}.landing-card-name{font-size:16px;font-weight:700}.landing-card-badge{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:2px 8px}.landing-card-count{font-size:12px;color:var(--text-dim)}.capacity-bar-wrap{width:100%;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden;margin-top:8px}.capacity-bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .4s ease}@media (min-width:640px){.app-header,.card,.chat-input-bar,.info-box,.landing-cards,.landing-description,.landing-hero-image,.tab-bar,footer.app-footer:not(.app-footer-wide){max-width:520px}.tab-bar{height:60px;align-items:center}.tab-btn{padding:16px 6px}.card,.info-box{padding:40px}.modal-box{padding:0}.modal-content{padding:40px}.drawer-panel{max-width:400px}.drawer-content{padding:40px}.spotlight-tooltip{max-width:440px;padding:36px}.field-row{margin-bottom:26px}.option-group{margin-bottom:18px}.card h2{margin-bottom:16px}.card .subtitle{margin:0 0 20px}.card{margin-bottom:20px}}