:root{--app-height: 100dvh;color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif;color:#f5f7fa;background:#0e1116;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body,#app{min-height:var(--app-height)}body{margin:0;min-width:320px;min-height:var(--app-height);overflow-x:hidden;background:radial-gradient(circle at 80% -10%,#233a47 0,transparent 42%),#0e1116}button,input,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}.app-shell{display:flex;flex-direction:column;width:min(100%,720px);min-height:var(--app-height);margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;gap:12px;padding:10px 0 22px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;color:#0e1116;background:#b5f36e;font-size:22px;font-weight:800;box-shadow:0 8px 22px #b5f36e2b}.brand-copy{flex:1;min-width:0}.eyebrow,.modal-kicker{color:#9aa7b4;font-size:10px;letter-spacing:.14em;font-weight:700}h1,h2,h3,p{margin:0}h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:21px}.connection-pill{display:inline-flex;align-items:center;gap:6px;color:#aeb9c4;font-size:11px}.status-dot{width:7px;height:7px;border-radius:100%;background:#66717d}.status-dot.online{background:#b5f36e;box-shadow:0 0 0 4px #b5f36e1c}.notice{position:fixed;z-index:20;top:max(12px,env(safe-area-inset-top));left:50%;width:min(calc(100% - 28px),540px);padding:12px 15px;border:1px solid #ffffff1c;border-radius:14px;background:#1b252def;box-shadow:0 16px 40px #0008;transform:translate(-50%);font-size:13px;text-align:center}.notice.error{border-color:#ff8d8144;color:#ffb4aa}.hero-card{display:flex;align-items:flex-start;gap:14px;padding:20px;border:1px solid #ffffff0d;border-radius:22px;background:linear-gradient(135deg,#20343a,#172027)}.hero-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:14px;color:#0e1116;background:#b5f36e;font-size:26px}.hero-card h2{margin-bottom:5px;font-size:18px}.hero-card p,.modal-description{color:#aeb9c4;font-size:13px;line-height:1.65}.identity-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:15px 17px;border:1px solid #ffffff0d;border-radius:17px;background:#151b21}.identity-card>div{display:grid;gap:4px;min-width:0}.label,.identity-card small,.contact-main small,.chat-peer small{color:#81909e;font-size:11px}.identity-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.identity-id{color:#91a0ad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 24px}.primary-button,.secondary-button{min-height:46px;padding:0 17px;border-radius:14px;font-weight:700;transition:transform .15s,filter .15s}.primary-button{color:#0e1116;background:#b5f36e}.secondary-button{color:#e3e9ed;border:1px solid #ffffff17;background:#1b242b}.primary-button:active,.secondary-button:active{transform:scale(.98);filter:brightness(.92)}.primary-button span,.secondary-button span{margin-right:5px;font-size:18px;vertical-align:-1px}.section-heading{display:flex;align-items:center;gap:8px;margin:0 2px 9px}.section-heading h3{color:#c6d0d8;font-size:12px;letter-spacing:.08em}.section-heading span{display:grid;place-items:center;min-width:20px;height:20px;border-radius:99px;color:#a7b3bd;background:#1a242b;font-size:10px}.contact-list{display:grid;gap:8px}.contact-card{display:flex;align-items:center;gap:12px;width:100%;padding:13px;border:1px solid #ffffff0b;border-radius:17px;color:#edf2f5;background:#151b21;text-align:left}.contact-card:active{background:#1d292f}.avatar{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:14px;color:#122018;background:#9edb7d;font-weight:800}.avatar.small{flex-basis:35px;height:35px;border-radius:12px;font-size:13px}.contact-main{display:grid;flex:1;gap:5px;min-width:0}.contact-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.chevron,.settings-link span{color:#72818d;font-size:24px;font-weight:300}.settings-link{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:22px;padding:15px 2px;color:#b8c3ca;background:transparent;font-size:13px;text-align:left}.privacy-note,.micro-note{color:#6f7e89;font-size:11px;line-height:1.6;text-align:center}.chat-view{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.chat-actions{display:flex;align-items:center;gap:10px;padding-bottom:13px}.icon-button,.more-button{width:35px;height:35px;border-radius:12px;color:#d9e2e8;background:#1a2229;font-size:25px;line-height:1}.more-button{margin-left:auto;color:#aebcc5;font-size:14px;letter-spacing:2px}.chat-peer{display:flex;align-items:center;gap:9px}.chat-peer>div{display:grid;gap:3px}.chat-peer strong{font-size:14px}.pairing-banner{display:grid;gap:7px;margin-bottom:12px;padding:14px;border:1px solid #b5f36e2d;border-radius:15px;background:#19271e}.pairing-banner strong{color:#b5f36e;font-size:13px}.pairing-banner span{color:#b2c0b7;font-size:12px}.pairing-banner button{justify-self:start;padding:0;color:#b5f36e;background:transparent;font-size:12px;font-weight:700}.messages{display:flex;flex:1 1 auto;flex-direction:column;gap:9px;min-height:0;padding:12px 0 18px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.message-row{display:flex}.message-row.mine{justify-content:flex-end}.message-bubble{max-width:min(82%,460px);padding:10px 13px 8px;border-radius:16px 16px 16px 4px;color:#e8eef1;background:#1c2730;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.55}.message-row.mine .message-bubble{border-radius:16px 16px 4px;color:#112015;background:#b5f36e}.message-bubble time{display:block;margin-top:4px;color:#80919d;font-size:10px;text-align:right}.message-row.mine .message-bubble time{color:#587348}.empty-chat{display:grid;place-items:center;align-content:center;flex:1;min-height:280px;color:#84939e;text-align:center}.empty-chat span{margin-bottom:12px;color:#b5f36e;font-size:28px}.empty-chat strong{margin-bottom:7px;color:#cbd5da;font-size:15px}.empty-chat p{font-size:12px}.composer{display:flex;flex:0 0 auto;gap:8px;padding-top:9px;padding-bottom:max(0px,env(safe-area-inset-bottom));border-top:1px solid #ffffff0b}.composer input,.invite-code-input,label input{width:100%;min-height:46px;padding:11px 13px;border:1px solid #ffffff12;border-radius:14px;outline:none;color:#edf3f5;background:#151b21}.composer input,.invite-code-input,label input{font-size:16px}.composer input:focus,.invite-code-input:focus,label input:focus{border-color:#b5f36e88}.send-button{flex:0 0 46px;height:46px;border-radius:14px;color:#0e1116;background:#b5f36e;font-size:23px;font-weight:800}.modal-layer{position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;display:grid;place-items:end center;height:var(--app-height);padding:14px;background:#0009}.modal-card{position:relative;width:min(100%,520px);max-height:calc(var(--app-height) - 28px);overflow:auto;padding:26px 20px 20px;border:1px solid #ffffff16;border-radius:23px;background:#151c22;box-shadow:0 20px 70px #000b}.modal-close{position:absolute;top:13px;right:15px;width:30px;height:30px;border-radius:10px;color:#aab7bf;background:#ffffff0c;font-size:23px;line-height:1}.modal-card h2{margin:5px 0 8px;font-size:20px}.modal-description{margin-bottom:16px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}.invite-code-card{display:grid;gap:5px;margin:12px 0 14px;padding:13px 15px;border:1px solid #b5f36e33;border-radius:16px;background:#19271e;text-align:center}.invite-code-card span{color:#a7b9aa;font-size:11px}.invite-code-card strong{color:#b5f36e;font-size:30px;letter-spacing:.2em;line-height:1.1;font-variant-numeric:tabular-nums}.code-import-row{display:grid;grid-template-columns:1fr 92px;gap:8px}.invite-code-input{text-align:center;font-size:19px!important;letter-spacing:.16em;font-variant-numeric:tabular-nums}.invite-actions .wide,.import-actions .wide{grid-column:1 / -1}.micro-note{margin-top:12px}label{display:grid;gap:7px;margin:14px 0;color:#aebbc3;font-size:12px}label input{min-height:44px}form .primary-button{width:100%;margin-top:7px}@media(min-width:640px){.app-shell{padding-right:28px;padding-left:28px}.modal-layer{place-items:center}}@media(max-width:360px){.code-import-row{grid-template-columns:1fr}}
