:root{--font:"PingFang TC", "Microsoft JhengHei", "Noto Sans TC", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Consolas, monospace;--bg:#f5f6f8;--surface:#fff;--text:#16181d;--text-2:#565c69;--border:#dfe2e8;--border-strong:#858b97;--sep:#eceef2;--accent:#2852c7;--accent-hover:#2147b0;--danger:#b42318;--danger-hover:#9a1d13;--ok:#17663f;--ok-bg:#e7f4ec;--warn:#7a4b00;--warn-bg:#fdf3e1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font:15px/1.55 var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}a{color:var(--accent);text-underline-offset:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.narrow{max-width:420px;margin:0 auto;padding-top:min(8vh,64px)}.wide{max-width:760px;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.stack>*+*{margin-top:16px}.row{align-items:center;gap:8px;min-width:0;display:flex}.between{justify-content:space-between}.end{justify-content:flex-end}.wrap{flex-wrap:wrap}.center{text-align:center}.center .row{justify-content:center}.title{text-wrap:balance;font-size:20px;font-weight:600;line-height:1.35}.title2{overflow-wrap:anywhere;font-size:17px;font-weight:600;line-height:1.35}.muted{color:var(--text-2);text-wrap:pretty;font-size:14px}.label{margin-bottom:6px;font-size:14px;font-weight:600;display:block}.hint{color:var(--text-2);margin-top:6px;font-size:13px}.field-error{color:var(--danger);align-items:center;gap:6px;margin-top:6px;font-size:14px;display:flex}.note{background:var(--bg);color:var(--text-2);text-align:start;text-wrap:pretty;border-radius:8px;padding:10px 12px;font-size:14px}.sep{background:var(--sep);border:0;height:1px;margin:16px 0}.ic{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.input{border:1px solid var(--border-strong);background:#fff;border-radius:8px;width:100%;min-height:44px;padding:10px 12px;font-size:16px;display:block}.input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.input[aria-invalid=true]{border-color:var(--danger)}.otp{letter-spacing:.2em;font-variant-numeric:tabular-nums}.select{border:1px solid var(--border-strong);background:#fff;border-radius:8px;min-height:36px;padding:0 10px;font-size:14px}.btn{border:1px solid var(--border-strong);min-height:44px;color:var(--text);white-space:nowrap;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:#eef0f3}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.sm{min-height:36px;padding:0 12px;font-size:14px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover{background:var(--danger-hover)}.btn.text-danger{color:var(--danger)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:#e6e8ec}.btn.block{width:100%;display:flex}@media (pointer:coarse){.btn.sm,.select{min-height:44px}}.linkbox{min-width:0;min-height:36px;font:13px/1.4 var(--mono);color:var(--text-2);background:var(--bg);border:1px solid var(--border);text-overflow:ellipsis;border-radius:8px;flex:1;padding:6px 10px}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:2px 0 0}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:13px;font-weight:600;display:inline-flex}.badge.live{background:var(--ok-bg);color:var(--ok)}.pip{background:currentColor;border-radius:50%;width:8px;height:8px}.dlg{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;width:min(440px,100vw - 32px);color:var(--text);background:#fff;border:0;border-radius:12px;padding:20px;box-shadow:0 16px 48px #0000004d}.dlg::backdrop{background:#0f1115b3}.dash-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.meetings>*+*{margin-top:16px}.invites{margin-top:8px}.invites li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.invites li+li{border-top:1px solid var(--sep)}.mt{margin-top:16px}.mt-s{margin-top:10px}.grow{flex:1;min-width:0}.d-block{display:block}.preview{aspect-ratio:16/9;background:linear-gradient(135deg,#2a3142,#141820);border-radius:10px;place-items:center;display:grid;position:relative;overflow:hidden}.preview video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.mirror{transform:scaleX(-1)}.avatar{color:#eef0f3;background:#2b2f38;border-radius:50%;flex:none;place-items:center;width:56px;height:56px;font-size:20px;font-weight:600;display:grid}.avatar.sm{width:32px;height:32px;font-size:13px}.pv{inset-inline:0;justify-content:center;gap:12px;display:flex;position:absolute;bottom:10px}.pv button{color:#eef0f3;background:#2b2f38e6;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.pv button[aria-pressed=false]{color:#1c1f26;background:#eef0f3}.lockline{color:var(--ok);text-wrap:pretty;align-items:flex-start;gap:6px;font-size:14px;display:flex}.lockline .ic{margin-top:3px}.spin{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;margin:4px auto 0;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation-duration:4s}}.circle{border-radius:50%;place-items:center;width:48px;height:48px;margin:0 auto;display:grid}.circle .ic{width:24px;height:24px}.circle.warn{background:var(--warn-bg);color:var(--warn)}.circle.n{color:var(--text-2);background:#eef0f3}.room{--tile:#1c1f26;--room-text:#eef0f3;--room-text-2:#a9afba;--speaking:#3fbf7f;--room-focus:#7aa2ff;--ctl:#2b2f38;--line:#2f343d;--pop:#22262e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--room-text);padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);background:#0f1115;flex-direction:column;display:flex;position:fixed;inset:0}.room :focus-visible{outline-color:var(--room-focus)}.room .muted{color:var(--room-text-2)}.room-top{justify-content:space-between;align-items:center;gap:8px;min-height:52px;padding:8px 12px;display:flex;position:relative}.room-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:600;overflow:hidden}.lock{color:#6fd3a0;white-space:nowrap;background:#13261d;border:0;border-radius:999px;flex:none;align-items:center;gap:4px;min-height:32px;padding:2px 10px;font-size:13px;font-weight:600;display:inline-flex}.lock .ic{width:15px;height:15px}.count{color:var(--room-text-2);flex:none;align-items:center;gap:4px;font-size:14px;display:inline-flex}.banners{gap:8px;padding:0 12px 8px;display:grid}.banners:empty{display:none}.banner{color:#ffe2a8;text-wrap:pretty;background:#3a2f12;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex}.banner .btn{min-height:36px;margin-inline-start:auto}.stage{flex:1;min-height:0;margin:0 12px;position:relative}.stage.faded{opacity:.45}.grid{place-content:center;gap:8px;display:grid;position:absolute;inset:0}.tile{background:var(--tile);border-radius:10px;place-items:center;display:grid;position:relative;overflow:hidden}.tile video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.tile.share video{object-fit:contain;background:#000}.tile.spk:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 3px var(--speaking);pointer-events:none;position:absolute;inset:0}.nm{z-index:1;inset-inline-start:6px;background:#272b33e6;border-radius:6px;align-items:center;gap:4px;max-width:calc(100% - 12px);padding:2px 8px;font-size:13px;line-height:1.4;display:flex;position:absolute;bottom:6px}.nm-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nm .ic{width:14px;height:14px}.tile.spk .nm .ic{color:var(--speaking)}.role{color:#dbe5ff;background:#24345e;border-radius:4px;flex:none;padding:0 5px;font-size:11px}.sharing{gap:8px;display:flex;position:absolute;inset:0}.sharing>.tile{flex:1;min-width:0}.strip{flex-direction:column;flex:none;gap:8px;width:200px;display:flex;overflow-y:auto}.strip .tile{aspect-ratio:16/9;flex:none}@media (width<=720px),(orientation:portrait){.sharing{flex-direction:column}.strip{flex-direction:row;width:auto;height:96px;overflow:auto hidden}.strip .tile{aspect-ratio:1;height:100%}}.bar{padding:10px 12px max(12px, env(safe-area-inset-bottom));justify-content:center;gap:8px;display:flex}.ctl{background:var(--ctl);min-width:64px;min-height:56px;color:var(--room-text);white-space:nowrap;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 8px;font-size:12px;display:flex;position:relative}.ctl:hover{background:#363b46}.ctl .ic{width:22px;height:22px}.ctl.hot{color:#1c1f26;background:#eef0f3}.dot{top:4px;color:#fff;background:#3461d9;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;inset-inline-end:8px}@media (width<=380px){.bar{gap:6px;padding-inline:8px}.ctl{min-width:56px;padding-inline:4px}}.anchor{position:relative}.pop,.menu,.toast,.panel{background:var(--pop);border:1px solid var(--line);box-shadow:0 8px 24px #00000073}.pop{z-index:20;top:calc(100% - 4px);border-radius:12px;width:min(360px,100vw - 24px);padding:14px 16px;position:absolute;inset-inline-start:12px}.pop h2{align-items:center;gap:6px;font-size:15px;display:flex}.li{align-items:flex-start;gap:8px;padding:3px 0;font-size:14px;display:flex}.li .ic{color:#6fd3a0;width:16px;height:16px;margin-top:3px}.sep-d{background:var(--line);border:0;height:1px;margin:10px 0}.menu{z-index:20;bottom:calc(100% + 8px);border-radius:12px;width:min(340px,100vw - 24px);padding:6px;position:absolute;inset-inline-end:0}.mi{text-align:start;width:100%;color:inherit;background:0 0;border:0;border-radius:8px;padding:10px 12px;display:block}.mi:hover{background:var(--ctl)}.mi+.mi{margin-top:4px}.mi b{font-size:15px;display:block}.mi.danger b{color:#ff9b9b}.toasts{z-index:15;top:56px;width:min(360px,100vw - 24px);position:absolute;inset-inline-end:12px}.toast{border-radius:12px;padding:12px 14px}.btn.dk{background:var(--ctl);color:var(--room-text);border-color:#4a505c}.btn.dk:hover{background:#363b46}.btn.dk.primary{color:#fff;background:#3461d9;border-color:#3461d9}.link-d{color:#9fb8ff;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.panel{z-index:18;top:0;bottom:0;width:min(360px,100%);max-width:none;height:auto;max-height:none;color:inherit;border-width:0 0 0 1px;margin:0;padding:0;position:absolute;inset-inline:auto 0;overflow:hidden}.panel[open]{flex-direction:column;display:flex}.panel::backdrop{background:0 0}.panel-head{padding:max(12px, env(safe-area-inset-top)) 12px 8px 16px;justify-content:space-between;align-items:center;display:flex}.panel-head h2{font-size:16px}.panel-body{padding:0 16px max(16px, env(safe-area-inset-bottom));flex:1;overflow-y:auto}.panel-body .banners{padding:0}.panel h3{color:var(--room-text-2);margin:12px 0 4px;font-size:13px;font-weight:600}.person{align-items:center;gap:10px;min-height:52px;padding:8px 0;display:flex}.person+.person{border-top:1px solid var(--line)}.person .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width>=641px){.room.with-panel{padding-inline-end:360px}}@media (width<=640px){.panel{border-width:0;width:100%}}.dlg .muted{color:var(--text-2)}.dlg :focus-visible{outline-color:var(--accent)}
