:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0a0c0e;--bg-alt: #0e1114;--surface: #14181c;--surface-2: #1a1f24;--surface-3: #232931;--border: #222830;--border-strong: #2f3740;--text: #e9ecef;--text-dim: #99a2aa;--text-faint: #6c757d;--accent: #d9a556;--accent-dim: #b8853c;--accent-bright: #ecbf78;--accent-soft: rgba(217, 165, 86, .13);--accent-line: rgba(217, 165, 86, .32);--on-accent: #17130a;--accent-fill: linear-gradient(180deg, #e3b166, #c9944a);--online: #7cb6a1;--danger: #d97c6e;--bubble-in: #191e23;--bubble-in-border: #242b32;--bubble-out: linear-gradient(180deg, #3d3626, #322c1e);--bubble-out-text: #f2e5cb;--bubble-out-border: rgba(217, 165, 86, .26);--bubble-out-meta: rgba(242, 229, 203, .55);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 3px 12px rgba(0, 0, 0, .3);--shadow-md: 0 2px 6px rgba(0, 0, 0, .42), 0 10px 28px rgba(0, 0, 0, .38);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .45), 0 24px 60px rgba(0, 0, 0, .55);--shadow-accent: 0 6px 20px rgba(217, 165, 86, .28);--glow: radial-gradient(ellipse at 50% 0%, rgba(217, 165, 86, .09), transparent 62%);--glass: rgba(20, 24, 28, .72);--glass-blur: saturate(1.4) blur(14px);--scrim: rgba(4, 6, 8, .62);--hairline: rgba(255, 255, 255, .05)}:root[data-theme=light]{color-scheme:light;--bg: #eeebe4;--bg-alt: #f6f4ef;--surface: #ffffff;--surface-2: #f7f5f1;--surface-3: #ece8e0;--border: #e1dcd2;--border-strong: #cdc7ba;--text: #17191b;--text-dim: #616770;--text-faint: #888e96;--accent: #a9762a;--accent-dim: #8d6120;--accent-bright: #c08c3c;--accent-soft: rgba(169, 118, 42, .12);--accent-line: rgba(169, 118, 42, .3);--on-accent: #fff9ee;--accent-fill: linear-gradient(180deg, #b8823a, #9c6b23);--online: #4c8f77;--danger: #b8544a;--bubble-in: #ffffff;--bubble-in-border: #e6e1d7;--bubble-out: linear-gradient(180deg, #faeed7, #f3e2c2);--bubble-out-text: #3a2d15;--bubble-out-border: #e9d5ac;--bubble-out-meta: rgba(58, 45, 21, .52);--shadow-xs: 0 1px 2px rgba(60, 50, 35, .09);--shadow-sm: 0 1px 2px rgba(60, 50, 35, .08), 0 3px 10px rgba(60, 50, 35, .07);--shadow-md: 0 2px 6px rgba(60, 50, 35, .1), 0 10px 26px rgba(60, 50, 35, .12);--shadow-lg: 0 4px 12px rgba(60, 50, 35, .12), 0 24px 56px rgba(60, 50, 35, .18);--shadow-accent: 0 6px 18px rgba(169, 118, 42, .26);--glow: radial-gradient(ellipse at 50% 0%, rgba(169, 118, 42, .07), transparent 62%);--glass: rgba(255, 255, 255, .76);--glass-blur: saturate(1.3) blur(14px);--scrim: rgba(46, 39, 28, .42);--hairline: rgba(255, 255, 255, .7)}:root{--a0: #d9a556;--a1: #7fb0a3;--a2: #9c8fb8;--a3: #c98b6b;--a4: #6f97b3;--a5: #b3a271;--a6: #b98099;--a7: #8aa2a8;--radius-xs: 8px;--radius-sm: 10px;--radius: 14px;--radius-lg: 20px;--radius-xl: 26px;--header-h: 60px;--safe-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--safe-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));--safe-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--safe-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-numeric: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:15px;line-height:1.45;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none;background-image:var(--grain);background-attachment:fixed}:root{--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.028'/%3E%3C/svg%3E")}:root[data-theme=light]{--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E")}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}input,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::selection{background:var(--accent-soft)}.scroll{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;-webkit-overflow-scrolling:touch}.scroll::-webkit-scrollbar{width:10px}.scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:3px solid transparent;background-clip:padding-box}.scroll::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:padding-box}.scroll::-webkit-scrollbar-track{background:transparent}:root{--ease: cubic-bezier(.32, .72, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-both: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-pop: cubic-bezier(.18, 1.9, .5, 1);--t-instant: 90ms;--t-fast: .14s;--t-base: .22s;--t-slow: .32s;--t-slower: .46s;--t-stagger: 18ms}:root[data-motion=calm]{--t-instant: 60ms;--t-fast: 80ms;--t-base: .11s;--t-slow: .13s;--t-slower: .15s;--t-stagger: 0ms}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translate3d(0,12px,0)}}@keyframes rise-out{to{opacity:0;transform:translate3d(0,8px,0)}}@keyframes drop-in{0%{opacity:0;transform:translate3d(0,-12px,0)}}@keyframes drop-out{to{opacity:0;transform:translate3d(0,-8px,0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate3d(-18px,0,0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate3d(18px,0,0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.94)}}@keyframes scale-out{to{opacity:0;transform:scale(.97)}}@keyframes modal-in{0%{opacity:0;transform:translate3d(0,14px,0) scale(.97)}}@keyframes modal-out{to{opacity:0;transform:translate3d(0,8px,0) scale(.98)}}@keyframes sheet-in{0%{transform:translate3d(0,100%,0)}}@keyframes sheet-out{to{transform:translate3d(0,100%,0)}}@keyframes pop-in{0%{opacity:0;transform:scale(.5)}}@keyframes pop-out{to{opacity:0;transform:scale(.6)}}@keyframes bubble-in{0%{opacity:0;transform:translate3d(0,8px,0) scale(.98)}}@keyframes view-push-in{0%{opacity:.4;transform:translate3d(22px,0,0)}}@keyframes view-pop-in{0%{opacity:.4;transform:translate3d(-22px,0,0)}}@keyframes breathe{50%{transform:scale(1.06)}}@keyframes pulse{50%{opacity:.3}}@keyframes ping{0%{transform:scale(1);opacity:.55}70%{opacity:0}to{transform:scale(1.9);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:200% 0}}@keyframes shake{10%,90%{transform:translate3d(-2px,0,0)}30%,70%{transform:translate3d(3px,0,0)}50%{transform:translate3d(-3px,0,0)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes drift{to{transform:translate3d(0,-3%,0) scale(1.06)}}@keyframes bump{40%{transform:scale(1.28)}}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}.anim-fade{animation:fade-in var(--t-base) var(--ease-out) both}.anim-rise{animation:rise-in var(--t-slow) var(--ease-out) both}.anim-drop{animation:drop-in var(--t-base) var(--ease-out) both}.anim-scale{animation:scale-in var(--t-base) var(--ease-out) both}.anim-pop{animation:pop-in var(--t-base) var(--ease-pop) both}.anim-left{animation:slide-in-left var(--t-slow) var(--ease-out) both}.anim-right{animation:slide-in-right var(--t-slow) var(--ease-out) both}.anim-shake{animation:shake var(--t-slower) var(--ease-both) both}.stagger{animation-delay:calc(min(var(--i, 0),12) * var(--t-stagger))}.press{transition:transform var(--t-instant) var(--ease-both)}.press:active{transform:scale(.96)}@media(hover:hover){.lift{transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out)}.lift:hover{transform:translate3d(0,-1px,0);box-shadow:var(--shadow-md)}}.shimmer{background-image:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 40%,var(--surface-2) 80%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@media(prefers-reduced-motion:reduce){:root:not([data-motion=full]) *:not(.keep-motion){animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root[data-motion=off] *:not(.keep-motion){animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}:root[data-motion=calm] .anim-rise,:root[data-motion=calm] .anim-drop,:root[data-motion=calm] .anim-left,:root[data-motion=calm] .anim-right,:root[data-motion=calm] .anim-scale,:root[data-motion=calm] .anim-pop{animation-name:fade-in}::view-transition-old(root){animation:fade-out var(--t-slow) var(--ease-both) both}::view-transition-new(root){animation:fade-in var(--t-slow) var(--ease-both) both}.shell{display:flex;height:100dvh;background:var(--bg)}.sidebar{display:flex;flex-direction:column;width:340px;flex:0 0 340px;background:var(--bg-alt);border-right:1px solid var(--border);position:relative}.chat-pane{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg);position:relative}@media(max-width:880px){.sidebar{width:100%;flex:1 1 100%;border-right:none}.shell[data-view=chat] .sidebar,.shell[data-view=list] .chat-pane{display:none}.shell[data-view=chat] .chat-pane{animation:view-push-in var(--t-slow) var(--ease-out) both}.shell[data-view=list] .sidebar{animation:view-pop-in var(--t-slow) var(--ease-out) both}}@media(min-width:881px){.only-narrow{display:none!important}}.avatar{--size: 46px;width:var(--size);height:var(--size);flex:0 0 var(--size);border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:calc(var(--size) * .36);letter-spacing:.02em;color:#16130c;box-shadow:inset 0 1px #ffffff38,inset 0 -8px 16px #0000001f;background:var(--avatar-color, var(--a0));background-size:cover;background-position:center;background-repeat:no-repeat;position:relative;user-select:none}.avatar--group{border-radius:30%}.avatar__dot{position:absolute;right:-1px;bottom:-1px;width:30%;height:30%;min-width:9px;min-height:9px;border-radius:50%;background:var(--online);border:2px solid var(--bg-alt)}.chat-pane .avatar__dot{border-color:var(--surface)}.avatar-pick{position:relative;flex:0 0 auto}.avatar-pick__btn{position:absolute;right:-2px;bottom:-2px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);border:2px solid var(--surface);cursor:pointer}.avatar-pick__btn:disabled{opacity:.6;cursor:default}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);font-weight:500;transition:background var(--t-fast) var(--ease-both),border-color var(--t-fast) var(--ease-both),transform var(--t-instant) var(--ease-both),box-shadow var(--t-fast) var(--ease-both)}.btn:hover{background:var(--surface-3);border-color:var(--border-strong)}.btn:active{transform:scale(.975)}.btn--primary{background:var(--accent-fill);border-color:transparent;color:var(--on-accent);font-weight:600;box-shadow:var(--shadow-accent)}.btn--primary:hover{background:var(--accent-fill);border-color:transparent;filter:brightness(1.06)}.btn--primary:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.28) 50%,transparent 62%);background-size:260% 100%;background-position:140% 0;opacity:0;pointer-events:none;transition:background-position var(--t-slower) var(--ease-out),opacity var(--t-fast) linear}@media(hover:hover){.btn--primary:hover:after{opacity:1;background-position:-40% 0}}.btn--ghost{background:transparent;border-color:transparent}.btn--ghost:hover{background:var(--surface-2)}.btn--danger{color:var(--danger)}.btn:disabled{opacity:.45;cursor:default;transform:none}.icon-btn{width:38px;height:38px;border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--text-dim);transition:background var(--t-fast) var(--ease-both),color var(--t-fast) var(--ease-both),transform var(--t-instant) var(--ease-both)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn:active{transform:scale(.92)}.icon-btn:disabled{opacity:.4;cursor:default;transform:none}.field{width:100%;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);transition:border-color var(--t-fast) var(--ease-both),background var(--t-fast) var(--ease-both),box-shadow var(--t-fast) var(--ease-both)}.field::placeholder{color:var(--text-faint)}.field:focus{outline:none;border-color:var(--accent);background:var(--surface-2);box-shadow:0 0 0 3px var(--accent-soft)}.label{display:block;font-size:12.5px;color:var(--text-dim);margin-bottom:6px;letter-spacing:.01em}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.badge{min-width:21px;height:21px;padding:0 7px;border-radius:11px;background:var(--accent-fill);color:var(--on-accent);font-size:12px;font-weight:700;display:grid;place-items:center;box-shadow:var(--shadow-xs);animation:pop-in var(--t-base) var(--ease-pop) both}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite}.spinner,.spin{animation-duration:.7s!important;animation-iteration-count:infinite!important}.spin{animation:spin .9s linear infinite}.link-btn{margin-top:6px;padding:0;background:none;border:0;color:var(--accent);font-size:13px;cursor:pointer}.link-btn:disabled{opacity:.6;cursor:default}.auth{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--bg);background-image:var(--glow)}.auth__card{width:100%;max-width:380px}.auth__brand{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:30px}.auth__title{font-size:27px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin:0}.auth__tagline{color:var(--text-faint);font-size:13px;letter-spacing:.03em}.auth__form{display:flex;flex-direction:column;gap:14px;padding:22px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.auth__tabs{display:flex;gap:4px;padding:4px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.auth__tab{flex:1;padding:9px;border-radius:9px;color:var(--text-dim);font-weight:500;transition:background .15s,color .15s}.auth__tab[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.auth__error{padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--danger) 14%,transparent);border:1px solid color-mix(in srgb,var(--danger) 34%,transparent);color:var(--danger);font-size:13.5px}.auth__demo{margin-top:22px;padding:16px;border-radius:var(--radius);border:1px dashed var(--border-strong);font-size:13px;color:var(--text-dim)}.auth__demo-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.auth__demo-btn{padding:7px 12px;border-radius:9px;background:var(--surface-2);border:1px solid var(--border);font-size:13px;transition:border-color .15s}.auth__demo-btn:hover{border-color:var(--accent)}.auth__resume{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:14px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);font-size:13.5px}.auth__resume>div{flex:1;min-width:0}.auth__foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:18px}.auth__link{padding:6px 2px;font-size:13px;color:var(--text-faint);border-bottom:1px dashed transparent}.auth__link:hover{color:var(--text-dim);border-bottom-color:var(--border-strong)}.auth__server{margin-top:10px;padding:12px;border-radius:var(--radius);border:1px dashed var(--border-strong)}.code-box{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.code-box__value{flex:1;min-width:0;font-size:21px;font-weight:600;letter-spacing:.14em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--accent);user-select:all;overflow-wrap:anywhere}.code-input{font-size:19px;letter-spacing:.16em;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-transform:uppercase}.code-input::placeholder{letter-spacing:.1em;font-size:15px;text-transform:none}.welcome{max-width:420px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.welcome__steps{width:100%;display:flex;flex-direction:column;gap:10px;text-align:left}.welcome__step{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--text-dim)}.welcome__num{width:22px;height:22px;flex:0 0 22px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}.doorway{width:46px;height:60px;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface-2);display:grid;place-items:end center;padding-bottom:0;position:relative;overflow:hidden}.doorway:after{content:"";position:absolute;inset:auto 22% 0;height:74%;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 45%,transparent));box-shadow:0 0 22px color-mix(in srgb,var(--accent) 55%,transparent)}.brand{height:calc(var(--header-h) + var(--safe-top));flex:0 0 calc(var(--header-h) + var(--safe-top));display:flex;align-items:center;gap:10px;padding:var(--safe-top) calc(12px + var(--safe-right)) 0 calc(16px + var(--safe-left));border-bottom:1px solid var(--border);position:relative;z-index:2;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.brand__mark{width:15px;height:20px;border-radius:2px;background:linear-gradient(180deg,var(--accent),var(--accent-dim));box-shadow:0 0 14px color-mix(in srgb,var(--accent) 45%,transparent);flex:0 0 auto}.brand__name{font-size:15px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-right:auto}.conn{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-faint);padding:4px 8px;border-radius:8px}.conn__dot{width:7px;height:7px;border-radius:50%;background:var(--text-faint)}.conn[data-status=online] .conn__dot{background:var(--online)}.conn[data-status=connecting] .conn__dot{background:var(--accent);animation:pulse 1s ease-in-out infinite}.conn[data-status=offline] .conn__dot{background:var(--danger)}.search{padding:10px 12px}.chat-list{flex:1;padding:0 8px 90px}.notify-hint{position:relative;flex:0 0 auto;margin:0 16px 10px;padding:12px 13px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);background:var(--accent-soft)}.notify-hint__head{display:flex;align-items:center;gap:9px;padding-right:22px;font-size:14px;color:var(--text)}.notify-hint__icon{display:grid;place-items:center;width:28px;height:28px;flex:0 0 auto;border-radius:50%;background:var(--surface);color:var(--accent)}.notify-hint__text{margin:8px 0 0;font-size:12.5px;line-height:1.5;color:var(--text-dim)}.notify-hint__actions{margin-top:10px}.notify-hint__actions .btn{width:100%}.notify-hint__close{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;color:var(--text-faint)}.notify-hint__close:hover{background:var(--surface);color:var(--text)}.side-foot{flex:0 0 auto;display:flex;gap:4px;padding:6px 8px calc(6px + var(--safe-bottom));border-top:1px solid var(--border);background:var(--bg-alt)}.side-foot__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 8px;border-radius:11px;font-size:14px;color:var(--text-dim);transition:background .15s ease,color .15s ease}.side-foot__btn:hover{background:var(--surface-2);color:var(--text)}.side-foot__btn:active{background:var(--surface)}.chat-item{position:relative;width:100%;display:flex;gap:12px;align-items:center;padding:10px;border-radius:12px;text-align:left;transition:background var(--t-fast) var(--ease-both),transform var(--t-instant) var(--ease-both)}.chat-item:hover{background:var(--surface)}.chat-item:active{transform:scale(.985)}.chat-item[aria-current=true]{background:var(--surface-2)}.chat-item[aria-current=true]:after{content:"";position:absolute;left:0;width:3px;height:30px;border-radius:0 3px 3px 0;background:var(--accent);margin-left:-8px;transform-origin:center;animation:chat-mark var(--t-slow) var(--ease-spring) both}@keyframes chat-mark{0%{transform:scaleY(.2);opacity:0}}.chat-item__body{flex:1;min-width:0}.chat-item__top{display:flex;align-items:baseline;gap:8px}.chat-item__title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.chat-item__time{font-size:11.5px;color:var(--text-faint);flex:0 0 auto}.chat-item__bottom{display:flex;align-items:center;gap:8px;margin-top:2px}.chat-item__preview{flex:1;min-width:0;font-size:13.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item__preview em{color:var(--accent);font-style:normal}.fab{position:absolute;right:18px;bottom:calc(20px + 60px + var(--safe-bottom));width:52px;height:52px;border-radius:50%;background:var(--accent-fill);color:var(--on-accent);display:grid;place-items:center;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 34%,transparent),var(--shadow-md);transition:transform var(--t-base) var(--ease-spring),box-shadow var(--t-fast) var(--ease-out);animation:pop-in var(--t-slow) var(--ease-spring) both}.fab:hover{transform:scale(1.08);box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 42%,transparent),var(--shadow-lg)}.fab:active{transform:scale(.94)}.chat-header{position:relative;z-index:2;height:calc(var(--header-h) + var(--safe-top));flex:0 0 calc(var(--header-h) + var(--safe-top));display:flex;align-items:center;gap:12px;padding:var(--safe-top) calc(12px + var(--safe-right)) 0 calc(12px + var(--safe-left));border-bottom:1px solid var(--border);background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.chat-header__body{transition:opacity var(--t-fast) var(--ease-both)}.chat-header__body:hover{opacity:.82}.chat-header__sub{animation:rise-in var(--t-base) var(--ease-out) both}.chat-header__body{flex:1;min-width:0;text-align:left}.chat-header__title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header__sub{font-size:12.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header__sub--typing{color:var(--accent)}.messages{flex:1;padding:16px clamp(12px,4vw,40px) 8px;display:flex;flex-direction:column;gap:2px;background-image:var(--glow);background-repeat:no-repeat;background-size:100% 260px}.day{position:sticky;top:4px;z-index:3;align-self:center;margin:14px 0 10px;padding:4px 12px;border-radius:20px;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-xs);font-size:11.5px;color:var(--text-dim);letter-spacing:.03em}.system-msg{align-self:center;max-width:80%;margin:8px 0;padding:5px 14px;border-radius:20px;background:var(--surface-2);border:1px solid var(--border);font-size:12.5px;color:var(--text-dim);text-align:center}.row{display:flex;gap:8px;align-items:flex-end;max-width:min(76%,640px);margin-top:8px;animation:bubble-in var(--t-slow) var(--ease-out) both}.row--mine{align-self:flex-end;flex-direction:row-reverse}.row--tight{margin-top:2px}.row__spacer{width:32px;flex:0 0 32px}@media(max-width:620px){.row{max-width:88%}}.bubble{position:relative;padding:8px 12px 6px;border-radius:16px;background:var(--bubble-in);border:1px solid var(--bubble-in-border);min-width:84px;box-shadow:var(--shadow-xs);background-image:linear-gradient(180deg,var(--hairline),transparent 40%);transition:box-shadow var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out)}@media(hover:hover){.row:hover .bubble{box-shadow:var(--shadow-sm)}}.row:not(.row--mine) .bubble{border-bottom-left-radius:6px}.row--mine .bubble{background:var(--bubble-out);border-color:var(--bubble-out-border);color:var(--bubble-out-text);border-bottom-right-radius:6px}.row--tight:not(.row--mine) .bubble{border-bottom-left-radius:16px;border-top-left-radius:6px}.row--tight.row--mine .bubble{border-bottom-right-radius:16px;border-top-right-radius:6px}.bubble--pending{opacity:.68}.bubble--failed{border-color:var(--danger)}.bubble--media{padding:4px 4px 6px;min-width:0}.bubble--bare{padding:0;min-width:0;background:none;background-image:none;border:none;box-shadow:none}.bubble--bare .bubble__meta{float:none;display:flex;justify-content:flex-end;margin:4px 2px 0}.bubble--bare .reactions{margin-top:4px}.bubble__author{font-size:12.5px;font-weight:600;color:var(--accent);margin-bottom:2px}.bubble__text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14.8px}.bubble__text a{text-decoration:underline}.row--mine .bubble__text a{color:var(--bubble-out-text)}.bubble__meta{float:right;display:inline-flex;align-items:center;gap:4px;margin:6px 0 0 10px;font-size:11px;color:var(--text-faint);user-select:none}.row--mine .bubble__meta{color:var(--bubble-out-meta)}.bubble__reply{display:block;width:100%;text-align:left;margin-bottom:6px;padding:5px 9px;border-radius:8px;border-left:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent);font-size:13px;cursor:pointer}.bubble__reply-name{color:var(--accent);font-weight:600;font-size:12px}.bubble__reply-text{color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.row--mine .bubble__reply-text{color:var(--bubble-out-meta)}.msg-actions{align-self:center;display:flex;gap:2px;opacity:0;transition:opacity .12s}.row:hover .msg-actions,.row:focus-within .msg-actions{opacity:1}.msg-actions button{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:var(--text-faint)}.msg-actions button:hover{background:var(--surface-2);color:var(--text)}.ticks{display:inline-flex;color:currentColor}.ticks--read{color:var(--accent)}.row--mine .ticks--read{color:color-mix(in srgb,var(--accent) 65%,#fff 35%)}.msg-image{display:block;max-width:320px;max-height:380px;width:auto;border-radius:12px;cursor:zoom-in;background:var(--surface-2);animation:fade-in var(--t-slower) var(--ease-out) both;transition:filter var(--t-fast) var(--ease-out)}@media(hover:hover){.msg-image:hover{filter:brightness(1.06)}}.msg-file{display:flex;align-items:center;gap:11px;padding:6px 4px;min-width:200px;max-width:320px}.msg-file__icon{width:40px;height:40px;flex:0 0 40px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.msg-file__name{font-size:14px;font-weight:500;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.msg-file__size{font-size:12px;color:var(--text-dim)}.row--mine .msg-file__size{color:var(--bubble-out-meta)}.voice{display:flex;align-items:center;gap:11px;padding:5px 4px;min-width:210px}.voice__play{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent)}.voice__wave{flex:1;display:flex;align-items:center;gap:2px;height:30px;cursor:pointer}.voice__bar{flex:1;min-width:2px;border-radius:2px;background:currentColor;opacity:.28;transition:opacity .1s}.voice__bar--done{opacity:.95}.voice__time{font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-dim);flex:0 0 auto}.row--mine .voice__time{color:var(--bubble-out-meta)}.composer{position:relative;z-index:2;border-top:1px solid var(--border);background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);padding:10px 12px calc(10px + var(--safe-bottom))}.composer__strip{display:flex;align-items:center;gap:10px;padding:7px 10px;margin-bottom:8px;border-radius:10px;background:var(--surface-2);border-left:2px solid var(--accent);font-size:13px}.composer__strip-body{flex:1;min-width:0}.composer__strip-text{color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.composer__row{display:flex;align-items:flex-end;gap:8px}.composer__input{flex:1;min-width:0;max-height:148px;padding:10px 14px;border-radius:20px;background:var(--surface-2);border:1px solid var(--border);resize:none;overflow-y:auto;line-height:1.4;transition:border-color var(--t-fast) var(--ease-both),background var(--t-fast) var(--ease-both),box-shadow var(--t-fast) var(--ease-both)}.composer__input:focus{outline:none;border-color:var(--accent-line);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.composer__send{width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:var(--accent-fill);color:var(--on-accent);display:grid;place-items:center;box-shadow:var(--shadow-accent);transition:transform var(--t-base) var(--ease-spring),opacity var(--t-fast) var(--ease-both),filter var(--t-fast) var(--ease-both)}.composer__send:hover{transform:scale(1.06);filter:brightness(1.07)}.composer__send:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.composer__mic{width:44px;height:44px;flex:0 0 44px;border-radius:50%;display:grid;place-items:center;color:var(--text-dim);transition:background .15s,color .15s}.composer__mic:hover{background:var(--surface-2);color:var(--text)}.composer__attach{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;color:var(--text-dim)}.composer__attach:hover{background:var(--surface-2);color:var(--text)}.recorder{display:flex;align-items:center;gap:12px;padding:4px 6px;flex:1}.recorder__dot{width:11px;height:11px;border-radius:50%;background:var(--danger);animation:pulse 1.1s ease-in-out infinite;flex:0 0 auto}.recorder__time{font-variant-numeric:tabular-nums;font-size:14px;color:var(--text);flex:0 0 auto}.recorder__level{flex:1;height:26px;display:flex;align-items:center;gap:2px;overflow:hidden}.recorder__level span{flex:1;min-width:2px;border-radius:2px;background:var(--accent);opacity:.7}.empty{flex:1;display:grid;place-items:center;padding:32px;text-align:center;background-image:var(--glow)}.empty__inner{max-width:320px;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-dim)}.empty__title{color:var(--text);font-size:17px;font-weight:600}.overlay{position:fixed;inset:0;z-index:40;background:var(--scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;animation:fade-in var(--t-base) var(--ease-out) both}.overlay--closing{animation:fade-out var(--t-base) var(--ease-in) both}.modal{width:100%;max-width:440px;max-height:min(86dvh,720px);display:flex;flex-direction:column;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);overflow:hidden;animation:modal-in var(--t-slow) var(--ease-out) both}.overlay--closing .modal{animation:modal-out var(--t-base) var(--ease-in) both}@media(max-width:620px){.overlay{place-items:end center;padding:0}.modal,.admin{max-width:none;max-height:92dvh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-bottom:none;padding-bottom:var(--safe-bottom);animation:sheet-in var(--t-slow) var(--ease-out) both}.overlay--closing .modal,.overlay--closing .admin{animation:sheet-out var(--t-base) var(--ease-in) both}.modal__head:before{content:"";position:absolute;top:7px;left:50%;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:var(--border-strong)}.modal__head{padding-top:20px}}.modal__head{position:relative;display:flex;align-items:center;gap:10px;padding:14px 12px 14px 18px;border-bottom:1px solid var(--border)}.modal__title{flex:1;font-size:16px;font-weight:600}.modal__body{padding:16px 18px;overflow-y:auto}.modal__foot{display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--border)}.user-row{width:100%;display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:11px;text-align:left;transition:background .12s}.user-row:hover{background:var(--surface-2)}.user-row__body{flex:1;min-width:0}.user-row__name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-row__sub{font-size:12.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.check{width:22px;height:22px;flex:0 0 22px;border-radius:7px;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:var(--on-accent)}.check[data-on=true]{background:var(--accent);border-color:var(--accent)}.accent-picker{display:flex;gap:8px;flex-wrap:wrap}.accent-picker button{width:30px;height:30px;border-radius:50%;border:2px solid transparent;background:var(--dot)}.accent-picker button[aria-pressed=true]{border-color:var(--text)}.seg{display:flex;gap:4px;padding:4px;border-radius:11px;background:var(--surface-2);border:1px solid var(--border)}.seg button{flex:1;padding:8px;border-radius:8px;color:var(--text-dim);font-size:14px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.stack{display:flex;flex-direction:column;gap:14px}.divider{height:1px;background:var(--border);margin:4px 0}.lightbox{position:fixed;inset:0;z-index:60;background:#030405e6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px;animation:fade-in var(--t-base) var(--ease-out) both}.lightbox--closing{animation:fade-out var(--t-fast) var(--ease-in) both}.lightbox img{max-width:100%;max-height:88dvh;border-radius:10px;box-shadow:var(--shadow-lg);animation:scale-in var(--t-slow) var(--ease-out) both}.lightbox--closing img{animation:scale-out var(--t-fast) var(--ease-in) both}.lightbox__bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:14px 18px;color:#e8eaec;background:linear-gradient(180deg,rgba(0,0,0,.55),transparent)}.lightbox__name{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:calc(22px + var(--safe-bottom));z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;max-width:min(90vw,420px);padding:10px 16px;border-radius:999px;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);font-size:13.5px;animation:rise-in var(--t-slow) var(--ease-spring) both}.toast:before{content:"";width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--accent)}.toast[data-kind=error]{border-color:color-mix(in srgb,var(--danger) 50%,transparent);color:var(--danger)}.toast[data-kind=error]:before{background:var(--danger)}.toast--closing{animation:rise-out var(--t-fast) var(--ease-in) both}.typing-dots{display:inline-flex;gap:3px;vertical-align:middle;margin-left:2px}.typing-dots span{width:4px;height:4px;border-radius:50%;background:currentColor;animation:blink 1.2s infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}.call{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:var(--bg);color:var(--text);animation:call-in .22s ease-out;overflow:hidden}@keyframes call-in{0%{opacity:0;transform:scale(1.02)}}.call__backdrop{position:absolute;inset:-20%;background:radial-gradient(ellipse at 50% 18%,color-mix(in srgb,var(--peer-accent) 26%,transparent),transparent 58%),radial-gradient(ellipse at 20% 90%,color-mix(in srgb,var(--peer-accent) 12%,transparent),transparent 55%);animation:drift 14s ease-in-out infinite alternate;pointer-events:none}.call__remote-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}.call__body{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;padding:calc(14px + var(--safe-top)) 16px calc(20px + var(--safe-bottom));transition:opacity .3s ease}.call__body--dim{opacity:0;pointer-events:none}.call__top{display:flex;align-items:center;gap:10px;min-height:36px}.call__minimize{color:var(--text-dim)}.call__quality{display:flex;align-items:flex-end;gap:3px;height:16px;margin-left:auto;cursor:default}.call__quality span{width:3px;border-radius:2px;background:var(--text-faint);opacity:.3}.call__quality span:nth-child(1){height:5px}.call__quality span:nth-child(2){height:8px}.call__quality span:nth-child(3){height:12px}.call__quality span:nth-child(4){height:16px}.call__quality span.is-on{opacity:1;background:var(--online)}.call__quality[data-quality=fair] span.is-on{background:var(--accent)}.call__quality[data-quality=poor] span.is-on{background:var(--danger)}.call__who{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;flex:1;min-height:0;text-align:center}.call[data-video=on] .call__who{flex:0;justify-content:flex-start;margin-top:8px;text-shadow:0 1px 12px rgba(0,0,0,.65)}.call__avatar{position:relative;display:grid;place-items:center;margin-bottom:14px}.call__ring{position:absolute;width:128px;height:128px;border-radius:50%;border:1px solid color-mix(in srgb,var(--peer-accent) 55%,transparent);opacity:0}.call__avatar--ringing .call__ring{animation:ping 2.6s ease-out infinite}.call__avatar--ringing .call__ring--slow{animation-delay:1.3s}.call__name{font-size:25px;font-weight:600;letter-spacing:-.2px}.call__status{color:var(--text-dim);font-size:15px;font-variant-numeric:tabular-nums}.call[data-state=active] .call__status{color:var(--accent)}.call__hint{margin-top:2px;font-size:13px;color:var(--text-faint)}.call__self{position:absolute;right:16px;bottom:calc(112px + var(--safe-bottom));width:108px;height:148px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);background:#000}.call__self-video{width:100%;height:100%;object-fit:cover}.call__controls{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding-top:18px;margin-top:auto}.call__btn{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);transition:transform .12s ease,background .15s ease,color .15s ease}.call__btn:hover{background:var(--surface-3)}.call__btn:active{transform:scale(.94)}.call__btn--plain.is-off{background:var(--surface-3);color:var(--text-faint)}.call__btn--plain.is-active{border-color:var(--accent);color:var(--accent)}.call__btn--accept{background:var(--online);border-color:transparent;color:#0d1512;animation:breathe 2s ease-in-out infinite}.call__btn--decline{background:var(--danger);border-color:transparent;color:#1a0f0d}.call-pill{position:fixed;top:calc(10px + var(--safe-top));left:50%;transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:4px;padding:6px 8px 6px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);max-width:calc(100vw - 24px);animation:call-in .2s ease-out}.call-pill__body{display:flex;align-items:center;gap:9px;min-width:0;padding-right:6px}.call-pill__name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:30vw}.call-pill__time{color:var(--accent);font-size:13px;font-variant-numeric:tabular-nums}.call-pill[data-state=reconnecting] .call-pill__time{color:var(--danger)}.call-pill__btn{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--surface-3);color:var(--text)}.call-pill__btn.is-off{color:var(--text-faint)}.call-pill__btn--end{background:var(--danger);color:#1a0f0d}.call-record{align-self:center;display:flex;align-items:center;gap:10px;max-width:100%;margin:2px 0;padding:8px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:14px}.call-record__icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.call-record--missed .call-record__icon{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.call-record__text{display:flex;flex-direction:column;min-width:0}.call-record__title{font-weight:500}.call-record--missed .call-record__title{color:var(--danger)}.call-record__meta{font-size:12px;color:var(--text-faint)}.call-record__again{margin-left:4px;padding:5px 10px;border-radius:999px;font-size:13px;color:var(--accent);background:var(--accent-soft)}.call-record__again:disabled{opacity:.5;cursor:default}@media(max-width:620px){.call__btn{width:56px;height:56px}.call__controls{gap:10px}.call__name{font-size:22px}}.reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.bubble--media .reactions{padding:0 8px 6px;margin-top:4px}.reaction{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:13px;line-height:1.5;transition:transform var(--t-fast) var(--ease-both),background var(--t-fast) var(--ease-both);animation:pop-in var(--t-base) var(--ease-pop) both}.row--mine .reaction{background:#0000002e;border-color:var(--bubble-out-border)}.reaction:active{transform:scale(.92)}.reaction--mine{background:var(--accent-soft);border-color:var(--accent)}.reaction__emoji{font-size:14px}.reaction__count{font-variant-numeric:tabular-nums;color:var(--text-dim)}.reaction--mine .reaction__count{color:var(--accent)}.msg-menu{position:fixed;z-index:90;min-width:210px;padding:6px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);transform-origin:var(--menu-origin, 50% 0);animation:menu-in var(--t-base) var(--ease-spring) both}@keyframes menu-in{0%{opacity:0;transform:scale(.9)}}.msg-menu__reactions{display:flex;gap:2px;padding:2px 2px 6px;border-bottom:1px solid var(--border);margin-bottom:4px;overflow-x:auto;scrollbar-width:none}.msg-menu__reactions::-webkit-scrollbar{display:none}.msg-menu__emoji{flex:none;width:34px;height:34px;border-radius:10px;font-size:19px;line-height:1;transition:transform .12s ease,background .15s ease}.msg-menu__emoji:hover{background:var(--surface-2);transform:scale(1.15)}.msg-menu__emoji.is-mine{background:var(--accent-soft)}.msg-menu__items{display:flex;flex-direction:column}.msg-menu__items button{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;font-size:14.5px;text-align:left;color:var(--text)}.msg-menu__items button:hover{background:var(--surface-2)}.msg-menu__danger{color:var(--danger)!important}.tabs{display:flex;gap:2px;padding:3px;margin-bottom:16px;background:var(--surface-2);border-radius:12px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs__item{flex:1;white-space:nowrap;padding:7px 12px;border-radius:9px;font-size:14px;color:var(--text-dim);transition:background .15s ease,color .15s ease}.tabs__item[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.switch{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer}.switch input{position:absolute;opacity:0;pointer-events:none}.switch__label{display:block;font-size:14.5px}.switch__hint{display:block;margin-top:2px;font-size:12.5px;color:var(--text-faint);line-height:1.35}.switch__track{flex:none;position:relative;width:44px;height:26px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border-strong);transition:background .18s ease,border-color .18s ease}.switch__track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--text-faint);transition:transform .18s ease,background .18s ease}.switch input:checked+.switch__track{background:var(--accent-soft);border-color:var(--accent)}.switch input:checked+.switch__track:after{transform:translate(18px);background:var(--accent)}.switch input:focus-visible+.switch__track{outline:2px solid var(--accent);outline-offset:2px}.check-block{padding:12px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.row-buttons{display:flex;flex-wrap:wrap;gap:8px}.row-buttons .btn{flex:1;min-width:120px}.countdown{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--text-dim)}.countdown__num{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;animation:breathe 1s ease-in-out infinite}.time-field{display:flex;align-items:center;gap:8px;flex:1;font-size:14px;color:var(--text-dim)}.note{padding:11px 13px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);font-size:13px;color:var(--text-dim);line-height:1.45}.note--warn{border-color:var(--danger);color:var(--text)}.device-list{display:flex;flex-direction:column;gap:6px}.device{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);color:var(--accent)}.device__name{display:block;font-size:14px;color:var(--text)}.device__meta{display:block;font-size:12px;color:var(--text-faint)}.facts{display:flex;flex-direction:column;gap:1px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.facts>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;background:var(--surface-2);font-size:13.5px;color:var(--text-dim)}.facts b{color:var(--text);font-weight:500}.perms{display:flex;flex-direction:column;gap:8px}.perm{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.perm__body{flex:1;min-width:0}.perm__title{display:flex;align-items:baseline;gap:8px;font-weight:600}.perm__ok{font-size:11.5px;font-weight:500;color:var(--accent);letter-spacing:.02em}.perm__why{margin-top:3px;font-size:12.5px;line-height:1.4;color:var(--text-dim)}.perm .btn{flex:0 0 auto}:root[data-size=big] body{zoom:1.12}.acc{position:relative;flex:0 0 auto}.acc__btn{position:relative;display:grid;place-items:center;padding:3px;border-radius:50%;transition:box-shadow .15s ease}.acc__btn:hover,.acc__btn[aria-expanded=true]{box-shadow:0 0 0 2px var(--accent)}.acc__count{position:absolute;right:-2px;bottom:-2px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--accent);color:var(--on-accent);font-size:10px;font-weight:700;line-height:15px;text-align:center;border:2px solid var(--bg)}.acc__menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;width:268px;padding:6px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);transform-origin:100% 0;animation:menu-in var(--t-base) var(--ease-spring) both}.acc__title{padding:6px 10px 8px;font-size:12px;color:var(--text-faint)}.acc__item{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;text-align:left;color:var(--text-dim);transition:background .15s ease}.acc__item:hover{background:var(--surface-2)}.acc__item[aria-current=true]{color:var(--accent)}.acc__body{flex:1;min-width:0}.acc__name{display:flex;align-items:center;gap:5px;font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acc__meta{display:block;font-size:12px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acc__plus{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px dashed var(--border);color:var(--text-dim)}.icon-btn--marked{position:relative}.icon-btn__badge{position:absolute;top:3px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--danger);color:#fff;font-size:10.5px;font-weight:700;line-height:16px;text-align:center}.admin{width:100%;max-width:720px;max-height:min(88dvh,860px);display:flex;flex-direction:column;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);overflow:hidden}.admin__tabs{padding:12px 18px 0}.admin__tabs .tabs{margin-bottom:0}.admin__body{padding:16px 18px 20px;overflow-y:auto}.admin__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.admin__card{padding:12px 14px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.admin__card--warn{border-color:var(--accent)}.admin__card-value{display:block;font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}.admin__card-label{display:block;margin-top:2px;font-size:12.5px;color:var(--text-dim)}.admin__person,.admin__ticket,.admin__error{display:flex;gap:12px;padding:12px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.admin__ticket,.admin__error{flex-direction:column;gap:6px}.admin__ticket[data-status=new]{border-color:var(--accent)}.admin__person-body{flex:1;min-width:0}.admin__person-top{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:14.5px}.admin__person-meta{margin-top:2px;font-size:12.5px;color:var(--text-faint)}.admin__person-meta--bad{color:var(--danger)}.admin__person-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.admin__person-actions .btn{padding:6px 10px;font-size:13px}.admin__ticket-body{padding:10px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);font-size:14px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.admin__error-head{display:block;width:100%;text-align:left}.admin__error-message{display:block;margin:6px 0 2px;font-size:14px;word-break:break-word}.admin__error[data-source=server] .admin__error-message{color:var(--danger)}.admin__error-detail{margin:6px 0 0;padding:10px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);font-size:11.5px;line-height:1.5;color:var(--text-dim);white-space:pre-wrap;word-break:break-all;max-height:220px;overflow:auto}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;background:var(--surface);border:1px solid var(--border);font-size:11.5px;color:var(--text-dim);white-space:nowrap}.chip--accent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.chip--danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}textarea.field{resize:vertical;min-height:84px;line-height:1.45;font:inherit}.shape-frame{position:relative;overflow:hidden;background:var(--surface-2)}.shape-outline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.shape-outline>path{stroke:var(--outline-color, var(--border-strong));stroke-width:var(--outline-width, 1.5px);stroke-linejoin:round;stroke-linecap:round}.vnote{--long: clamp(176px, 54vw, 236px);display:block;line-height:0}.vnote__hit{position:relative;display:block;padding:0;width:min(var(--long),calc(var(--long) * var(--vnote-aspect, 1)));border-radius:0}.vnote__frame{width:100%;background:#05070a}.vnote__video{display:block;width:100%;height:100%;object-fit:cover}.vnote__loading{display:block;width:100%;height:100%}.vnote__rim{--outline-color: var(--border-strong);--outline-width: 1.5px}.vnote__progress{--outline-color: var(--accent);--outline-width: 3px}.vnote__progress>path{transition:stroke-dashoffset .18s linear}.vnote__muted,.vnote__play{position:absolute;display:grid;place-items:center;border-radius:50%;background:#080a0c8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#f2f4f5;pointer-events:none}.vnote__muted{right:8%;bottom:8%;width:28px;height:28px}.vnote__play{left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;animation:pop-in var(--t-base) var(--ease-pop) both}.vnote__play svg{margin-left:3px}.vnote__time{position:absolute;left:50%;bottom:-6px;transform:translate(-50%);padding:2px 9px;border-radius:999px;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);font-size:11.5px;line-height:1.5;font-variant-numeric:tabular-nums;color:var(--text-dim);pointer-events:none}.vnote--sound .vnote__time{color:var(--accent)}.vrec{--long: clamp(200px, 62vw, 268px);display:flex;flex-direction:column;align-items:center;gap:12px}.vrec__stage{display:flex;flex-direction:column;align-items:center;gap:8px}.vrec__box{position:relative;width:min(var(--long),calc(var(--long) * var(--vrec-aspect, 1)))}.vrec__frame{width:100%;background:#05070a}.vrec__holder,.vrec__playback{display:block;width:100%;height:100%}.vrec__playback{object-fit:cover}.vrec__box--mirror .vrec__canvas{transform:scaleX(-1)}.vrec__canvas{display:block;width:100%;height:100%}.vrec__wait{position:absolute;left:50%;top:50%;margin:-9px 0 0 -9px}.vrec__rim{--outline-color: var(--border-strong);--outline-width: 1.5px}.vrec__limit{--outline-color: var(--accent);--outline-width: 3px}.vrec__limit>path{transition:stroke-dashoffset .12s linear}.vrec__limit.is-close{--outline-color: var(--danger)}.vrec__flip{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text);box-shadow:var(--shadow-sm)}.vrec__meta{display:flex;flex-direction:column;align-items:center;gap:1px;text-align:center}.vrec__shape{font-size:13.5px;font-weight:500}.vrec__hint{font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums}.vrec__bar{display:flex;align-items:center;gap:10px;width:100%}.vrec__live,.vrec__done{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.vrec__done{justify-content:center}.vrec__dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:var(--danger);animation:pulse 1.1s ease-in-out infinite}.vrec__time{font-size:14px;font-variant-numeric:tabular-nums;flex:0 0 auto}.vrec__level{flex:1;height:24px;display:flex;align-items:center;gap:2px;overflow:hidden}.vrec__level span{flex:1;min-width:2px;border-radius:2px;background:var(--accent);opacity:.7}.shape-pick{--pick: 54px;display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px}.shape-pick__item{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:7px;padding:10px 4px 8px;min-height:108px;border-radius:var(--radius);border:1px solid transparent;background:var(--surface-2);color:var(--text-dim);transition:border-color var(--t-fast) var(--ease-both),background var(--t-fast) var(--ease-both),transform var(--t-instant) var(--ease-both),color var(--t-fast) var(--ease-both)}.shape-pick__item:hover{background:var(--surface-3);color:var(--text)}.shape-pick__item:active{transform:scale(.95)}.shape-pick__item.is-on{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.shape-pick__stage{position:relative;display:block;width:min(var(--pick),calc(var(--pick) * var(--pick-aspect, 1)));margin:auto 0}.shape-pick__frame{width:100%}.shape-pick__rim{--outline-width: 1.5px}.shape-pick__item.is-on .shape-pick__rim{--outline-color: var(--accent)}.shape-pick__art{position:absolute;inset:0;background:linear-gradient(165deg,var(--surface-3),var(--surface))}.shape-pick__art:before,.shape-pick__art:after{content:"";position:absolute;left:50%;transform:translate(-50%);background:color-mix(in srgb,var(--accent) 55%,transparent)}.shape-pick__art:before{top:22%;width:32%;aspect-ratio:1;border-radius:50%}.shape-pick__art:after{top:60%;width:74%;height:55%;border-radius:50% 50% 0 0}.shape-pick__name{font-size:11px;line-height:1.2;text-align:center}.msg-actions{transform:translate(-6px);transition:opacity var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}.row--mine .msg-actions{transform:translate(6px)}.row:hover .msg-actions,.row:focus-within .msg-actions{transform:none}.msg-actions button{transition:background var(--t-fast) var(--ease-both),color var(--t-fast) var(--ease-both),transform var(--t-instant) var(--ease-both)}.msg-actions button:active{transform:scale(.9)}.seg button,.tabs__item,.auth__tab{transition:background var(--t-base) var(--ease-out),color var(--t-fast) var(--ease-both),box-shadow var(--t-base) var(--ease-out)}.side-foot__btn,.user-row,.acc__item{transition:background var(--t-fast) var(--ease-both),color var(--t-fast) var(--ease-both),transform var(--t-instant) var(--ease-both)}.side-foot__btn:active,.user-row:active{transform:scale(.98)}.system-msg,.call-record{animation:scale-in var(--t-slow) var(--ease-out) both}.badge--bump{animation:bump var(--t-slow) var(--ease-pop) both}.modal__body>.stack>*,.admin__body>.stack>*{animation:rise-in var(--t-base) var(--ease-out) both}.modal__head *,.modal__foot *{animation:none}.doorway:after{animation:doorway-glow 5.5s var(--ease-both) infinite alternate}@keyframes doorway-glow{to{opacity:.72;box-shadow:0 0 30px color-mix(in srgb,var(--accent) 70%,transparent)}}.welcome>*,.empty__inner>*{animation:rise-in var(--t-slower) var(--ease-out) both}.welcome>*:nth-child(2){animation-delay:60ms}.welcome>*:nth-child(3){animation-delay:.12s}.welcome>*:nth-child(4){animation-delay:.18s}.welcome>*:nth-child(5){animation-delay:.24s}.auth__brand{animation:rise-in var(--t-slower) var(--ease-out) both}.auth__form{animation:modal-in var(--t-slower) var(--ease-out) 80ms both}.auth__demo,.auth__foot,.auth__server{animation:fade-in var(--t-slower) var(--ease-out) .22s both}.auth__error{animation:shake var(--t-slower) var(--ease-both) both}.notify-hint{animation:drop-in var(--t-slow) var(--ease-out) both}.ticks>svg{animation:pop-in var(--t-base) var(--ease-pop) both}.typing-dots{animation:fade-in var(--t-base) var(--ease-out) both}
