*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,textarea,[contenteditable],.selectable-text,.prose,.prose *,p,h1,h2,h3,h4,h5,h6,.answer-text,.ghost-text,.front,.back,.lesson-content,.message-bubble-content,.message-bubble,.toast,.toast-content,.toast-container,.pwa-update-toast,.lightbox-text,.lightbox-text-container{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}body{margin:0;padding:0;width:100%;overflow-x:hidden;-webkit-touch-callout:none;overscroll-behavior:none}#app{width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative}@layer theme{:root{interpolate-size:allow-keywords;color-scheme:light dark;accent-color:var(--accent);font-size-adjust:from-font;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--text-xs: 10px;--text-sm: 12px;--text-base: 14px;--text-md: 16px;--text-lg: 19px;--text-xl: 22px;--text-2xl: 26px;--text-3xl: 32px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-xs: 6px;--radius-small: 8px;--radius-sm: 10px;--radius: 14px;--radius-lg: 18px;--radius-xl: 22px;--radius-2xl: 28px;--radius-full: 9999px;--btn-radius: var(--radius-full);--topbar-h-base: 60px;--topbar-h: calc(var(--topbar-h-base) + env(safe-area-inset-top));--max-w: 1012px;--bg: light-dark(#f2f2f7, #000000);--bg-secondary: light-dark(#e5e5ea, #1c1c1e);--panel: light-dark(rgba(255, 255, 255, .8), rgba(28, 28, 30, .85));--panel-solid: light-dark(#ffffff, #1c1c1e);--panel-trans: light-dark(rgba(255, 255, 255, .72), rgba(28, 28, 30, .78));--text: light-dark(#1c1c1e, #ffffff);--text-secondary: light-dark(#3a3a3c, #ebebf5);--muted: light-dark(#8e8e93, #8e8e93);--line: light-dark(rgba(60, 60, 67, .18), rgba(84, 84, 88, .55));--line-solid: light-dark(#d1d1d6, #38383a);--accent: light-dark(#007aff, #0a84ff);--accent-strong: light-dark(#0056cc, #409cff);--accent-bg: light-dark(rgba(0, 122, 255, .1), rgba(10, 132, 255, .15));--accent-soft: light-dark(rgba(0, 122, 255, .1), rgba(10, 132, 255, .15));--danger: light-dark(#ff3b30, #ff453a);--danger-hover: light-dark(#d93025, #e8352a);--danger-bg: light-dark(rgba(255, 59, 48, .1), rgba(255, 69, 58, .15));--success: light-dark(#34c759, #32d74b);--success-hover: light-dark(#2aab4a, #26c03e);--success-bg: light-dark(rgba(52, 199, 89, .1), rgba(50, 215, 75, .15));--warn: light-dark(#ff9500, #ff9f0a);--warn-bg: light-dark(rgba(255, 149, 0, .1), rgba(255, 159, 10, .15));--warn-text: light-dark(#c07200, #ff9f0a);--bubble-out: light-dark(#007aff, #0a84ff);--bubble-out-text: light-dark(#ffffff, #ffffff);--bubble-in: light-dark(#ffffff, #2c2c2e);--bubble-in-text: light-dark(#1c1c1e, #ffffff);--glass-bg: light-dark(rgba(255, 255, 255, .72), rgba(28, 28, 30, .78));--glass-blur: blur(24px) saturate(180%);--glass-blur-sm: blur(12px) saturate(150%);--shadow: light-dark(0 2px 8px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .45));--shadow-md: light-dark(0 4px 16px rgba(0, 0, 0, .08), 0 4px 16px rgba(0, 0, 0, .55));--shadow-lg: light-dark(0 8px 32px rgba(0, 0, 0, .12), 0 8px 32px rgba(0, 0, 0, .65));--shadow-xl: light-dark(0 16px 48px rgba(0, 0, 0, .16), 0 16px 48px rgba(0, 0, 0, .75));--input-bg: light-dark(rgba(255, 255, 255, .9), rgba(44, 44, 46, .9));--input-border: light-dark(rgba(60, 60, 67, .22), rgba(84, 84, 88, .55));--input-focus: light-dark(rgba(0, 122, 255, .4), rgba(10, 132, 255, .4));--input-error: var(--danger);--input-error-bg: var(--danger-bg);--input-success: var(--success);--input-success-bg: var(--success-bg);--topbar-bg: var(--panel);--topbar-text: var(--text);--surface: light-dark(#f2f2f7, rgba(255, 255, 255, .04));--primary: var(--accent);--hover-surface: light-dark(rgba(0, 0, 0, .04), rgba(255, 255, 255, .06));--hover-surface-strong: light-dark(rgba(0, 0, 0, .07), rgba(255, 255, 255, .1));--seg-bg: light-dark(rgba(0, 0, 0, .06), rgba(255, 255, 255, .08));--seg-active-bg: light-dark(rgba(0, 122, 255, .12), rgba(10, 132, 255, .18));--read-receipt-color: light-dark(var(--accent), #ffffff);--spring-easing: linear(0, .016 .5%, .06 1%, .226 2%, 1.116 5.4%, 1.375 6.6%, 1.527 7.7%, 1.565 8.2%, 1.585 8.8%, 1.581 9.3%, 1.559 9.8%, 1.458 10.9%, .937 14.3%, .784 15.5%, .693 16.6%, .67 17.1%, .657 17.7%, .671 18.7%, .729 19.8%, 1.042 23.3%, 1.13 24.5%, 1.182 25.6%, 1.201 26.7%, 1.192 27.7%, 1.156 28.8%, .977 32.2%, .925 33.4%, .894 34.5%, .882 35.6%, .887 36.6%, .907 37.7%, 1.045 42.4%, 1.069 44.5%, 1.059 46.3%, .979 50.9%, .96 53.4%, .966 55.3%, 1.013 59.9%, 1.024 62.3%, .986 71.2%, 1.008 79.9%, .995 88.9%, 1);--bounce-easing: linear(0, .214 14.7%, .386 23.7%, .598 31.9%, .999 44.7%, .807 52.6%, .762 56%, .747 59.4%, .758 62.4%, .793 65.6%, .999 77.4%, .961 81.2%, .949 84.8%, .956 88%, .993 95.5%, 1)}[data-theme=dark]{color-scheme:dark}}.btn-spinner-tiny{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:currentColor;animation:spin .8s linear infinite;display:inline-block;vertical-align:middle}@keyframes spin{to{rotate:360deg}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{margin:0;padding:0;width:100%;min-height:100dvh;min-height:100vh;background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--font);font-size:var(--text-base);color:var(--text);line-height:1.5}h1,h2,h3,h4,h5,h6{text-wrap:balance;font-size-adjust:cap-height from-font}p,li,blockquote{text-wrap:pretty}@media(prefers-reduced-motion:no-preference){html:active-view-transition-type(forward)::view-transition-group(root),html:active-view-transition-type(backward)::view-transition-group(root){animation-duration:.38s;animation-timing-function:cubic-bezier(.32,.94,.6,1)}@keyframes fly-in-from-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes push-to-left{0%{transform:translate(0);opacity:1}to{transform:translate(-20%);opacity:.8}}@keyframes fly-out-to-right{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes pull-from-left{0%{transform:translate(-20%);opacity:.8}to{transform:translate(0);opacity:1}}html:active-view-transition-type(forward)::view-transition-old(root){animation-name:push-to-left}html:active-view-transition-type(forward)::view-transition-new(root){animation-name:fly-in-from-right;z-index:100}html:active-view-transition-type(backward)::view-transition-old(root){animation-name:fly-out-to-right;z-index:100}html:active-view-transition-type(backward)::view-transition-new(root){animation-name:pull-from-left}}@media(max-width:768px){.chat-container{height:100dvh;display:grid;grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:none;padding:0;gap:0}.chat-container::-webkit-scrollbar{display:none}.chat-sidebar,.chat-main{scroll-snap-align:start;scroll-snap-stop:always;width:100dvw;height:100%;border:none;border-radius:0;content-visibility:auto;contain-intrinsic-size:100dvw 100dvh}@supports (animation-timeline: view()){.chat-sidebar{animation:sidebar-parallax linear both;animation-timeline:view(inline);animation-range:exit 0% exit 100%}.chat-main{box-shadow:-10px 0 30px #0000001a;z-index:2}@keyframes sidebar-parallax{to{translate:25% 0;filter:brightness(.7)}}}}html.is-chat-route,html.is-chat-route body{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;height:100dvh;height:100%}html.is-chat-route #app{height:100dvh;height:100%;overflow:hidden;display:flex;flex-direction:column}html.modal-open body{overflow:hidden!important}.max-w-container{max-width:var(--max-w);margin-left:auto;margin-right:auto}.topbar{position:sticky;top:0;left:0;right:0;z-index:200;height:var(--topbar-h);flex-shrink:0;padding-top:env(safe-area-inset-top);background:var(--panel-solid);border-bottom:1px solid var(--line);color:var(--topbar-text);box-sizing:border-box;transition:all .2s ease-out}@keyframes topbar-shrink{to{height:calc(var(--topbar-h-base) * .8 + env(safe-area-inset-top));background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom-color:var(--line);box-shadow:0 1px 3px #0000000d}}.topbar.topbar-scrolled-fallback{height:calc(var(--topbar-h-base) * .8 + env(safe-area-inset-top));background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom-color:var(--line);box-shadow:0 1px 3px #0000000d;transition:all .2s ease-out}.topbar-inner{display:flex;align-items:center;height:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--space-4);gap:var(--space-2)}.topbar-end{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.brand,.brand.router-link-active,.brand.router-link-exact-active{display:flex;align-items:center;gap:9px;flex-shrink:0;color:var(--text);text-decoration:none}.brand-mark{width:26px;height:26px;border-radius:var(--radius-sm);object-fit:contain}.brand-name{font-size:var(--text-base);font-weight:700;letter-spacing:-.01em;white-space:nowrap}button,a,input,select,textarea,.chat-item,.sidebar-item{transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,opacity .15s ease}.user-chip{display:flex;align-items:center;gap:6px;padding:4px 12px 4px 4px;border-radius:var(--btn-radius);background:transparent;border:1px solid var(--line);font-size:var(--text-sm);font-weight:500;color:var(--muted)}.user-chip:before{content:attr(data-initials);display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.04em}.user-chip--clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s}.user-chip--clickable:hover{border-color:var(--accent);color:var(--text);background:var(--accent-bg)}.user-menu-dropdown{position:absolute;top:calc(var(--topbar-h) - 4px);right:0;min-width:180px;background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:200;overflow:hidden;display:flex;flex-direction:column;padding:var(--space-1)}.user-menu-dropdown__item{all:unset;cursor:pointer;display:block;padding:var(--space-2) var(--space-3);font-size:var(--text-base);font-weight:500;color:var(--text);background:transparent;border-radius:var(--radius-sm);transition:background .15s;box-sizing:border-box}.user-menu-dropdown__item:hover{background:var(--hover-surface-strong)}.user-menu-dropdown__item--danger{color:var(--danger)}.user-menu-dropdown__item--danger:hover{background:var(--danger-bg)}@media(max-width:768px){.user-menu-dropdown__item{padding:var(--space-3) var(--space-4);font-size:var(--text-md)}}.page-content{max-width:1012px;margin:0 auto;padding:var(--space-6) var(--space-4) max(64px,calc(48px + env(safe-area-inset-bottom)));width:100%;flex:1}.page-greeting{font-size:var(--text-lg);font-weight:700;margin:0 0 4px;letter-spacing:-.01em}.chat-trigger{position:fixed;bottom:24px;right:24px;z-index:200;width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #007aff66;cursor:pointer;font-size:20px;border:none;transition:background .15s,box-shadow .15s}.chat-trigger:hover{background:var(--accent-strong);box-shadow:0 6px 20px #007aff80}.card{background:var(--panel);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000000a;padding:var(--space-6);transition:transform .1s ease-in-out,box-shadow .2s,background-color .2s}input[type=text],input[type=password],input[type=email],select,textarea{display:block;width:100%;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);padding:8px 12px;font-size:var(--text-base);font-family:var(--font);color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s;-moz-appearance:none;appearance:none;-webkit-appearance:none;field-sizing:content}textarea{resize:none;min-height:3lh}@media(hover:none){input[type=text],input[type=password],input[type=email],select{font-size:max(16px,var(--text-base))}}input:focus,select:focus{border-color:var(--line-solid)}input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:var(--input-error);background-color:var(--input-error-bg)}input:user-invalid+.error-msg{display:block}input:user-valid,select:user-valid,textarea:user-valid{border-color:var(--input-success)}input:autofill,input:-webkit-autofill{border:2px solid var(--success);box-shadow:0 0 0 100vmax var(--success-bg) inset;-webkit-text-fill-color:var(--text)}input:autofill:focus-visible,input:-webkit-autofill:focus-visible{outline:2px solid var(--line-solid);outline-offset:2px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.7}.text-center{text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;padding:9px var(--space-4);font-size:var(--text-sm);font-weight:600;font-family:var(--font);border-radius:var(--btn-radius);border:1px solid var(--line);background:var(--panel);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);color:var(--text);cursor:pointer;transition:all .15s var(--ease, ease);text-decoration:none;gap:var(--space-2);-webkit-user-select:none;user-select:none;outline:none;letter-spacing:-.01em}.btn:hover:not(:disabled){background:var(--hover-surface-strong)}.btn:active:not(:disabled){scale:.97}.btn:disabled{opacity:.45;cursor:not-allowed}.modal-search-wrapper{position:relative;margin-bottom:12px;display:flex;align-items:center}.modal-search-icon{position:absolute;left:12px;color:var(--text);pointer-events:none;display:flex;align-items:center;justify-content:center;opacity:.6}input.modal-search-input,input[type=text].modal-search-input{width:100%;padding:8px 32px 8px 36px!important;border-radius:var(--radius-full);background-color:var(--hover-surface-strong);border:1px solid transparent;color:var(--text);font-size:14px;outline:none;transition:all .2s;box-sizing:border-box}input.modal-search-input:focus,input[type=text].modal-search-input:focus{background-color:var(--input-bg);border-color:var(--line-solid);box-shadow:none}input.modal-search-input::placeholder,input[type=text].modal-search-input::placeholder{color:var(--muted)}.modal-search-clear{position:absolute;right:8px;background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.modal-search-clear:hover{background:var(--hover-surface);color:var(--text)}.create-group-header{display:flex;align-items:center;gap:16px;padding:24px 24px 20px}.create-group-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:#fff;flex-shrink:0;transition:background .2s}.create-group-name-input{flex:1;font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em;border:none;border-bottom:2px solid var(--line);background:transparent;color:var(--text);outline:none;padding:4px 0 6px;transition:border-color .2s}.create-group-name-input:focus{border-bottom-color:var(--primary)}.create-group-name-input::placeholder{color:var(--muted);font-weight:400}.create-group-body{padding:16px 24px}.create-group-section-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px}.create-group-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.member-chip{display:inline-flex;align-items:center;gap:6px;background:var(--primary-faint, color-mix(in srgb, var(--primary) 12%, transparent));color:var(--primary);border-radius:var(--radius-full);padding:4px 10px 4px 4px;font-size:13px;font-weight:500}.member-chip-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}.member-chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:none;background:transparent;color:var(--primary);cursor:pointer;padding:0;opacity:.6;transition:opacity .15s}.member-chip-remove:hover{opacity:1}.create-group-search-wrap{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);border:1px solid var(--line);border-radius:var(--radius-full);padding:8px 14px;margin-bottom:8px;transition:all .2s ease}.create-group-search-wrap:focus-within{border-color:var(--primary);background-color:var(--panel);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.1)}.create-group-search{flex:1;border:none;background:transparent;color:var(--text);font-size:var(--text-sm);outline:none}.create-group-search::placeholder{color:var(--muted)}.create-group-results{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto;padding:2px 2px 8px}.create-group-result-item{display:flex;align-items:center;padding:10px 12px;cursor:pointer;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-solid, var(--surface));transition:all .15s;font-size:14px}.create-group-result-item:hover{background:var(--hover-surface-strong);border-color:var(--line-solid, var(--accent))}.create-group-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn-outline{background:transparent}.btn-outline:hover:not(:disabled){background:var(--hover-surface-strong)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover)}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover:not(:disabled){background:var(--success-hover);border-color:var(--success-hover)}.btn-outline.text-danger{color:var(--danger);border-color:var(--danger)}.btn-outline.text-danger:hover:not(:disabled){background:var(--danger);color:#fff!important}.btn-outline.text-danger:hover:not(:disabled) svg{color:#fff!important}.btn-outline.text-success{color:var(--success);border-color:var(--success)}.btn-outline.text-success:hover:not(:disabled){background:var(--success);color:#fff}.text-danger{color:var(--danger)!important}.btn-icon.text-danger:hover{background:var(--danger-bg)!important;color:var(--danger)!important}.btn-small{padding:5px 12px;font-size:var(--text-xs)}.btn-block{display:flex;width:100%}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--text);cursor:pointer;transition:all .15s;flex-shrink:0}.btn-icon:hover{background:var(--hover-surface-strong)}::view-transition-old(root):not(:active-view-transition-type(forward)):not(:active-view-transition-type(backward)){animation:fade-out .18s ease-out}::view-transition-new(root):not(:active-view-transition-type(forward)):not(:active-view-transition-type(backward)){animation:fade-in .18s ease-in}@media(prefers-reduced-motion:reduce){::view-transition-group(root){animation:none!important}}.topbar-view-transition-skip{view-transition-name:topbar}::view-transition-group(topbar){animation-duration:0s}@keyframes fade-in{0%{opacity:0}to{opacity:1}}::highlight(search-match){background-color:var(--accent);color:#fff}@keyframes stagger-fade-in{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}.stagger-list>*{--stagger-time: .05s;animation:stagger-fade-in .4s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--sibling-index, 0) * var(--stagger-time));animation-delay:calc(sibling-index() * var(--stagger-time))}@media(prefers-reduced-motion:reduce){.stagger-list>*{animation:none!important}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: scroll()){@keyframes grow-progress{0%{scale:0 1}to{scale:1 1}}.scroll-progress{position:absolute;top:0;left:0;width:100%;height:3px;background:var(--accent);transform-origin:0 50%;animation:grow-progress auto linear both;z-index:1000}.scroll-progress-root{animation-timeline:scroll()}.scroll-progress-self{animation-timeline:scroll(self)}}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}dialog,[popover]{opacity:0;scale:.95;transition:opacity .2s ease-out,scale .4s cubic-bezier(.16,1,.3,1),display .4s allow-discrete,overlay .4s allow-discrete}dialog[open],[popover]:popover-open{opacity:1;scale:1}@starting-style{dialog[open],[popover]:popover-open{opacity:0;scale:.95}}dialog::backdrop,[popover]::backdrop{background-color:#0000;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);transition:display .25s allow-discrete,overlay .25s allow-discrete,background-color .25s ease-out,backdrop-filter .25s ease-out}dialog[open]::backdrop{background-color:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@starting-style{dialog[open]::backdrop{background-color:#0000;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}}[popover]:popover-open::backdrop{background-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}@media(prefers-reduced-motion:reduce){dialog,[popover],dialog::backdrop,[popover]::backdrop{transition-duration:.1s;transform:none!important}@starting-style{dialog[open],[popover]:popover-open{transform:none!important}}}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);z-index:9999;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.modal-content{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--radius-xl);padding:var(--space-6);width:100%;max-width:420px;box-shadow:var(--shadow-xl)}.modal-content--large{max-width:900px}.input-field{width:100%;border-radius:var(--radius-sm);padding:9px 14px;font-size:var(--text-base);font-family:var(--font);background:var(--input-bg);border:1px solid var(--input-border);color:var(--text);box-sizing:border-box;outline:none;transition:border-color .2s,box-shadow .2s}.input-field:focus{border-color:var(--line-solid)}.ctx-menu,.context-menu,.chat-context-menu{background:var(--panel);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-1);min-width:160px;z-index:9000}.ctx-menu-item,.context-menu-item{display:flex;align-items:center;gap:var(--space-2);padding:8px var(--space-3);font-size:var(--text-sm);font-weight:500;color:var(--text);cursor:pointer;border-radius:var(--radius-sm);border:none;background:transparent;text-align:left;width:100%;transition:background .12s;white-space:nowrap}.ctx-menu-item:hover,.context-menu-item:hover{background:var(--hover-surface-strong);color:var(--text)}.ctx-menu-item.danger,.context-menu-item.danger{color:var(--danger)}.ctx-menu-item.danger:hover,.context-menu-item.danger:hover{background:var(--danger-bg);color:var(--danger)}.ctx-menu-separator,.context-menu-separator{height:1px;background:var(--line);margin:var(--space-1) 0}@media(max-width:768px){.ctx-menu-item,.context-menu-item{padding:11px var(--space-3);font-size:var(--text-base)}}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;height:14px;width:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238e8e93' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='18' y1='6' x2='6' y2='18'></line><line x1='6' y1='6' x2='18' y2='18'></line></svg>") no-repeat center center;background-size:contain;cursor:pointer}[data-theme=dark] input[type=search]::-webkit-search-cancel-button,:root:not([data-theme=light]) input[type=search]::-webkit-search-cancel-button{filter:invert(1) hue-rotate(180deg) brightness(1.5)}.page-sub{font-size:var(--text-sm);color:var(--muted);margin:0 0 var(--space-6)}.form-hint{font-size:var(--text-sm);color:var(--muted);margin-top:4px}*{scrollbar-width:thin;scrollbar-color:var(--line-solid) transparent}.search-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.room-avatar{position:relative;width:40px;height:40px;border-radius:50%;background-color:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);font-weight:600;margin-right:12px;flex-shrink:0;-webkit-user-select:none;user-select:none}.room-avatar svg{color:currentColor;flex-shrink:0}.chat-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.chat-link:hover{color:var(--accent-strong)}.clear-btn{position:absolute;right:6px;background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s,color .2s;z-index:2}.clear-btn:hover{background-color:var(--hover-surface);color:var(--text)}.note-share-preview{margin-top:8px;display:flex;gap:12px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px;cursor:pointer;transition:background .2s,border-color .2s}.note-share-preview:hover{background:var(--hover-surface-strong);border-color:var(--primary)}.note-icon{width:40px;height:40px;border-radius:10px;background:var(--accent-bg);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.note-info{display:flex;flex-direction:column;overflow:hidden}.note-title{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-excerpt{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.note-action{font-size:12px;font-weight:600;color:var(--primary);margin-top:6px}.message-own .note-share-preview{background:#ffffff26;border-color:transparent;color:#fff}.message-own .note-share-preview .note-title,.message-own .note-share-preview .note-excerpt{color:#fff}.message-own .note-share-preview .note-icon{background:#fff3;color:#fff}.message-own .note-share-preview .note-action{color:#fff;opacity:.9}.message-own .note-share-preview:hover{background:#ffffff40}.deferred-render{content-visibility:auto;contain-intrinsic-size:auto 80px}.form-group:has(:user-invalid) label{color:var(--danger)}.form-group:has(:user-invalid) input,.form-group:has(:user-invalid) textarea{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-bg)}.page-enter-active,.page-leave-active,.chat-page-enter-active,.chat-page-leave-active{transition:opacity .18s ease-in-out}.page-enter-from,.page-leave-to,.chat-page-enter-from,.chat-page-leave-to{opacity:0}.prose{line-height:1.6}.prose p{margin-bottom:1em}.prose h1,.prose h2,.prose h3{margin-top:1.5em;margin-bottom:.5em;font-weight:700}.prose h1{font-size:1.5em}.prose h2{font-size:1.3em}.prose h3{font-size:1.1em}.prose ul,.prose ol{margin-left:1.5em;margin-bottom:1em}.prose li{margin-bottom:.25em}.prose code{background:var(--hover-surface-strong);padding:.2em .4em;border-radius:4px;font-family:var(--font-mono);font-size:.9em;color:var(--accent-strong)}.prose pre{background:#1e1e1e;padding:1.2em;border-radius:8px;overflow-x:auto;margin-bottom:1em;border:1px solid var(--line);box-shadow:inset 0 1px 4px #0003}.prose pre code{background:transparent;padding:0;color:#e4e4e4;font-size:.9em}.prose blockquote{border-left:4px solid var(--line);padding-left:1em;color:var(--muted);font-style:italic;margin-bottom:1em}.prose img{max-width:100%;border-radius:8px;margin-bottom:1em}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}button,a,.clickable,.item-row.clickable,.crumb,.book-card,.choice-btn,.matching-btn,.rate-btn,select,input[type=checkbox],input[type=radio],label{touch-action:manipulation}input,textarea,select{-webkit-tap-highlight-color:transparent}@media(prefers-reduced-motion:no-preference){@keyframes carousel-slide-in{0%{opacity:0;scale:.8;translate:-20px 0}50%{opacity:1;scale:1;translate:0 0}to{opacity:0;scale:.8;translate:20px 0}}.carousel-slide-effect>*{animation:carousel-slide-in auto linear both;animation-timeline:view(inline)}}@media(max-width:768px){.hide-on-mobile{display:none!important}}.topbar-end[data-v-ffb6313d]{display:flex;align-items:center}.dropdown-wrapper[data-v-ffb6313d]{position:relative}.user-profile-trigger[data-v-ffb6313d]{display:flex;align-items:center;gap:7px;padding:3px 8px 3px 3px;background:transparent;border:1px solid var(--line);border-radius:var(--radius-full);cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.user-profile-trigger[data-v-ffb6313d]:hover{background:var(--hover-surface-strong);border-color:var(--line-solid)}.user-avatar[data-v-ffb6313d]{width:30px;height:30px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm);flex-shrink:0}.user-avatar[data-v-ffb6313d]:before{content:attr(data-initials)}.avatar-wrapper[data-v-ffb6313d]{position:relative;display:flex}.avatar-status-badge[data-v-ffb6313d]{position:absolute;bottom:-4px;right:-4px;background:var(--bg);border-radius:50%;padding:2px;display:flex;align-items:center;justify-content:center;border:none}.user-info[data-v-ffb6313d]{display:flex;flex-direction:column;line-height:1.2}.user-name-row[data-v-ffb6313d]{display:flex;align-items:center;gap:6px}.user-name[data-v-ffb6313d]{font-size:var(--text-sm);font-weight:600;color:var(--text);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-indicator[data-v-ffb6313d]{width:7px;height:7px;border-radius:50%;background:var(--muted);flex-shrink:0;transition:all .3s ease}.status-indicator--online[data-v-ffb6313d]{background:var(--success);box-shadow:0 0 6px var(--success)}.status-indicator--local[data-v-ffb6313d]{display:flex;align-items:center;justify-content:center;background:var(--muted);color:var(--bg);width:14px;height:14px;border-radius:50%;transition:background-color .3s}.status-indicator--local.status-indicator--online[data-v-ffb6313d]{background:var(--success)}.status-indicator--local svg[data-v-ffb6313d]{width:8px;height:8px;stroke-width:3}@keyframes status-pulse-ffb6313d{0%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.chevron-icon[data-v-ffb6313d]{color:var(--muted);transition:transform .2s;margin-left:1px;flex-shrink:0}.chevron-icon.rotated[data-v-ffb6313d]{transform:rotate(180deg)}.user-menu-dropdown[data-v-ffb6313d]{position:absolute;top:100%;right:0;margin-top:8px;min-width:200px;background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-1);display:flex;flex-direction:column;gap:2px;z-index:210;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .15s ease-out,transform .15s cubic-bezier(.16,1,.3,1)}.user-menu-dropdown.is-open[data-v-ffb6313d]{opacity:1;transform:translateY(0);pointer-events:auto}.user-menu-dropdown__item[data-v-ffb6313d]{padding:10px 14px;border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:500;color:var(--text);text-decoration:none;background:transparent;border:none;text-align:left;cursor:pointer;transition:background .12s;display:block}.user-menu-dropdown__item[data-v-ffb6313d]:hover{background:var(--hover-surface-strong)}.user-menu-dropdown__item--danger[data-v-ffb6313d]{color:var(--danger)}.user-menu-dropdown__item--danger[data-v-ffb6313d]:hover{background:var(--danger-bg)}.topbar-chat-btn[data-v-ffb6313d]{text-decoration:none;transition:color .15s,background .15s}.topbar-chat-btn[data-v-ffb6313d]:hover{color:var(--accent)!important}.topbar-call-pill[data-v-ffb6313d]{position:relative;margin-right:16px;background:transparent;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;outline:none}.call-pill-avatar[data-v-ffb6313d]{width:32px;height:32px;border-radius:50%;background:var(--success);color:#fff;display:flex;align-items:center;justify-content:center;position:relative;z-index:2}.call-pill-ring[data-v-ffb6313d]{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:50%;border:2px solid var(--success);animation:pulse-ring-ffb6313d 1.5s cubic-bezier(.215,.61,.355,1) infinite;z-index:1}@keyframes pulse-ring-ffb6313d{0%{transform:scale(.95);opacity:1}to{transform:scale(1.6);opacity:0}}.unread-badge[data-v-ffb6313d]{position:absolute;top:-6px;right:-8px;background:var(--danger);color:#fff;font-size:var(--text-xs);font-weight:700;padding:0 4px;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg)}@media(max-width:768px){.user-info[data-v-ffb6313d],.chevron-icon[data-v-ffb6313d]{display:none}.user-profile-trigger[data-v-ffb6313d]{padding:2px;gap:0;border:none;background:transparent}.user-profile-trigger[data-v-ffb6313d]:hover{background:var(--hover-surface-strong)}}.toast-container[data-v-134cce98]{position:fixed;bottom:60px;left:50%;transform:translate(-50%);z-index:200000;display:flex;flex-direction:column-reverse;gap:8px;pointer-events:none;align-items:center;width:100%;max-width:400px;padding:0 16px;box-sizing:border-box;transition:all .3s cubic-bezier(.16,1,.3,1)}.toast-container.with-call[data-v-134cce98]{bottom:120px}@media(min-width:768px){.toast-container[data-v-134cce98]{bottom:auto;top:calc(var(--topbar-h, 60px) + 16px);left:auto;right:20px;transform:none;align-items:flex-end;max-width:360px;padding:0;flex-direction:column}.toast-container.with-call[data-v-134cce98]{top:calc(var(--topbar-h, 60px) + 16px + 100px);bottom:auto}}.toast[data-v-134cce98]{pointer-events:auto;width:100%;padding:12px 16px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:500;line-height:1.4;display:flex;align-items:center;gap:12px;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.toast-icon[data-v-134cce98]{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:var(--text-xs);font-weight:800;flex-shrink:0}.toast--success .toast-icon[data-v-134cce98],.toast--error .toast-icon[data-v-134cce98],.toast--info .toast-icon[data-v-134cce98]{background:#ffffff40;color:#fff}.toast--call .toast-icon[data-v-134cce98]{background:#ffffff40;color:#fff;animation:ring-134cce98 1.5s ease infinite}.toast--success[data-v-134cce98]{background:color-mix(in srgb,var(--success) 60%,transparent);color:#fff;border:1px solid var(--success);box-shadow:0 8px 32px #34c75940}.toast--error[data-v-134cce98]{background:color-mix(in srgb,var(--danger) 60%,transparent);color:#fff;border:1px solid var(--danger);box-shadow:0 8px 32px #ff3b3040}.toast--info[data-v-134cce98]{background:color-mix(in srgb,var(--accent) 60%,transparent);color:#fff;border:1px solid var(--accent);box-shadow:0 8px 32px #007aff40}.toast--call[data-v-134cce98]{background:color-mix(in srgb,var(--accent) 60%,transparent);color:#fff;border:1px solid var(--accent);box-shadow:0 0 0 2px var(--accent-bg),0 8px 32px #007aff59}.toast--success .toast-close[data-v-134cce98],.toast--error .toast-close[data-v-134cce98],.toast--info .toast-close[data-v-134cce98],.toast--call .toast-close[data-v-134cce98]{color:#fffc}.toast--success .toast-close[data-v-134cce98]:hover,.toast--error .toast-close[data-v-134cce98]:hover,.toast--info .toast-close[data-v-134cce98]:hover,.toast--call .toast-close[data-v-134cce98]:hover{background:#fff3;color:#fff}.toast-content[data-v-134cce98]{flex:1;min-width:0}.toast-close[data-v-134cce98]{all:unset;cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;color:var(--muted);flex-shrink:0;transition:background .12s,color .12s}.toast-list-enter-active[data-v-134cce98],.toast-list-leave-active[data-v-134cce98]{transition:all .28s cubic-bezier(.34,1.56,.64,1)}.toast-list-enter-from[data-v-134cce98]{opacity:0;transform:translateY(12px) scale(.94)}@media(min-width:768px){.toast-list-enter-from[data-v-134cce98]{transform:translate(20px) scale(.95)}}.toast-list-leave-to[data-v-134cce98]{opacity:0;transform:scale(.88)}@keyframes ring-134cce98{0%,to{transform:rotate(0)}20%{transform:rotate(-15deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(5deg)}}.fade-enter-active[data-v-a69e3335],.fade-leave-active[data-v-a69e3335]{transition:opacity .15s ease}.fade-enter-from[data-v-a69e3335],.fade-leave-to[data-v-a69e3335]{opacity:0}.spotlight-overlay[data-v-a69e3335]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:99999;display:flex;justify-content:center;align-items:flex-start;padding-top:15vh;touch-action:none;overscroll-behavior:none}.spotlight-modal[data-v-a69e3335]{width:100%;max-width:600px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden;max-height:60vh;height:fit-content;transition:max-height .2s ease,box-shadow .2s ease}.spotlight-input-wrapper[data-v-a69e3335]{display:flex;align-items:center;padding:16px 20px;position:relative}.spotlight-input-wrapper.has-results[data-v-a69e3335]{border-bottom:1px solid var(--line)}.search-icon[data-v-a69e3335]{color:var(--muted);margin-right:16px;flex-shrink:0}.spotlight-input[data-v-a69e3335]{flex:1;background:transparent;border:none;outline:none!important;box-shadow:none!important;font-size:var(--text-xl);color:var(--text);font-weight:500;padding:0}.spotlight-input[data-v-a69e3335]:focus{outline:none!important;box-shadow:none!important}.spotlight-input[data-v-a69e3335]::placeholder{color:var(--muted)}.spotlight-spinner[data-v-a69e3335]{margin-right:12px;flex-shrink:0}.spotlight-hint[data-v-a69e3335]{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--muted);border:1px solid var(--line);padding:2px 6px;border-radius:4px;background:var(--surface);flex-shrink:0}.spotlight-results[data-v-a69e3335]{overflow-y:auto;padding:8px}.spotlight-item[data-v-a69e3335]{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background .1s}.spotlight-item.is-selected[data-v-a69e3335]{background:var(--hover-surface-strong)}.item-icon[data-v-a69e3335]{font-size:var(--text-xl);margin-right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--surface);border-radius:8px;border:1px solid var(--line);flex-shrink:0}.item-content[data-v-a69e3335]{flex:1;min-width:0}.item-title[data-v-a69e3335]{font-size:var(--text-base);font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-subtitle[data-v-a69e3335]{font-size:var(--text-sm);color:var(--muted);margin-top:2px}.item-action[data-v-a69e3335]{color:var(--muted);opacity:0;transition:opacity .1s}.spotlight-item.is-selected .item-action[data-v-a69e3335]{opacity:1}.spotlight-empty[data-v-a69e3335]{padding:32px;text-align:center;color:var(--muted);font-size:var(--text-base)}.spotlight-results[data-v-a69e3335]::-webkit-scrollbar{width:8px}.spotlight-results[data-v-a69e3335]::-webkit-scrollbar-track{background:transparent}.spotlight-results[data-v-a69e3335]::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.spotlight-results[data-v-a69e3335]::-webkit-scrollbar-thumb:hover{background:var(--muted)}@media(max-width:768px){.spotlight-modal[data-v-a69e3335]{width:calc(100% - 32px);margin:0 16px;padding-top:0}}.vault-overlay[data-v-bf67f6cf]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:100000;display:flex;align-items:center;justify-content:center;padding:24px;touch-action:none;overscroll-behavior:none}.vault-modal[data-v-bf67f6cf]{width:100%;max-width:400px;padding:32px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg)}.call-overlay[data-v-0d86e43e]{position:fixed;top:calc(var(--topbar-h, 60px) + 16px);right:16px;z-index:10001;animation:slideIn-0d86e43e .3s cubic-bezier(.16,1,.3,1);pointer-events:none;transition:all .3s cubic-bezier(.16,1,.3,1)}.call-overlay.has-video[data-v-0d86e43e]{width:320px}.call-card[data-v-0d86e43e]{pointer-events:auto;min-width:300px;background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--radius-2xl);padding:20px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-xl);transition:all var(--transition-slow)}@media(min-width:768px){.call-overlay.has-video[data-v-0d86e43e]{width:380px}.call-card[data-v-0d86e43e]{min-width:340px}}.call-overlay.is-expanded[data-v-0d86e43e]{top:0;left:0;right:0;bottom:0;width:100%;max-width:none;background:#000;padding:24px;padding-top:max(24px,calc(env(safe-area-inset-top) + 12px));padding-bottom:24px;display:flex;align-items:center;justify-content:center;pointer-events:auto}.call-overlay.is-expanded .call-card[data-v-0d86e43e]{width:100%;height:100%;max-width:1400px;background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;animation:none;padding:0}.call-header[data-v-0d86e43e]{display:flex;flex-direction:column;align-items:center;position:relative}.call-status[data-v-0d86e43e]{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%}.call-avatar[data-v-0d86e43e]{width:64px;height:64px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);font-weight:800;flex-shrink:0}.call-avatar--ring[data-v-0d86e43e]{animation:avatarRing-0d86e43e 1.8s ease-in-out infinite}@keyframes avatarRing-0d86e43e{0%,to{box-shadow:0 0 #007aff80}50%{box-shadow:0 0 0 12px #007aff00}}.call-header-actions[data-v-0d86e43e]{position:absolute;top:0;right:0;display:flex;gap:4px}.btn-header-action[data-v-0d86e43e]{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.btn-header-action[data-v-0d86e43e]:hover{background:var(--bg-secondary);color:var(--text)}.call-overlay.is-expanded .btn-header-action[data-v-0d86e43e]{color:#ffffffb3}.call-overlay.is-expanded .btn-header-action[data-v-0d86e43e]:hover{background:#fff3;color:#fff}@keyframes pulse-border-0d86e43e{0%{border-color:var(--accent);box-shadow:0 0 #388bfd66}70%{border-color:var(--accent);box-shadow:0 0 0 10px #388bfd00}to{border-color:var(--accent);box-shadow:0 0 #388bfd00}}.call-status h3[data-v-0d86e43e]{margin:0;font-size:var(--text-md);font-weight:700;color:var(--text)}.call-overlay.is-expanded .call-status h3[data-v-0d86e43e]{color:#fff;font-size:var(--text-lg)}.status-dot[data-v-0d86e43e]{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:blink-0d86e43e 1s infinite}.call-overlay.is-expanded .status-dot[data-v-0d86e43e]{display:none}@keyframes blink-0d86e43e{0%{opacity:1}50%{opacity:.3}to{opacity:1}}.video-grid[data-v-0d86e43e]{position:relative}.video-item[data-v-0d86e43e]{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease;border:2px solid transparent}.video-item.is-floating[data-v-0d86e43e]{position:absolute!important;bottom:12px;right:12px;width:auto!important;height:auto!important;min-width:120px!important;min-height:68px!important;max-height:25vh!important;max-width:35vw!important;aspect-ratio:var(--pip-aspect, 16/9)!important;z-index:100;box-shadow:var(--shadow-lg);border-radius:var(--radius-small);border-color:#fff3;cursor:grab}.video-item.is-floating[data-v-0d86e43e]:active{cursor:grabbing}.call-overlay.is-expanded .video-item.is-floating[data-v-0d86e43e]{bottom:24px;right:24px;width:auto!important;height:auto!important;min-width:120px!important;min-height:68px!important;max-height:25vh!important;max-width:40vw!important;aspect-ratio:var(--pip-aspect, 16/9)!important;box-shadow:var(--shadow-xl);border-radius:var(--radius-md)}@media(min-width:768px){.call-overlay.is-expanded .video-item.is-floating[data-v-0d86e43e]{width:260px!important;max-height:40vh!important;max-width:30vw!important}}.video-item.is-speaking[data-v-0d86e43e]{border-color:var(--success);box-shadow:0 0 12px #10b98180}.video-item.no-video[data-v-0d86e43e]{background:#111;display:flex;align-items:center;justify-content:center}.video-placeholder[data-v-0d86e43e]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.placeholder-avatar[data-v-0d86e43e]{width:80px;height:80px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--text-3xl);font-weight:700;box-shadow:0 4px 12px #0000004d;transition:all .3s ease}.video-item video[data-v-0d86e43e]{width:100%;height:100%;object-fit:cover}.video-item.is-screen-share video[data-v-0d86e43e]{object-fit:contain!important}.video-item:not(.is-screen-share) video[data-v-0d86e43e]{transform:scaleX(-1)}.video-label[data-v-0d86e43e]{position:absolute;bottom:8px;left:8px;background:#0009;color:#fff;padding:4px 8px;border-radius:var(--radius-xs);font-size:var(--text-sm);font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;z-index:10;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.call-overlay.is-expanded .video-grid[data-v-0d86e43e]{flex:1;position:relative;display:flex;flex-direction:column;width:100%;height:100%;max-height:80vh;min-height:0;background:#000;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:24px;box-sizing:border-box}.call-overlay.is-expanded .camera-tracks-container[data-v-0d86e43e]{display:grid;gap:16px;width:100%;height:100%;padding:16px;align-items:stretch;justify-items:stretch;box-sizing:border-box;background-color:transparent}.call-overlay.is-expanded.is-one-on-one .camera-tracks-container[data-v-0d86e43e]{gap:0!important;padding:0!important;background-color:#000}.call-overlay.is-expanded .camera-tracks-container:not(.is-pip-mode) .video-item[data-v-0d86e43e]:not(.is-floating){width:100%;height:100%;max-height:100%;aspect-ratio:auto;border-radius:var(--radius-md);margin:0;overflow:hidden}.call-overlay.is-expanded.is-one-on-one .camera-tracks-container:not(.is-pip-mode) .video-item[data-v-0d86e43e]:not(.is-floating){border-radius:var(--radius-lg)!important}.call-overlay.is-expanded .camera-tracks-container:not(.is-pip-mode) .video-item:not(.is-floating) video[data-v-0d86e43e]{width:100%;height:100%;object-fit:cover}.call-overlay.is-expanded .camera-tracks-container:not(.is-pip-mode) .video-item[data-v-0d86e43e]:nth-child(3):last-child{grid-column:span 2;max-height:50vh}.call-overlay.is-expanded.is-one-on-one .camera-tracks-container:not(.is-pip-mode) .video-item:not(.is-floating) video[data-v-0d86e43e]{object-fit:contain!important;background-color:#000}.call-overlay.is-expanded .camera-tracks-container.is-pip-mode[data-v-0d86e43e]{display:flex;flex:0 0 auto;height:auto;padding:16px;background:#00000080;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;gap:12px}.camera-tracks-container.is-pip-mode .video-item[data-v-0d86e43e]{width:200px;flex:0 0 200px;aspect-ratio:16/9;height:auto;scroll-snap-align:center;container-type:scroll-state;transition:scale .4s cubic-bezier(.16,1,.3,1),box-shadow .4s}.video-item.is-pending-snap[data-v-0d86e43e]{scale:1.02;box-shadow:0 0 10px var(--accent-soft)}@media(prefers-reduced-motion:no-preference){@container scroll-state(snapped: x){.camera-tracks-container.is-pip-mode .video-item[data-v-0d86e43e]{scale:1.05;box-shadow:0 0 20px var(--accent);z-index:10}}}.call-overlay.is-expanded .screen-share-main[data-v-0d86e43e]{flex:1;border-radius:0;aspect-ratio:auto;min-height:0;display:flex;align-items:center;justify-content:center}.call-overlay.is-expanded .screen-share-main video[data-v-0d86e43e]{object-fit:contain}.call-overlay.is-expanded .screen-share-main .video-item[data-v-0d86e43e]{width:100%;height:100%;aspect-ratio:auto;border-radius:12px}.call-overlay.is-expanded .screen-share-main .video-item video[data-v-0d86e43e]{width:100%;height:100%;object-fit:contain;border-radius:12px}.call-actions[data-v-0d86e43e]{display:flex;gap:8px}.call-actions .btn[data-v-0d86e43e]{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--text-sm);padding:8px 12px;border-radius:var(--btn-radius);font-weight:600;cursor:pointer;transition:all .2s}.call-actions .btn[data-v-0d86e43e]:hover{filter:brightness(1.1)}.btn-success[data-v-0d86e43e]{background-color:var(--success);color:#fff;border:none}.btn-secondary[data-v-0d86e43e]{background-color:var(--surface);color:var(--text);border:1px solid var(--line)}.btn-secondary[data-v-0d86e43e]:not(.btn-muted):hover{background-color:var(--bg-secondary)}.btn-secondary.btn-muted[data-v-0d86e43e]{background-color:var(--danger);color:#fff;border-color:var(--danger)}.sas-inline-emojis[data-v-0d86e43e]{display:flex;align-items:center;gap:4px;padding:4px 10px;background:var(--hover-surface);border:1px solid var(--line);border-radius:var(--radius-full);transition:all var(--transition-fast);cursor:default}.sas-inline-emojis .sas-icon[data-v-0d86e43e]{font-size:var(--text-base)}.call-overlay.is-expanded .call-actions[data-v-0d86e43e]{justify-content:center;gap:20px;padding-bottom:16px}.call-overlay.is-expanded .call-actions .btn-control[data-v-0d86e43e],.call-overlay.is-expanded .call-actions .btn-danger[data-v-0d86e43e],.call-overlay.is-expanded .call-actions .btn-success[data-v-0d86e43e]{flex:0 0 auto;min-width:56px;height:56px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center}.call-overlay.is-expanded .call-actions .btn-danger span[data-v-0d86e43e],.call-overlay.is-expanded .call-actions .btn-success span[data-v-0d86e43e]{display:none}.call-overlay.is-expanded .call-actions .btn-control svg[data-v-0d86e43e],.call-overlay.is-expanded .call-actions .btn-danger svg[data-v-0d86e43e],.call-overlay.is-expanded .call-actions .btn-success svg[data-v-0d86e43e]{width:24px;height:24px}@keyframes slideIn-0d86e43e{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:640px){.call-overlay[data-v-0d86e43e]:not(.is-expanded){top:auto;bottom:80px;right:50%;transform:translate(50%);width:calc(100% - 32px);max-width:400px}@keyframes slideIn-0d86e43e{0%{transform:translateY(30px) translate(50%);opacity:0}to{transform:translateY(0) translate(50%);opacity:1}}}#app{display:flex;flex-direction:column}.app-layout{display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;overflow:hidden}.app-content-wrapper{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;overflow-y:auto}.app-content-wrapper--chat{height:100%;flex:1;overflow:hidden;overscroll-behavior:none}.app-content-wrapper--chat.keyboard-open{overflow:hidden;touch-action:none}.app-content-wrapper--chat.keyboard-open .chat-messages{touch-action:pan-y}.pwa-update-toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--panel-solid);border:1px solid var(--line);box-shadow:var(--shadow-lg);padding:12px 16px;border-radius:var(--radius-lg);z-index:999999;display:flex;flex-direction:column;gap:10px;width:calc(100% - 32px);max-width:320px;animation:slide-up .3s cubic-bezier(.16,1,.3,1)}.pwa-update-message{font-size:14px;font-weight:500;color:var(--text);text-align:center}.pwa-update-actions{display:flex;gap:8px;justify-content:center}.pwa-update-actions button{flex:1}@keyframes slide-up{0%{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%);opacity:1}}.loading-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;background-color:var(--bg)}.spinner{width:24px;height:24px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
