:root{--bg-0:#06070f;--bg-1:#0b0e1c;--bg-2:#131830;--bg-3:#1b2244;--border:#ffffff14;--border-strong:#ffffff29;--text-1:#f5f6fb;--text-2:#aab4d6;--text-3:#6e7aa0;--brand-1:#7c3aed;--brand-2:#06b6d4;--brand-grad:linear-gradient(135deg, var(--brand-1), var(--brand-2));--success:#22c55e;--warn:#f59e0b;--danger:#ef4458;--accent-hot:#ff5daa;--ring:#06b6d48c;--r-sm:10px;--r-md:16px;--r-lg:22px;--r-xl:28px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--el-1:0 1px 0 #ffffff0a inset, 0 6px 18px #00000059;--el-2:0 1px 0 #ffffff0f inset, 0 14px 36px #00000073;--el-sheet:0 -8px 40px #0000008c;--fs-display:clamp(34px, 9vw, 56px);--fs-h1:clamp(24px, 6.5vw, 32px);--fs-h2:20px;--fs-body:16px;--fs-sm:14px;--fs-xs:12px;--dock-h:64px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text-1);background:var(--bg-0);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg-0);min-height:100%}body{min-height:100dvh;color:var(--text-1);-webkit-font-smoothing:antialiased;background-color:#0000;background-image:radial-gradient(circle at 14% -10%,#7c3aed4d,#0000 38%),radial-gradient(circle at 86% 8%,#06b6d42e,#0000 32%),linear-gradient(#080a15 0%,#0b1020 42%,#060713 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;margin:0;overflow-x:hidden}button,input,textarea{font:inherit;color:inherit}input,textarea,select{font-size:16px}:focus{outline:none}:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px;border-radius:var(--r-sm)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-md);background:var(--bg-3);min-height:48px;color:var(--text-1);cursor:pointer;box-shadow:inset 0 0 0 1px var(--border);-webkit-tap-highlight-color:transparent;border:0;padding:12px 18px;font-weight:700;text-decoration:none;transition:transform .12s,background .15s,box-shadow .15s,filter .15s;display:inline-flex}.btn:hover{background:#232c57}.btn:active{filter:brightness(.92);transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--brand-grad);box-shadow:var(--el-1);min-height:56px;font-weight:900}.btn.ghost{box-shadow:inset 0 0 0 1px var(--border-strong);background:0 0}.btn.danger{background:#6d1f36}.btn.success{background:var(--success);color:#062b14}.btn.pill{border-radius:var(--r-pill);min-height:40px;padding:10px 16px}.btn.icon{border-radius:var(--r-pill);width:44px;height:44px;min-height:44px;padding:0}.btn.block{width:100%}.chip{align-items:center;gap:var(--sp-2);border-radius:var(--r-pill);background:var(--bg-3);min-height:40px;color:var(--text-1);box-shadow:inset 0 0 0 1px var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;padding:8px 14px;font-weight:700;transition:transform .12s,filter .15s;display:inline-flex}.chip:active{transform:scale(.97)}.chip.active{background:var(--brand-grad);color:#fff;box-shadow:var(--el-1)}.field{gap:var(--sp-2);display:grid}.field>label{color:var(--text-2);font-size:var(--fs-sm);font-weight:700}.input,.textarea,input[type=text],input:not([type]),textarea{border:1px solid var(--border);border-radius:var(--r-md);width:100%;min-width:0;max-width:100%;color:var(--text-1);background:#050812d1;min-height:48px;padding:14px 15px}input[type=datetime-local],input[type=date],input[type=time],input[type=number],input.input-datetime{box-sizing:border-box;appearance:none;border:1px solid var(--border);border-radius:var(--r-md);width:100%;min-width:0;max-width:100%;color:var(--text-1);background:#050812d1;min-height:48px;padding:14px 15px;font-family:inherit;display:block}input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;width:100%;min-height:1.4em}input[type=date]::-webkit-date-and-time-value{text-align:left;width:100%;min-height:1.4em}input[type=time]::-webkit-date-and-time-value{text-align:left;width:100%;min-height:1.4em}input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.85);opacity:.75;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.85);opacity:.75;cursor:pointer}input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.85);opacity:.75;cursor:pointer}.input:focus,.textarea:focus,input:focus,textarea:focus{border-color:var(--brand-2);box-shadow:0 0 0 4px var(--ring)}textarea,.textarea{resize:vertical;min-height:92px}.card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--el-1)}.card.elevated{background:var(--bg-2);box-shadow:var(--el-2)}.card .section-title{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.card .section-title span{font-size:var(--fs-h2);font-weight:900}.card .section-title b{color:var(--brand-2);font-size:var(--fs-xs)}.badge{gap:var(--sp-2);border-radius:var(--r-pill);background:var(--bg-2);color:#8ee8ff;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;align-items:center;padding:6px 12px;font-size:11px;font-weight:900;display:inline-flex}.app-shell{grid-template-rows:auto 1fr auto;width:100%;min-height:100dvh;display:grid}.app-shell .topbar{z-index:30;align-items:center;gap:var(--sp-3);padding:max(var(--sp-3), env(safe-area-inset-top)) var(--sp-4) var(--sp-3);-webkit-backdrop-filter:blur(14px);background:linear-gradient(#070812f5,#070812c7 80%,#0000);grid-template-columns:1fr auto;display:grid;position:sticky;top:0}.topbar .room-id{gap:2px;min-width:0;display:grid}.topbar .room-id .badge{text-overflow:ellipsis;width:max-content;max-width:100%;overflow:hidden}.topbar .topbar-pills{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.viewers-pill{border-radius:var(--r-pill);background:var(--bg-2);color:var(--text-2);letter-spacing:.04em;border:1px solid var(--border-strong);align-items:center;gap:5px;padding:4px 9px;font-size:11px;font-weight:800;display:inline-flex}.viewers-eye{filter:hue-rotate();font-size:12px;line-height:1}.viewers-count{color:var(--text-1);font-variant-numeric:tabular-nums}.topbar .room-id h1{font-size:var(--fs-h1);letter-spacing:-.03em;white-space:nowrap;text-overflow:ellipsis;margin:4px 0 0;line-height:1.05;overflow:hidden}.topbar .top-actions{gap:var(--sp-2);align-items:center;display:flex}.topbar .meter-bar{background:#ffffff0f;height:2px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.topbar .meter-bar i{background:var(--brand-grad);height:100%;transition:width .35s;display:block}.app-shell .scroll{gap:var(--sp-4);padding:var(--sp-4);padding-bottom:calc(var(--dock-h) + env(safe-area-inset-bottom) + var(--sp-6) + 64px);width:100%;max-width:760px;margin:0 auto;display:grid}.bottom-bar{z-index:40;pointer-events:none;padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.bottom-bar .ready-fab{pointer-events:auto;padding:0 var(--sp-4) var(--sp-3);justify-content:center;display:flex}.bottom-bar .ready-fab .btn{border-radius:var(--r-pill);width:100%;max-width:560px;min-height:52px;font-weight:900}.ready-cta{letter-spacing:.01em;gap:10px;transition:background .2s,color .2s,transform .15s,box-shadow .2s}.ready-cta-glyph{border-radius:var(--r-pill);place-items:center;width:26px;height:26px;font-size:14px;font-weight:900;display:inline-grid}.ready-cta.is-idle{color:var(--text-1);background:linear-gradient(135deg,#1b2244,#131830);box-shadow:inset 0 0 0 1.5px #7c3aed8c,0 14px 32px #7c3aed2e}.ready-cta.is-idle .ready-cta-glyph{background:var(--brand-grad);color:#fff}.ready-cta.is-idle:hover{box-shadow:inset 0 0 0 1.5px #7c3aedd9,0 14px 32px #7c3aed4d}.ready-cta.is-ready{background:var(--success);color:#062b14;box-shadow:0 18px 40px #22c55e66}.ready-cta.is-ready .ready-cta-glyph{color:var(--success);background:#062b14}.dock{pointer-events:auto;-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--border);height:var(--dock-h);background:#080a16d9;grid-template-columns:repeat(4,1fr);display:grid}.dock button{color:var(--text-3);letter-spacing:.04em;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;gap:2px;font-size:11px;font-weight:800;display:grid;position:relative}.dock button .icon{font-size:22px;line-height:1}.dock button .badge-count{border-radius:var(--r-pill);background:var(--accent-hot);color:#fff;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:900;display:grid;position:absolute;top:8px;right:50%;transform:translate(22px);box-shadow:0 0 0 2px #080a16f2,0 4px 12px #ff5daa8c}.dock button .badge-count.subtle{background:var(--bg-3);color:var(--text-2);font-weight:800;box-shadow:0 0 0 2px #080a16f2}.dock button.active{color:var(--text-1)}.dock button.active:after{content:"";background:var(--brand-grad);border-radius:3px;width:28px;height:3px;position:absolute;top:auto;bottom:4px;left:50%;transform:translate(-50%)}.pip{background:var(--text-3);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 3px #ffffff0a}.pip.connected{background:var(--success);box-shadow:0 0 0 3px #22c55e26}.pip.connecting{background:var(--warn);animation:1.4s ease-in-out infinite pulse;box-shadow:0 0 0 3px #f59e0b2e}.pip.offline{background:var(--danger);box-shadow:0 0 0 3px #ef44582e}@keyframes pulse{50%{opacity:.35}}.status-hero{gap:var(--sp-3);display:grid}.status-hero .score{align-items:baseline;gap:var(--sp-3);display:flex}.status-hero .score strong{letter-spacing:-.06em;background:var(--brand-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:56px;font-weight:900;line-height:.9}.status-hero .score .pulse{animation:.35s ease-out pop}@keyframes pop{0%{transform:scale(.85)}70%{transform:scale(1.08)}to{transform:scale(1)}}.status-hero .score span{color:var(--text-2);font-weight:700}.status-hero p{color:var(--text-2);margin:0}.eta-box{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:#f59e0b1f;border:1px solid #f59e0b47;display:flex}.eta-box-label{letter-spacing:.1em;text-transform:uppercase;color:var(--warn);font-size:10px;font-weight:900}.eta-box-time{font-size:var(--fs-h2);color:var(--warn);letter-spacing:-.02em;font-weight:900}.eta-box-reason{font-size:var(--fs-sm);color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;overflow:hidden}.meter{border-radius:var(--r-pill);background:var(--bg-2);height:12px;overflow:hidden}.meter i{background:linear-gradient(90deg, var(--brand-1), var(--success));height:100%;transition:width .35s;display:block}.status-controls{gap:var(--sp-4);display:grid}.status-controls .eta-row{gap:var(--sp-2);display:grid}.status-controls .eta-row .chips{gap:var(--sp-2);grid-template-columns:repeat(4,1fr);display:grid}.status-controls .eta-row .chips .chip{justify-content:center}.status-controls .delay-row{gap:var(--sp-2);grid-template-columns:repeat(2,1fr);display:grid}.status-controls small.label{color:var(--text-3);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;font-weight:800}.chip.block-chip{justify-content:center;width:100%}.eta-badge{letter-spacing:.12em;text-transform:uppercase;border-radius:var(--r-pill);color:var(--warn);background:#f59e0b2e;padding:4px 8px;font-size:10px;font-weight:900}.eta-badge.is-near{color:var(--danger);background:#ef44582e}.eta-badge.is-delayed{color:#fb923c;background:#fb923c2e}.my-eta-pane{padding:var(--sp-3);border-radius:var(--r-md);background:linear-gradient(135deg,#f59e0b29,#f59e0b0f);border:1px solid #f59e0b52;gap:4px;display:grid}.my-eta-pane.is-near{background:linear-gradient(135deg,#ef44582e,#ef44580f);border-color:#ef445873;animation:1s ease-in-out infinite eta-pulse}.my-eta-time{align-items:baseline;gap:10px;display:inline-flex}.my-eta-time strong{letter-spacing:-.02em;color:var(--warn);font-variant-numeric:tabular-nums;font-size:32px;font-weight:900;line-height:1}.my-eta-pane.is-near .my-eta-time strong{color:var(--danger)}.my-eta-time .muted{font-size:var(--fs-sm);font-weight:700}.my-eta-reason{margin:0}.status-countdown{flex-wrap:wrap;align-items:baseline;gap:6px;display:inline-flex}.status-countdown-label{color:var(--warn);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:800}.status-countdown.is-near .status-countdown-label{color:var(--danger)}.status-countdown-time{font-variant-numeric:tabular-nums;color:var(--warn);font-weight:900}.status-countdown.is-near .status-countdown-time{color:var(--danger)}.status-countdown-clock{font-size:var(--fs-xs)}.status-reason{margin:2px 0 0}.eta-box-clock{font-size:var(--fs-xs)}.people{gap:var(--sp-2);display:grid}.person{padding:var(--sp-3) var(--sp-4);gap:var(--sp-2);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--el-1);cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:left;width:100%;transition:transform .12s,border-color .15s;display:grid;position:relative}.person:active{transform:scale(.99)}.person.ready{background:linear-gradient(135deg, #22c55e24, var(--bg-1));border-color:#22c55e80}.person.eta,.person.delayed{background:linear-gradient(135deg, #f59e0b1f, var(--bg-1));border-color:#f59e0b80}.person.away{opacity:.7}.person-head{gap:var(--sp-3);align-items:center;min-width:0;display:flex}.avatar{border-radius:var(--r-md);width:56px;height:56px;box-shadow:inset 0 0 0 1px var(--border);background:linear-gradient(135deg,#1f2a44,#111827);flex:none;place-items:center;font-size:30px;display:grid}.avatar.sm{border-radius:var(--r-sm);width:36px;height:36px;font-size:20px}.person-head .meta{min-width:0}.person-head .meta h3{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:800;overflow:hidden}.person-head .meta p{color:var(--text-2);font-size:var(--fs-xs);margin:2px 0 0}.person-head .meta .status-countdown{color:var(--warn)}.person-head .meta .status-countdown strong{font-weight:900}.person .pill{top:var(--sp-3);right:var(--sp-3);border-radius:var(--r-pill);letter-spacing:.04em;text-transform:uppercase;background:var(--bg-3);color:var(--text-2);padding:4px 10px;font-size:11px;font-weight:900;position:absolute}.person.ready .pill{background:var(--success);color:#062b14}.person.eta .pill,.person.delayed .pill{background:var(--warn);color:#2a1a04}.reactions{gap:var(--sp-1);flex-wrap:wrap;display:flex}.reaction-chip{background:var(--bg-2);color:var(--text-1);border-radius:var(--r-pill);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;min-height:32px;padding:6px 10px;font-weight:800}.reaction-chip.mine{background:var(--brand-grad)}.chat{gap:var(--sp-3);padding:var(--sp-4);display:grid}.chat .section-title{margin-bottom:0}.chat .messages{gap:var(--sp-3);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:60dvh;padding:var(--sp-2) 2px 56px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;display:flex;position:relative;overflow-y:auto}.chat .messages::-webkit-scrollbar{width:6px}.chat .messages::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.load-earlier{border:1px solid var(--border);color:var(--text-2);border-radius:var(--r-pill);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0f172ab8;align-self:center;padding:7px 12px;font-size:12px;font-weight:800}.new-messages-pill{bottom:var(--sp-3);z-index:3;margin:var(--sp-2) auto 0;border-radius:var(--r-pill);background:var(--brand-grad);color:#fff;box-shadow:var(--el-2);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;align-self:center;padding:8px 13px;font-size:12px;font-weight:900;position:sticky}.msg-group{align-items:start;gap:4px;max-width:100%;display:grid}.msg-group.theirs{grid-template-columns:auto 1fr;justify-content:flex-start}.msg-group.mine{grid-template-columns:1fr auto;justify-content:flex-end}.msg-group .msg-avatar{grid-row:1;align-self:start}.msg-group.theirs .msg-avatar{margin-top:18px}.msg-group.mine .msg-avatar{margin-top:4px}.msg-group.theirs .msg-avatar{grid-column:1}.msg-group.mine .msg-avatar{grid-column:2}.msg-group.theirs .msg-stack{grid-area:1/2}.msg-group.mine .msg-stack{grid-area:1/1}.msg-avatar{border-radius:var(--r-pill);width:28px;height:28px;box-shadow:inset 0 0 0 1px var(--border);background:linear-gradient(135deg,#1f2a44,#111827);flex:none;place-items:center;margin-bottom:2px;font-size:16px;display:grid}.msg-stack{flex-direction:column;gap:3px;min-width:0;max-width:78%;display:flex}.msg-group.mine .msg-stack{justify-self:end;align-items:flex-end}.msg-group.theirs .msg-stack{justify-self:start;align-items:flex-start}.msg-author{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.02em;padding:0 4px;font-weight:700}.bubble{word-wrap:break-word;overflow-wrap:anywhere;border-radius:18px;flex-wrap:wrap;align-items:baseline;gap:6px 10px;max-width:100%;padding:7px 12px 6px;font-size:15px;line-height:1.35;display:inline-flex;position:relative;box-shadow:0 1px 2px #00000040}.bubble-text{white-space:pre-wrap}.msg-group.theirs .bubble{background:var(--bg-3);color:var(--text-1);border-bottom-left-radius:6px}.msg-group.theirs .bubble+.bubble{border-top-left-radius:6px}.msg-group.mine .bubble{background:var(--brand-grad);color:#fff;border-bottom-right-radius:6px}.msg-group.mine .bubble+.bubble{border-top-right-radius:6px}.bubble.tapped{opacity:.85}.bubble-quote{background:#0003;border-left:2px solid #ffffff4d;border-radius:8px;flex-direction:column;gap:1px;width:100%;margin-bottom:4px;padding:5px 8px;display:flex}.bubble-quote strong{color:#ffffffbf;font-size:11px;font-weight:800}.bubble-quote span{color:#ffffff8c;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.msg-group.theirs .bubble-quote{border-left-color:var(--brand-2)}.msg-group.theirs .bubble-quote strong{color:var(--brand-2)}.msg-group.theirs .bubble-quote span{color:var(--text-3)}.msg-actions{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:4px;padding:3px 2px;display:flex}.msg-actions.mine{justify-content:flex-end}.msg-action-reply{background:var(--bg-3);color:var(--text-2);border-radius:var(--r-pill);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;padding:4px 10px;font-size:12px;font-weight:700}.msg-action-emoji{background:var(--bg-3);border-radius:var(--r-pill);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;min-height:30px;padding:4px 8px;font-size:16px;line-height:1}.msg-action-emoji.mine{background:#7c3aed59}.bubble-reactions{flex-wrap:wrap;gap:4px;padding:2px;display:flex}.msg-group.mine .bubble-reactions{justify-content:flex-end}.reaction-chip.sm{min-height:26px;padding:3px 8px;font-size:12px}.bubble-time{letter-spacing:.02em;color:#aab4d675;white-space:nowrap;flex-shrink:0;align-self:flex-end;margin-left:auto;padding-top:2px;font-size:10.5px;font-weight:600;line-height:1}.msg-group.mine .bubble-time{color:#ffffff8a}.composer{border-radius:var(--r-lg);border:1px solid var(--border);background:#050812d1;flex-direction:column;display:flex;position:sticky;bottom:0;overflow:hidden}.composer:focus-within{border-color:var(--brand-2);box-shadow:0 0 0 4px var(--ring)}.composer-reply{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) 0;border-bottom:1px solid var(--border);padding-bottom:var(--sp-2);display:flex}.composer-reply-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.composer-reply-body strong{font-size:var(--fs-xs);color:var(--brand-2);font-weight:800}.composer-reply-body span{font-size:var(--fs-xs);color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.composer-reply-cancel{color:var(--text-3);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:none;padding:2px 4px;font-size:14px}.composer-row{align-items:center;gap:var(--sp-2);padding:var(--sp-2);display:flex}.composer-input{min-width:0;min-height:36px;max-height:168px;color:var(--text-1);resize:none;width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;outline:none;flex:1;padding:8px 10px;font-family:inherit;font-size:15px;line-height:1.35;overflow-y:auto}textarea.composer-input{display:block}.composer-input:focus{box-shadow:none;border-color:#0000;outline:none}.composer-row{align-items:flex-end}.composer-send{border-radius:var(--r-pill);background:var(--brand-grad);color:#fff;cursor:pointer;width:36px;height:36px;box-shadow:var(--el-1);-webkit-tap-highlight-color:transparent;border:0;flex:none;place-items:center;transition:transform .12s,filter .15s,opacity .15s;display:grid}.composer-send:active{transform:scale(.92)}.composer-send:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.composer-send svg{display:block;transform:translate(1px)}.sheet-backdrop{-webkit-backdrop-filter:blur(6px);z-index:50;background:#06070f99;justify-content:center;align-items:flex-end;animation:.18s ease-out fade-in;display:flex;position:fixed;inset:0}.sheet{background:var(--bg-2);border-top-left-radius:var(--r-xl);border-top-right-radius:var(--r-xl);width:100%;max-width:560px;max-height:90dvh;padding:var(--sp-3) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom));box-shadow:var(--el-sheet);animation:.22s cubic-bezier(.2,.7,.2,1) slide-up;overflow-y:auto}.sheet .handle{background:var(--border-strong);width:40px;height:4px;margin:0 auto var(--sp-3);border-radius:2px}.sheet h2{margin:0 0 var(--sp-3);letter-spacing:-.02em;font-size:22px}.sheet .stack{gap:var(--sp-3);display:grid}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:.4;transform:translateY(20%)}to{opacity:1;transform:translateY(0)}}.toast-wrap{left:50%;bottom:calc(var(--dock-h) + env(safe-area-inset-bottom) + 88px);z-index:60;pointer-events:none;position:fixed;transform:translate(-50%)}.toast{background:var(--bg-2);color:var(--text-1);border-radius:var(--r-pill);box-shadow:var(--el-2);border:1px solid var(--border-strong);padding:10px 16px;font-weight:700;animation:.18s ease-out fade-in}.landing{min-height:100dvh;padding:max(var(--sp-5), env(safe-area-inset-top)) var(--sp-4) max(var(--sp-5), env(safe-area-inset-bottom));place-items:center;display:grid}.landing .hero{gap:var(--sp-4);width:min(560px,100%);padding:var(--sp-6);display:grid;position:relative;overflow:hidden}.landing .hero h1{font-size:var(--fs-display);letter-spacing:-.04em;margin:0;line-height:.98}.landing .hero p{color:var(--text-2);font-size:var(--fs-body);margin:0;line-height:1.5}.landing .grid-two{gap:var(--sp-3);grid-template-columns:1fr;display:grid}.landing .hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#7c3aed47,#0000 45%);animation:8s infinite alternate float;position:absolute;inset:-40%}.landing .hero>*{position:relative}@keyframes float{to{transform:translate(15%,8%)rotate(12deg)}}.join{gap:var(--sp-4);width:min(440px,100%);display:grid}.avatars-grid{gap:var(--sp-2);grid-template-columns:repeat(4,1fr);display:grid}.avatars-grid .avatar-btn{border-radius:var(--r-md);background:var(--bg-3);box-shadow:inset 0 0 0 1px var(--border);cursor:pointer;border:0;min-height:56px;padding:12px;font-size:28px}.avatars-grid .avatar-btn.selected{box-shadow:inset 0 0 0 2px var(--brand-2);background:#06b6d41f}.empty{text-align:center;color:var(--text-2);padding:var(--sp-6) var(--sp-4);gap:var(--sp-3);justify-items:center;display:grid}.empty .emoji{font-size:46px;line-height:1}.empty h3{color:var(--text-1);margin:0;font-size:20px}.empty p{margin:0}.tab-view{gap:var(--sp-4);animation:.18s ease-out tab-in;display:grid}@keyframes tab-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width>=900px){.app-shell .scroll{max-width:1100px;padding-bottom:var(--sp-7);grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"hero hero""status chat""people chat";align-items:start}.app-shell .scroll>.area-hero{grid-area:hero}.app-shell .scroll>.area-status{gap:var(--sp-4);grid-area:status;display:grid}.app-shell .scroll>.area-people{grid-area:people}.app-shell .scroll>.area-chat{grid-area:chat;position:sticky;top:96px}.bottom-bar{display:none}.topbar .room-id h1{font-size:28px}.sheet-backdrop{align-items:center}.sheet{border-radius:var(--r-xl);max-width:480px;max-height:80vh}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.row{align-items:center;gap:var(--sp-3);display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.col{gap:var(--sp-3);display:grid}.muted{color:var(--text-2)}.small{font-size:var(--fs-sm)}.bold{font-weight:800}.hidden{display:none!important}.schedule-pill{align-items:center;gap:var(--sp-2);border-radius:var(--r-pill);color:var(--warn);font-weight:700;font-size:var(--fs-sm);background:#f59e0b1f;border:1px solid #f59e0b52;align-self:flex-start;padding:8px 14px;display:inline-flex}.topbar-schedule{color:var(--warn);font-size:var(--fs-xs);letter-spacing:.04em;align-items:center;gap:6px;margin-top:6px;font-weight:800;display:inline-flex}.topbar-celebrate{border-radius:var(--r-pill);color:var(--text-1);font-size:var(--fs-xs);letter-spacing:.04em;background:linear-gradient(135deg,#22c55e2e,#06b6d42e);align-items:center;gap:6px;width:max-content;max-width:100%;margin-top:6px;padding:4px 10px;font-weight:900;animation:2.4s ease-in-out infinite ready-glow;display:inline-flex;box-shadow:inset 0 0 0 1px #22c55e66}.topbar.is-celebrating .meter-bar i{background:linear-gradient(90deg, var(--success), var(--brand-2), var(--success));background-size:200% 100%;animation:2.4s linear infinite ready-sweep}@keyframes ready-glow{0%,to{box-shadow:inset 0 0 0 1px #22c55e66,0 0 #22c55e00}50%{box-shadow:inset 0 0 0 1px #22c55eb3,0 0 18px #22c55e8c}}@keyframes ready-sweep{0%{background-position:0 0}to{background-position:200% 0}}.hero-schedule{align-items:baseline;gap:var(--sp-2) var(--sp-3);grid-template-columns:auto auto;display:grid}.hero-schedule-label{color:var(--warn);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:900}.hero-schedule-time{letter-spacing:-.04em;background:linear-gradient(135deg, var(--warn), #f9c457);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:48px;font-weight:900;line-height:.9}.hero-schedule-clock{color:var(--text-2);grid-column:1/-1;font-weight:700}.celebrate-banner{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);background:linear-gradient(135deg,#22c55e40,#06b6d440);border:1px solid #22c55e73;grid-template-columns:auto 1fr auto;animation:.35s ease-out ready-pop;display:grid;box-shadow:0 0 0 1px #22c55e40,0 18px 40px #22c55e4d}.celebrate-banner strong{letter-spacing:-.02em;font-size:18px;display:block}.celebrate-banner p{color:var(--text-2);font-size:var(--fs-sm);margin:2px 0 0}.celebrate-emoji{font-size:30px;line-height:1;animation:1.6s ease-in-out infinite bounce}.celebrate-emoji.right{animation-delay:.35s}.status-hero.is-all-ready{border-color:#22c55e73}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes ready-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.eta-box.is-near{background:#ef44581f;border-color:#ef445873;animation:1s ease-in-out infinite eta-pulse}.eta-box.is-near .eta-box-label,.eta-box.is-near .eta-box-time{color:var(--danger)}.eta-box-time.is-near{font-variant-numeric:tabular-nums;letter-spacing:-.02em}.eta-box.is-awaiting{background:#7c3aed26;border-color:#7c3aed80}.eta-box.is-awaiting .eta-box-label,.eta-box.is-awaiting .eta-box-time{color:#c7a6ff}@keyframes eta-pulse{0%,to{box-shadow:0 0 #ef445800}50%{box-shadow:0 0 0 6px #ef44582e}}.ready-toggle{border-radius:var(--r-md);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;justify-content:center;align-items:center;gap:10px;min-height:56px;padding:14px 18px;font-size:16px;font-weight:900;transition:background .2s,color .2s,transform .15s,box-shadow .2s;display:inline-flex}.ready-toggle.block{width:100%}.ready-toggle:active{transform:scale(.98)}.ready-toggle.is-disabled,.ready-toggle:disabled{cursor:not-allowed;opacity:.55;filter:grayscale(.5);box-shadow:inset 0 0 0 1.5px #ffffff14}.ready-toggle.is-disabled:active,.ready-toggle:disabled:active{transform:none}.ready-cta.is-disabled,.ready-cta:disabled{cursor:not-allowed;opacity:.6;filter:grayscale(.5);box-shadow:inset 0 0 0 1.5px #ffffff14}.ready-glyph{border-radius:var(--r-pill);place-items:center;width:28px;height:28px;font-weight:900;display:inline-grid}.ready-toggle.is-idle{color:var(--text-1);background:linear-gradient(135deg,#1b2244,#131830);box-shadow:inset 0 0 0 1.5px #7c3aed8c,0 14px 28px #7c3aed2e}.ready-toggle.is-idle .ready-glyph{background:var(--brand-grad);color:#fff}.ready-toggle.is-ready{background:var(--success);color:#062b14;box-shadow:0 14px 28px #22c55e59}.ready-toggle.is-ready .ready-glyph{color:var(--success);background:#062b14}.ready-toggle.is-prompting{color:#fff;background:linear-gradient(135deg,#7c3aed4d,#ff5daa4d);animation:1.6s ease-in-out infinite ready-glow;box-shadow:inset 0 0 0 1.5px #ff5daa8c,0 14px 28px #ff5daa38}.ready-toggle.is-prompting .ready-glyph{background:var(--accent-hot);color:#2a0413}.person.awaiting-ready,.person.is-awaiting{background:linear-gradient(135deg, #7c3aed2e, var(--bg-1));border-color:#c7a6ff8c}.person.is-near{background:linear-gradient(135deg, #ef445829, var(--bg-1));border-color:#ef44588c;animation:1s ease-in-out infinite eta-pulse}.person .pill.is-awaiting{color:#1a0b33;background:#c7a6ff}.person-head .meta .status-countdown.is-near{color:var(--danger)}.person-head .meta .status-countdown.is-near strong{font-variant-numeric:tabular-nums}.person-head .meta .status-awaiting{color:#c7a6ff}.person-realname{color:var(--text-3);letter-spacing:.02em;margin:0;font-size:11px;font-weight:600}.person-edit{border-radius:var(--r-pill);background:var(--bg-3);width:22px;height:22px;color:var(--text-2);cursor:pointer;-webkit-tap-highlight-color:transparent;vertical-align:middle;border:0;place-items:center;margin-left:6px;font-size:12px;transition:background .15s,color .15s;display:inline-grid}.person-edit:hover{background:var(--brand-grad);color:#fff}.msg-avatar{position:relative}.msg-status-dot{border-radius:var(--r-pill);background:var(--text-3);width:11px;height:11px;box-shadow:0 0 0 2px var(--bg-1);position:absolute;bottom:-2px;right:-2px}.msg-status-dot.is-ready{background:var(--success)}.msg-status-dot.is-eta{background:var(--warn)}.msg-status-dot.is-delayed{background:var(--warn);box-shadow:0 0 0 2px var(--bg-1), 0 0 0 4px #f59e0b59}.msg-status-dot.is-awaiting{background:#c7a6ff}.msg-status-dot.is-away,.msg-status-dot.is-waiting{background:var(--text-3)}.msg-status-pill{letter-spacing:.08em;text-transform:uppercase;border-radius:var(--r-pill);background:var(--bg-3);color:var(--text-2);margin-left:6px;padding:2px 6px;font-size:9px;font-weight:900}.msg-status-pill.is-ready{color:var(--success);background:#22c55e2e}.msg-status-pill.is-eta,.msg-status-pill.is-delayed{color:var(--warn);background:#f59e0b2e}.msg-status-pill.is-awaiting{color:#dec9ff;background:#c7a6ff38}.msg-author{align-items:center;gap:4px;display:flex}.msg-author-real{color:var(--text-3);font-size:11px;font-weight:600}.polls-header{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.polls-title{font-size:var(--fs-h2);letter-spacing:-.02em;margin:0}.polls-list{gap:var(--sp-3);display:grid}.poll{gap:var(--sp-3);padding:var(--sp-4);display:grid}.poll.is-closed{opacity:.88;border-color:#ffffff24}.poll-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.poll-title{letter-spacing:-.01em;margin:0;font-size:18px}.poll-meta{margin:4px 0 0}.poll-head-actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.poll-mini-btn{background:var(--bg-3);color:var(--text-2);border-radius:var(--r-pill);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;padding:6px 10px;font-size:12px;font-weight:800;transition:background .15s,color .15s}.poll-mini-btn:hover{background:var(--bg-2);color:var(--text-1)}.poll-mini-btn.danger{color:#ffb7bf}.poll-mini-btn.danger:hover{color:#fff;background:#6d1f36}.poll-options{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.poll-option{align-items:center;gap:var(--sp-3);text-align:left;border:1px solid var(--border);background:var(--bg-2);width:100%;color:var(--text-1);border-radius:var(--r-md);cursor:pointer;-webkit-tap-highlight-color:transparent;grid-template-columns:1fr auto;padding:12px 16px;transition:border-color .15s,transform .12s;display:grid;position:relative;overflow:hidden}.poll-option:active{transform:scale(.99)}.poll-option:hover:not(:disabled){border-color:var(--border-strong)}.poll-option:disabled{cursor:not-allowed}.poll-option.disabled{opacity:.65}.poll-option.mine{background:linear-gradient(135deg, #06b6d42e, var(--bg-2));border-color:#06b6d48c}.poll-option-fill{pointer-events:none;background:linear-gradient(90deg,#7c3aed38,#06b6d438);width:0;transition:width .4s;position:absolute;inset:0}.poll-option.mine .poll-option-fill{background:linear-gradient(90deg,#06b6d452,#7c3aed38)}.poll-option-text{align-items:center;gap:var(--sp-2);z-index:1;font-weight:700;display:inline-flex;position:relative}.poll-option-check{color:var(--brand-2);font-size:14px}.poll-option.mine .poll-option-check{color:var(--brand-2)}.poll-option-count{z-index:1;font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;display:inline-flex;position:relative}.poll-option-count strong{font-size:16px;font-weight:900}.poll-voters{flex-wrap:wrap;gap:6px;padding:8px 4px 2px 14px;display:flex}.poll-voter-chip{border-radius:var(--r-pill);max-width:100%;color:var(--text-2);background:#ffffff12;border:1px solid #ffffff14;align-items:center;gap:5px;padding:4px 8px 4px 5px;font-size:12px;font-weight:800;display:inline-flex}.poll-voter-avatar{background:#ffffff14;border-radius:999px;place-items:center;width:18px;height:18px;font-size:11px;display:inline-grid}.poll-foot{margin:0}.poll-options-edit{gap:var(--sp-2);display:grid}.poll-option-edit{align-items:center;gap:var(--sp-2);grid-template-columns:1fr auto;display:grid}.poll-option-remove{background:var(--bg-3);color:var(--text-2);border-radius:var(--r-pill);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;width:36px;height:36px;font-size:14px}.poll-option-remove:hover{color:#fff;background:#6d1f36}@media (width>=900px){.app-shell .scroll>.area-polls{grid-area:chat}}.eta-error{border-radius:var(--r-md);color:#ffb7bf;font-size:var(--fs-sm);background:#ef44581f;border:1px solid #ef44584d;margin:0;padding:8px 12px;font-weight:700}.eta-error-inline{color:#ffb7bf;font-size:var(--fs-xs);font-weight:700}.eta-quick{gap:var(--sp-2);min-width:0;display:grid}.eta-quick-label{text-transform:uppercase;letter-spacing:.1em;font-weight:800;font-size:var(--fs-xs);color:var(--text-3)}.eta-quick-chips{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(72px,1fr));display:grid}.eta-quick-chips .chip{justify-content:center}.eta-window-hint{word-break:break-word;line-height:1.35;display:block}.dock button .status-icon{border-radius:var(--r-pill);background:#ffffff0a;place-items:center;width:26px;height:26px;transition:box-shadow .2s,background .2s;display:inline-grid;box-shadow:inset 0 0 0 1px #ffffff14}.dock button .status-dot{background:var(--text-3);border-radius:50%;width:12px;height:12px;transition:background .2s,box-shadow .2s;display:block}.dock button .status-dot.ready{background:var(--success);box-shadow:0 0 0 3px #22c55e2e}.dock button .status-dot.eta{background:var(--warn);box-shadow:0 0 0 3px #f59e0b2e}.dock button .status-dot.delayed{background:#fb923c;box-shadow:0 0 0 3px #fb923c2e}.dock button .status-dot.awaiting-ready{background:#c7a6ff;animation:1.6s ease-in-out infinite dock-status-pulse;box-shadow:0 0 0 3px #c7a6ff52}.dock button .status-dot.waiting{background:var(--text-3)}.dock button .status-dot.away{background:#ffffff40}@keyframes dock-status-pulse{0%,to{box-shadow:0 0 0 3px #c7a6ff52}50%{box-shadow:0 0 0 6px #c7a6ff8c}}.recent{gap:var(--sp-2);display:grid}.recent-label{color:var(--text-3);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:800}.recent-list{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.recent-item{align-items:stretch;gap:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-2);grid-template-columns:1fr auto;transition:border-color .15s,background .15s,transform .12s;display:grid;position:relative;overflow:hidden}.recent-item:hover{border-color:var(--border-strong);background:var(--bg-3)}.recent-item:active{transform:scale(.99)}.recent-card{color:var(--text-1);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;gap:2px;min-width:0;padding:12px 14px;display:grid}.recent-card-title{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.recent-card-meta{color:var(--text-3);font-size:var(--fs-xs);align-items:center;gap:6px;font-weight:700;display:inline-flex}.recent-card-meta span:first-child{color:var(--brand-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.recent-forget{color:var(--text-3);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:40px;font-size:14px;transition:background .15s,color .15s}.recent-forget:hover{color:#ffb7bf;background:#ef44582e}
