:root{
  color-scheme:dark;
  --bg:#0e1621;--sidebar:#17212b;--panel:#0e1621;--panel2:#182533;--card:#17212b;--line:#273746;--text:#eef5fa;--muted:#8ea2b3;--dim:#617587;--accent:#2aabee;--accent2:#229ed9;--good:#62d49c;--warn:#f3c969;--bad:#ff7b82;--bubble:#182533;--mine:#2b5278;--safe:env(safe-area-inset-bottom,0px)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}button,input,textarea{font:inherit}.hidden{display:none!important}.mobile-only{display:none}.app{min-height:100vh;display:grid;grid-template-columns:320px minmax(0,1fr);background:var(--bg)}
.sidebar{min-width:0;border-right:1px solid var(--line);background:var(--sidebar);display:flex;flex-direction:column;padding:12px;overflow:hidden}.sidebar-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:6px 4px 14px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(145deg,#36b9ef,#248bc8);font-weight:900;font-size:20px}.brand-copy{min-width:0}.brand-copy strong{display:block;letter-spacing:-.02em}.brand-copy span{display:block;color:var(--muted);font-size:9px;letter-spacing:.12em;margin-top:2px}.round-btn{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:#223140;color:var(--text);cursor:pointer;transition:.15s}.round-btn:hover{background:#2a3b4b}.round-btn.subtle{background:transparent;color:var(--muted)}.round-btn.secure{color:#bcebd2;background:rgba(98,212,156,.1)}
.profile-card{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center;padding:11px;border-radius:15px;background:#1d2b38;margin-bottom:10px}.avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,#7b88ff,#5868dc);font-weight:850;font-size:17px;flex:0 0 auto}.avatar.self{background:linear-gradient(145deg,#36b9ef,#248bc8)}.profile-input{display:grid;gap:3px}.profile-input span{font-size:9px;color:var(--muted)}.profile-input input{min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:14px;font-weight:650;padding:0}.profile-input input::placeholder{color:var(--dim)}
.start-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:16px}.start-actions button{min-height:52px;border:0;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:750;cursor:pointer}.new-chat-btn{background:var(--accent);color:#fff}.join-btn{background:#233443;color:#e9f2f8}.start-actions span{font-size:18px}.chat-list-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px;padding:0 6px 8px}.chat-list-head small{font-size:8px;color:var(--dim)}.room-list{display:grid;gap:3px;overflow:auto;min-height:0}.room-empty{padding:22px 12px;color:var(--dim);font-size:11px;text-align:center}.room-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px;border-radius:13px;cursor:pointer;transition:.15s}.room-item:hover,.room-item.active{background:#213140}.room-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#324759;font-weight:800}.room-main{min-width:0}.room-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.room-main span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:10px;margin-top:3px}.room-time{color:var(--dim);font-size:9px;align-self:start;padding-top:4px}.sidebar-security{margin-top:auto;display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;padding:11px 8px 2px}.lock-dot{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(98,212,156,.12);color:var(--good);font-size:11px}.sidebar-security strong{display:block;font-size:10px;color:#bfe7d0}.sidebar-security small{display:block;color:var(--dim);font-size:8px;margin-top:2px}
.main-panel{min-width:0;min-height:100vh;position:relative;background:radial-gradient(circle at 80% 10%,rgba(42,171,238,.06),transparent 25rem),var(--panel)}.welcome-view{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:42px 24px}.welcome-graphic{position:relative;display:grid;place-items:center;width:110px;height:110px;border-radius:50%;background:#172839;margin-bottom:25px}.welcome-graphic span{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--accent);font-size:34px;font-weight:900}.welcome-graphic i{position:absolute;inset:-9px;border:1px solid #28455a;border-radius:50%}.eyebrow{font-size:9px;letter-spacing:.16em;color:var(--muted);font-weight:850}.welcome-view h1{margin:8px 0 0;font-size:clamp(38px,6vw,68px);line-height:.98;letter-spacing:-.06em}.welcome-view p{max-width:620px;color:var(--muted);font-size:14px;line-height:1.7;margin:18px 0 0}.welcome-actions{display:flex;gap:9px;margin-top:26px}.primary,.secondary{min-height:48px;padding:0 18px;border:0;border-radius:13px;font-weight:800;cursor:pointer}.primary{background:var(--accent);color:#fff}.primary:hover{background:var(--accent2)}.secondary{background:#203140;color:#edf4f9;border:1px solid #2b4153}.feature-row{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin-top:19px}.feature-row span{padding:7px 10px;border-radius:999px;background:#162431;color:#8eb2ca;font-size:9px;border:1px solid #223b4d}
.flow-view{min-height:100vh;padding:18px clamp(14px,3vw,34px) 32px;max-width:820px;margin:0 auto}.flow-topbar{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;margin-bottom:14px}.flow-topbar>div:nth-child(2){min-width:0}.flow-topbar strong{display:block}.flow-topbar span{display:block;color:var(--muted);font-size:10px;margin-top:2px}.role-pill,.live-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 9px;border-radius:999px;background:#1c2b38;border:1px solid #2b4050;color:#a9bdcc;font-size:9px;font-weight:850}.live-pill i{width:6px;height:6px;border-radius:50%;background:var(--good)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.step{display:flex;align-items:center;gap:8px;padding:10px 11px;border:1px solid #243646;border-radius:12px;color:var(--dim);font-size:10px}.step b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#1c2b38}.step.active{color:#e9f4fa;background:#172735;border-color:#2c4b60}.step.active b{background:var(--accent);color:#fff}.step.done{color:#a8dec2}.step.done b{background:rgba(98,212,156,.13);color:var(--good)}.flow-card{padding:18px;border-radius:18px;background:var(--card);border:1px solid #243746}.card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.flow-card h2{margin:4px 0 13px;font-size:22px;letter-spacing:-.035em}.qr-stage{position:relative;display:grid;place-items:center;width:min(100%,560px);aspect-ratio:1;margin:16px auto 12px;padding:22px;border-radius:20px;background:white}.qr-stage #qrMount{width:100%;height:100%;display:grid;place-items:center}.qr-stage img,.qr-stage canvas{width:100%!important;height:100%!important;object-fit:contain;image-rendering:pixelated}.qr-outline{position:absolute;inset:12px;border:1px solid rgba(0,0,0,.08);border-radius:15px}.qr-progress{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;color:var(--muted);font-size:10px}.progress{height:7px;border-radius:999px;background:#293a48;overflow:hidden}.progress i{display:block;width:0;height:100%;background:var(--accent);border-radius:inherit;transition:width .15s}.progress.large{height:9px;margin-top:9px}.hint{color:var(--muted);font-size:11px;line-height:1.6}.center{text-align:center}.flow-actions{display:flex;gap:8px;margin-top:12px}.flow-actions button{flex:1}.wide{width:100%;margin-top:11px}.camera-box{position:relative;overflow:hidden;aspect-ratio:4/3;border-radius:17px;background:#020406;border:1px solid #283b49}.camera-box video{width:100%;height:100%;object-fit:cover}.camera-mask{position:absolute;inset:0;background:radial-gradient(circle at center,transparent 0 31%,rgba(0,0,0,.1) 48%,rgba(0,0,0,.42) 100%)}.finder{position:absolute;left:50%;top:50%;width:min(72%,390px);aspect-ratio:1;transform:translate(-50%,-54%)}.finder i{position:absolute;width:34px;height:34px;border-color:#fff;border-style:solid}.finder i:nth-child(1){left:0;top:0;border-width:4px 0 0 4px;border-radius:12px 0 0}.finder i:nth-child(2){right:0;top:0;border-width:4px 4px 0 0;border-radius:0 12px 0 0}.finder i:nth-child(3){left:0;bottom:0;border-width:0 0 4px 4px;border-radius:0 0 0 12px}.finder i:nth-child(4){right:0;bottom:0;border-width:0 4px 4px 0;border-radius:0 0 12px}.finder span{position:absolute;left:8%;right:8%;top:15%;height:2px;background:linear-gradient(90deg,transparent,#8bd8ff,transparent);box-shadow:0 0 12px rgba(78,190,247,.7);animation:scan 1.9s ease-in-out infinite}@keyframes scan{0%,100%{top:15%;opacity:.35}50%{top:84%;opacity:1}}.scan-hint{position:absolute;left:50%;bottom:13px;transform:translateX(-50%);padding:8px 11px;border-radius:999px;background:rgba(7,13,18,.74);border:1px solid rgba(255,255,255,.12);font-size:10px;white-space:nowrap}.scan-info,.conn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:9px}.scan-info>div,.conn-grid>div{padding:10px;border-radius:11px;background:#12202b;border:1px solid #223746;text-align:center}.scan-info strong,.conn-grid strong{display:block;font-size:12px}.scan-info span,.conn-grid span{display:block;margin-top:2px;color:var(--dim);font-size:8px;text-transform:uppercase}.connect-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}.connect-orb{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#12202b;border:1px solid #253b4b}.connect-orb span{width:12px;height:12px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 8px rgba(243,201,105,.08)}.connect-orb.connected span{background:var(--good);box-shadow:0 0 0 8px rgba(98,212,156,.08)}.conn-grid{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}.error-card{margin-top:10px;padding:13px 14px;border-radius:13px;border:1px solid rgba(255,123,130,.22);background:rgba(255,123,130,.06)}.error-card strong{display:block;color:#ffd5d8;font-size:11px}.error-card span{display:block;color:var(--muted);font-size:10px;line-height:1.55;margin-top:4px}
.chat-view{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(rgba(14,22,33,.95),rgba(14,22,33,.95)),radial-gradient(circle at 15px 15px,#172533 1px,transparent 1px);background-size:auto,30px 30px}.chat-head{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;min-height:64px;padding:9px 14px;border-bottom:1px solid #243746;background:rgba(23,33,43,.96);backdrop-filter:blur(16px)}.peer-wrap{display:flex;align-items:center;gap:10px;min-width:0}.peer-copy{min-width:0}.peer-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.peer-copy span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px;margin-top:2px}.peer-copy i{width:7px;height:7px;border-radius:50%;background:var(--good)}.chat-actions{display:flex;gap:5px}.messages{flex:1;min-height:0;padding:18px clamp(10px,4vw,54px) 105px;display:flex;flex-direction:column;gap:5px;overflow:auto}.day-separator{align-self:center;padding:5px 9px;border-radius:999px;background:rgba(20,35,48,.85);color:#91a7b7;font-size:9px;margin:7px 0}.message{display:flex;flex-direction:column;max-width:min(72%,620px)}.message.mine{align-self:flex-end;align-items:flex-end}.message.theirs{align-self:flex-start}.bubble{padding:8px 11px 6px;border-radius:15px;background:var(--bubble);box-shadow:0 1px 1px rgba(0,0,0,.16);font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.mine .bubble{background:var(--mine);border-bottom-right-radius:4px}.theirs .bubble{border-bottom-left-radius:4px}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:3px;color:#6f8da2;font-size:8px}.mine .message-meta{color:#82abc7}.status-ticks{font-size:9px;letter-spacing:-2px;color:#82c8ef}.status-queued{color:var(--warn)}.file-bubble{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;min-width:230px}.file-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.12)}.file-bubble strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.file-bubble span,.file-bubble a{display:block;margin-top:2px;font-size:9px;color:#b2cfdf}.file-bubble a{text-decoration:none;font-weight:750}.offline-bar{position:sticky;bottom:74px;z-index:10;align-self:center;display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:999px;background:rgba(57,43,18,.95);border:1px solid rgba(243,201,105,.18);font-size:9px;color:#e5d29b}.offline-bar button{border:0;border-radius:999px;background:#6f5d31;color:#fff;padding:5px 8px;font-size:9px;cursor:pointer}.composer{position:sticky;bottom:calc(8px + var(--safe));z-index:21;display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:end;margin:0 clamp(8px,3vw,34px) calc(8px + var(--safe));padding:7px;border-radius:18px;background:#17212b;border:1px solid #293b49;box-shadow:0 8px 28px rgba(0,0,0,.24)}.attach-btn,.send-btn{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:#223342;color:#d9e7f0;font-size:20px;cursor:pointer}.attach-btn input{display:none}.composer textarea{width:100%;max-height:120px;resize:none;border:0;outline:0;background:transparent;color:#f0f6fa;padding:10px 4px;font-size:16px;line-height:1.35}.composer textarea::placeholder{color:#6e8393}.send-btn{background:var(--accent);color:white;font-size:17px}.send-btn:disabled{opacity:.42}
.security-dialog{width:min(520px,calc(100% - 22px));padding:18px;border:1px solid #2a4050;border-radius:20px;background:#17212b;color:var(--text)}.security-dialog::backdrop{background:rgba(4,9,14,.72);backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h2{margin:4px 0 0}.security-hero{text-align:center;padding:10px 10px 18px}.big-lock{font-size:36px}.security-hero strong{display:block;margin-top:4px}.security-hero span{display:block;color:var(--muted);font-size:10px;line-height:1.55;margin-top:5px}.security-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.security-grid div{padding:11px;border-radius:12px;background:#12202b;border:1px solid #223746}.security-grid span{display:block;color:var(--muted);font-size:9px}.security-grid strong{display:block;margin-top:3px;font-size:11px}.safety-box{margin-top:10px;padding:13px;border-radius:13px;background:#102b28;border:1px solid rgba(98,212,156,.2);text-align:center}.safety-box span{display:block;color:#9fc9b0;font-size:9px}.safety-box strong{display:block;margin-top:5px;font-size:19px;letter-spacing:.09em}.safety-box small{display:block;color:#80a991;font-size:8px;margin-top:4px}.security-note{color:var(--muted);font-size:9px;line-height:1.6;margin:11px 2px 0}.toast{position:fixed;left:50%;bottom:calc(20px + var(--safe));z-index:100;width:min(480px,calc(100% - 26px));padding:10px 13px;border-radius:12px;background:rgba(25,39,51,.96);border:1px solid #344b5c;box-shadow:0 12px 35px rgba(0,0,0,.3);text-align:center;font-size:10px;opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:.18s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.app{display:block;min-height:100vh}.sidebar{min-height:100vh;border-right:0;padding:12px}.main-panel{min-height:100vh}.welcome-view{display:none}.app.in-session .sidebar{display:none}.app:not(.in-session) .main-panel{display:none}.mobile-only{display:grid}.flow-view{padding:10px 9px 22px}.steps{position:sticky;top:6px;z-index:25;padding:4px;border-radius:14px;background:rgba(14,22,33,.88);backdrop-filter:blur(12px)}.step{justify-content:center;padding:8px 4px}.step span{display:none}.flow-card{padding:13px}.qr-stage{padding:16px}.camera-box{aspect-ratio:3/4;max-height:68vh}.connect-card{grid-template-columns:1fr}.connect-orb{display:none}.chat-view{min-height:100vh}.chat-head{padding-left:8px}.messages{padding:14px 8px 94px}.message{max-width:84%}.composer{margin-left:6px;margin-right:6px}.chat-actions .round-btn{width:38px;height:38px}.security-grid{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.start-actions{grid-template-columns:1fr}.privacy-pill{display:none}.message{max-width:90%}.file-bubble{min-width:190px}.conn-grid{grid-template-columns:1fr 1fr}.security-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* v3 auto-reconnect */
.offline-bar{max-width:calc(100% - 18px);flex-wrap:wrap;justify-content:center;text-align:center}
.offline-bar span{min-width:0;overflow-wrap:anywhere}

/* Messenger UX v4 */
.room-avatar{position:relative}
.room-presence{position:absolute;right:0;bottom:1px;width:11px;height:11px;border:2px solid var(--sidebar);border-radius:50%;background:#566b7b}
.room-presence.online{background:var(--good)}
.room-side{align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px;min-width:38px}
.room-side .room-time{padding:0}
.room-badge{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:9px;line-height:1}
.status-ticks{color:#7f9aac}
.status-read{color:#56bdec}
.status-sent{color:#7891a2}
.offline-bar{box-shadow:0 8px 24px rgba(0,0,0,.18)}
.offline-bar button{font-weight:750}
@media(max-width:760px){.room-side{min-width:42px}.room-badge{min-width:20px;height:20px}}
