:root{--bg: #eef0f3;--surface: #ffffff;--surface-2: #f7f8fa;--line: #edeef1;--line-2: #e4e6ea;--text: #0f141a;--muted: #8b929c;--muted-2: #a7adb6;--blue: #2f7bff;--blue-hover: #1f6bf0;--blue-weak: #e7f0ff;--incoming: #eef0f3;--red: #f0323c;--green: #2fbd57;--scroll-thumb: #cdd2da;--scroll-thumb-strong: #b6bcc6;--radius-app: 22px;--radius-card: 16px;--radius-bubble: 18px;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit;color:inherit}button{border:0;border-radius:12px;background:var(--blue);color:#fff;padding:11px 16px;cursor:pointer;transition:background .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--blue-hover)}button:disabled{cursor:not-allowed;opacity:.5}.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--line-2)}.secondary:hover:not(:disabled){background:#eef0f3}.muted{color:var(--muted)}.small{font-size:13px}.qr-page{min-height:100vh;display:grid;place-items:center;padding:32px}.qr-card{width:min(460px,100%);background:var(--surface);border-radius:24px;box-shadow:0 30px 80px #141e301a;padding:40px 40px 44px;display:grid;gap:22px;justify-items:center;text-align:center}.qr-card.center{padding:64px 40px}.qr-card h1{margin:0;font-size:24px}.qr-box{width:264px;height:264px;display:grid;place-items:center;border-radius:20px;background:var(--surface)}.qr-box svg{display:block}.qr-steps{margin:0;padding:0 0 0 4px;list-style:none;counter-reset:step;display:grid;gap:16px;text-align:left;justify-self:stretch}.qr-steps li{counter-increment:step;display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;color:var(--text);font-size:15px}.qr-steps li:before{content:counter(step) ".";color:var(--muted);font-variant-numeric:tabular-nums}.notice,.error{width:100%;border-radius:14px;padding:12px 14px;background:#fff7e6;color:#7a5600;text-align:left;font-size:14px}.error{background:#fdecee;color:#a01a24}.qr-card .secondary{justify-self:center;min-width:180px}.app-shell{position:relative;height:calc(100vh - 32px);margin:16px;border-radius:var(--radius-app);background:var(--surface);box-shadow:0 24px 70px #141e3014;overflow:hidden;display:grid;grid-template-columns:88px 360px minmax(0,1fr)}.sidebar,.list-pane,.detail-pane{min-height:0;background:var(--surface)}.sidebar{border-right:1px solid var(--line);padding:18px 0 16px;display:flex;flex-direction:column;align-items:center;gap:18px}.rail-avatar{width:46px;height:46px;border-radius:50%;background:var(--blue-weak);color:var(--blue);display:grid;place-items:center;font-weight:700;font-size:15px;flex-shrink:0}.rail-nav{display:grid;gap:4px;width:100%;padding:0 8px;justify-items:stretch}.rail-btn{background:transparent;color:var(--muted);display:grid;justify-items:center;gap:5px;padding:10px 2px;border-radius:14px;font-size:11px;font-weight:500;line-height:1.15;text-align:center;overflow-wrap:anywhere;width:100%;min-width:0}.rail-btn:hover:not(:disabled){background:var(--surface-2)}.rail-btn.active{color:var(--blue);background:transparent}.rail-btn svg{display:block}.rail-bottom{margin-top:auto;width:100%;padding:0 8px;display:grid;gap:12px;justify-items:stretch}.rail-conn{display:grid;justify-items:center;gap:4px;color:var(--muted-2);font-size:10px;text-align:center;padding:0 4px;min-width:0}.rail-conn-text{max-width:100%;overflow-wrap:anywhere}.rail-conn.online{color:var(--green)}.rail-conn.connecting,.rail-conn.reconnecting{color:#d99a00}.rail-conn.offline,.rail-conn.revoked{color:var(--red)}.list-pane{border-right:1px solid var(--line);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.list-pane>header{position:sticky;top:0;z-index:1;background:var(--surface);padding:20px 20px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.list-pane>header h2{margin:0;font-size:20px;font-weight:700}.row{background:transparent;color:var(--text);text-align:left;border-radius:0;display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:center;padding:12px 16px;margin:0;border-bottom:1px solid var(--line)}.row:hover,.row.active{background:var(--surface-2)}.row-avatar{width:46px;height:46px;border-radius:50%;background:var(--blue-weak);color:var(--blue);display:grid;place-items:center;font-weight:700;font-size:15px;flex-shrink:0}.row-main{min-width:0;display:grid;gap:3px}.row-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.row-top strong{font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-top.missed strong{color:var(--red)}.row-top time{color:var(--muted-2);font-size:12px;flex-shrink:0}.row-sub{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:13px}.row-sub span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-sub small{color:var(--muted-2);font-size:12px;flex-shrink:0}.badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--blue);color:#fff;font-size:12px;font-weight:600;display:inline-grid;place-items:center;flex-shrink:0}.group-title{margin:0;padding:14px 16px 6px;color:var(--muted-2);font-size:13px;font-weight:600}.detail-pane{overflow:hidden;display:flex;flex-direction:column}.center{display:grid;place-items:center;text-align:center;padding:32px;color:var(--muted)}.chat-header{padding:14px 22px;border-bottom:1px solid var(--line);background:var(--surface);display:flex;align-items:center;gap:12px;min-height:68px}.chat-peer{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.chat-call-btn{width:40px;height:40px;border-radius:50%;padding:0;background:transparent;color:var(--blue);display:grid;place-items:center;flex-shrink:0}.chat-call-btn:hover:not(:disabled){background:var(--blue-weak)}.chat-header h2{margin:0;font-size:16px;font-weight:600}.peer-status{color:var(--muted);font-size:13px}.typing{color:var(--blue);font-size:13px}.back-btn{display:none;width:40px;height:40px;border-radius:50%;padding:0;background:transparent;color:var(--text);place-items:center;flex-shrink:0}.back-btn:hover:not(:disabled){background:var(--surface-2)}.back-btn.floating{position:absolute;top:12px;left:12px;z-index:2}.messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 22px 8px;display:flex;flex-direction:column;gap:6px;background:var(--surface);scroll-behavior:smooth}.day-sep{align-self:center;color:var(--muted-2);font-size:12px;margin:12px 0 8px}.bubble{max-width:64%;border-radius:var(--radius-bubble);padding:8px 12px 6px;background:var(--incoming);display:flex;flex-direction:column}.bubble.outgoing{align-self:flex-end;background:var(--blue);color:#fff;border-bottom-right-radius:6px}.bubble.incoming{align-self:flex-start;border-bottom-left-radius:6px}.bubble p{margin:0;white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.35}.bubble .meta{display:inline-flex;gap:4px;align-items:center;align-self:flex-end;margin-top:2px;font-size:11px;color:var(--muted-2);white-space:nowrap}.bubble.outgoing .meta{color:#fffc}.bubble .meta .check{font-size:12px}.bubble.outgoing .meta .check.failed,.meta .check.failed{color:#ffd7d7}.load-more{align-self:center;margin:4px 0 12px}.composer{border-top:1px solid var(--line);padding:12px 16px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;background:var(--surface)}.composer textarea{border:1px solid var(--line-2);border-radius:20px;padding:11px 16px;resize:none;background:var(--surface-2);max-height:120px;min-height:44px;line-height:1.35}.composer textarea:focus{outline:none;border-color:var(--blue);background:var(--surface)}.send-btn{width:44px;height:44px;border-radius:50%;padding:0;display:grid;place-items:center}.contact-card{position:relative;align-items:center;gap:8px;padding:40px 32px;overflow-y:auto;overflow-x:hidden;background:var(--surface-2)}.big-avatar{width:104px;height:104px;border-radius:50%;background:var(--blue-weak);color:var(--blue);display:grid;place-items:center;font-weight:700;font-size:38px;overflow:hidden}.contact-card h2{margin:12px 0 2px;font-size:24px;font-weight:600}.contact-card .status{color:var(--muted);font-size:14px;margin:0 0 8px}.contact-card .write-btn{min-width:200px;border-radius:22px;padding:12px 24px;margin:8px 0 12px}.info-card{width:min(440px,100%);background:var(--surface);border-radius:var(--radius-card);padding:4px 18px}.info-label{color:var(--muted);font-size:13px;padding:14px 0 8px}.info-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.info-row:first-child{border-top:0}.info-row .k{color:var(--text)}.info-row .v{color:var(--blue);text-align:right}.info-row .v.plain{color:var(--muted)}.call-history-row{cursor:default}.call-panel{position:relative;align-items:center;justify-content:center;gap:10px;text-align:center;padding:32px;background:var(--surface-2)}.call-panel .stage{flex:1;width:100%;display:grid;place-content:center;gap:14px;justify-items:center;margin-bottom:16px}.call-panel h2{margin:0;font-size:22px;font-weight:600}.call-timer{color:var(--muted);font-size:14px}.call-panel audio{display:none}.call-empty{color:var(--muted);gap:8px}.call-empty h2,.call-empty p{margin:0}.call-empty svg{color:var(--blue)}.call-back{position:absolute;top:14px;left:14px;z-index:2}.call-actions{display:flex;gap:12px;background:var(--surface);padding:12px 16px;border-radius:8px;min-height:76px;align-items:center;justify-content:center}.round{width:52px;height:52px;border-radius:50%;padding:0;background:var(--surface-2);color:var(--text);border:1px solid var(--line-2);display:grid;place-items:center}.round:hover:not(:disabled){background:#eef0f3}.round.danger{background:var(--red);color:#fff;border-color:transparent}.round.danger:hover:not(:disabled){background:#d81f2a}.round.accept{background:var(--green);color:#fff;border-color:transparent}.round.accept:hover:not(:disabled){background:#249d47}.round.selected{background:var(--text);color:#fff;border-color:var(--text)}.round.hangup svg{transform:rotate(135deg)}.call-result-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.playback-btn{justify-self:center}.settings-menu{background:var(--surface-2)}.settings-menu>header{background:var(--surface-2);border-bottom:0}.settings-group{margin:8px 12px 0;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-card);overflow:hidden}.settings-group:last-child{margin-bottom:12px}.settings-item{display:grid;grid-template-columns:24px 1fr 18px;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line);color:var(--text);font-size:15px}.settings-item:first-child{border-top:0}.settings-ico{display:grid;place-items:center;color:var(--muted)}.settings-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-chevron{color:var(--muted-2)}.settings-item.mock:hover{background:var(--surface-2)}.settings-item.active{background:var(--blue-weak)}.settings-item.active .settings-ico,.settings-item.active .settings-label{color:var(--blue)}.settings-item.active .settings-label{font-weight:600}.settings-detail{display:block;overflow-y:auto;overflow-x:hidden;padding:20px 24px 32px;background:var(--surface-2)}.settings-detail-head{max-width:560px;margin:0 auto 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-detail-head h2{margin:0;font-size:20px;font-weight:700}.settings-inner{max-width:560px;margin:0 auto;display:grid;gap:16px}.settings-profile{display:grid;justify-items:center;gap:2px;padding:8px 0 12px}.settings-profile h3{margin:10px 0 0;font-size:22px;font-weight:600}.settings-phone{color:var(--muted);font-size:14px}.device-plate{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-card);overflow:hidden}.device-line{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line)}.device-line:first-child{border-top:0}.device-ico{width:40px;height:40px;border-radius:10px;background:var(--surface-2);color:var(--muted);display:grid;place-items:center}.device-line-main{min-width:0;display:grid;gap:2px}.device-line-main strong{font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-line-main span{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-off{padding:8px 14px}.contact-form{padding:14px 16px;display:grid;gap:8px;border-bottom:1px solid var(--line)}.contact-form input{border:1px solid var(--line-2);border-radius:12px;padding:11px 14px;background:var(--surface-2)}.contact-form input:focus{outline:none;border-color:var(--blue);background:var(--surface)}.empty{margin:28px 16px;color:var(--muted);text-align:center}.banner{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:10;background:#fdecee;color:#a01a24;border-radius:12px;padding:10px 16px;box-shadow:0 8px 24px #141e301f;max-width:70%}.list-pane,.messages,.contact-card,.settings-detail{scrollbar-width:thin;scrollbar-color:transparent transparent}.list-pane:hover,.messages:hover,.contact-card:hover,.settings-detail:hover{scrollbar-color:var(--scroll-thumb) transparent}.list-pane::-webkit-scrollbar,.messages::-webkit-scrollbar,.contact-card::-webkit-scrollbar,.settings-detail::-webkit-scrollbar{width:10px;height:10px}.list-pane::-webkit-scrollbar-button,.messages::-webkit-scrollbar-button,.contact-card::-webkit-scrollbar-button,.settings-detail::-webkit-scrollbar-button{display:none;width:0;height:0}.list-pane::-webkit-scrollbar-track,.messages::-webkit-scrollbar-track,.contact-card::-webkit-scrollbar-track,.settings-detail::-webkit-scrollbar-track{background:transparent}.list-pane::-webkit-scrollbar-thumb,.messages::-webkit-scrollbar-thumb,.contact-card::-webkit-scrollbar-thumb,.settings-detail::-webkit-scrollbar-thumb{background:transparent;border:3px solid transparent;background-clip:padding-box;border-radius:8px}.list-pane:hover::-webkit-scrollbar-thumb,.messages:hover::-webkit-scrollbar-thumb,.contact-card:hover::-webkit-scrollbar-thumb,.settings-detail:hover::-webkit-scrollbar-thumb{background:var(--scroll-thumb);background-clip:padding-box}.list-pane:hover::-webkit-scrollbar-thumb:hover,.messages:hover::-webkit-scrollbar-thumb:hover,.contact-card:hover::-webkit-scrollbar-thumb:hover,.settings-detail:hover::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-strong);background-clip:padding-box}@media (max-width: 720px){.app-shell{height:100vh;height:100dvh;margin:0;border-radius:0;box-shadow:none;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.sidebar{grid-row:2;grid-column:1;flex-direction:row;align-items:stretch;justify-content:space-around;gap:0;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));border-right:0;border-top:1px solid var(--line)}.rail-avatar,.rail-conn{display:none}.rail-nav,.rail-bottom{display:contents}.rail-btn{flex:1;padding:6px 2px;gap:3px}.list-pane,.detail-pane{grid-row:1;grid-column:1;border-right:0}.list-pane{display:flex}.detail-pane,.app-shell.show-detail .list-pane{display:none}.app-shell.show-detail .detail-pane{display:flex}.app-shell.show-detail .settings-detail{display:block}.app-shell.show-detail .detail-pane.center,.back-btn{display:grid}.settings-item.active{cursor:pointer}.banner{max-width:calc(100% - 32px)}}
