:root{--blue-50:#f2f6fd;--blue-100:#e1eafa;--blue-200:#c2d5f4;--blue-300:#97b6ed;--blue-400:#5a8ce2;--blue-500:#2467db;--blue-600:#1e57b8;--blue-700:#194999;--blue-800:#143a7b;--blue-900:#102a5b;--blue-950:#0b1b3d;--green-50:#eefcf4;--green-100:#d4f7e4;--green-200:#a9efc9;--green-300:#6fe2a3;--green-400:#18dc71;--green-500:#00c458;--green-600:#009e4a;--green-700:#037c3e;--green-800:#056133;--green-900:#064727;--neutral-0:#fff;--neutral-25:#fcfcfd;--neutral-50:#f9f9fb;--neutral-100:#f2f2f5;--neutral-200:#e6e5eb;--neutral-300:#d3d2db;--neutral-400:#a2a0ac;--neutral-450:#7f7d8a;--neutral-500:#6d6d6d;--neutral-600:#56555e;--neutral-700:#413f4a;--neutral-800:#2d2b36;--neutral-900:#1d1b25;--neutral-950:#050505;--ink-deep:#050505;--ink-base:#0d0c10;--ink-raised:#17161b;--ink-overlay:#222027;--ink-line:#29272f;--ink-border:#35333d;--ink-strong:#484653;--ink-interactive:#7a7886;--indigo-base:#0d0630;--indigo-raised:#1d1547;--indigo-border:#453c77;--amber-50:#fef8e6;--amber-100:#feedc3;--amber-200:#fdd888;--amber-300:#fcc451;--amber-400:#fab11e;--amber-500:#ef9906;--amber-600:#c77605;--amber-700:#9b5608;--amber-800:#733d07;--rose-50:#feeced;--rose-100:#fdd8db;--rose-400:#ec5160;--rose-500:#df2a3c;--rose-600:#c11f30;--rose-700:#9e1a25;--rose-800:#75151b;--rose-900:#3a0a0e;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:999px;--inset-top:59px;--inset-bottom:34px;--surface-canvas:var(--neutral-50);--surface-default:var(--neutral-0);--surface-raised:var(--neutral-0);--surface-sunken:var(--neutral-100);--surface-inverse:var(--indigo-base);--surface-hover:var(--neutral-100);--surface-press:var(--neutral-200);--surface-brand:var(--indigo-base);--surface-brand-bleed:var(--indigo-base);--surface-brand-border:var(--indigo-border);--surface-disabled:var(--neutral-100);--surface-own-message:var(--blue-100);--surface-other-message:var(--neutral-0);--border-subtle:var(--neutral-200);--border-default:var(--neutral-300);--border-strong:var(--neutral-400);--border-focus:var(--blue-500);--border-interactive:var(--neutral-450);--border-disabled:var(--neutral-200);--text-primary:var(--indigo-base);--text-secondary:var(--neutral-600);--text-tertiary:var(--neutral-500);--text-inverse:var(--neutral-0);--text-link:var(--blue-700);--text-on-fill:var(--neutral-0);--text-on-brand:var(--neutral-25);--text-disabled:var(--neutral-400);--action-primary:var(--blue-700);--action-primary-hover:var(--blue-800);--action-primary-press:var(--blue-900);--action-primary-text:var(--neutral-0);--action-subtle:var(--blue-50);--action-subtle-text:var(--blue-700);--accent-fill:var(--green-500);--accent-text:var(--green-700);--accent-surface:var(--green-50);--accent-border:var(--green-200);--accent-on-fill:var(--ink-base);--success-text:var(--green-700);--success-fill:var(--green-500);--success-surface:var(--green-50);--success-on-fill:var(--ink-base);--warning-text:var(--amber-700);--warning-fill:var(--amber-500);--warning-surface:var(--amber-50);--warning-on-fill:var(--ink-base);--danger-text:var(--rose-600);--danger-fill:var(--rose-500);--danger-surface:var(--rose-50);--danger-on-fill:var(--neutral-0);--info-text:var(--blue-700);--info-fill:var(--blue-500);--info-surface:var(--blue-50);--info-on-fill:var(--neutral-0);--overlay-scrim:#0d063080;--icon-default:var(--text-primary);--icon-secondary:var(--text-secondary);--icon-tertiary:var(--text-tertiary);--icon-on-fill:var(--text-on-fill);--icon-accent:var(--accent-text);--icon-danger:var(--danger-text);--icon-disabled:var(--text-disabled);--icon-inverse:var(--text-inverse);--elevation-1:0 1px 2px #0d06300f, 0 1px 3px #0d06300a;--elevation-2:0 2px 4px #0d06300d, 0 4px 12px #0d06300f;--elevation-3:0 8px 24px #0d06301f;--tone-1:#0d0630;--tone-2:#1d1547;--tone-3:#2a2260;--tone-4:#143a7b;--tone-5:#194999;--tone-6:#2467db;--tone-7:#5a8ce2;--tone-8:#97b6ed;--tone-9:#c2d5f4;--tone-10:#e1eafa}.theme-dark{--surface-canvas:var(--ink-base);--surface-default:var(--ink-raised);--surface-raised:var(--ink-overlay);--surface-sunken:var(--ink-deep);--surface-inverse:var(--neutral-25);--surface-hover:var(--ink-overlay);--surface-press:var(--ink-line);--surface-brand:var(--indigo-raised);--surface-disabled:var(--ink-overlay);--surface-own-message:var(--blue-800);--surface-other-message:var(--ink-raised);--border-subtle:var(--ink-line);--border-default:var(--ink-border);--border-strong:var(--ink-strong);--border-focus:var(--blue-400);--border-interactive:var(--ink-interactive);--border-disabled:var(--ink-line);--text-primary:var(--neutral-25);--text-secondary:var(--neutral-300);--text-tertiary:var(--neutral-400);--text-inverse:var(--ink-base);--text-link:var(--blue-300);--text-disabled:var(--neutral-500);--action-primary:var(--blue-500);--action-primary-hover:var(--blue-400);--action-primary-press:var(--blue-300);--action-subtle:var(--blue-900);--action-subtle-text:var(--blue-300);--accent-text:var(--green-400);--accent-surface:var(--green-900);--accent-border:var(--green-800);--success-text:var(--green-400);--success-surface:var(--green-900);--warning-text:var(--amber-400);--warning-surface:var(--amber-800);--danger-text:var(--rose-400);--danger-surface:var(--rose-900);--info-text:var(--blue-300);--info-surface:var(--blue-950);--overlay-scrim:#05050599;--icon-default:var(--text-primary);--icon-secondary:var(--text-secondary);--icon-tertiary:var(--text-tertiary);--icon-on-fill:var(--text-on-fill);--icon-accent:var(--accent-text);--icon-danger:var(--danger-text);--icon-disabled:var(--text-disabled);--icon-inverse:var(--text-inverse);--elevation-1:0 1px 3px #00000047;--elevation-2:0 4px 12px #0006;--elevation-3:0 8px 28px #0000008f}.pal-indigo{--tone-1:#0d0630;--tone-2:#1d1547;--tone-3:#2a2260;--tone-4:#143a7b;--tone-5:#194999;--tone-6:#2467db;--tone-7:#5a8ce2;--tone-8:#97b6ed;--tone-9:#c2d5f4;--tone-10:#e1eafa}.pal-forest{--tone-1:#052e19;--tone-2:#064727;--tone-3:#056133;--tone-4:#037c3e;--tone-5:#009e4a;--tone-6:#00c458;--tone-7:#18dc71;--tone-8:#6fe2a3;--tone-9:#a9efc9;--tone-10:#d4f7e4}.pal-clay{--tone-1:#4a2705;--tone-2:#733d07;--tone-3:#9b5608;--tone-4:#c77605;--tone-5:#ef9906;--tone-6:#fab11e;--tone-7:#fcc451;--tone-8:#fdd888;--tone-9:#feedc3;--tone-10:#fef8e6}.pal-rose{--tone-1:#4d0e13;--tone-2:#75151b;--tone-3:#9e1a25;--tone-4:#c11f30;--tone-5:#df2a3c;--tone-6:#ec5160;--tone-7:#f2808b;--tone-8:#f8aeb5;--tone-9:#fdd8db;--tone-10:#feeced}.pal-teal{--tone-1:#06282f;--tone-2:#0a3b46;--tone-3:#0f5666;--tone-4:#147a90;--tone-5:#1896bc;--tone-6:#2fb3d4;--tone-7:#67cbe2;--tone-8:#9adfef;--tone-9:#c6ecf6;--tone-10:#e4f6fb}.pal-plum{--tone-1:#2b0b3d;--tone-2:#401356;--tone-3:#5a1d75;--tone-4:#762a96;--tone-5:#9139b5;--tone-6:#a95fc8;--tone-7:#c189d8;--tone-8:#d6b1e6;--tone-9:#e8d4f2;--tone-10:#f5ecfa}.t-display-l{font:700 34px/40px var(--font);letter-spacing:-.021em}.t-display{font:700 28px/34px var(--font);letter-spacing:-.02em}.t-title-l{font:700 22px/28px var(--font);letter-spacing:-.015em}.t-title{font:600 20px/26px var(--font);letter-spacing:-.012em}.t-title-s{font:600 17px/24px var(--font);letter-spacing:-.008em}.t-body-l{font:400 17px/26px var(--font)}.t-body{font:400 15px/22px var(--font)}.t-body-s{font:400 13px/18px var(--font)}.t-label-l{font:600 15px/20px var(--font);letter-spacing:-.005em}.t-label{font:600 13px/16px var(--font);letter-spacing:.005em}.t-label-s{font:600 11px/14px var(--font);letter-spacing:.02em}.t-caption{font:400 12px/16px var(--font)}.t-overline{font:700 11px/14px var(--font);letter-spacing:.08em}.t-quote{font:400 17px/28px var(--font);letter-spacing:-.005em}.c-primary{color:var(--text-primary)}.c-secondary{color:var(--text-secondary)}.c-tertiary{color:var(--text-tertiary)}.c-link{color:var(--text-link)}.c-inverse{color:var(--text-inverse)}.c-disabled{color:var(--text-disabled)}.c-danger{color:var(--danger-text)}.c-accent{color:var(--accent-text)}.c-warning{color:var(--warning-text)}.c-on-fill{color:var(--text-on-fill)}:root{--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--shell-bg:#e9e9ee;--shell-panel:#fff;--shell-line:#dedde4;--shell-text:#0d0630;--shell-muted:#6d6d6d;--shell-accent:#194999}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--shell-bg);color:var(--shell-text);overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;text-align:inherit;background:0 0;border:0;margin:0;padding:0}input,textarea{font:inherit;color:inherit;background:0 0;border:0;outline:none;min-width:0;margin:0;padding:0}textarea{resize:none}p,h1,h2,h3{margin:0}svg{flex-shrink:0;display:block}.shell{width:100%;height:100%;display:flex}.shell-side{background:var(--shell-panel);border-right:1px solid var(--shell-line);flex-shrink:0;width:300px;height:100%;padding:20px 12px 40px;overflow-y:auto}.shell-side h1{font:700 17px/24px var(--font);padding:0 8px}.shell-side .sub{font:400 12px/16px var(--font);color:var(--shell-muted);padding:2px 8px 12px}.shell-sec{margin-top:10px}.shell-sec>.sec-head{width:100%;font:600 12px/16px var(--font);letter-spacing:.02em;color:var(--shell-text);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px;display:flex}.shell-sec>.sec-head:hover{background:#f2f2f5}.shell-sec>.sec-head .n{color:var(--shell-muted);font-weight:400}.shell-item{width:100%;font:400 13px/17px var(--font);color:#413f4a;border-radius:8px;padding:6px 8px 6px 20px;display:block}.shell-item:hover{background:#f2f2f5}.shell-item.on{color:var(--shell-accent);background:#e1eafa;font-weight:600}.shell-item .hint{font:400 11px/14px var(--font);color:var(--shell-muted);margin-top:2px;display:block}.shell-stage{flex:1;justify-content:center;align-items:center;min-width:0;height:100%;display:flex;position:relative}.shell-stage .frame-wrap{transform-origin:50%}.phone-frame{isolation:isolate;border-radius:48px;width:393px;height:852px;position:relative;overflow:hidden;box-shadow:0 0 0 10px #16151b,0 0 0 11px #3a3943,0 30px 80px #0d063047}.phone{background:var(--surface-canvas);width:100%;height:100%;color:var(--text-primary);font-family:var(--font);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.phone.fullscreen{--inset-top:env(safe-area-inset-top,0px);--inset-bottom:env(safe-area-inset-bottom,0px)}.phone input,.phone textarea{-webkit-user-select:text;user-select:text}.status-bar{z-index:50;pointer-events:none;height:54px;color:var(--text-primary);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:absolute;top:0;left:0;right:0}.status-bar.light{color:#fff}.status-bar .time{font:600 17px/22px var(--font);text-align:center;width:36px}.nav-layer{background:var(--surface-canvas);z-index:1;isolation:isolate;position:absolute;inset:0}.nav-layer.hidden{visibility:hidden}.nav-layer.enter-push{z-index:2;animation:.28s cubic-bezier(.2,.8,.2,1) both pushIn}.nav-layer.exit-pop{z-index:3;animation:.25s cubic-bezier(.4,0,.6,1) both popOut}.nav-layer.enter-modal{z-index:2;animation:.32s cubic-bezier(.2,.8,.2,1) both modalIn}.nav-layer.exit-modal{z-index:3;animation:.26s cubic-bezier(.4,0,.6,1) both modalOut}.nav-layer.enter-fade{z-index:2;animation:.2s both fadeIn}.nav-layer.under-pop{animation:.25s cubic-bezier(.4,0,.6,1) both underIn}@keyframes pushIn{0%{transform:translate(100%)}to{transform:none}}@keyframes popOut{0%{transform:none}to{transform:translate(100%)}}@keyframes underIn{0%{transform:translate(-24%)}to{transform:none}}@keyframes modalIn{0%{transform:translateY(100%)}to{transform:none}}@keyframes modalOut{0%{transform:none}to{transform:translateY(100%)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes launchSpin{0%{transform:rotate(-180deg)}to{transform:rotate(0)}}@keyframes launchSlide{0%{transform:translate(-157.03px)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.launch-anim{animation:none!important}}@keyframes shimmer{0%{opacity:.55}50%{opacity:1}to{opacity:.55}}.spin{animation:.9s linear infinite spin}.screen{background:var(--surface-canvas);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.screen-body{overscroll-behavior:contain;scrollbar-width:none;flex:auto;min-height:0;overflow:hidden auto}.screen-body::-webkit-scrollbar{display:none}.hscroll{scrollbar-width:none;overflow:auto hidden}.hscroll::-webkit-scrollbar{display:none}.col{flex-direction:column;display:flex}.row{flex-direction:row;align-items:center;display:flex}.grow{flex:1 1 0;min-width:0}.shrink0{flex-shrink:0}.center{justify-content:center;align-items:center}.tc{text-align:center}.tr{text-align:right}.trunc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.clamp2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.clamp3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tap{cursor:pointer}.fill{width:100%}.nowrap{white-space:nowrap}.rel{position:relative}.btn{white-space:nowrap;height:44px;font:600 15px/20px var(--font);letter-spacing:-.005em;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:0 20px;transition:opacity .12s,background .12s;display:inline-flex}.btn.sm{height:36px;font:600 13px/16px var(--font);letter-spacing:.005em;border-radius:8px;padding:0 12px}.btn.full{width:100%}.btn:active:not(:disabled){opacity:.9}.btn-primary{background:var(--action-primary);color:var(--action-primary-text)}.btn-secondary{background:var(--surface-default);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-default)}.btn-ghost{color:var(--text-link)}.btn-accent{background:var(--accent-fill);color:var(--accent-on-fill)}.btn-danger{background:var(--danger-fill);color:var(--danger-on-fill)}.btn-danger-outline{color:var(--danger-text);box-shadow:inset 0 0 0 1px var(--danger-text)}.btn:disabled{cursor:default;background:var(--surface-disabled);color:var(--text-disabled);box-shadow:none}.btn-ghost:disabled{background:0 0}.btn-secondary:disabled{box-shadow:inset 0 0 0 1px var(--border-disabled)}.btn-danger-outline:disabled{box-shadow:inset 0 0 0 1px var(--border-disabled);background:0 0}.btn.loading,.btn.loading:disabled{cursor:default}.btn-primary.loading{background:var(--action-primary);color:var(--action-primary-text)}.btn-secondary.loading{background:var(--surface-default);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-default)}.btn-accent.loading{background:var(--accent-fill);color:var(--accent-on-fill)}.btn-danger.loading{background:var(--danger-fill);color:var(--danger-on-fill)}.btn-danger-outline.loading{color:var(--danger-text);box-shadow:inset 0 0 0 1px var(--danger-text)}.btn-ghost.loading{color:var(--text-link)}.social{width:100%;height:48px;font:600 15px/20px var(--font);letter-spacing:-.005em;border-radius:12px;justify-content:center;align-items:center;gap:8px;display:flex}.social.apple{background:var(--surface-inverse);color:var(--text-inverse)}.social.google{background:var(--surface-default);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-default)}.social:active{opacity:.9}.icon-btn{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.icon-btn.filled{background:var(--action-primary)}.icon-btn.subtle{background:var(--surface-sunken)}.icon-btn:active{background:var(--surface-hover)}.icon-btn.filled:active{background:var(--action-primary-press)}.badge-dot{background:var(--accent-fill);border-radius:999px;width:10px;height:10px}.badge-count{background:var(--danger-fill);min-width:18px;height:18px;color:var(--danger-on-fill);font:600 11px/14px var(--font);letter-spacing:.02em;border-radius:999px;justify-content:center;align-items:center;padding:2px 4px;display:inline-flex}.avatar{background:var(--surface-inverse);color:var(--text-inverse);font:600 11px/14px var(--font);letter-spacing:.02em;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.avatar.lg{font:600 15px/20px var(--font);letter-spacing:-.005em}.avatar-group{align-items:center;display:flex}.avatar-group .ring{background:var(--surface-default);border-radius:999px;padding:2px}.avatar-group>*+*{margin-left:-10px}.avatar-group .more{background:var(--surface-sunken);width:26px;height:26px;box-shadow:0 0 0 2px var(--surface-default);border-radius:999px;justify-content:center;align-items:center;margin:2px;display:flex}.club-av{background:var(--tone-10);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.club-av .art{justify-content:center;align-items:center;display:flex;position:relative}.book-cover{background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--border-subtle);border-radius:4px;flex-direction:column;flex-shrink:0;justify-content:flex-end;padding:8px;display:flex;overflow:hidden}.pill{height:26px;font:600 11px/14px var(--font);letter-spacing:.02em;white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:0 8px;display:inline-flex}.pill-live{background:var(--accent-surface);color:var(--accent-text)}.pill-live .dot{background:var(--accent-fill);border-radius:99px;width:7px;height:7px}.pill-neutral,.pill-public,.pill-private{background:var(--surface-sunken);color:var(--text-secondary)}.pill-warning{background:var(--warning-surface);color:var(--warning-text)}.pill-danger{background:var(--danger-surface);color:var(--danger-text)}.chip{white-space:nowrap;background:var(--surface-default);height:32px;color:var(--text-secondary);box-shadow:inset 0 0 0 1px var(--border-subtle);font:600 13px/16px var(--font);letter-spacing:.005em;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.chip.on{background:var(--surface-inverse);color:var(--text-inverse);box-shadow:none}.toggle{background:var(--border-default);border-radius:999px;flex-shrink:0;width:51px;height:31px;transition:background .15s;position:relative}.toggle.on{background:var(--accent-fill)}.toggle:disabled{background:var(--surface-disabled);cursor:default}.toggle:after{content:"";background:#fff;border-radius:999px;width:27px;height:27px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0d06300f,0 1px 3px #0d06300a}.toggle.on:after{transform:translate(20px)}.checkbox{background:var(--surface-default);width:22px;height:22px;box-shadow:inset 0 0 0 1.5px var(--border-interactive);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.checkbox.on{background:var(--action-primary);box-shadow:none}.radio{background:var(--surface-default);width:22px;height:22px;box-shadow:inset 0 0 0 1.5px var(--border-interactive);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.radio.on{background:var(--action-primary);box-shadow:none}.radio.on:after{content:"";background:var(--icon-on-fill);border-radius:99px;width:8px;height:8px}.sel-card{background:var(--surface-default);width:100%;box-shadow:inset 0 0 0 1px var(--border-default);border-radius:16px;align-items:flex-start;gap:12px;padding:16px;display:flex}.sel-card.on{background:var(--action-subtle);box-shadow:inset 0 0 0 2px var(--border-focus)}.sel-check{width:24px;height:24px;box-shadow:inset 0 0 0 2px var(--border-strong);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sel-check.on{background:var(--action-primary);box-shadow:none}.field-wrap{flex-direction:column;gap:4px;width:100%;display:flex}.field{background:var(--surface-default);min-height:46px;box-shadow:inset 0 0 0 1px var(--border-interactive);border-radius:12px;align-items:center;gap:8px;padding:12px;display:flex}.field.focus{box-shadow:inset 0 0 0 2px var(--border-focus)}.field.success{box-shadow:inset 0 0 0 1px var(--accent-text)}.field.error{box-shadow:inset 0 0 0 1px var(--danger-fill)}.field.disabled{background:var(--surface-disabled);box-shadow:inset 0 0 0 1px var(--border-disabled)}.field input,.field textarea{font:400 15px/22px var(--font);color:var(--text-primary);flex:1;height:22px}.field input::placeholder,.field textarea::placeholder{color:var(--text-tertiary);opacity:1}.field.disabled input{color:var(--text-disabled)}.field.area{align-items:flex-start;min-height:104px}.field.area textarea{align-self:stretch;height:auto;min-height:80px}.field.search{background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--border-subtle)}.field.search.focus{box-shadow:inset 0 0 0 2px var(--border-focus)}.field-foot{gap:8px;display:flex}.appbar{padding-top:var(--inset-top);background:var(--surface-default);box-shadow:inset 0 -1px 0 var(--border-subtle);z-index:5;flex-shrink:0;position:relative}.appbar .bar{align-items:center;gap:4px;height:52px;display:flex}.tabbar{padding:8px 0 calc(var(--inset-bottom)) 0;background:var(--surface-default);box-shadow:inset 0 1px 0 var(--border-subtle);z-index:5;flex-shrink:0;justify-content:center;align-items:flex-start;min-height:68px;display:flex;position:relative}.phone.fullscreen .tabbar{padding-bottom:max(8px, var(--inset-bottom))}.tab{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;height:60px;display:flex;position:relative}.tab .pill-bg{border-radius:24px;align-items:center;width:56px;height:40px;padding:8px 16px;display:flex}.tab.on .pill-bg{background:var(--surface-hover)}.tab .b-dot{position:absolute;top:4px;left:calc(50% + 5px)}.tab .b-count{position:absolute;top:4px;left:calc(50% + 3px)}.fab{background:var(--action-primary);min-width:56px;height:56px;color:var(--text-on-fill);box-shadow:var(--elevation-2);border-radius:999px;justify-content:center;align-items:center;gap:8px;display:flex}.fab.ext{font:600 15px/20px var(--font);letter-spacing:-.005em;padding:16px 24px 16px 20px}.scrim{background:var(--overlay-scrim);z-index:40;animation:.18s both fadeIn;position:absolute;inset:0}.sheet{z-index:41;background:var(--surface-default);box-shadow:var(--elevation-3);padding:8px 0 var(--inset-bottom);border-radius:24px 24px 0 0;flex-direction:column;align-items:center;gap:4px;max-height:calc(100% - 60px);animation:.28s cubic-bezier(.2,.8,.2,1) both modalIn;display:flex;position:absolute;bottom:0;left:0;right:0}.phone.fullscreen .sheet{padding-bottom:max(16px, var(--inset-bottom))}.sheet .handle{background:var(--border-default);border-radius:999px;flex-shrink:0;width:38px;height:4px}.menu-row{background:var(--surface-default);align-items:center;gap:12px;width:100%;min-height:54px;padding:16px;display:flex}.menu-row:active{background:var(--surface-hover)}.dialog-wrap{z-index:41;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.dialog{background:var(--surface-raised);width:300px;box-shadow:var(--elevation-3);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:24px;animation:.2s cubic-bezier(.2,.8,.2,1) both pop;display:flex}@keyframes pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.dialog .actions{gap:8px;width:100%;padding-top:16px;display:flex}.dialog .actions button{height:44px;font:600 15px/20px var(--font);letter-spacing:-.005em;border-radius:12px;flex:1;justify-content:center;align-items:center;display:flex}.dialog .cancel{background:var(--surface-sunken);color:var(--text-primary)}.dialog .danger{background:var(--danger-fill);color:var(--danger-on-fill)}.toast{background:var(--surface-inverse);box-shadow:var(--elevation-3);color:var(--text-inverse);border-radius:12px;align-items:center;gap:12px;padding:12px 16px;animation:.22s cubic-bezier(.2,.8,.2,1) both toastIn;display:flex}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.popover{background:var(--surface-default);box-shadow:var(--elevation-2);border-radius:12px;padding:4px 0;animation:.16s both pop;overflow:hidden}.skel{background:var(--surface-sunken)}.skel-row{opacity:.7;animation:1.4s ease-in-out infinite shimmer}.bubble{border-radius:12px;flex-direction:column;gap:8px;max-width:280px;padding:8px 12px;display:flex}.bubble.other{background:var(--surface-other-message)}.bubble.own{background:var(--surface-own-message)}.typing-dots{align-items:flex-end;gap:1.8px;height:16px;padding:0 0 4px 1px;display:inline-flex}.typing-dots i{background:var(--text-tertiary);border-radius:9px;width:1.5px;height:1.5px;animation:1.2s ease-in-out infinite dotPulse}.typing-dots i:nth-child(2){animation-delay:.2s}.typing-dots i:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{opacity:.25}40%{opacity:1}}.composer{background:var(--surface-default);box-shadow:inset 0 1px 0 var(--border-subtle);padding:8px 12px var(--inset-bottom);z-index:5;flex-direction:column;flex-shrink:0;gap:4px;display:flex;position:relative}.phone.fullscreen .composer{padding-bottom:max(8px, var(--inset-bottom))}.composer .cfield{background:var(--surface-sunken);min-height:46px;box-shadow:inset 0 0 0 1px var(--border-subtle);border-radius:24px;flex:1;align-items:center;padding:12px 16px;display:flex}.composer .cfield.blocked{box-shadow:inset 0 0 0 1px var(--danger-fill)}.composer .cfield.disabled{background:var(--surface-disabled)}.composer textarea{width:100%;font:400 15px/22px var(--font);color:var(--text-primary);max-height:110px}.composer textarea::placeholder{color:var(--text-tertiary);opacity:1}.composer .send{background:var(--surface-disabled);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.composer .send.on{background:var(--action-primary)}.mention{color:var(--text-link);letter-spacing:.005em;font-size:13px;font-weight:600}.shimmer-sweep{background:linear-gradient(90deg,#fff0 0%,#ffffffbf 50%,#fff0 100%);width:160px;animation:1.2s ease-in-out infinite sweep;position:absolute;top:0;bottom:0;left:-160px}.theme-dark .shimmer-sweep{background:linear-gradient(90deg,#fff0 0%,#ffffff0f 50%,#fff0 100%)}@keyframes sweep{0%{left:-160px}to{left:100%}}
