:root{--bg: #0a0a0f;--bg-surface: #12121a;--bg-elevated: #1a1a26;--border: #2a2a3a;--text: #e0e0e8;--text-muted: #6a6a7a;--accent: #4a9eff;--accent-dim: #2a5a8f;--danger: #ff4a4a;--success: #4aff8a;--font: "SF Mono", "Fira Code", "Consolas", monospace}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);height:100vh;overflow:hidden;font-size:13px}.hidden{display:none!important}.screen{height:100vh}.setup-container{max-width:420px;margin:0 auto;padding:120px 24px 24px;text-align:center}.setup-container h1{font-size:24px;font-weight:600;margin-bottom:8px;letter-spacing:-.5px}.subtitle{color:var(--text-muted);margin-bottom:48px;font-size:12px}label{display:block;text-align:left;font-size:11px;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}input[type=text]{width:100%;padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--font);font-size:12px;outline:none;margin-bottom:12px}input[type=text]:focus{border-color:var(--accent)}.btn-primary{width:100%;padding:12px;background:var(--accent);color:#000;border:none;border-radius:6px;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer}.btn-primary:hover{background:#5aadff}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{width:100%;padding:12px;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:6px;font-family:var(--font);font-size:13px;cursor:pointer}.btn-secondary:hover{border-color:var(--text-muted)}.btn-danger{padding:10px 20px;background:var(--danger);color:#000;border:none;border-radius:6px;font-family:var(--font);font-size:12px;font-weight:600;cursor:pointer}.divider{display:flex;align-items:center;margin:24px 0;color:var(--text-muted);font-size:11px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.divider span{padding:0 12px}.seed-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:10px;word-break:break-all;text-align:left;margin-bottom:16px;line-height:1.6}.selectable{user-select:all;cursor:text}.blurred{filter:blur(5px);transition:filter .2s}.blurred.revealed{filter:none}.btn-sm{width:auto;padding:6px 12px;font-size:11px;margin-top:6px}.warning{color:var(--danger);font-size:11px;margin-bottom:16px}.setup-info{color:var(--success);font-size:12px;margin-bottom:12px;line-height:1.5}.setup-actions{display:flex;gap:8px;margin-bottom:16px}.setup-actions .btn-sm{flex:1}.confirm-label{display:flex;align-items:center;font-size:12px;color:var(--text);margin-bottom:16px;text-transform:none;letter-spacing:0;cursor:pointer}input[type=checkbox]{margin-right:8px;accent-color:var(--accent)}.messenger-layout{display:flex;height:100vh}#sidebar{width:280px;min-width:280px;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}.sidebar-header h2{font-size:14px;font-weight:600}.sidebar-header button{width:28px;height:28px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--accent);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.sidebar-header button:hover{background:var(--border)}#contact-list{flex:1;overflow-y:auto}.contact-item{padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.contact-item:hover{background:var(--bg-elevated)}.contact-item.active{background:var(--accent-dim)}.contact-row{display:flex;align-items:center;justify-content:space-between}.contact-item .alias{font-size:13px;font-weight:500;margin-bottom:2px}.unread-badge{background:var(--accent);color:#000;font-size:10px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 6px}.contact-item .pub-key{font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.identity-badge{font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.sidebar-footer button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px}.sidebar-footer button:hover{color:var(--text)}#chat-area{flex:1;display:flex;flex-direction:column;background:var(--bg)}.chat-placeholder{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px}#chat-active{display:flex;flex-direction:column;height:100vh}#chat-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:baseline;gap:12px}#chat-contact-name{font-weight:600;font-size:14px}.truncated-key{font-size:10px;color:var(--text-muted);flex:1}.btn-chat-action{padding:4px 10px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-family:var(--font);font-size:10px;cursor:pointer;margin-left:auto}.btn-chat-action:hover{border-color:var(--accent);color:var(--accent)}#chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:8px}.message{max-width:70%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.5;word-wrap:break-word}.message.sent{align-self:flex-end;background:var(--accent-dim);border-bottom-right-radius:4px}.message.received{align-self:flex-start;background:var(--bg-elevated);border-bottom-left-radius:4px}.message .timestamp{font-size:9px;color:var(--text-muted);margin-top:4px}.message.failed{opacity:.5;border:1px solid var(--danger)}.message .tx-link{font-size:9px;color:var(--accent-dim);cursor:pointer}#chat-input-area{padding:16px 20px;border-top:1px solid var(--border);display:flex;gap:10px}#chat-input{flex:1;margin-bottom:0}#chat-input-area .btn-primary{width:auto;padding:10px 24px}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:24px;width:400px;max-width:90vw;max-height:85vh;overflow-y:auto}.modal h3{font-size:16px;margin-bottom:20px}.modal-actions{display:flex;gap:10px;margin-top:20px}.modal-actions .btn-primary,.modal-actions .btn-secondary{width:auto;flex:1}.setting-row{margin-bottom:12px}.setting-row.danger{margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.compute-panel{padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-elevated)}.compute-balance{display:flex;align-items:baseline;justify-content:space-between}.compute-label{font-size:9px;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase}.compute-count{font-size:20px;font-weight:700;color:var(--accent)}.compute-sub{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.compute-sats{font-size:10px;color:var(--text-muted)}.btn-fund{padding:4px 12px;background:transparent;border:1px solid var(--accent);border-radius:4px;color:var(--accent);font-family:var(--font);font-size:10px;cursor:pointer;text-transform:uppercase;letter-spacing:.5px}.btn-fund:hover{background:var(--accent);color:#000}.compute-explainer{font-size:12px;color:var(--text-muted);line-height:1.6;margin-bottom:20px}.compute-explainer strong{color:var(--accent)}.compute-pricing{margin-bottom:20px}.price-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}.price-row:last-child{border-bottom:none}.price-label{color:var(--text-muted)}.price-value{color:var(--text);font-weight:500}.price-row.highlight{background:var(--bg-elevated);margin:4px -12px 0;padding:10px 12px;border-radius:6px;border-bottom:none}.price-row.highlight .price-value{color:var(--accent);font-weight:700}.fund-instructions{margin-top:16px}.compute-note{font-size:11px;color:var(--text-muted);line-height:1.5;font-style:italic;margin-top:12px}.qr-display{display:flex;justify-content:center;padding:12px;background:#fff;border-radius:8px;margin-bottom:8px}.qr-display canvas,.qr-display img{max-width:140px;max-height:140px}.qr-actions{display:flex;gap:8px}.modal-desc{font-size:12px;color:var(--text-muted);margin-bottom:16px;line-height:1.5}.add-contact-options{display:flex;flex-direction:column;gap:0}.file-upload-label{display:block;text-align:center;cursor:pointer}#camera-container{margin-top:12px;border-radius:8px;overflow:hidden;position:relative}#camera-video{width:100%;border-radius:8px;background:#000}#camera-container .btn-sm{margin-top:8px}.scan-status{margin-top:12px;padding:10px;border-radius:6px;font-size:12px;text-align:center}.scan-status.success{background:#4aff8a1a;color:var(--success);border:1px solid var(--success)}.scan-status.error{background:#ff4a4a1a;color:var(--danger);border:1px solid var(--danger)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px}.status-dot.connected{background:var(--success)}.status-dot.disconnected{background:var(--danger)}@media(max-width:768px){html,body{height:100%;height:-webkit-fill-available;overflow:hidden}.screen{height:100%;height:-webkit-fill-available}.messenger-layout{position:relative;height:100%;height:-webkit-fill-available;overflow:hidden}#sidebar{position:absolute;inset:0;width:100%;min-width:100%;height:100%;z-index:50;transition:transform .2s ease;display:flex;flex-direction:column}#sidebar.sidebar-hidden{transform:translate(-100%);pointer-events:none}.sidebar-header{padding:14px 16px;flex-shrink:0}#contact-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.contact-item{padding:16px;min-height:48px}.compute-panel{padding:10px 16px;flex-shrink:0}.compute-count{font-size:18px}.sidebar-footer{padding:14px 16px;flex-shrink:0;min-height:48px;padding-bottom:env(safe-area-inset-bottom,14px)}.sidebar-footer button{font-size:22px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.identity-badge{font-size:11px}#chat-area{position:absolute;inset:0;width:100%;height:100%;display:flex;flex-direction:column}#chat-active{height:100%;display:flex;flex-direction:column}#chat-header{padding:12px 16px;flex-shrink:0;align-items:center}#chat-header .btn-back{background:none;border:none;color:var(--accent);font-size:22px;cursor:pointer;padding:0;margin-right:8px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.btn-chat-action{padding:8px 12px;font-size:11px;min-height:36px}#chat-messages{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px;min-height:0}.message{max-width:85%;font-size:14px}#chat-input-area{padding:10px 12px;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,10px)}#chat-input{font-size:16px;padding:12px}#chat-input-area .btn-primary{padding:12px 18px;font-size:14px;min-height:44px}.setup-container{padding:60px 20px 20px}.setup-container h1{font-size:20px}.btn-primary,.btn-secondary{padding:14px;font-size:14px;min-height:48px}.modal-overlay{align-items:flex-end;padding:0}.modal{width:100%;max-width:100%;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:20px;border-radius:16px 16px 0 0;border-bottom:none}.modal h3{font-size:18px}.seed-box{font-size:11px;padding:10px}.qr-display canvas,.qr-display img{max-width:160px;max-height:160px}.price-row{font-size:12px;padding:10px 0}label{font-size:12px}input[type=text]{font-size:16px;padding:12px}}
