:root{--purple-50: #F8EFFA;--purple-100: #F0DDF4;--purple-200: #E2BEEA;--purple-300: #CF97DB;--purple-400: #B76EC6;--purple-500: #A05BAF;--purple-600: #8A4A98;--purple-700: #6E3B79;--purple-800: #522C5B;--purple-900: #371E3D;--teal-50: #E6F8F4;--teal-100: #DBF6F0;--teal-200: #A8E8DA;--teal-300: #6DD8C2;--teal-400: #34C6AA;--teal-500: #26987F;--teal-600: #1E7A68;--teal-700: #186354;--teal-800: #124A3F;--teal-900: #0C312A;--neutral-0: #FFFFFF;--neutral-25: #FAFBFA;--neutral-50: #F8F8F8;--neutral-100: #F2F2F2;--neutral-200: #DDDEDD;--neutral-300: #C4C5C4;--neutral-400: #A9A9B0;--neutral-500: #7C7D7C;--neutral-600: #575857;--neutral-700: #444444;--neutral-800: #353635;--neutral-900: #242624;--neutral-950: #151615;--red-100: #FDE6E1;--red-500: #D32F14;--red-600: #B02510;--amber-100: #FFF3DC;--amber-500: #FFBB2E;--amber-700: #9A6B00;--green-500: #2A8035;--color-bg: var(--neutral-50);--color-surface: var(--neutral-0);--color-surface-raised: var(--neutral-0);--color-surface-sunken: var(--neutral-100);--color-border: var(--neutral-200);--color-border-strong: var(--neutral-300);--color-text: var(--neutral-800);--color-text-muted: var(--neutral-600);--color-text-subtle: var(--neutral-400);--color-text-inverse: var(--neutral-0);--color-brand: var(--purple-400);--color-primary: var(--purple-600);--color-primary-hover: var(--purple-700);--color-primary-subtle: var(--purple-50);--color-on-primary: var(--neutral-0);--color-accent: var(--teal-400);--color-accent-strong: var(--teal-600);--color-accent-subtle: var(--teal-100);--color-on-accent: var(--neutral-0);--color-success: var(--green-500);--color-danger: var(--red-500);--color-danger-hover: var(--red-600);--color-danger-subtle: var(--red-100);--color-warning: var(--amber-700);--color-warning-fill: var(--amber-500);--color-warning-subtle: var(--amber-100);--color-bubble-out: var(--purple-600);--color-bubble-out-text: var(--neutral-0);--color-bubble-in: var(--teal-100);--color-bubble-in-text: var(--neutral-800);--color-unread-badge: var(--purple-600);--color-on-unread-badge: var(--neutral-0);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgb(21 22 21 / .06);--shadow-md: 0 4px 12px rgb(21 22 21 / .08);--shadow-lg: 0 12px 32px rgb(21 22 21 / .12);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--tabbar-height: 56px;--header-height: 56px;--content-max-width: 720px;--z-header: 10;--z-tabbar: 20;--z-sheet: 30;--z-modal: 40;--z-toast: 50;--transition-fast: .12s ease;--transition-base: .2s ease;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg: var(--neutral-950);--color-surface: var(--neutral-900);--color-surface-raised: var(--neutral-800);--color-surface-sunken: var(--neutral-950);--color-border: var(--neutral-800);--color-border-strong: var(--neutral-700);--color-text: var(--neutral-100);--color-text-muted: var(--neutral-300);--color-text-subtle: var(--neutral-400);--color-text-inverse: var(--neutral-950);--color-brand: var(--purple-300);--color-primary: var(--purple-300);--color-primary-hover: var(--purple-200);--color-primary-subtle: var(--purple-900);--color-on-primary: var(--neutral-950);--color-accent: var(--teal-300);--color-accent-strong: var(--teal-300);--color-accent-subtle: var(--teal-900);--color-on-accent: var(--neutral-950);--color-danger: #F1786A;--color-danger-subtle: #3D1714;--color-warning: var(--amber-500);--color-warning-subtle: #3A2A0C;--color-bubble-out: var(--purple-700);--color-bubble-out-text: var(--neutral-0);--color-bubble-in: var(--neutral-800);--color-bubble-in-text: var(--neutral-100);--color-unread-badge: var(--purple-300);--color-on-unread-badge: var(--neutral-950)}}[data-theme=dark]{color-scheme:dark;--color-bg: var(--neutral-950);--color-surface: var(--neutral-900);--color-surface-raised: var(--neutral-800);--color-surface-sunken: var(--neutral-950);--color-border: var(--neutral-800);--color-border-strong: var(--neutral-700);--color-text: var(--neutral-100);--color-text-muted: var(--neutral-300);--color-text-subtle: var(--neutral-400);--color-text-inverse: var(--neutral-950);--color-brand: var(--purple-300);--color-primary: var(--purple-300);--color-primary-hover: var(--purple-200);--color-primary-subtle: var(--purple-900);--color-on-primary: var(--neutral-950);--color-accent: var(--teal-300);--color-accent-strong: var(--teal-300);--color-accent-subtle: var(--teal-900);--color-on-accent: var(--neutral-950);--color-danger: #F1786A;--color-danger-subtle: #3D1714;--color-warning: var(--amber-500);--color-warning-subtle: #3A2A0C;--color-bubble-out: var(--purple-700);--color-bubble-out-text: var(--neutral-0);--color-bubble-in: var(--neutral-800);--color-bubble-in-text: var(--neutral-100);--color-unread-badge: var(--purple-300)}.conv-list{display:flex;flex-direction:column}.conv-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:inherit;background:var(--color-surface);border-bottom:1px solid var(--color-border);text-align:left;width:100%;min-height:68px;transition:background var(--transition-fast)}.conv-item:active{background:var(--color-surface-sunken)}.conv-item--locked{cursor:default}.conv-item__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.conv-item__top,.conv-item__bottom{display:flex;align-items:center;gap:var(--space-2)}.conv-item__title{flex:1;min-width:0;font-weight:var(--weight-semibold);font-size:var(--text-base)}.conv-item__time{flex-shrink:0;font-size:var(--text-xs);color:var(--color-text-subtle)}.conv-item__preview{flex:1;min-width:0;font-size:var(--text-sm);color:var(--color-text-muted)}.conv-item__badge{flex-shrink:0;padding:1px var(--space-2);border-radius:var(--radius-full);background:var(--color-accent-subtle);color:var(--color-accent-strong);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.conv-item__unread{flex-shrink:0;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--color-unread-badge);color:var(--color-on-unread-badge);font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:20px;text-align:center}.conv-item__join{flex-shrink:0;min-height:36px;min-width:unset;padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-on-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.conv-item__pending{flex-shrink:0;font-size:var(--text-sm);color:var(--color-text-subtle)}.search-field{position:sticky;top:0;z-index:1;padding:var(--space-3) var(--space-4);background:var(--color-bg)}.search-field input{width:100%;height:40px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.search-field input::placeholder{color:var(--color-text-subtle)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:48px;padding:0 var(--space-5);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--weight-semibold);transition:background var(--transition-fast),opacity var(--transition-fast)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-on-primary)}.btn--primary:active:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border-strong)}.btn--ghost{background:none;color:var(--color-primary)}.btn--danger{background:none;color:var(--color-danger)}.btn--block{width:100%}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.field input,.field textarea,.field select{height:48px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface)}.field input:focus,.field textarea:focus{border-color:var(--color-primary);outline:none}.field__error{font-size:var(--text-sm);color:var(--color-danger)}.field__hint{font-size:var(--text-sm);color:var(--color-text-subtle)}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.segmented button{height:48px;min-width:unset;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);font-weight:var(--weight-medium);transition:all var(--transition-fast)}.segmented button[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--color-primary);font-weight:var(--weight-semibold)}.empty{display:grid;place-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-6);text-align:center;color:var(--color-text-muted)}.empty h2{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.empty p{font-size:var(--text-sm);max-width:34ch}.screen{display:flex;flex-direction:column;min-height:100%}.screen__pad{padding:var(--space-4)}.section-label{padding:var(--space-4) var(--space-4) var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.04em}.error-banner{margin:var(--space-3) var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-danger-subtle);color:var(--color-danger);font-size:var(--text-sm)}.composer__icon-btn{flex-shrink:0;width:48px;height:48px;min-width:unset;display:grid;place-items:center;color:var(--color-text-muted);border-radius:var(--radius-md)}.composer__icon-btn:active:not(:disabled){background:var(--color-surface-sunken)}.composer__icon-btn:disabled{opacity:.4}.attach-sheet{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sheet);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);padding-bottom:calc(var(--space-4) + var(--safe-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lg)}.attach-sheet__preview{display:grid;place-items:center;max-height:40dvh;overflow:hidden;border-radius:var(--radius-md);background:var(--color-surface-sunken)}.attach-sheet__preview img,.attach-sheet__preview video{max-height:40dvh;object-fit:contain}.attach-sheet__file{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-6);color:var(--color-text-muted)}.attach-sheet__meta{font-size:var(--text-sm);color:var(--color-text-muted)}.attach-sheet__error{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-danger-subtle);color:var(--color-danger);font-size:var(--text-sm)}.attach-sheet__progress{height:4px;border-radius:var(--radius-full);background:var(--color-surface-sunken);overflow:hidden}.attach-sheet__progress span{display:block;height:100%;background:var(--color-primary);transition:width .12s linear}.attach-sheet__actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.recorder{flex:1 1 100%;min-width:0;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.recorder .btn{flex-shrink:0}.recorder .spacer{flex:1 1 auto;min-width:0}.recorder__error{flex-basis:100%;font-size:var(--text-sm);color:var(--color-danger)}.recorder__dot{width:10px;height:10px;border-radius:50%;background:var(--color-danger);animation:pulse 1.2s ease-in-out infinite}.recorder__time{font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--color-text-muted)}@keyframes pulse{50%{opacity:.25}}.attach{display:block;margin-bottom:var(--space-1)}.attach-audio{display:flex;align-items:center;gap:var(--space-2);min-width:0;width:240px;max-width:100%}.attach-audio audio{min-width:0}.attach-audio__time{font-variant-numeric:tabular-nums;font-size:var(--text-xs);opacity:.75}.attach-file{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);background:#0000000f;color:inherit;min-width:200px}.attach-file--mine{background:#ffffff2e}.attach-file__text{display:flex;flex-direction:column;min-width:0}.attach-file__meta{font-size:var(--text-xs);opacity:.75}.switch{--switch-w: 46px;--switch-h: 28px;flex:none;position:relative;width:var(--switch-w);height:var(--switch-h);min-height:0;min-width:0;padding:3px;border:none;border-radius:var(--radius-full);background:var(--color-border-strong);cursor:pointer;display:flex;justify-content:flex-start;transition:background .15s ease}.switch:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(var(--switch-w),44px);height:44px}.switch--on{background:var(--color-primary);justify-content:flex-end}.switch:disabled{opacity:.5;cursor:default}.switch__knob{flex:none;width:calc(var(--switch-h) - 6px);height:calc(var(--switch-h) - 6px);border-radius:var(--radius-full);background:#fff;box-shadow:0 1px 2px #00000040}@media(prefers-reduced-motion:reduce){.switch{transition:none}}.password-input{position:relative;display:flex}.password-input input{flex:1;padding-right:48px}.password-input__toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:40px;height:40px;padding:0;border:none;border-radius:var(--radius-md);background:none;color:var(--color-text-subtle);cursor:pointer}.password-input__toggle:hover{color:var(--color-text)}.password-input__toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.password-input__toggle[aria-pressed=true]{color:var(--color-primary)}.push-prompt{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-primary-subtle);border-bottom:1px solid var(--color-border)}.push-prompt>*{max-width:none}.push-prompt{justify-content:center}.push-prompt__inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);width:100%;max-width:720px}.push-prompt__text{display:flex;flex-direction:column;gap:2px;flex:1 1 220px;font-size:var(--text-sm)}.push-prompt__actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.push-prompt__actions input[type=date]{width:170px;min-width:0;flex:0 0 auto;height:40px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text)}.attach--image{display:block;padding:0;min-height:0;min-width:0;background:none;border:0;line-height:0}.lightbox{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:calc(var(--safe-top) + var(--space-4)) var(--space-4) calc(var(--safe-bottom) + var(--space-4));background:#000000eb}.lightbox img{max-width:100%;max-height:80dvh;object-fit:contain;border-radius:var(--radius-md)}.lightbox__close{position:absolute;top:calc(var(--safe-top) + var(--space-2));right:var(--space-3);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#fff;background:#ffffff24}.lightbox__action{position:absolute;bottom:calc(var(--safe-bottom) + var(--space-5));padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);color:#fff;background:#ffffff24;font-size:var(--text-sm)}.conv-header__title{display:flex;align-items:center;flex:1;min-width:0;min-height:0;padding:0;background:none;text-align:left;color:inherit}.group-info__head{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);border-bottom:1px solid var(--color-border)}.member-list{list-style:none;margin:0;padding:0;overflow-y:auto}.member-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.badge-admin{align-self:flex-start;padding:1px var(--space-2);border-radius:var(--radius-full);background:var(--color-primary-subtle, var(--color-surface-sunken));color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--weight-medium)}.confirm-backdrop{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-4);background:#00000073}.confirm-sheet{display:grid;gap:var(--space-2);width:min(100%,380px);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg, 0 12px 32px rgba(0, 0, 0, .25))}.confirm-sheet__actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.btn--danger-text{color:var(--color-danger)}.msg-bubble__line{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:var(--space-2)}.msg-bubble__text{white-space:pre-wrap;word-break:break-word;min-width:0;flex:0 1 auto;text-align:left}.ticks{display:inline-flex;align-items:center;flex-shrink:0;margin-bottom:1px;opacity:.65}.ticks--read{color:var(--color-receipt-read, #34b7f1);opacity:1}.msg-bubble__tombstone{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-subtle);font-style:italic;font-size:var(--text-sm)}.msg-bubble__more{position:absolute;top:50%;left:-26px;transform:translateY(-50%);display:grid;place-items:center;width:22px;height:22px;min-width:0;min-height:0;padding:0;border-radius:50%;color:inherit;background:none;opacity:.5}.msg-bubble__more:active{opacity:1}.menu-scrim{position:fixed;inset:0;z-index:var(--z-sheet)}.msg-menu{position:absolute;top:24px;right:0;z-index:calc(var(--z-sheet) + 1);min-width:180px;padding:var(--space-1);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .22))}.msg-menu button{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:none;color:var(--color-danger);text-align:left;font-size:var(--text-sm)}.emoji-panel{position:absolute;left:var(--space-3);right:var(--space-3);bottom:calc(100% + var(--space-2));z-index:calc(var(--z-sheet) + 1);display:flex;flex-direction:column;max-height:46dvh;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg, 0 8px 28px rgba(0, 0, 0, .24));overflow:hidden}.emoji-panel__tabs{display:flex;gap:2px;padding:var(--space-2);border-bottom:1px solid var(--color-border);overflow-x:auto;scrollbar-width:none}.emoji-panel__tabs::-webkit-scrollbar{display:none}.emoji-panel__tabs button{flex-shrink:0;width:38px;height:34px;min-width:0;min-height:0;padding:0;border-radius:var(--radius-sm);background:none;font-size:20px;line-height:1;opacity:.55}.emoji-panel__tabs button.is-active{background:var(--color-surface-sunken);opacity:1}.emoji-panel__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:2px;padding:var(--space-2);overflow-y:auto;overscroll-behavior:contain}.emoji-panel__grid button{aspect-ratio:1;width:100%;min-width:0;min-height:0;padding:0;border-radius:var(--radius-sm);background:none;font-size:24px;line-height:1}.emoji-panel__grid button:active{background:var(--color-surface-sunken)}.conv-header__call{position:relative;flex-shrink:0;margin-left:auto}.conv-header__call-dot{position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--color-success, #3F9E5B);box-shadow:0 0 0 2px var(--color-surface)}.call-ring{position:fixed;inset:0;z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 18vh) var(--space-6) calc(var(--safe-bottom) + var(--space-10));background:var(--color-surface)}.call-ring__who{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.call-ring__who strong{font-size:var(--text-2xl)}.call-ring__label{font-size:var(--text-sm);color:var(--color-text-muted);animation:call-pulse 2s ease-in-out infinite}@keyframes call-pulse{0%,to{opacity:1}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.call-ring__label{animation:none}}.call-ring__actions{display:flex;gap:var(--space-10)}.call-btn{display:grid;place-items:center;width:72px;height:72px;min-width:0;min-height:0;border-radius:50%;color:#fff}.call-btn--answer{background:var(--color-success, #3F9E5B)}.call-btn--decline{background:var(--color-danger)}.call-btn--mute{width:48px;height:48px;background:var(--color-surface-sunken);color:var(--color-text)}.call-btn--mute.is-on{background:var(--color-danger-subtle);color:var(--color-danger)}.call-bar{flex-shrink:0;display:flex;align-items:center;gap:var(--space-3);padding:calc(var(--safe-top) + var(--space-2)) var(--space-4) var(--space-2);background:var(--color-primary-subtle);border-bottom:1px solid var(--color-border)}.app-shell:has(.call-bar) .app-header{height:var(--header-height);padding-top:0}.call-bar__info{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0;min-height:0;padding:0;background:none;color:inherit;text-align:left}.call-bar__dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--color-success, #3F9E5B)}.call-bar__time{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.call-bar__error{font-size:var(--text-xs);color:var(--color-danger)}.call-bar__actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.call-bar .call-btn--decline{width:40px;height:40px}.msg-call{display:flex;justify-content:center;margin-bottom:var(--space-2)}.call-note{display:flex;align-items:center;gap:var(--space-3);min-height:0;min-width:0;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);text-align:left}.call-note strong{color:var(--color-text);font-weight:var(--weight-medium)}.call-note--missed,.call-note--missed strong{color:var(--color-danger)}.call-note__meta{font-size:var(--text-xs);font-variant-numeric:tabular-nums}.app-shell--desktop{height:100dvh;overflow:hidden}.desktop{display:grid;grid-template-columns:76px 340px minmax(0,1fr);flex:1;min-height:0;overflow:hidden}.desktop--no-list{grid-template-columns:76px minmax(0,1fr)}.side-rail{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-1);padding:var(--space-3) var(--space-2);background:var(--color-surface-sunken);border-right:1px solid var(--color-border);overflow:hidden}.side-rail__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-2) 0;min-height:unset;border-radius:var(--radius-md);color:var(--color-text-subtle);font-size:10px;font-weight:var(--weight-medium);text-align:center;transition:color var(--transition-fast),background var(--transition-fast)}.side-rail__item:hover{background:var(--color-surface)}.side-rail__item[aria-current=page]{color:var(--color-primary);background:var(--color-primary-subtle)}.side-rail__label{line-height:1.1}.desktop__list{display:flex;flex-direction:column;min-width:0;min-height:0;overflow-y:auto;border-right:1px solid var(--color-border);background:var(--color-surface)}.desktop__detail{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.app-shell--desktop .app-header button[aria-label=Back]{display:none}.app-shell--desktop .msg-bubble{max-width:900px;margin-inline:auto;width:100%}.no-conversation{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);height:100%;padding:var(--space-6);color:var(--color-text-subtle);text-align:center;background:var(--color-surface-sunken)}.no-conversation p{max-width:34ch;margin:0}.meeting{display:flex;flex-direction:column;height:100%;min-height:0;background:#14121a;color:#f4f2f7}.meeting__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:calc(var(--safe-top) + var(--space-3)) var(--space-4) var(--space-3);border-bottom:1px solid rgba(255,255,255,.08)}.meeting__header .btn--ghost{color:#cfc9db}.meeting__sub{font-size:var(--text-xs);color:#a49dba}.meeting__stage{flex:1;min-height:0;padding:var(--space-3);overflow:hidden}.meeting__grid{display:grid;gap:var(--space-3);height:100%;grid-auto-rows:1fr}.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-width:0;min-height:0;padding:var(--space-3);border-radius:var(--radius-lg);background:#1e1b26;border:2px solid transparent;transition:border-color .12s ease-out}.tile.is-speaking{border-color:var(--color-success, #3F9E5B)}.tile__name{display:flex;align-items:center;gap:var(--space-2);min-width:0;max-width:100%;font-size:var(--text-sm);color:#e6e2ef}.tile--compact{flex-direction:row;gap:var(--space-2);padding:var(--space-2) var(--space-3);flex:0 0 auto}.tile--compact .tile__name{font-size:var(--text-xs)}.meeting__presentation{display:flex;flex-direction:column;gap:var(--space-3);height:100%;min-height:0}.meeting__screen{position:relative;flex:1;min-height:0;border-radius:var(--radius-lg);overflow:hidden;background:#000}.meeting__screen video{width:100%;height:100%;object-fit:contain}.meeting__presenter{position:absolute;left:var(--space-3);bottom:var(--space-3);padding:4px 10px;border-radius:var(--radius-full);background:#0009;font-size:var(--text-xs)}.meeting__strip{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1)}.meeting__controls{display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4) calc(var(--safe-bottom) + var(--space-4));border-top:1px solid rgba(255,255,255,.08)}.meeting-btn{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:84px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:#262230;color:#efecf5;font-size:var(--text-xs)}.meeting-btn:hover{background:#2f2a3b}.meeting-btn.is-off{background:var(--color-danger);color:#fff}.meeting-btn.is-on{background:var(--color-primary);color:#fff}.meeting-btn--leave{background:var(--color-danger);color:#fff}.meeting__lobby{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-6);text-align:center}.meeting__lobby h2{margin:0}.meeting__lobby p{max-width:44ch;margin:0;color:#b7b0c9}.meeting__error{margin:0;padding:var(--space-2) var(--space-4) var(--space-4);text-align:center;color:var(--color-danger)}.avatar-picker{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0a0810b8}.avatar-picker__inner{width:100%;max-width:420px;max-height:100%;overflow-y:auto;padding:var(--space-4);border-radius:var(--radius-lg);background:#1e1b26;color:#f2eff7}.avatar-picker__head{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-4)}.avatar-picker__head span{font-size:var(--text-xs);color:#ada6c0}.avatar-picker__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.avatar-swatch{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--space-2);min-height:unset;border-radius:var(--radius-md);background:transparent;border:2px solid transparent;color:#d7d1e4;font-size:var(--text-xs)}.avatar-swatch:hover{background:#262230}.avatar-swatch.is-on{border-color:var(--color-primary);background:#2a2436;color:#fff}.meeting__stage{position:relative}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{height:100dvh;overscroll-behavior:none;-webkit-text-size-adjust:100%}body{height:100dvh;margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root{height:100dvh;display:flex;flex-direction:column;overflow:hidden}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}input,textarea,select{font-size:var(--text-base)}button{background:none;border:none;cursor:pointer;min-height:44px;min-width:44px}a{color:var(--color-primary);text-decoration:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.app-header{display:flex;align-items:center;gap:var(--space-3);height:calc(var(--header-height) + var(--safe-top));padding:var(--safe-top) var(--space-4) 0;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;z-index:var(--z-header)}.app-header h1{font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:-.01em}.app-main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.app-main--with-tabbar{padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom))}.tabbar{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);height:calc(var(--tabbar-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:var(--z-tabbar)}.tabbar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:unset;color:var(--color-text-subtle);font-size:var(--text-xs);font-weight:var(--weight-medium);transition:color var(--transition-fast)}.tabbar__item[aria-current=page]{color:var(--color-primary)}.tabbar__badge{position:absolute;transform:translate(12px,-10px);min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--color-unread-badge);color:var(--color-on-unread-badge);font-size:11px;font-weight:var(--weight-bold);line-height:18px;text-align:center}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.spacer{flex:1}.muted{color:var(--color-text-muted)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}
