:root{--outer:#f2f3f5;--bg:#fff;--surface:#fff;--surface-2:#f4f5f7;--ink:#15191e;--ink-2:#4b5563;--ink-3:#8a929c;--line:#e7e9ec;--accent:#5b4bd6;--accent-ink:#fff;--accent-soft:#eeeafd;--brand-grad:linear-gradient(135deg,#e8ddfb 0%,#d3f3ea 52%,#cdddfb 100%);--warm-grad:linear-gradient(90deg,#ff5e62,#ff9a3c,#ffb938);--warn:#9a5b00;--warn-soft:#fff0d6;--gold:#a67400;--ok:#147a51;--ok-soft:#dcf2e7;--danger:#c1342a;--danger-soft:#fbe3e1;--bubble:#f1f3f5;--bubble-me:#5b4bd6;--bubble-me-ink:#fff;--scrim:#0e131866;--shadow:0 1px 2px #14181e0a,0 4px 14px #14181e0d;--font:-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Noto Sans CJK TC","Microsoft JhengHei",system-ui,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--outer:#080b0e;--bg:#0e1318;--surface:#161d24;--surface-2:#1c252e;--ink:#e7ecf1;--ink-2:#aeb9c4;--ink-3:#7f8b97;--line:#2a3540;--accent:#a99cf0;--accent-ink:#0e1318;--accent-soft:#2a2550;--brand-grad:linear-gradient(135deg,#231e3d 0%,#14302b 52%,#1a2340 100%);--warn:#f0b44c;--warn-soft:#3a2d14;--gold:#e8c35a;--ok:#4fcb95;--ok-soft:#143327;--danger:#f07a70;--danger-soft:#3a1c1a;--bubble:#1c252e;--bubble-me:#5b4bd6;--bubble-me-ink:#fff;--scrim:#0009;--shadow:0 1px 2px #0000004d}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--outer:#080b0e;--bg:#0e1318;--surface:#161d24;--surface-2:#1c252e;--ink:#e7ecf1;--ink-2:#aeb9c4;--ink-3:#7f8b97;--line:#2a3540;--accent:#a99cf0;--accent-ink:#0e1318;--accent-soft:#2a2550;--brand-grad:linear-gradient(135deg,#231e3d 0%,#14302b 52%,#1a2340 100%);--warn:#f0b44c;--warn-soft:#3a2d14;--gold:#e8c35a;--ok:#4fcb95;--ok-soft:#143327;--danger:#f07a70;--danger-soft:#3a1c1a;--bubble:#1c252e;--bubble-me:#5b4bd6;--bubble-me-ink:#fff;--scrim:#0009;--shadow:0 1px 2px #0000004d}*{box-sizing:border-box}html,body{height:100%}body{background:var(--outer);color:var(--ink);font-family:var(--font);margin:0;font-size:15px;line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#app{background:var(--bg);flex-direction:column;max-width:440px;height:100%;margin:0 auto;display:flex;position:relative;overflow:hidden}@media (width>=480px){#app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media (width>=1024px){#app{max-width:560px}}.hdr{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:56px;padding:12px 16px;display:flex}.hdr h1{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:18px;font-weight:700;overflow:hidden}.hdr .sub{color:var(--ink-3);align-items:center;gap:8px;font-size:12px;display:flex}.hdr .titles{flex:1;min-width:0}.hdr .titles h1{flex:none}.icon-btn{width:36px;height:36px;color:var(--ink-2);background:0 0;border:0;border-radius:10px;flex:none;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-2)}.icon-btn svg{width:22px;height:22px}.demo-btn{border:1px dashed var(--ink-3);color:var(--ink-2);background:0 0;border-radius:999px;padding:3px 10px;font-size:12px}main{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.pad{flex-direction:column;gap:14px;padding:16px;display:flex}.nav{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);grid-template-columns:repeat(3,1fr);display:grid}.nav button{color:var(--ink-3);background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;font-size:12px;display:flex;position:relative}.nav button svg{width:22px;height:22px}.nav button[aria-current=page]{color:var(--accent);font-weight:500}.badge{background:var(--danger);color:#fff;border-radius:8px;min-width:16px;padding:0 4px;font-size:10px;line-height:16px;position:absolute;top:4px;left:calc(50% + 6px)}.slots{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.slots .dots{gap:5px;display:flex}.slots .dots i{border:2px solid var(--accent);border-radius:50%;width:12px;height:12px}.slots .dots i.on{background:var(--accent)}.slots b{color:var(--ink);font-family:var(--mono);font-weight:500}.slots .grow{flex:1}.search{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.search svg{width:18px;height:18px;color:var(--ink-3);flex:none}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0;padding:11px 0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:5px 12px;font-size:13px}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.chip.sm{padding:3px 10px;font-size:12px}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:8px;padding:14px;display:flex}.room{cursor:pointer;text-align:left}.room:hover{border-color:var(--ink-3)}.room h3{text-wrap:balance;margin:0;font-size:16px;font-weight:700;line-height:1.4}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row .grow{flex:1}.meta{color:var(--ink-2);font-size:13px}.pill{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);border-radius:6px;padding:1px 8px;font-size:12px}.pill.need{background:var(--accent-soft);color:var(--accent);border-color:#0000;font-weight:700}.pill.ok{background:var(--ok-soft);color:var(--ok);border-color:#0000;font-weight:500}.pill.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.pill.joined{background:var(--ink);color:var(--bg);border-color:#0000}.cd{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;font-size:12px}.cd.soon{color:var(--warn)}.tags{color:var(--accent);flex-wrap:wrap;gap:6px;font-size:13px;display:flex}.pref{color:var(--ink-3);border-top:1px dashed var(--line);padding-top:8px;font-size:12px}.seats{align-items:center;gap:4px;display:inline-flex}.seats i{border:2px solid var(--ink-3);border-radius:50%;width:14px;height:14px}.seats i.on{background:var(--ink-2);border-color:var(--ink-2)}.seats-num{font-family:var(--mono);font-size:13px}.host{color:var(--ink-3);font-size:12px}.empty{text-align:center;color:var(--ink-3);padding:32px 16px;font-size:14px}.section-h{color:var(--ink-3);letter-spacing:.04em;margin:4px 2px -4px;font-size:13px}.fab{background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;align-items:center;gap:6px;padding:12px 18px;font-weight:700;display:flex;position:absolute;bottom:76px;right:16px;box-shadow:0 6px 18px #5b4bd659}.fab svg{width:18px;height:18px}.btn{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:12px;padding:11px 16px;font-weight:500}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.btn.line{color:#fff;background:#06c755;border-color:#06c755;font-weight:700}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff;font-weight:700}.btn.danger{color:var(--danger);border-color:var(--danger-soft);background:var(--danger-soft)}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.block{width:100%}.btn.sm{border-radius:10px;padding:6px 12px;font-size:13px}.btns{gap:10px;display:flex}.btns>*{flex:1}.field{flex-direction:column;gap:6px;display:flex}.field>label,.lbl{color:var(--ink-2);font-size:13px;font-weight:500}.hint{color:var(--ink-3);font-size:12px}.err{color:var(--danger);font-size:12px}.inp{border:1px solid var(--line);background:var(--surface);border-radius:10px;outline:none;width:100%;padding:10px 12px}.inp:focus{border-color:var(--accent)}textarea.inp{resize:vertical;min-height:96px}.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;gap:3px;padding:3px;display:flex}.seg button{color:var(--ink-2);background:0 0;border:0;border-radius:8px;flex:1;padding:7px 4px;font-size:13px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-weight:700}.stepper{align-items:center;gap:12px;display:flex}.stepper button{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:36px;height:36px;font-size:18px}.stepper b{font-family:var(--mono);text-align:center;min-width:28px;font-size:18px}.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.check{align-items:flex-start;gap:10px;font-size:14px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);margin-top:2px}.tagchips{flex-wrap:wrap;gap:6px;display:flex}.tagchip{background:var(--accent-soft);color:var(--accent);border:0;border-radius:999px;padding:3px 10px;font-size:13px}.box{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:12px;padding:12px;font-size:13px}.box.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.box.ok{background:var(--ok-soft);color:var(--ok);border-color:#0000}.box ul{margin:4px 0 0;padding-left:18px}.form-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:16px;padding:16px;display:flex}.chat{flex-direction:column;flex:1;gap:10px;padding:12px 16px;display:flex;overflow-y:auto}.msg.cont{margin-top:-6px}.msg{flex-direction:column;gap:2px;max-width:80%;display:flex}.msg .who{color:var(--ink-3);padding-left:4px;font-size:12px}.msg .bub{background:var(--bubble);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;border-radius:14px 14px 14px 4px;padding:8px 12px}.msg.me{align-self:flex-end;align-items:flex-end}.msg.me .bub{background:var(--bubble-me);color:var(--bubble-me-ink);border-color:#0000;border-radius:14px 14px 4px}.msg.pending .bub{opacity:.6}.msg.failed .bub{background:var(--danger-soft);color:var(--danger)}.msg-state{color:var(--ink-3);background:0 0;border:0;padding:0;font-size:11px}.msg.failed .msg-state{color:var(--danger);text-decoration:underline}.sys{color:var(--ink-3);background:var(--surface-2);text-align:center;border-radius:999px;align-self:center;max-width:90%;padding:2px 12px;font-size:12px}.composer{background:var(--surface);border-top:1px solid var(--line);padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));align-items:center;gap:8px;display:flex}.composer .inp{border-radius:999px;flex:1;min-width:0;padding:9px 14px}.consensus-btn{border:1px solid var(--accent);color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700}.send{background:var(--accent);color:var(--accent-ink);border:0;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:grid}.send svg{width:18px;height:18px}.banner{background:var(--surface-2);color:var(--ink-2);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex}.cc{background:var(--surface);border:2px solid var(--accent);border-radius:14px;flex-direction:column;gap:8px;margin:10px 16px 0;padding:12px 14px;display:flex}.cc .cc-h{color:var(--accent);letter-spacing:.04em;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.cc h4{margin:0;font-size:16px}.cc dl{grid-template-columns:auto 1fr;gap:2px 12px;margin:0;font-size:13px;display:grid}.cc dt{color:var(--ink-3)}.cc dd{margin:0}.confirmers{flex-wrap:wrap;gap:6px;display:flex}.cf{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:12px}.cf.yes{background:var(--ok-soft);color:var(--ok);border-color:#0000}.act-hero{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:12px;padding:18px;display:flex}.act-hero h2{text-wrap:balance;margin:0;font-size:20px}.act-hero dl{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:14px;display:grid}.act-hero dt{color:var(--ink-3)}.act-hero dd{margin:0}.people{flex-direction:column;gap:6px;display:flex}.person{align-items:center;gap:10px;font-size:14px;display:flex}.avatar{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.person .grow{flex:1;min-width:0}.person small{color:var(--ink-3)}.notif{flex-direction:column;gap:8px;display:flex}.notif.unread{border-color:var(--accent)}.notif h4{margin:0;font-size:15px}.notif p{color:var(--ink-2);margin:0;font-size:13px}.notif time{color:var(--ink-3);font-size:12px}.scrim{background:var(--scrim);z-index:20;align-items:flex-end;display:flex;position:absolute;inset:0}.sheet{background:var(--bg);width:100%;max-height:88%;padding:8px 16px calc(20px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;flex-direction:column;gap:14px;display:flex;overflow-y:auto}.sheet .grab{background:var(--line);border-radius:2px;align-self:center;width:40px;height:4px;margin-bottom:4px}.sheet h2{text-wrap:balance;margin:0;font-size:18px}.scrim.center{justify-content:center;align-items:center;padding:16px}.modal{background:var(--surface);border-radius:16px;flex-direction:column;gap:12px;width:100%;padding:20px;display:flex}.modal h2{margin:0;font-size:17px}.modal p{color:var(--ink-2);margin:0;font-size:14px}.menu{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.menu button{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;padding:13px 14px;font-size:15px}.menu button:last-child{border-bottom:0}.menu button.danger{color:var(--danger)}.toast{z-index:30;background:var(--ink);color:var(--bg);text-align:center;border-radius:12px;padding:11px 14px;font-size:14px;animation:.2s ease-out pop;position:absolute;bottom:84px;left:16px;right:16px}@keyframes pop{0%{opacity:.6;transform:translateY(6px)}to{opacity:1;transform:none}}.onb{flex-direction:column;flex:1;gap:18px;padding:32px 20px;display:flex;overflow-y:auto}.onb .brand{text-wrap:balance;margin:0;font-size:22px;font-weight:700;line-height:1.35}.onb .lede{color:var(--ink-2);margin:0;font-size:14px}.steps{gap:6px;display:flex}.steps i{background:var(--line);border-radius:2px;flex:1;height:4px}.steps i.on{background:var(--accent)}.preview-wrap{flex-direction:column;gap:6px;display:flex}.code-entry{border-radius:12px;flex:none;padding:6px 12px;font-size:12px;line-height:1.3}.code-pill{border:1px solid var(--line);background:var(--surface);font-family:var(--mono);color:var(--ink-2);border-radius:999px;flex:none;padding:2px 10px;font-size:12px}.code-big{font-family:var(--mono);letter-spacing:.14em;text-align:center;color:var(--ink);font-variant-numeric:tabular-nums;padding:10px 0;font-size:34px}.code-input{font-family:var(--mono);letter-spacing:.14em;text-align:center;text-transform:uppercase;font-size:22px}#root{height:100%}.nav a{color:var(--ink-3);flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;font-size:12px;text-decoration:none;display:flex;position:relative}.nav a svg{width:22px;height:22px}.nav a[aria-current=page]{color:var(--accent);font-weight:500}.status-row{border-bottom:1px dashed var(--line);justify-content:space-between;gap:12px;padding:6px 0;font-size:14px;display:flex}.status-row:last-child{border-bottom:0}.status-row code{font-family:var(--mono);word-break:break-all;text-align:right;font-size:12px}button.card{width:100%;font:inherit;color:inherit}.menu-link{border-bottom:1px solid var(--line);color:var(--ink);padding:13px 14px;font-size:15px;text-decoration:none;display:block}.menu-link:last-child{border-bottom:0}.toast{left:50%;right:auto;bottom:calc(84px + env(safe-area-inset-bottom,0px));width:min(408px,100% - 32px);animation:none;position:fixed;transform:translate(-50%)}a.btn{color:inherit;text-decoration:none;display:block}a.btn.primary{color:var(--accent-ink)}.who-btn{color:var(--ink-3);cursor:pointer;text-align:left;background:0 0;border:0;padding:0 0 0 4px;font-size:12px}.who-btn:hover{color:var(--accent)}.send:disabled{opacity:.4;cursor:not-allowed}.menu button:disabled{opacity:.5}.pill.lock{background:var(--ink);color:var(--bg);border-color:#0000}.hdr-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.slots-mini{font-size:12px;font-family:var(--mono);color:var(--ink-2);background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.slots-mini .dots{gap:3px;display:flex}.slots-mini .dots i{border:1.5px solid var(--accent);border-radius:50%;width:8px;height:8px}.slots-mini .dots i.on{background:var(--accent)}.slots-mini.full{color:var(--warn);background:var(--warn-soft)}.filters{z-index:2;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:10px 16px 8px;display:flex;position:sticky;top:0}.scroller{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;margin:0 -16px;padding:0 16px;display:flex;overflow-x:auto}.scroller::-webkit-scrollbar{display:none}.scroller>*{flex:none}.scroller .divider{background:var(--line);align-self:stretch;width:1px;margin:4px 2px}.chip.select{appearance:none;font:inherit;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%237D8996' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 10px center;padding:5px 26px 5px 12px;font-size:13px}.chip.select.on{border-color:var(--ink);color:var(--ink);font-weight:500}.chip.tag{color:var(--accent);background:var(--accent-soft);border-color:#0000}.chip.tag[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.rc{box-shadow:none;gap:6px;padding:14px 14px 12px;transition:transform 80ms,border-color .15s}.rc.room:active{border-color:var(--accent);transform:scale(.985)}.rc-top{align-items:flex-start;gap:10px;display:flex}.rc-top h3{-webkit-line-clamp:2;text-align:left;-webkit-box-orient:vertical;flex:1;margin:0;font-size:16px;line-height:1.35;display:-webkit-box;overflow:hidden}.rc-badge{border-radius:999px;flex:none;margin-top:1px;padding:2px 10px;font-size:12px;font-weight:700}.rc-badge.need{background:var(--accent);color:var(--accent-ink)}.rc-badge.joined{background:var(--ink);color:var(--bg)}.rc-where{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;display:flex}.rc-where>span:not(.pill)+span:not(.pill):before{content:"・";color:var(--ink-3);margin:0 2px 0 -6px}.pill.near{background:var(--ok-soft);color:var(--ok);border-color:#0000}.rc .tags{font-size:12px}.rc-foot{color:var(--ink-3);align-items:center;gap:6px;font-size:12px;display:flex}.rc-foot .grow{flex:1}.rc-count{font-family:var(--mono);color:var(--ink-2)}.rc-count,.rc-foot .countdown,.rc-foot>:last-child{white-space:nowrap;flex:none}.rc-foot .host{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.rc .pref{white-space:nowrap;text-overflow:ellipsis;text-align:left;border-top:0;padding-top:0;overflow:hidden}.skeleton i{background:linear-gradient(90deg,var(--surface-2),var(--line),var(--surface-2));background-size:200% 100%;border-radius:6px;height:12px;animation:1.2s linear infinite shimmer;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton i{animation:none}.rc.room:active{transform:none}}.empty-card{background:var(--surface);border:1px dashed var(--line);text-align:center;color:var(--ink-2);border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:24px 18px;font-size:14px;display:flex}.empty-card b{color:var(--ink);font-size:15px}.logo{align-items:center;gap:10px;margin-top:8px;display:flex}.logo-mark{background:var(--accent);width:40px;height:40px;color:var(--accent-ink);letter-spacing:-.5px;border-radius:12px;place-items:center;font-size:17px;font-weight:800;display:grid}.logo-name{letter-spacing:-.5px;font-size:24px;font-weight:800}.how{counter-reset:how;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.how li{counter-increment:how;grid-template-columns:28px 1fr;column-gap:10px;display:grid}.how li:before{content:counter(how);background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:50%;grid-row:span 2;place-items:center;font-size:13px;font-weight:700;display:grid}.how b{font-size:15px}.how span{color:var(--ink-2);font-size:13px}.form-h{margin:0;font-size:15px;font-weight:700}details.more>summary{cursor:pointer;align-items:center;gap:8px;font-size:15px;font-weight:700;list-style:none;display:flex}details.more>summary::-webkit-details-marker{display:none}details.more>summary:after{content:"";border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);width:8px;height:8px;margin-left:auto;transition:transform .15s;transform:rotate(45deg)}details.more[open]>summary:after{transform:rotate(-135deg)}details.more>summary .hint{font-weight:400}details.more[open]>summary{margin-bottom:4px}.submit-bar{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);z-index:2;align-items:center;gap:12px;margin:0 -16px -16px;display:flex;position:sticky;bottom:0}.submit-bar .btn{min-width:140px;margin-left:auto}.banner-need{color:var(--ink);font-weight:700}.code-pill{color:var(--accent);border-color:var(--accent-soft);background:var(--accent-soft);align-items:center;gap:4px;font-weight:500;display:inline-flex}.code-pill svg{width:13px;height:13px}.sys.tip{background:var(--accent-soft);color:var(--accent)}.msg-time{color:var(--ink-3);padding:0 4px;font-size:10px}.quick{background:var(--surface);border-top:1px solid var(--line);scrollbar-width:none;gap:6px;padding:8px 12px 0;display:flex;overflow-x:auto}.quick::-webkit-scrollbar{display:none}.quick .chip{flex:none}.quick+.composer{border-top:0}.board{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex:none;margin:8px 12px 0;overflow:hidden}.board-h{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:10px 12px;display:flex}.board-title{color:var(--accent);flex:none;font-size:13px;font-weight:700}.board-sum{min-width:0;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.board-h:after{content:"";border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);flex:none;width:7px;height:7px;margin:0 4px 3px;transform:rotate(45deg)}.board-h[aria-expanded=true]:after{margin-bottom:-3px;transform:rotate(-135deg)}.board-body{flex-direction:column;align-items:flex-start;gap:8px;padding:0 12px 12px;display:flex}.board-body dl{grid-template-columns:auto 1fr;gap:4px 12px;width:100%;margin:0;font-size:13px;display:grid}.board-body dt{color:var(--ink-3)}.board-body dd{min-width:0;margin:0}.board-body a{color:var(--accent)}.board-link{word-break:break-all}.linkish{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.vote-bar{border-top:1px solid var(--line);background:var(--surface-2);align-items:center;gap:10px;padding:10px 12px;display:flex}.vote-text{min-width:0;color:var(--ink-2);flex-direction:column;flex:1;font-size:12px;display:flex}.vote-text b{color:var(--ink);font-size:13px}.vote-bar .btn{flex:none}.banner.done{background:var(--ok-soft);color:var(--ok)}.notif-h{align-items:flex-start;gap:8px;display:flex}.notif-h h4{flex:1}.notif-x{color:var(--ink-3);cursor:pointer;background:0 0;border:0;flex:none;padding:0 2px;font-size:20px;line-height:1}.notif-x:hover{color:var(--danger)}.hint a{color:var(--accent)}.legal{color:var(--ink-2);font-size:14px;line-height:1.75}.legal h2{color:var(--ink);margin:20px 0 6px;font-size:16px}.legal ul{margin:4px 0;padding-left:20px}.lobby-stats{color:var(--ink-2);text-align:center;font-size:13px}.lobby-stats b{color:var(--ink);font-variant-numeric:tabular-nums}.danger-text{color:var(--danger)}.card{box-shadow:none}.chip{background:var(--surface-2);border-color:#0000}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg)}.chip.select{background-color:var(--surface-2)}.chip.select.on{background-color:var(--surface);border-color:var(--ink)}.search{background:var(--surface-2);border-color:#0000}.msg .bub{border-color:#0000}.banner{background:var(--surface)}.board{box-shadow:var(--shadow)}.form-card{border-color:var(--line)}.notify-card{align-items:flex-start;gap:8px}.warn-text{color:var(--warn)}@media (pointer:coarse){input,select,textarea,.inp{font-size:16px}}.share-lede{color:var(--ink-2);margin:0;font-size:14px}.share-post{white-space:pre-wrap;word-break:break-all;background:var(--surface-2);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.6}.share-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.share-grid .btn{color:inherit;text-decoration:none}.share-grid .btn.primary{color:var(--accent-ink)}.share-code{color:var(--ink-2);align-items:center;gap:10px;font-size:13px;display:flex}.share-code b{font-family:var(--mono);color:var(--ink);letter-spacing:.08em;flex:1;font-size:18px}.share-nudge{background:var(--accent-soft);color:var(--ink-2);border-radius:14px;flex-direction:column;align-self:stretch;align-items:flex-start;gap:6px;padding:12px 14px;font-size:13px;display:flex}.share-nudge b{color:var(--ink);font-size:14px}.board-btn{position:relative}.board-btn.on{background:var(--accent-soft);color:var(--accent)}.board-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:7px}.board-anchor{z-index:6;height:0;position:relative}.board-scrim{background:0 0;position:fixed;inset:0}.board-pop{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;align-items:flex-start;gap:8px;max-height:70vh;padding:12px 14px;display:flex;position:absolute;top:8px;left:12px;right:12px;overflow-y:auto;box-shadow:0 8px 28px #14181e24}.board-pop-h{align-items:baseline;gap:8px;width:100%;display:flex}.board-pop-h .hint{flex:1;min-width:0}.board-pop dl{grid-template-columns:auto 1fr;gap:4px 12px;width:100%;margin:0;font-size:13px;display:grid}.board-pop dt{color:var(--ink-3)}.board-pop dd{min-width:0;margin:0}.board-pop a{color:var(--accent)}.board-pop .vote-bar{border-radius:0 0 14px 14px;width:calc(100% + 28px);margin:4px -14px -12px}.hdr .icon-btn+.icon-btn{margin-left:-6px}.landing{background:var(--accent);flex-direction:column;flex:1;display:flex;overflow-y:auto}.landing-hero{padding:calc(28px + env(safe-area-inset-top)) 24px 28px;color:#fff;flex-direction:column;flex:1;justify-content:center;gap:12px;display:flex}.logo.on-brand .logo-mark{color:var(--accent);background:#fff}.landing-title{text-wrap:balance;margin:8px 0 0;font-size:28px;font-weight:800;line-height:1.3}.landing-sub{opacity:.9;margin:0;font-size:15px}.landing-cards{flex-direction:column;gap:10px;margin-top:14px;display:flex}.landing-card{color:#15191e;background:#fff;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;display:flex;box-shadow:0 8px 24px #0a14502e}.landing-card div{flex-direction:column;flex:1;display:flex}.landing-card b{font-size:15px}.landing-card span{color:#6b7280;font-size:12px}.landing-card em{background:var(--accent);color:#fff;border-radius:999px;padding:2px 10px;font-size:12px;font-style:normal;font-weight:700}.landing-card:first-child{transform:rotate(-2deg)}.landing-card:nth-child(2){transform:rotate(1.5deg)translate(10px)}.landing-card:nth-child(3){transform:rotate(-1deg)}.landing-sheet{background:var(--bg);padding:24px 20px calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;flex-direction:column;gap:12px;display:flex}@media (prefers-reduced-motion:reduce){.landing-card{transform:none!important}}.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}.hdr-brand{letter-spacing:-.3px;align-items:center;gap:8px;font-weight:800;display:flex}.logo-mark.sm{border-radius:8px;width:28px;height:28px;font-size:12px}.tour{z-index:30;background:var(--bg);padding:calc(16px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));flex-direction:column;display:flex;position:absolute;inset:0}.tour-skip{color:var(--ink-3);background:0 0;border:0;align-self:flex-end;padding:6px;font-size:14px}.tour-body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}.tour-icon{background:var(--accent-soft);width:96px;height:96px;color:var(--accent);border-radius:28px;place-items:center;margin-bottom:8px;display:grid}.tour-icon svg{width:48px;height:48px}.tour-body h2{margin:0;font-size:22px}.tour-body p{color:var(--ink-2);max-width:320px;margin:0;font-size:15px;line-height:1.7}.tour-dots{justify-content:center;gap:8px;margin:20px 0;display:flex}.tour-dots button{background:var(--line);border:0;border-radius:50%;width:8px;height:8px;padding:0}.tour-dots button.on{background:var(--accent);border-radius:4px;width:20px}.tour-actions{gap:10px;display:flex}.tour-actions .btn{flex:1}.bub-btn{font:inherit;text-align:left;cursor:pointer}.msg.me .bub-btn{background:var(--bubble-me);color:var(--bubble-me-ink);white-space:pre-wrap;word-break:break-word;border:0;border-radius:14px 14px 4px;padding:8px 12px}.sys.recalled{font-style:italic}.landing{background:var(--brand-grad)}.landing-hero{color:#2e2a55;align-items:flex-start;padding-bottom:0;position:relative;overflow:hidden}.logo.on-brand .logo-mark{background:var(--accent);color:#fff}.logo.on-brand .logo-name{color:#2e2a55}.landing-title{flex-direction:column;margin-top:12px;font-size:34px;line-height:1.2;display:flex}.landing-title-1{background:var(--warm-grad);color:#0000;-webkit-background-clip:text;background-clip:text}.landing-title-2{color:#2e2a55}.landing-sub{opacity:1;color:#4b4870}.landing-phone{-webkit-mask-composite:source-in;align-self:center;width:min(66%,270px);height:auto;margin:4px 0 -24px;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000),linear-gradient(#0000,#000 6% 80%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000),linear-gradient(#0000,#000 6% 80%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.logo-mark{background:linear-gradient(135deg,#7b6cf0,#5b4bd6)}.hdr:has(.hdr-brand){background:var(--brand-grad);background-attachment:fixed}.hdr:has(.hdr-brand)+#main .filters{background:var(--brand-grad);background-attachment:fixed}.hdr:has(.hdr-brand){border-bottom-color:#0000}.fab{background:linear-gradient(135deg,#7b6cf0,#5b4bd6)}.tour-icon{background:var(--brand-grad)}.lobby-stats b{color:var(--accent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fab{background:var(--accent)}}.hdr:has(.hdr-brand)+#main .filters .search{background-color:#ffffffb8}.hdr:has(.hdr-brand)+#main .filters .chip:not([aria-pressed=true]):not(.tag){background-color:#ffffffb8}.hdr:has(.hdr-brand) .slots-mini{background-color:#ffffffb8}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .hdr:has(.hdr-brand)+#main .filters .search{background-color:#ffffff14}:root:not([data-theme=light]) .hdr:has(.hdr-brand)+#main .filters .chip:not([aria-pressed=true]):not(.tag){background-color:#ffffff14}:root:not([data-theme=light]) .hdr:has(.hdr-brand) .slots-mini{background-color:#ffffff14}}img.logo-mark{object-fit:contain;padding:0;display:block;background:0 0!important}.public-room h2{flex:1;margin:0;font-size:18px;line-height:1.35}.public-desc{white-space:pre-wrap;color:var(--ink);border-top:1px solid var(--line);padding-top:10px;font-size:14px;line-height:1.7}.public-what{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.prompt-why{color:var(--ink-2);margin:0;font-size:14px;line-height:1.7}.prompt-steps{background:var(--accent-soft);border-radius:12px;padding:10px 14px}.prompt-steps ol{color:var(--ink);flex-direction:column;gap:2px;margin:4px 0 0;padding-left:20px;font-size:14px;display:flex}.install-row{align-items:center;gap:12px;display:flex}.install-row img{border-radius:10px;flex:none}.install-text{flex-direction:column;flex:1;min-width:0;display:flex}.install-steps{flex-direction:column;gap:8px;margin:0;padding-left:22px;font-size:15px;line-height:1.6;display:flex}.landing-hero{justify-content:flex-start}.landing-hero>:first-child{margin-top:auto}.landing-hero>:last-child{margin-bottom:auto}.staff-badge{vertical-align:1px;background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.5;display:inline-block}.staff-badge.founder{color:#5a3e00;background:linear-gradient(135deg,#f7e08a,#d4a62a);box-shadow:inset 0 0 0 1px #c89b1e}.name-founder{color:var(--gold);font-weight:700}.staff-badge.founding{background:var(--surface-2);color:var(--ink-2);box-shadow:0 0 0 1px var(--line) inset}.founding-card{text-align:left;flex-direction:row;align-items:center;gap:12px;display:flex}.founding-no{background:var(--accent-soft);min-width:44px;height:44px;color:var(--accent);border-radius:12px;flex:none;place-items:center;padding:0 6px;font-size:15px;font-weight:800;display:grid}.founding-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.landing-founding{color:var(--accent);background:#ffffffb3;border-radius:999px;align-self:flex-start;margin:8px 0 0;padding:4px 12px;font-size:13px;font-weight:700}.room-wrap{position:relative}.room-more{position:absolute;bottom:10px;right:10px}.staff-badge.title{background:var(--accent-soft);color:var(--accent)}.staff-badge.title.event{background:var(--warn-soft);color:var(--warn)}.staff-badge.title.achievement{background:var(--ok-soft);color:var(--ok)}.who-me{align-self:flex-end;padding:0 4px 0 0;font-size:12px}.who-me .staff-badge{margin-left:0}.title-list{flex-direction:column;gap:6px;display:flex}.title-opt{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;font-size:14px;display:flex}.title-opt[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.title-opt .title-name{font-weight:700}.title-opt.locked{background:var(--surface-2);color:var(--ink-3);border-style:dashed}
