:root{
 --safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;height:100%;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
body{overflow:hidden;position:fixed;inset:0;width:100%;height:var(--app-height,100vh);min-height:0;max-height:none;display:flex;flex-direction:column;background:
 radial-gradient(80% 55% at 50% -10%,rgba(139,92,255,.24),transparent 68%),
 radial-gradient(60% 48% at 100% 30%,rgba(255,57,184,.11),transparent 72%),
 radial-gradient(55% 42% at 0% 75%,rgba(69,232,255,.055),transparent 70%),var(--bg)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(to bottom,#000,transparent 94%);z-index:0}
body:after{content:"PLASMA / CONTROL";position:fixed;right:-92px;top:38%;font:900 58px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em;color:rgba(255,255,255,.018);transform:rotate(90deg);pointer-events:none;z-index:0}
button,input,select{font:inherit}button{cursor:pointer}button:active{transform:scale(.98)}
.screen{flex:1 1 auto;min-height:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;display:none;position:relative;z-index:1;scrollbar-width:none;padding-bottom:18px}.screen::-webkit-scrollbar{display:none}.screen.active{display:block}
#screen-thread.active{display:flex;flex-direction:column;padding-bottom:0;min-height:0}#screen-thread .thread-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-behavior:smooth}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:calc(11px + var(--safe-top)) 15px 11px;background:linear-gradient(180deg,rgba(6,5,11,.98),rgba(6,5,11,.86));border-bottom:1px solid var(--line);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.topbar:after{content:"";position:absolute;left:15px;right:15px;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--pink),var(--violet),var(--cyan),transparent);opacity:.55}
.brand{display:flex;align-items:center;gap:8px;min-width:0}.brandmark{font:900 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em;white-space:nowrap}.brandmark i{font-style:normal;color:var(--pink)}
.status-chip{display:flex;align-items:center;gap:6px;margin-left:auto;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.025);font:800 8px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);letter-spacing:.09em}.status-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dim)}.status-chip.live{color:var(--green);border-color:rgba(112,255,174,.22)}.status-chip.live:before{background:var(--green);box-shadow:0 0 10px var(--green)}
.back{display:none;color:var(--cyan);font-size:30px;line-height:20px;width:24px}.has-back .back{display:block}
/* live dashboard signal */
.live-strip{margin:0 15px 12px;padding:11px 13px;border:1px solid rgba(69,232,255,.16);border-radius:15px;background:linear-gradient(105deg,rgba(69,232,255,.055),rgba(139,92,255,.055),rgba(255,57,184,.035));display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.live-strip-kicker{display:block;color:var(--cyan);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em}.live-strip strong{display:block;margin-top:4px;font-size:10px;letter-spacing:.02em}.live-strip-right{text-align:right}.live-strip-right span{display:block;color:var(--green);font-size:16px;font-weight:950;line-height:1}.live-strip-right small{display:block;margin-top:3px;color:var(--dim);font:900 6px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}
/* command dashboard */
.hero{padding:18px 15px 12px}.eyebrow{color:var(--cyan);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.19em}.hero-row{display:flex;align-items:flex-end;gap:14px;margin-top:7px}.hero h2{margin:0;font-size:30px;line-height:.96;font-weight:950;letter-spacing:-.055em}.hero h2 span{background:linear-gradient(90deg,#fff 5%,var(--pink) 48%,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-copy{flex:1;min-width:0}.hero p{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.45;max-width:330px}.core{width:58px;height:58px;flex:0 0 58px;border-radius:19px;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.12),transparent 30%),linear-gradient(145deg,rgba(255,57,184,.15),rgba(139,92,255,.11));box-shadow:0 0 32px rgba(255,57,184,.10),inset 0 0 22px rgba(139,92,255,.07);font-size:24px}.live-stat{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--dim);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}.live-stat .dot{width:7px;height:7px;border-radius:50%;background:var(--dim)}.live-stat.live{color:var(--green)}.live-stat.live .dot{background:var(--green);box-shadow:0 0 12px var(--green)}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 15px 12px}.metric{position:relative;overflow:hidden;padding:12px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012));box-shadow:var(--glow)}.metric:after{content:"";position:absolute;right:-18px;bottom:-22px;width:48px;height:48px;border-radius:50%;background:rgba(139,92,255,.10);filter:blur(10px)}.metric.accent{border-color:rgba(69,232,255,.25)}.metric b{display:block;font-size:18px;line-height:1}.metric b.live-num{color:var(--green);text-shadow:0 0 15px rgba(112,255,174,.22)}.metric span{display:block;margin-top:5px;color:var(--dim);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase}
.command-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 15px 13px}.command{min-height:74px;padding:12px;border:1px solid var(--line);border-radius:16px;text-align:left;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008));color:var(--text);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.command b{display:block;font-size:12px}.command span{display:block;margin-top:5px;color:var(--muted);font-size:9px;line-height:1.35}.command .ico{font-size:17px;margin-bottom:5px}.command.hot{border-color:rgba(255,57,184,.28);background:linear-gradient(145deg,rgba(255,57,184,.10),rgba(139,92,255,.055))}
.section-head{display:flex;align-items:center;justify-content:space-between;padding:12px 15px 8px}.section-head b{font-size:10px;letter-spacing:.13em;text-transform:uppercase}.section-head span{color:var(--dim);font:800 8px ui-monospace,SFMono-Regular,Menlo,monospace}
/* dialogs */
.chatlist-row{position:relative;display:flex;align-items:center;gap:11px;padding:12px 15px;border-top:1px solid rgba(255,255,255,.045);background:linear-gradient(90deg,rgba(255,255,255,.018),transparent 75%);transition:.15s}.chatlist-row.unread{background:linear-gradient(90deg,rgba(255,57,184,.10),transparent)}.chatlist-row.unread:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--pink),var(--violet));box-shadow:0 0 12px var(--pink)}.avatar{width:44px;height:44px;flex-shrink:0;border-radius:14px;display:flex;align-items:center;justify-content:center;font:900 11px ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff;background:linear-gradient(145deg,#1b1428,#0c0912);border:1px solid var(--line);box-shadow:0 0 18px rgba(139,92,255,.14);position:relative;overflow:hidden}.avatar:after{content:"";position:absolute;inset:-35%;background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.13),transparent 65%);transform:translateX(-80%);animation:sweep 4s infinite}.chatlist-info{flex:1;min-width:0}.chatlist-top{display:flex;justify-content:space-between;gap:8px}.chatlist-name{font-size:13px;font-weight:850;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chatlist-time{color:var(--dim);font:800 8px ui-monospace,SFMono-Regular,Menlo,monospace}.chatlist-preview{font-size:11px;color:var(--muted);margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-dot{width:7px;height:7px;border-radius:50%;background:var(--pink);box-shadow:0 0 10px var(--pink)}
/* thread */
.thread-title-wrap{flex:1;min-width:0}.thread-title-wrap h1{font-size:14px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-sub{display:block;color:var(--dim);font:800 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.10em;margin-top:3px}.thread-body{padding:16px 13px 28px;display:flex;flex-direction:column;gap:10px}.row{display:flex;flex-direction:column;max-width:89%;min-width:0;animation:msgIn .20s ease-out}.row.mine{align-self:flex-end;align-items:flex-end}.row.theirs{align-self:flex-start;align-items:flex-start}.bubble{max-width:100%;word-break:break-word;overflow-wrap:anywhere;border:1px solid rgba(255,255,255,.065);border-radius:16px;padding:10px 12px;background:linear-gradient(145deg,#12101b,#0b0910);box-shadow:0 8px 24px rgba(0,0,0,.20)}.bubble.mine{background:linear-gradient(135deg,rgba(255,57,184,.90),rgba(116,74,255,.94));border-color:rgba(255,255,255,.14);box-shadow:0 7px 26px rgba(255,57,184,.17)}.bubble.private.theirs{border-color:rgba(69,232,255,.25);background:linear-gradient(145deg,rgba(17,32,40,.92),rgba(9,12,17,.98))}.bubble.private.mine{background:linear-gradient(135deg,rgba(62,188,255,.85),rgba(118,78,255,.95))}.bubble .text{font-size:13px;line-height:1.43;margin:0}.bubble .translation{font-size:11px;color:var(--muted);margin:7px 0 0;padding-top:7px;border-top:1px solid rgba(255,255,255,.09)}.bubble.mine .translation{color:rgba(255,255,255,.82)}.bubble .tag{margin-bottom:4px;color:var(--cyan);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase}.meta{font:800 7px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--dim);margin:3px 6px 0}.photo-notice{align-self:stretch;display:flex;gap:11px;align-items:center;padding:13px;border:1px solid rgba(255,57,184,.28);border-radius:17px;background:linear-gradient(135deg,rgba(255,57,184,.08),rgba(139,92,255,.08),rgba(5,5,10,.76));box-shadow:inset 0 0 25px rgba(139,92,255,.04)}.photo-notice-icon{width:43px;height:43px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,rgba(255,57,184,.20),rgba(139,92,255,.20));border:1px solid var(--line2);font-size:21px}.photo-notice b{display:block;color:var(--pink);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em}.photo-notice span{display:block;margin-top:4px;font-size:12px;font-weight:800}.photo-notice small{display:block;margin-top:4px;color:var(--muted);font-size:9px;line-height:1.35}
.composer{flex-shrink:0;border-top:1px solid var(--line);background:rgba(7,6,12,.95);padding:8px 12px calc(9px + var(--safe-bottom));backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.quickreplies{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.quickreplies::-webkit-scrollbar{display:none}.quickreplies button,.mini-btn{white-space:nowrap;font-size:9px;font-weight:850;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.035);border:1px solid var(--line);color:#ddd4e7}.toggle{display:flex;gap:4px;background:#05050a;border:1px solid rgba(255,255,255,.05);border-radius:11px;padding:3px;margin-bottom:7px}.toggle button{flex:1;border:0;border-radius:8px;padding:6px;background:transparent;color:var(--dim);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.07em}.toggle button.active.pub{background:rgba(139,92,255,.13);color:#ddd5ff}.toggle button.active.priv{background:linear-gradient(90deg,rgba(69,232,255,.14),rgba(139,92,255,.18));color:var(--cyan)}.toggle button.active.pvt{background:linear-gradient(90deg,rgba(255,57,184,.18),rgba(168,85,247,.24));color:#fff;box-shadow:inset 0 0 0 1px rgba(255,57,184,.24),0 0 12px rgba(255,57,184,.12)}.inputrow{display:flex;align-items:center;gap:7px}.inputrow #replyInput{flex:1;min-width:0;height:42px;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;white-space:nowrap;background:#07070c;border:1px solid var(--line);color:var(--text);border-radius:13px;padding:10px 12px;font-size:16px;line-height:20px;outline:none;-webkit-user-select:text;user-select:text;-webkit-overflow-scrolling:touch}.inputrow #replyInput:focus{border-color:rgba(255,57,184,.55);box-shadow:0 0 0 3px rgba(255,57,184,.06)}.inputrow #replyInput:empty:before{content:attr(data-placeholder);color:var(--dim);pointer-events:none}.send-btn{width:40px;height:40px;border:1px solid rgba(255,255,255,.12);border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--pink),var(--violet));box-shadow:0 0 20px rgba(255,57,184,.22);font-weight:950}
/* viewers */
.users-header{position:sticky;top:0;z-index:15;padding:calc(13px + var(--safe-top)) 15px 12px;background:linear-gradient(180deg,rgba(7,6,12,.98),rgba(7,6,12,.88));border-bottom:1px solid var(--line);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.users-head-row{display:flex;align-items:center;justify-content:space-between}.users-title{font-weight:950;font-size:18px}.users-title small{display:block;margin-top:3px;color:var(--cyan);font:800 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em}.user-count{padding:7px 10px;border:1px solid rgba(69,232,255,.22);border-radius:999px;color:var(--cyan);background:rgba(69,232,255,.035);font:900 9px ui-monospace,SFMono-Regular,Menlo,monospace}.users-toolbar{display:flex;gap:8px;margin-top:11px}.users-toolbar button,.control-btn{flex:1;border:1px solid var(--line);background:rgba(255,255,255,.03);color:#e9e0f0;border-radius:11px;padding:9px;font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase}.users-toolbar button.primary,.control-btn.primary{background:linear-gradient(90deg,rgba(255,57,184,.13),rgba(139,92,255,.13));border-color:rgba(255,57,184,.30)}.user-row{min-height:58px;position:relative;display:flex;align-items:center;gap:10px;padding:11px 15px;border-bottom:1px solid rgba(255,255,255,.045);background:rgba(255,255,255,.008);transition:.15s}.user-row.me-row{background:rgba(139,92,255,.08);border-left:2px solid rgba(255,57,184,.55)}.color-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;box-shadow:0 0 9px currentColor}.user-name{flex:1;font-size:13px;font-weight:800}.viewer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.viewer-badge{color:var(--cyan);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.greet-hint{font-size:14px;opacity:.7}
/* settings / voice */
.voice-hero{margin:14px 15px;padding:17px;border:1px solid rgba(255,57,184,.24);border-radius:19px;background:linear-gradient(135deg,rgba(255,57,184,.09),rgba(69,232,255,.035),rgba(255,255,255,.018));box-shadow:var(--glow)}.voice-hero b{display:block;color:var(--pink);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.17em}.voice-hero strong{display:block;margin-top:5px;font-size:21px}.voice-hero span{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.45}.voice-actions{display:flex;gap:8px;margin-top:12px}.voice-actions button{flex:1;border:1px solid var(--line);border-radius:11px;padding:9px;background:rgba(255,255,255,.035);color:#eee;font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace}.voice-actions button.primary{background:linear-gradient(135deg,var(--pink),var(--violet));border-color:transparent}.settings-card{margin:14px 15px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.038),rgba(255,255,255,.012));box-shadow:var(--glow);overflow:hidden}.settings-card:before{content:"SYSTEM // CONTROL";display:block;padding:11px 14px;border-bottom:1px solid var(--line);color:var(--cyan);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.17em}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px}.settings-row+.settings-row{border-top:1px solid rgba(255,255,255,.05)}.settings-label{font-size:12px;font-weight:850;margin:0}.settings-sub{font-size:9px;color:var(--muted);margin:3px 0 0;line-height:1.35}.switch{width:45px;height:26px;border-radius:999px;position:relative;border:1px solid rgba(255,255,255,.08);flex-shrink:0;background:#0b0910}.switch.on{background:linear-gradient(90deg,var(--pink),var(--violet));box-shadow:0 0 14px rgba(255,57,184,.35)}.switch .knob{width:20px;height:20px;border-radius:50%;background:#fff;position:absolute;top:2px;transition:left .16s;box-shadow:0 1px 5px rgba(0,0,0,.35)}.switch.on .knob{left:22px}.switch.off .knob{left:2px}select{background:#0b0910;color:#e9e1ef;border:1px solid var(--line);border-radius:9px;padding:7px 9px;font-size:10px;font-weight:800;outline:none;max-width:145px}.state-pill{padding:6px 8px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace}.state-pill.live{color:var(--green);border-color:rgba(112,255,174,.24);background:rgba(112,255,174,.04)}.danger{color:#ff8dbb!important}
/* bottom nav */
.tabbar{flex:0 0 auto;position:relative;z-index:30;min-height:59px;display:flex;justify-content:space-around;align-items:center;padding:7px 5px calc(7px + var(--safe-bottom));background:rgba(6,5,11,.97);border-top:1px solid var(--line);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.tabbar button{position:relative;width:25%;height:45px;background:none;border:0;color:#62596c;font-size:0}.tabbar button:before{font-size:19px;line-height:1}.tabbar button[data-tab="list"]:before{content:"⌁"}.tabbar button[data-tab="users"]:before{content:"◉"}.tabbar button[data-tab="voice"]:before{content:"◒"}.tabbar button[data-tab="settings"]:before{content:"⚙"}.tabbar button.active{color:#fff;text-shadow:0 0 13px rgba(255,57,184,.75)}.tabbar button.active:after{content:"";position:absolute;left:50%;bottom:2px;transform:translateX(-50%);width:21px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--pink),var(--violet));box-shadow:0 0 10px var(--pink)}
/* misc */
.sparkle{position:fixed;left:0;bottom:-40px;z-index:0;pointer-events:none;user-select:none;line-height:1;will-change:transform,opacity;animation-name:sparkleFloat,sparklePulse;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite}.empty{padding:62px 25px;text-align:center;color:var(--dim);font:800 10px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.banner{position:sticky;top:0;z-index:40;padding:7px 12px;text-align:center;background:rgba(255,57,184,.10);border-bottom:1px solid var(--line2);color:#ff9ad6;font:800 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.banner.hidden{display:none}.toast{position:fixed;top:calc(8px + var(--safe-top));left:18px;right:18px;z-index:100;display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line2);border-radius:13px;background:rgba(14,10,20,.95);box-shadow:0 8px 24px rgba(0,0,0,.42),0 0 18px rgba(255,57,184,.08);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);cursor:pointer;animation:toastIn .18s ease-out}.toast .icon{font-size:14px}.toast b{color:#ff9cda;font-size:11px}.toast span.body{display:block;max-width:68vw;font-size:10px;color:#e9e1ef;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:25px;background:radial-gradient(80% 60% at 50% 0%,rgba(139,92,255,.22),transparent 68%),#05040a}.auth-card{width:min(390px,100%);border:1px solid var(--line);border-radius:24px;padding:28px 22px;background:rgba(10,8,15,.95);box-shadow:0 0 48px rgba(139,92,255,.13)}
.tabbar button .tab-icon{width:21px;height:21px;display:block;transition:.18s ease;filter:drop-shadow(0 0 0 transparent)}.tabbar button .tab-icon path,.tabbar button .tab-icon circle,.tabbar button .tab-icon rect,.tabbar button .tab-icon line{stroke:currentColor}.tabbar button.active .tab-icon{transform:translateY(-1px);filter:drop-shadow(0 0 8px rgba(255,57,184,.65))}.header-icon{width:19px;height:19px;display:block}.header-icon *{stroke:currentColor}.chat-head-actions{display:flex;align-items:center;gap:7px}.read-all-btn{display:flex;align-items:center;gap:5px;min-height:34px;padding:0 9px;border:1px solid rgba(112,255,174,.20);border-radius:11px;background:rgba(112,255,174,.045);color:#dfffee;font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.07em;white-space:nowrap}.read-all-btn b{min-width:16px;padding:2px 4px;border-radius:999px;background:rgba(255,57,184,.14);color:var(--pink);font-size:7px;text-align:center}.read-all-btn:disabled{opacity:.42;filter:saturate(.65)}.chat-head .icon-btn{display:grid;place-items:center}.online-pill{white-space:nowrap}.screen.active{touch-action:pan-y}.screen.active .topbar{position:sticky;top:0}.settings-card:last-of-type{margin-bottom:18px}
@keyframes sweep{0%,65%,100%{transform:translateX(-80%)}80%{transform:translateX(80%)}}@keyframes sparkleFloat{0%{transform:translate3d(0,0,0) rotate(0deg);opacity:0}10%{opacity:.75}100%{transform:translate3d(0,-115vh,0) rotate(18deg);opacity:0}}@keyframes sparklePulse{0%,100%{filter:brightness(.8)}50%{filter:brightness(1.35)}}@keyframes msgIn{from{transform:translateY(5px);opacity:0}to{transform:none;opacity:1}}@keyframes toastIn{from{transform:translateY(-12px);opacity:0}to{transform:none;opacity:1}}@media(min-width:600px){body{align-items:center}.screen,.tabbar{width:520px;max-width:520px}.screen{margin:0 auto}.tabbar{margin:0 auto}.banner{position:fixed;top:0;left:50%;width:520px;max-width:520px;transform:translateX(-50%)}}

/* PLASMA 5.1 // focused mobile layout */
.chat-topbar{padding-bottom:10px}.online-pill{display:flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em}.online-pill span{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 11px var(--green)}.online-pill b{color:#fff;font-size:10px}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:20px 15px 14px}.chat-head h1,.settings-intro h1{margin:5px 0 0;font-size:27px;letter-spacing:-.045em}.icon-btn{width:42px;height:42px;border-radius:14px;border:1px solid rgba(255,57,184,.28);background:linear-gradient(145deg,rgba(255,57,184,.11),rgba(139,92,255,.09));color:#fff;font-size:18px;box-shadow:0 0 24px rgba(255,57,184,.08)}.chat-home-list{padding-bottom:14px}.chat-home-list .chatlist-row{padding:14px 15px;min-height:70px}.chat-home-list .avatar{width:46px;height:46px}.chat-home-list .chatlist-name{font-size:14px}.chat-home-list .chatlist-preview{font-size:11px}.online-hero{margin:14px 15px 10px;padding:18px;border-radius:22px;border:1px solid rgba(69,232,255,.19);background:radial-gradient(100% 120% at 100% 0,rgba(255,57,184,.13),transparent 58%),linear-gradient(145deg,rgba(69,232,255,.06),rgba(255,255,255,.018));box-shadow:var(--glow)}.online-big{display:flex;align-items:flex-end;gap:10px;margin-top:7px}.online-big strong{font-size:45px;line-height:.92;letter-spacing:-.07em}.online-big span{color:var(--muted);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em;margin-bottom:3px}.online-signal{margin-top:12px;color:var(--green);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.10em}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 15px 12px}.quick-grid button{min-height:46px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.028);color:#eee;font-weight:800;font-size:11px}.quick-grid button:active{background:rgba(255,57,184,.13);border-color:rgba(255,57,184,.3)}.online-actions{display:flex;gap:8px;padding:0 15px 5px}.online-actions .control-btn{min-height:40px}.stats-hero{margin:14px 15px 10px;padding:20px;border-radius:22px;border:1px solid rgba(255,57,184,.27);background:radial-gradient(90% 130% at 100% 0,rgba(139,92,255,.16),transparent 60%),linear-gradient(145deg,rgba(255,57,184,.09),rgba(255,255,255,.015));box-shadow:var(--glow)}.stats-money{margin-top:9px;font-size:42px;line-height:.95;font-weight:950;letter-spacing:-.06em;background:linear-gradient(90deg,#fff,var(--pink),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.stats-money-sub{margin-top:8px;color:var(--muted);font:800 9px ui-monospace,SFMono-Regular,Menlo,monospace}.stats-money-sub b{color:#fff;font-size:11px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:0 15px 12px}.stat-card{padding:14px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.038),rgba(255,255,255,.008));box-shadow:var(--glow)}.stat-card.hot{border-color:rgba(255,57,184,.28)}.stat-card b{display:block;font-size:22px;line-height:1}.stat-card span{display:block;margin-top:5px;color:var(--dim);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}.events-card{margin:0 15px 20px;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:rgba(255,255,255,.015)}.event-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border-bottom:1px solid rgba(255,255,255,.045)}.event-row:last-child{border-bottom:0}.event-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:rgba(255,57,184,.09);font-size:13px}.event-main{min-width:0;flex:1}.event-main b{display:block;font-size:10px}.event-main span{display:block;margin-top:2px;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-time{color:var(--dim);font:800 7px ui-monospace,SFMono-Regular,Menlo,monospace}.earnings-summary{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px;padding:0 15px 12px}.earnings-mini{padding:12px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.012));box-shadow:var(--glow);min-width:0}.earnings-mini.primary{border-color:rgba(112,255,174,.2);background:linear-gradient(145deg,rgba(112,255,174,.07),rgba(255,255,255,.01))}.earnings-mini b{display:block;font-size:17px;line-height:1;letter-spacing:-.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.earnings-mini span{display:block;margin-top:5px;color:var(--dim);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.11em}.earnings-history-card{margin:0 15px 18px;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:rgba(255,255,255,.015);box-shadow:var(--glow)}.earnings-history-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}.earnings-history-head .title-wrap b{display:block;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.earnings-history-head .title-wrap span{display:block;margin-top:4px;color:var(--dim);font:800 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.earnings-reset{min-height:34px;padding:0 11px;border-radius:10px;border:1px solid rgba(255,80,120,.28);background:rgba(255,80,120,.07);color:#ff8aa0;font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace}.earnings-reset:active{background:rgba(255,80,120,.14)}.earnings-list{display:flex;flex-direction:column}.earnings-day{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border-bottom:1px solid rgba(255,255,255,.045)}.earnings-day:last-child{border-bottom:0}.earnings-day.is-today{background:linear-gradient(90deg,rgba(255,57,184,.075),transparent 75%)}.earnings-date{min-width:0}.earnings-date strong{display:block;font-size:11px}.earnings-date span{display:block;margin-top:4px;color:var(--muted);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.earnings-value{text-align:right;flex:0 0 auto}.earnings-value b{display:block;color:var(--green);font-size:16px;letter-spacing:-.03em}.earnings-value span{display:block;margin-top:3px;color:var(--dim);font:800 7px ui-monospace,SFMono-Regular,Menlo,monospace}.earnings-empty{padding:18px 14px;color:var(--dim);font-size:9px;line-height:1.5}.settings-actions{display:grid;gap:8px;padding:12px 14px 14px}.settings-action-btn{min-height:42px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);color:#fff;font-weight:850;text-align:left;padding:0 12px}.settings-action-btn.danger{border-color:rgba(255,80,120,.28);background:rgba(255,80,120,.05);color:#ff8aa0}.settings-action-btn span{display:block;color:var(--dim);font:800 7px ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:3px}.settings-action-row{display:flex;align-items:center;gap:10px}.settings-action-row>div{flex:1;min-width:0}.settings-action-row .control-btn{flex:0 0 auto}.settings-card.compact-card{margin-top:0}.settings-foot{padding-top:10px}
.settings-intro{padding:20px 15px 10px}.settings-intro p{margin:6px 0 0;color:var(--muted);font-size:10px;line-height:1.4}.card-title{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--cyan);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em}.card-title b{color:var(--green);font-size:7px}.settings-card{margin:0 15px 12px}.settings-row{padding:13px 14px}.control-btn.compact{flex:0 0 auto;padding:8px 10px}.settings-foot{text-align:center;padding:8px 15px 28px;color:var(--dim);font:900 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em}.settings-foot span{color:var(--pink);margin-left:8px}.tabbar{min-height:65px;padding:5px 5px calc(5px + var(--safe-bottom));gap:2px}.tabbar button{height:51px;width:25%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#62596c}.tabbar button:before{display:none}.tabbar button span{font-size:18px;line-height:1}.tabbar button small{font:900 6px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.10em}.tabbar button.active{color:#fff}.tabbar button.active span{text-shadow:0 0 14px var(--pink)}.tabbar button.active:after{bottom:1px;width:24px;height:2px}.thread-topbar{position:sticky}.screen.active#screen-thread{padding-bottom:0}.screen.active#screen-thread + .tabbar{display:none}.composer{position:sticky;bottom:0;z-index:25;padding:7px 10px calc(2px + var(--safe-bottom-live,var(--safe-bottom)));border-top:1px solid rgba(255,57,184,.18);background:rgba(7,6,12,.97)}.composer .quickreplies{padding-bottom:6px}.composer .toggle{margin-bottom:6px}.inputrow #replyInput{height:42px;font-size:16px;padding:9px 12px}.send-btn{height:42px;width:42px}.thread-body{padding-bottom:12px!important}.thread-body:after{content:"";display:block;height:2px;flex:0 0 2px}.screen.active#screen-thread{min-height:0}.screen.active#screen-thread .thread-body{overscroll-behavior-y:contain}

.voice-cache-row{display:flex;align-items:center;gap:12px}.voice-cache-card .settings-row{padding-top:12px;padding-bottom:14px}.voice-cache-track{height:4px;margin-top:8px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}.voice-cache-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--pink));box-shadow:0 0 10px rgba(255,57,184,.45);transition:width .25s ease}.danger-btn{border-color:rgba(255,80,120,.3)}.danger-btn:disabled{opacity:.5}.voice-sender{color:var(--cyan)!important}.voice-history-sentinel{display:block;width:100%;padding:10px 12px;text-align:center;color:var(--dim);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.10em;user-select:none;background:rgba(255,255,255,.018);border:1px solid rgba(255,255,255,.05);border-radius:12px;cursor:pointer}.voice-history-sentinel:active{border-color:rgba(255,57,184,.3);color:#fff}
.thread-body{scroll-behavior:auto!important}

/* Subtle Dynamic-Island halo: the real island remains untouched, while the
   Plasma shell visually acknowledges the hardware cutout instead of leaving
   a dead black rectangle at the top of the PWA. */
html.pwa-standalone::before{
  content:"";
  position:fixed;
  z-index:2;
  top:-12px;
  left:50%;
  width:190px;
  height:70px;
  transform:translateX(-50%);
  pointer-events:none;
  border-radius:0 0 40px 40px;
  background:radial-gradient(ellipse at center top,rgba(255,57,184,.16) 0%,rgba(139,92,255,.10) 34%,rgba(69,232,255,.045) 52%,transparent 74%);
  filter:blur(8px);
}


.screen{padding-bottom:calc(18px + var(--safe-bottom))}
.screen.active#screen-thread{padding-bottom:0}
.settings-card{border-radius:19px;box-shadow:0 14px 42px rgba(0,0,0,.28),0 0 24px rgba(139,92,255,.07)}
.settings-row{min-height:54px}
.settings-row>select,.settings-row>.control-btn{width:118px;min-width:118px;min-height:38px;display:flex;align-items:center;justify-content:center}
.settings-row>.switch{width:48px;height:28px}
.settings-row.stacked{display:block;padding:14px}
.settings-row.stacked .settings-label{margin:0 0 4px}
.settings-input{width:100%;height:42px;margin-top:10px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);color:var(--text);outline:none;font-size:13px}
.settings-input:focus{border-color:rgba(255,57,184,.55);box-shadow:0 0 0 3px rgba(255,57,184,.08)}
.settings-action-btn.primary{border-color:rgba(255,57,184,.38);background:linear-gradient(135deg,rgba(255,57,184,.12),rgba(139,92,255,.12))}
.settings-credential-status{min-height:16px;padding:0 14px 12px;color:var(--green);font-size:9px;text-align:center}
.web-mode .web-mode-only{display:grid}
.web-mode .settings-actions.web-mode-only{display:grid}
.notify-prompt{position:fixed;inset:0;z-index:1100;display:none;align-items:flex-end;justify-content:center;padding:18px 15px calc(18px + var(--safe-bottom));background:rgba(4,3,8,.63);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.notify-prompt.show{display:flex}
.notify-prompt-card{width:min(430px,100%);padding:22px 18px 16px;border:1px solid rgba(255,57,184,.30);border-radius:24px;background:linear-gradient(160deg,rgba(22,12,34,.98),rgba(7,5,12,.98));box-shadow:0 22px 60px rgba(0,0,0,.55),0 0 34px rgba(255,57,184,.12)}
.notify-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;margin-bottom:13px;color:#fff;font-size:21px;background:linear-gradient(145deg,var(--pink),var(--violet));box-shadow:0 0 26px rgba(255,57,184,.25)}
.notify-kicker{color:var(--cyan);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em}
.notify-prompt-card h2{margin:6px 0 8px;font-size:22px;letter-spacing:-.035em}
.notify-prompt-card p{margin:0 0 16px;color:var(--muted);font-size:10px;line-height:1.5}
.notify-primary,.notify-secondary{width:100%;height:44px;border-radius:12px;font:900 9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
.notify-primary{color:#fff;background:linear-gradient(135deg,var(--pink),var(--violet));box-shadow:0 10px 28px rgba(255,57,184,.18)}
.notify-secondary{margin-top:7px;color:var(--muted);background:rgba(255,255,255,.025);border:1px solid var(--line)}
.notify-ok{color:var(--green)!important}
@media (max-width:390px){.settings-row>select,.settings-row>.control-btn{width:108px;min-width:108px}.settings-intro{padding-top:14px}}
.web-auth{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;background:
 radial-gradient(80% 60% at 50% -5%,rgba(139,92,255,.28),transparent 64%),
 radial-gradient(70% 55% at 100% 75%,rgba(255,57,184,.13),transparent 72%),#05040a;overflow:auto}
.web-auth.show{display:flex}.web-auth-card{width:min(410px,100%);padding:28px 22px 20px;border:1px solid rgba(255,57,184,.25);border-radius:28px;background:linear-gradient(155deg,rgba(19,12,31,.96),rgba(7,5,12,.98));box-shadow:0 28px 80px rgba(0,0,0,.56),0 0 60px rgba(139,92,255,.13);position:relative;overflow:hidden}.web-auth-card:after{content:"";position:absolute;left:-20%;right:-20%;bottom:-65px;height:140px;background:radial-gradient(closest-side,rgba(255,57,184,.18),transparent);filter:blur(20px);pointer-events:none}.web-auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}.web-auth-icon{width:58px;height:58px;border-radius:18px;flex:0 0 58px;border:1px solid rgba(255,57,184,.42);background:radial-gradient(circle at 38% 28%,rgba(255,255,255,.14),transparent 28%),linear-gradient(145deg,rgba(255,57,184,.20),rgba(139,92,255,.18));display:grid;place-items:center;box-shadow:0 0 32px rgba(255,57,184,.16)}.web-auth-icon svg{width:34px;height:34px}.web-auth-kicker{color:var(--cyan);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.19em}.web-auth-title{margin:2px 0 0;font-size:25px;letter-spacing:-.04em;font-weight:950}.web-auth-title span{background:linear-gradient(90deg,#fff,var(--pink),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.web-auth-sub{margin:0 0 18px;color:var(--muted);font-size:11px;line-height:1.5}.web-auth-label{display:block;color:var(--dim);font:900 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em;margin:12px 0 7px}.web-auth-input{width:100%;height:48px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.035);color:var(--text);padding:0 14px;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.web-auth-input:focus{border-color:rgba(255,57,184,.5);box-shadow:0 0 0 3px rgba(255,57,184,.09)}.web-auth-submit{width:100%;height:50px;margin-top:16px;border:1px solid rgba(255,57,184,.45);border-radius:15px;color:#fff;font-weight:900;background:linear-gradient(135deg,#ff39b8,#8b5cff);box-shadow:0 12px 32px rgba(255,57,184,.18)}.web-auth-error{min-height:18px;margin-top:9px;color:#ff9abf;font-size:10px;text-align:center}.web-auth-foot{margin-top:16px;text-align:center;color:var(--dim);font:800 7px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}.web-install-hint{margin-top:11px;color:var(--dim);font-size:9px;line-height:1.4;text-align:center}.web-logout{display:none;margin-top:12px}.web-mode-only{display:none}
/* Shared touch layout: a single viewport owner for Safari, PWA and Telegram. */
html,html.pwa-standalone{height:100vh;min-height:0;overflow:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,html.pwa-standalone body{
 position:fixed;inset:var(--app-visual-top,0px) 0 auto;
 width:100%;height:var(--app-height,100dvh);min-height:0;max-height:none;
}
#screen-thread.active{overflow:hidden;height:auto;min-height:0}
.thread-topbar{position:relative;flex:0 0 auto}
#screen-thread .thread-body{overflow-anchor:none}
.thread-body>.row,.thread-body>.photo-notice,.voice-history-sentinel{flex-shrink:0}
#screen-thread .composer{position:relative;bottom:auto;transform:none;flex:0 0 auto;padding:6px 14px calc(6px + var(--safe-bottom-live,var(--safe-bottom)))}
html.keyboard-open #screen-thread .composer{padding-bottom:0}
html.keyboard-open .composer .quickreplies{display:none}
html.keyboard-open .thread-topbar{padding-top:calc(8px + var(--safe-top));padding-bottom:8px}
html.keyboard-open .sparkle{visibility:hidden}
/* Plasma: readable surfaces, consistent spacing and generous touch targets. */
body{background:radial-gradient(90% 50% at 60% -15%,rgba(139,92,255,.2),transparent 75%),#090711}
body:after{display:none}
.screen{padding-bottom:22px}
.topbar{padding-right:20px;padding-left:20px;background:rgba(12,9,19,.93)}
.brandmark{font-size:11px;letter-spacing:.12em}
.status-chip,.online-pill{font-size:10px;letter-spacing:.02em}
.chat-head,.settings-intro{padding:18px 16px 14px}
.chat-head h1,.settings-intro h1{font-size:23px;font-weight:650;line-height:1.2;letter-spacing:-.035em;margin:7px 0 0}
.eyebrow{font-size:10px;letter-spacing:.12em;color:#c9afff}
.chat-head-actions{gap:8px}
.read-all-btn{min-height:44px;font-size:10px;padding:8px 10px}
.icon-btn,.back{min-width:44px;min-height:44px;border-radius:14px}
.back{background:rgba(139,92,255,.08);border:1px solid var(--line);color:#dfcaff}
.chatlist-row{margin:0 12px 4px;padding:10px 11px;border:1px solid transparent;border-radius:18px;background:rgba(255,255,255,.025)}
.chatlist-row.unread{border-color:rgba(255,57,184,.17);background:linear-gradient(105deg,rgba(255,57,184,.08),rgba(139,92,255,.04))}
.chatlist-row.unread:before{display:none}
.chatlist-name{font-size:14px;font-weight:600}.chatlist-preview{font-size:12px;line-height:1.4}.chatlist-time{font-size:10px}
.avatar{width:38px;height:38px;border-radius:12px;box-shadow:none}.avatar:after{animation-duration:10s}
.thread-title-wrap h1{font-size:15px;font-weight:600}.thread-sub{font-family:inherit;font-weight:500;font-size:11px;letter-spacing:0}
.thread-body{padding:10px 12px;gap:6px}.bubble{padding:8px 10px;border-radius:15px;box-shadow:0 3px 12px rgba(0,0,0,.12)}
.bubble .text{font-size:14px;font-weight:400;line-height:1.4}.bubble .translation{font-size:12px;font-weight:400;line-height:1.45;margin-top:5px;padding-top:5px}
.bubble .tag{font-size:9px;letter-spacing:.07em}.row{max-width:91%}.row.mine .bubble{border-bottom-right-radius:6px}.row.theirs .bubble{border-bottom-left-radius:6px}
.voice-audio{min-width:210px;color-scheme:dark}.voice-history-sentinel{min-height:44px;color:#cdb7ef;font-size:11px;letter-spacing:0;border-color:rgba(174,132,255,.2);background:rgba(139,92,255,.07);margin:4px 0}
.voice-history-sentinel:disabled{opacity:.7;cursor:progress}
.quickreplies{gap:6px}.quickreplies button{min-height:30px;font-size:11px;font-weight:500;padding:5px 10px}
.composer .quickreplies{padding-bottom:4px}.composer .toggle{margin-bottom:5px;border-radius:13px}.toggle button{min-height:32px;font-family:inherit;font-weight:500;font-size:11px;letter-spacing:0}
.inputrow{gap:9px}.inputrow #replyInput{height:46px;border-radius:16px;background:rgba(255,255,255,.045);padding:12px;font-size:16px}
.send-btn{width:46px;height:46px;flex:0 0 46px;border-radius:16px;font-size:19px;box-shadow:0 4px 18px rgba(255,57,184,.16)}
.tabbar{flex:0 0 auto;min-height:60px;padding:5px 12px calc(5px + var(--safe-bottom-live,var(--safe-bottom)));border-top:1px solid var(--line);background:rgba(12,9,19,.97)}
.tabbar button{height:46px;border-radius:15px;gap:5px}.tabbar button small{font-size:10px;letter-spacing:0;font-family:inherit;font-weight:500}.tabbar button.active{background:rgba(139,92,255,.1);color:#ddc6ff}.tabbar button.active:after{display:none}
.settings-intro{padding:14px 16px 12px}.settings-intro h1{font-size:21px;margin:0}.settings-intro p{font-size:11px;line-height:1.4;margin-top:5px;max-width:330px}
.settings-card{margin:0 14px 9px;border-radius:14px;background:linear-gradient(135deg,rgba(173,139,223,.06),rgba(255,255,255,.015));box-shadow:none}
.settings-card:before{display:none}.card-title{padding:8px 12px;font-family:inherit;font-weight:600;font-size:11.5px;letter-spacing:0;color:#d0b9f4;background:rgba(139,92,255,.035)}.card-title b{font-size:9px;letter-spacing:.02em}
.settings-row{min-height:52px;padding:7px 12px;gap:10px;align-items:center}.settings-row>div:first-child{flex:1;min-width:0}
.settings-label{font-size:12.5px!important;font-weight:500;line-height:1.3;margin:0 0 2px}.settings-sub{font-size:10.5px!important;font-weight:400!important;line-height:1.35!important;letter-spacing:0!important;margin:0;color:var(--muted)}
.settings-row>select,.settings-row>.control-btn{width:112px;min-width:112px;min-height:38px;font-family:inherit;font-weight:500;font-size:12px;border-radius:13px;background-color:#171120;color:#eee6fa;border:1px solid var(--line);padding:9px}
.settings-row>select{font-size:16px;font-weight:400}.settings-row>.switch{width:50px;height:30px;flex:0 0 50px;position:relative}.settings-row>.switch:after{content:"";position:absolute;inset:-7px 0}
.settings-input{font-size:16px;height:42px;margin-top:6px}.settings-row.stacked{padding:10px 12px}
.settings-actions{padding:8px 10px;gap:6px}.settings-action-btn{padding:8px 10px;font-size:11.5px;font-weight:500;line-height:1.4;min-height:44px}.settings-action-btn span{font-size:10.5px;font-weight:400;line-height:1.35;letter-spacing:0;margin-top:3px;color:var(--muted)}
.settings-action-row strong{font-size:20px}.settings-action-btn span{font-family:inherit}.settings-credential-status{font-size:12px}.state-pill{font-size:11px;white-space:nowrap}.settings-foot{font-size:10px;letter-spacing:.07em}
.section-head{padding:18px 20px 12px}.section-head b{font-size:12px;letter-spacing:.04em}.section-head span{font-size:10px}.user-row{min-height:60px}.username{font-size:14px}
.stat-card span,.earnings-mini span{font-size:10px;letter-spacing:.05em}.stat-card{border-radius:14px;padding:12px}.stat-card b{font-size:20px;font-weight:600}.stats-money-sub{font-size:11px}.event-main b{font-size:12px}.event-main span{font-size:11px}.event-time{font-size:10px}
.earnings-date strong{font-size:13px}.earnings-date span{font-size:10px;white-space:normal;line-height:1.5}.earnings-value span{font-size:9px}.earnings-history-head .title-wrap b{font-size:12px;letter-spacing:0}.earnings-reset{min-height:44px;font-size:10px}
.web-auth-input{font-size:16px}.web-auth-label{font-size:10px}.web-auth-sub,.web-install-hint{font-size:12px}.web-auth-error{font-size:12px}.web-auth-foot{font-size:9px}.empty{font-size:14px;font-weight:400;line-height:1.6;padding:48px 24px}
.sparkle.money-symbol{color:#70ffae;font-family:Georgia,serif;font-weight:900;text-shadow:0 0 7px rgba(112,255,174,.65),0 2px 1px #17683c}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
@media(max-width:374px){.settings-row{gap:8px;padding:10px}.settings-row>select,.settings-row>.control-btn{width:108px;min-width:108px}.chat-head{padding:20px 16px}.read-all-btn span{display:none}.bubble .text{font-size:14px}.voice-audio{min-width:185px}}
@media(prefers-reduced-motion:reduce){.sparkle{display:none}.avatar:after,.row,.toast{animation:none!important}*{scroll-behavior:auto!important}}

/* Standard system typography; decorative branding never sets the reading font. */
body,button,input,select{font-family:var(--ui-font);font-weight:400}
.brandmark,.eyebrow,.status-chip,.online-pill,.chatlist-time,.avatar,.bubble .tag,
.quickreplies button,.voice-history-sentinel,.card-title b,.settings-foot,.state-pill,
.section-head b,.section-head span,.stat-card span,.earnings-mini span,.earnings-value span,
.earnings-history-head .title-wrap span,.earnings-reset,.read-all-btn,.settings-action-btn span{
 font-family:var(--ui-font);font-weight:500;letter-spacing:0;
}
.brandmark{font-weight:650;letter-spacing:.08em}
.settings-row .control-btn{text-transform:none;letter-spacing:0}
.settings-row>select,.settings-row>.control-btn{flex:0 0 auto}
#webLogoutWrap{padding:0;margin:0 14px 12px}
#webLogoutWrap>.settings-action-btn{width:100%}
.settings-card.settings-access{display:none}
.web-mode .settings-card.settings-access{display:block}
.settings-access>summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;padding:10px 12px;min-height:52px}
.settings-access>summary::-webkit-details-marker{display:none}
.settings-access>summary>div{flex:1;min-width:0}
.settings-access>summary b{display:block;font-size:12.5px;font-weight:500}
.settings-access>summary small{display:block;margin-top:2px;font-size:10.5px;color:var(--muted)}
.settings-access>summary:after{content:"⌄";font-size:19px;color:var(--muted);transition:transform .15s}
.settings-access[open]>summary:after{transform:rotate(180deg)}
.settings-access[open]>summary{border-bottom:1px solid var(--line)}
.settings-access .settings-row{min-height:0;border-bottom:0}
.settings-access .settings-label{display:block}
.settings-access .settings-credential-status:empty{display:none}
.sparkle{opacity:.55}

/* Product surfaces. Viewport and keyboard geometry above are shared by all
   modes; visual rules here deliberately do not recalculate either. */
body { background: var(--bg); font-family: var(--ui-font); }
body:before, html.pwa-standalone:before { display: none; }
button { transition: background-color var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast); }
button:active { transform: none; filter: brightness(1.18); }
button:disabled { cursor: default; opacity: .5; filter: none; }
button:disabled:active { filter: none; }
:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
button:focus-visible { z-index: 2; }
.topbar { background: var(--bg); border-color: var(--line); backdrop-filter: none; -webkit-backdrop-filter: none; }
.topbar:after { left: 16px; right: 16px; width: auto; background: linear-gradient(90deg,transparent,var(--pink),var(--violet),transparent); opacity: .65; }
.brandmark { color: var(--text); font-size: 12px; letter-spacing: .1em; }
.brandmark i { color: var(--violet); }
.online-pill, .status-chip { color: var(--muted); background: var(--panel); border: 1px solid var(--line); padding: 6px 9px; font-size: 10px; }
.online-pill { border-radius: 99px; }
.online-pill span, .status-chip.live:before { box-shadow: none; }
.status-chip.live { color: var(--green); border-color: #38574d; }
.chat-head { padding: 20px 16px 16px; gap: 12px; }
.chat-head h1 { margin: 0; font-size: 26px; font-weight: 650; }
.chat-head .eyebrow { display: none; }
.icon-btn, .back, .read-all-btn { background: var(--panel); border: 1px solid var(--line); color: var(--muted); border-radius: var(--radius-md); box-shadow: none; }
.read-all-btn { font-size: 11px; }
.read-all-btn b { color: var(--violet); background: var(--accent-soft); font-size: 10px; }
.chat-home-list { padding: 0 12px 16px; }
.chat-home-list .chatlist-row { margin: 0; min-height: 72px; padding: 11px 10px; border: 0; border-radius: 16px; background: transparent; cursor: pointer; }
.chat-home-list .chatlist-row:not(:last-child)::after { content: ""; position: absolute; left: 63px; right: 12px; bottom: 0; height: 1px; pointer-events: none; background: linear-gradient(90deg, rgba(192,161,255,.13), rgba(192,161,255,.04) 75%, transparent); }
.chat-home-list .chatlist-row.unread { background: var(--accent-soft); border-radius: var(--radius-md); border-bottom-color: transparent; }
.chat-home-list .avatar { width: 42px; height: 42px; border-radius: var(--radius-md); }
.avatar { background: var(--panel2); color: var(--text); box-shadow: none !important; font-weight: 600; }
.avatar:after { display: none; }
.chat-home-list .chatlist-name { font-size: 14px; font-weight: 600; }
.chat-home-list .chatlist-preview { font-size: 12px; color: var(--muted); margin-top: 5px; }
.chatlist-time { color: var(--dim); font-variant-numeric: tabular-nums; }
.unread-dot { background: var(--violet); box-shadow: none; }
.thread-topbar { gap: 10px; }
.thread-sub { color: var(--muted); }
.bubble { background: #21172c; border: 1px solid transparent; box-shadow: inset 0 1px #ffffff05; border-radius: 20px; padding: 10px 12px; }
.bubble.mine { background: var(--message-public); border-color: transparent; box-shadow: none; }
.bubble.private.theirs { background: linear-gradient(140deg,#25162f,#181021); border-color: #c0a1ff22; }
.bubble.private.mine { background: var(--message-private); border-color: transparent; }
.bubble .text { color: var(--text); font-size: 14px; }
.bubble .translation { color: #bdb0c9; border-color: #ffffff0b; font-size: 12px; }
.bubble.mine .translation { color: #f0e2f8; }
.bubble .tag { color: #f6c8ef; font-size: 9px; font-weight: 600; letter-spacing: .04em; }
.voice-audio { max-width: 100%; border-radius: var(--radius-sm); }
.voice-sender { display: none; }
.voice-history-sentinel { background: var(--panel); border-color: var(--line); color: var(--violet); }
.composer { background: var(--bg); border-color: var(--line); backdrop-filter: none; -webkit-backdrop-filter: none; }
.quickreplies { gap: 8px; }
.quickreplies button { min-height: 36px; background: var(--panel); color: var(--muted); border-color: var(--line); border-radius: var(--radius-sm); }
.composer .toggle { background: var(--panel); border: 0; border-radius: var(--radius-md); gap: 4px; padding: 3px; }
.toggle button { color: var(--muted); min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 6px; border-radius: var(--radius-sm); }
.toggle button.active.pub { color: var(--pink); background: #38182e; }
.toggle button.active.priv { color: var(--violet); background: #281e43; }
.toggle button.active.pvt { color: var(--green); background: #20352e; box-shadow: none; }
.control-icon { width: 16px; height: 16px; flex: 0 0 16px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.inputrow #replyInput { background: var(--panel); border-color: var(--line2); border-radius: var(--radius-md); }
.inputrow #replyInput:focus, .settings-input:focus, .web-auth-input:focus { border-color: var(--violet); box-shadow: 0 0 0 2px #a898ff20; }
.send-btn { display: grid; place-items: center; background: var(--accent-gradient); border-color: #8972de; border-radius: var(--radius-md); box-shadow: none; }
.send-btn .control-icon { width: 21px; height: 21px; }
.tabbar {
  background-color: var(--glass-base);
  background-image: radial-gradient(ellipse at 18% 0%,var(--glass-highlight),transparent 65%),linear-gradient(180deg,#ffffff08,transparent 70%);
  border-color: var(--glass-rim); border-radius: 24px 24px 0 0; gap: 4px;
  box-shadow: inset 0 1px #ffffff0a,0 -8px 28px #05020c24;
}
.tabbar button { color: #bdb4cc; border-radius: var(--radius-md); text-shadow: none; }
.tabbar button.active {
  background: var(--glass-selected); color: #f7eaff;
  box-shadow: inset 0 1px #fff1ff52,inset 0 0 0 1px #e7baff21,inset 0 -1px #b276dd24,0 3px 12px #08030e24;
  text-shadow: 0 1px 5px #ce95f325;
}
.tabbar button.active .tab-icon { transform: none; filter: none; }
.tabbar.glass-nav-ready { touch-action: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.glass-nav-ready button { z-index: 1; }
.glass-nav-ready button.active { background: transparent; box-shadow: none; }
.glass-lens {
  position: absolute; left: 0; top: 0; pointer-events: none; z-index: 0;
  width: var(--lens-width,0px); height: var(--lens-height,0px);
  border-radius: var(--radius-md); background: var(--glass-selected);
  box-shadow: inset 0 1px #fff1ff52,inset 0 0 0 1px #e7baff21,inset 0 -1px #b276dd24,0 3px 12px #08030e24;
  transform: translate3d(var(--lens-x,0px),var(--lens-y,0px),0) scale(var(--lens-scale,1));
  transition: transform 260ms cubic-bezier(.22,.85,.25,1),width 180ms ease,height 180ms ease,opacity 120ms ease;
}
.glass-lens:after { content: ""; position: absolute; inset: 1px; border-radius: inherit; background: radial-gradient(ellipse at 30% 0%,#ffffff21,transparent 65%); }
.glass-held { --lens-scale: 1.04; }
.glass-dragging .glass-lens { transition: opacity 120ms ease; }
.glass-outside .glass-lens { opacity: .45; }
.glass-dragging button.active { color: #bdb4cc; text-shadow: none; }
.glass-dragging button.glass-preview { color: #fff0ff; }
@media (prefers-reduced-motion:reduce) { .glass-held { --lens-scale: 1; } }
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .tabbar { background-color: var(--glass-tint); backdrop-filter: blur(22px) saturate(145%); -webkit-backdrop-filter: blur(22px) saturate(145%); }
}
@media (hover:hover) {
  .tabbar button:not(.active):hover { background: #e5c2ff0c; color: var(--text); }
}
@media (prefers-reduced-transparency:reduce) {
  .tabbar { background-color: var(--glass-base); backdrop-filter: none; -webkit-backdrop-filter: none; }
}
.settings-intro { padding: 22px 20px 26px; }
.settings-intro h1 { font-size: 28px; font-weight: 600; letter-spacing: -.04em; }
.settings-intro p { color: var(--muted); font-size: 12px; margin-top: 7px; }
.settings-card { background: transparent; border: 0; border-radius: var(--radius-lg); overflow: visible; margin: 0 14px 22px; }
.settings-card>.settings-row, .settings-card>.settings-actions { background: var(--panel); }
.settings-card>.card-title+.settings-row, .settings-card>.card-title+.settings-actions { border-radius: 20px 20px 0 0; border-top: 0; }
.settings-card>.settings-row:last-child, .settings-card>.settings-actions:last-child { border-radius: 0 0 20px 20px; }
.settings-card>.card-title+.settings-row:last-child, .settings-card>.card-title+.settings-actions:last-child { border-radius: 20px; }
.settings-card.settings-access { background: var(--panel); overflow: hidden; }
.card-title { background: transparent; padding: 0 14px 10px; color: #d4b8eb; font-size: 12px; font-weight: 500; border-bottom: 0; }
.card-title>span { display: flex; align-items: center; gap: 8px; }
.section-icon { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: var(--violet); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.settings-card>.card-title+.settings-row { box-shadow: inset 0 1px var(--surface-light); }
.card-title b { color: var(--muted); font-weight: 400; font-size: 9px; letter-spacing: .02em; }
.settings-row { position: relative; min-height: 62px; padding: 11px 14px; border: 0; gap: 14px; }
.settings-row+.settings-row { border-top: 0; }
.settings-row+.settings-row:before { content: ""; position: absolute; top: 0; left: 14px; right: 14px; height: 1px; background: #d8baff0b; pointer-events: none; }
.settings-label { color: var(--text); font-size: 13px !important; font-weight: 500; line-height: 1.4; margin-bottom: 3px; }
.settings-sub { color: var(--muted); font-size: 11px !important; line-height: 1.5 !important; }
.settings-row>select, .settings-row>.control-btn { min-height: 44px; background-color: #c0a1ff09; border-color: #c0a1ff16; border-radius: 14px; color: #dfccef; text-transform: none; letter-spacing: 0; }
.settings-row>select { font-size: 16px; appearance: none; -webkit-appearance: none; padding-right: 28px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4 3 3 3-3' fill='none' stroke='%23adb3c8' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; }
.settings-row>.switch { width: 48px; height: 28px; flex-basis: 48px; border-color: #c0a1ff26; background: #302439; box-shadow: inset 0 1px 3px #0002; }
.settings-row>.switch:after { inset: -8px 0; }
.settings-row>.switch.on { background: var(--accent-gradient); border-color: #d7aaff66; }
.switch .knob { width: 22px; height: 22px; top: 2px; }
.switch.on .knob { left: 22px; }
.settings-input { background: var(--bg2); border-color: var(--line2); border-radius: var(--radius-sm); }
.settings-action-btn { border-color: #c0a1ff16; background: var(--panel); border-radius: var(--radius-md); color: var(--text); padding: 12px 14px; }
.settings-card>.settings-actions { padding: 0; background: transparent; }
.settings-action-row { gap: 14px; }
.settings-action-row strong { font-size: 18px; font-weight: 400; opacity: .7; }
.settings-action-btn span { line-height: 1.5; }
.settings-row>.state-pill { border: 0; background: #82dfb309; padding: 7px 10px; border-radius: 10px; }
.settings-action-btn.primary, .control-btn.primary { background: var(--accent-soft); color: #d0c7ff; border-color: #655984; }
.settings-action-btn.danger, .danger-btn, .earnings-reset { color: var(--red) !important; background: #2c1e29; border-color: #69414f; }
.settings-action-btn.danger, .settings-row>.danger-btn { background: #ff9cae08; border-color: #ff9cae18; }
.settings-access>summary { min-height: 56px; }
.settings-access>summary small { font-size: 11px; }
.settings-access[open]>.settings-actions { padding: 10px 14px 14px; }
.settings-foot, .settings-foot span { color: var(--dim); }
.voice-cache-card .settings-row { padding-block: 10px; }
.voice-cache-track span { background: var(--cyan); box-shadow: none; }
.online-hero, .stats-hero { position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 100% 0%,#fca9dc24,transparent 68%),linear-gradient(125deg,#392033,#291b34 54%,#21182d); border: 1px solid #f8bfdf24; border-radius: var(--radius-lg); box-shadow: inset 0 1px #ffedfa14; padding: 22px; margin: 16px 14px 12px; }
.online-hero:after, .stats-hero:after { content: ""; position: absolute; z-index: -1; width: 150px; height: 150px; right: -35px; top: -75px; border: 1px solid #e1b0ff12; border-radius: 50%; box-shadow: 0 0 0 22px #c0a1ff04,0 0 0 45px #c0a1ff03; pointer-events: none; }
.online-signal { display: flex; align-items: center; gap: 6px; }
.online-signal:before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.eyebrow { color: var(--muted); font: 500 11px var(--ui-font); letter-spacing: .02em; }
.stats-money, .online-big strong { color: var(--text); background: none; -webkit-text-fill-color: currentColor; font-size: 40px; font-weight: 600; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.online-big span, .online-signal, .stats-money-sub { font: 400 11px/1.5 var(--ui-font); letter-spacing: 0; }
.stats-money-sub b { font-weight: 500; }
.stats-grid { gap: 8px; padding: 0; margin: 0 14px 12px; border: 0; border-radius: 0; background: transparent; }
.stat-card, .stat-card.hot { background: linear-gradient(145deg,#21172d,var(--panel)); border: 1px solid #ffffff07; border-radius: var(--radius-lg); box-shadow: inset 0 1px #ffffff04; padding: 15px 16px; }
.stat-card:nth-child(odd) { border-right-color: #ffffff07; }
.stat-card:nth-last-child(-n+2) { border-bottom-color: #ffffff07; }
.stat-card b { font-size: 20px; font-variant-numeric: tabular-nums; }
.stat-card span, .earnings-mini span { color: var(--muted); font: 400 11px var(--ui-font); letter-spacing: 0; }
.earnings-summary { padding: 0 14px 8px; gap: 8px; }
.earnings-mini, .earnings-mini.primary { background: var(--panel); border-color: var(--line); box-shadow: none; border-radius: var(--radius-md); padding: 12px; }
.earnings-mini.primary b { color: var(--green); }
.section-head { padding: 16px 16px 10px; }
.section-head b { text-transform: none; font-size: 13px; font-weight: 600; letter-spacing: 0; }
.events-card, .earnings-history-card { margin-inline: 14px; background: var(--panel); border-color: var(--line); box-shadow: none; border-radius: var(--radius-md); }
.earnings-history-head .title-wrap b { text-transform: none; }
.earnings-day.is-today { background: #82dfb309; }
.event-icon { background: var(--accent-soft); color: var(--violet); }
.event-time, .earnings-date span, .earnings-value span { color: var(--muted); font-size: 11px; }
.earnings-empty { font: 400 12px/1.5 var(--ui-font); color: var(--muted); padding: 24px 16px; }
.user-row { margin-inline: 14px; padding: 8px 12px; min-height: 56px; background: transparent; border: 0; border-radius: var(--radius-md); cursor: pointer; }
.user-row:not(.me-row):not(:last-child):after { content: ""; position: absolute; bottom: 0; left: 29px; right: 12px; height: 1px; background: linear-gradient(90deg,var(--surface-rim),transparent); pointer-events: none; }
.user-row.me-row { margin-block: 4px; }
.user-row[role=button]:focus-visible { outline-offset: -2px; background: #c0a1ff08; }
.user-row.anonymous-row { cursor: default; }
.user-name { font-size: 14px; font-weight: 500; margin-block: 8px; overflow-wrap: anywhere; }
.user-row.me-row { background: linear-gradient(125deg,rgba(192,161,255,.10),rgba(152,67,199,.07)); border: 1px solid rgba(192,161,255,.16); border-radius: var(--radius-md); box-shadow: inset 0 1px 0 rgba(255,255,255,.035); cursor: default; }
.viewer-badge { font: 500 10px var(--ui-font); color: var(--muted); letter-spacing: 0; }
.color-dot { box-shadow: none; }
.empty { color: var(--muted); font: 400 13px/1.6 var(--ui-font); padding: 36px 20px; }
.web-auth { background: var(--bg); padding: max(20px,var(--safe-top)) 20px max(20px,var(--safe-bottom)); }
.web-auth-card, .notify-prompt-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--glow); }
.web-auth-card { margin-block: auto; flex-shrink: 0; }
.web-auth-card:after { display: none; }
.web-auth-icon { background: var(--accent-soft); border-color: var(--line2); box-shadow: none; border-radius: var(--radius-md); }
.web-auth-icon { background: transparent; border: 0; }
.web-auth-icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.web-auth-kicker, .notify-kicker { color: var(--muted); font: 500 10px var(--ui-font); letter-spacing: .08em; }
.web-auth-title { font-size: 26px; font-weight: 650; color: var(--text); }
.web-auth-title span { color: var(--violet); background: none; }
.web-auth-label { color: var(--muted); font: 500 12px var(--ui-font); letter-spacing: 0; }
.web-auth-submit, .notify-primary { background: var(--accent-fill); border: 1px solid #8972de; box-shadow: none; font: 600 13px var(--ui-font); letter-spacing: 0; border-radius: var(--radius-md); }
.web-auth-foot { font: 400 10px var(--ui-font); color: var(--dim); letter-spacing: 0; }
.notify-prompt-card p { font: 400 13px/1.5 var(--ui-font); }
.notify-secondary { font: 500 12px var(--ui-font); }
.notify-icon { background: var(--accent-soft); color: var(--violet); box-shadow: none; }
.sparkle { z-index: 0; pointer-events: none; }
body:has(#screen-stats.active)>.sparkle,
body:has(#screen-settings.active)>.sparkle { z-index: 2; }
.auth-language { display: flex; justify-content: flex-end; margin-top: 12px; }
.language-card .settings-row { flex-wrap: wrap; }
.language-card .settings-row > div:first-child { flex: 1 1 125px; }
html[lang=en] .settings-row>.control-btn { white-space: normal; line-height: 1.3; }
html[lang=en] .viewer-badge { max-width: 84px; text-align: right; }
.sparkle.money-symbol { color: var(--green); text-shadow: none; }
.toast { color: var(--text); background: var(--panel2); border-color: var(--line2); box-shadow: var(--glow); font-family: var(--ui-font); }
@media (hover:hover) {
  button:not(:disabled):hover, .chatlist-row:hover, .user-row[role=button]:hover { background-color: var(--panel2); }
  .send-btn:hover, .web-auth-submit:hover { background: #7960d8; }
}
@media (pointer:coarse) {
  .quickreplies button, .toggle button { min-height: 40px; }
  .settings-row>.control-btn, .settings-row>select { min-height: 44px; }
}
@media (min-width:700px) {
  .screen, .tabbar { width: min(100%,960px); max-width: 960px; }
  .screen { border-inline: 1px solid var(--line); }
  .topbar { padding-inline: 24px; }
  .chat-head, .settings-intro { padding: 24px; }
  .chat-home-list { padding-inline: 24px; }
  .chat-home-list .chatlist-row { padding: 16px 12px; }
  .thread-body { padding: 20px 24px; }
  .row { max-width: min(78%,620px); }
  #screen-thread .composer { padding-inline: 24px; }
  .settings-sections { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 0 24px; align-items: start; }
  .settings-sections .settings-card, .settings-sections #webLogoutWrap { margin: 0; }
  .settings-sections .settings-card:nth-child(2) { grid-row: span 2; }
  .settings-foot { padding-top: 24px; }
  .stats-hero, .online-hero, .stats-grid, .events-card, .earnings-history-card { margin-inline: 24px; }
  .stats-hero { padding: 28px; }
  .earnings-summary { padding-inline: 24px; }
  .section-head { padding-inline: 24px; }
  .tabbar { justify-content: center; border-inline: 1px solid var(--line); }
  .tabbar button { max-width: 180px; flex-direction: row; gap: 10px; }
  .tabbar button small { font-size: 12px; }
  .user-row { margin-inline: 24px; }
}
@media (max-width:600px) and (orientation:portrait) {
  /* Compact the status strip by 10px without painting above the viewport. */
  html.pwa-standalone #offlineBanner { padding-top: 0; padding-bottom: 4px; flex-shrink: 0; }
  /* Compact resting dock: retain 4px of a 34px iPhone inset. */
  html.pwa-standalone:not(.keyboard-open) .tabbar { min-height: 0; }
  html.pwa-standalone:not(.keyboard-open) .tabbar,
  html.pwa-standalone:not(.keyboard-open) #screen-thread .composer {
    padding-bottom: max(0px,calc(var(--safe-bottom-live,var(--safe-bottom)) - 30px));
  }
}
@media (max-width:374px) {
  .chat-head { flex-wrap: wrap; padding: 16px; }
  .thread-topbar { padding-inline: 12px; gap: 8px; }
  .thread-topbar .avatar { width: 32px; height: 32px; }
  #threadConnectionStatus { font-size: 9px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *:before, *:after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .sparkle { display: none; }
}

/* Platform glass sits above the existing dock, in the same visual family. */
.platform-online{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}
.platform-online .online-pill{display:inline-flex;gap:4px;padding:5px 8px;font-size:9px;margin:0;white-space:nowrap}
.platform-online .unavailable{opacity:.6}
.platform-logo{display:block;width:16px;height:16px;object-fit:contain;flex-shrink:0;border-radius:3px}
.platform-online .platform-logo{width:12px;height:12px;border-radius:2px}
.platform-option{display:flex;align-items:center;white-space:nowrap}
.platform-option .platform-logo{margin-right:7px}
.platform-online .unavailable>span{background:var(--muted);box-shadow:none}
.platform-unread{position:absolute;top:0;right:13%;min-width:17px;padding:2px 5px;border-radius:20px;background:var(--pink);color:#fff;font:700 10px/1.2 sans-serif;text-shadow:none}
.platform-unread[hidden],.platform-menu[hidden]{display:none}
.platform-menu{position:fixed;z-index:80;width:236px;padding:6px;box-sizing:border-box;border:1px solid rgba(232,210,255,.3);border-radius:25px;background:linear-gradient(145deg,rgba(224,204,255,.2),rgba(48,27,60,.76) 46%,rgba(95,47,98,.36));backdrop-filter:blur(30px) saturate(160%);-webkit-backdrop-filter:blur(30px) saturate(160%);box-shadow:inset 0 1px 0 rgba(255,245,255,.25),inset 0 -1px 0 rgba(224,175,239,.1),0 14px 40px #0007;transform-origin:bottom center;animation:platformReveal .18s ease-out}
.platform-menu button{position:relative;box-sizing:border-box;width:100%;height:56px;min-height:56px;display:flex;align-items:center;justify-content:space-between;padding:11px 15px;border:1px solid transparent;border-radius:19px;background:transparent;color:var(--text);font:600 15px/1.2 -apple-system,BlinkMacSystemFont,sans-serif;text-align:left;cursor:pointer;transition:background .16s,border-color .16s}
.platform-menu small{margin-left:9px;font-size:12px;font-weight:400;color:var(--muted)}
.platform-menu button[aria-checked=true]{background:linear-gradient(140deg,rgba(221,186,251,.26),rgba(147,100,183,.16));border-color:rgba(235,218,253,.27);box-shadow:inset 0 1px 0 #ffffff20,0 2px 10px #0002}
.platform-menu button:hover{background-color:#d8b5eb12}
.platform-menu button:focus-visible{outline:2px solid #d6b2f0;outline-offset:-2px}
.platform-menu b{font-size:12px;color:#efc4ec}
.sc-delivery{margin-top:7px;opacity:.7;font-size:10px}
@keyframes platformReveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:420px){.platform-online{gap:4px}.topbar:has(.platform-online) .brandmark{font-size:10px;letter-spacing:.09em}}
@media(prefers-reduced-motion:reduce){.platform-menu{animation:none}.platform-menu button{transition:none}}
