:root{--bg-base: #0c0a09;--bg-surface: #141110;--bg-elevated: #1c1815;--bg-panel: #161311;--bg-hover: #241e1a;--bg-active: #2e2621;--border-subtle: #241d18;--border-default: #33291f;--border-strong: #4d3d2b;--text-primary: #f5ede2;--text-secondary: #c4b6a3;--text-tertiary: #8c7d6c;--text-muted: #5a4f43;--accent: #fb923c;--accent-hover: #f97316;--accent-dim: rgba(251, 146, 60, .13);--accent-glow: rgba(251, 146, 60, .3);--good: #34d399;--warn: #fbbf24;--bad: #f87171;--info: #60a5fa;--xfer: #fb923c;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--transition: .16s ease}[hidden]{display:none!important}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);font-size:15px;line-height:1.5;color:var(--text-primary);background:radial-gradient(1100px 620px at 82% -10%,rgba(251,146,60,.11),transparent 60%),radial-gradient(900px 520px at 6% 108%,rgba(249,115,22,.06),transparent 60%),var(--bg-base);-webkit-font-smoothing:antialiased}#app{min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column}svg{width:1.15em;height:1.15em;flex:none}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px clamp(14px,4vw,34px);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:20;background:#0c0a09d1;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px;font-weight:650}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:#1a0f05;background:linear-gradient(140deg,#fcd34d,var(--accent));box-shadow:0 4px 16px var(--accent-glow)}.brand-mark svg{width:19px;height:19px;stroke-width:2}.brand-name{font-size:18px;letter-spacing:-.01em}.topnav{display:flex;gap:4px}.nav-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:13.5px;cursor:pointer;transition:var(--transition)}.nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-btn svg{width:16px;height:16px}.trust-banner{display:flex;align-items:center;gap:12px;width:min(760px,calc(100% - 28px));margin:18px auto 0;padding:12px 16px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--accent-dim);color:var(--text-secondary);font:inherit;font-size:13.5px;text-align:left;cursor:pointer;transition:var(--transition)}.trust-banner:hover{border-color:var(--accent);color:var(--text-primary)}.trust-banner svg{width:18px;height:18px;color:var(--accent)}.trust-banner strong{color:var(--text-primary);font-weight:620}.main-content{flex:1 0 auto;width:min(760px,calc(100% - 28px));margin:0 auto;padding:18px 0 44px;display:flex;flex-direction:column;gap:18px}.card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--bg-surface),var(--bg-base));padding:clamp(20px,3vw,28px)}.card-title{margin:0 0 6px;font-size:clamp(22px,3.6vw,28px);letter-spacing:-.02em}.card-sub{margin:0 0 18px;color:var(--text-secondary);max-width:60ch}.card-sub.center{margin-left:auto;margin-right:auto}.section-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:10px}.center-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.result-icon{width:64px;height:64px;display:grid;place-items:center;margin-bottom:6px;border-radius:50%;background:var(--accent-dim);color:var(--accent);border:1px solid rgba(251,146,60,.32)}.result-icon svg{width:30px;height:30px}.result-icon.good{background:#34d3991f;color:var(--good);border-color:#34d39952}.result-icon.bad{background:#f871711f;color:var(--bad);border-color:#f8717152}.result-icon.spin svg{animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-card .btn-primary{margin-top:12px}.field-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:6px}.field-label .muted{text-transform:none;letter-spacing:0;font-size:12px}.text-input{width:100%;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--text-primary);font:inherit;font-size:14px}.text-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.link-row{display:flex;gap:8px}.link-input{width:100%;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--accent);font-family:var(--font-mono);font-size:12.5px}.link-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.secret-wrap{position:relative}.compose-input{width:100%;padding:12px 14px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-base);color:var(--text-primary);font-family:var(--font-mono);font-size:15px;line-height:1.5;resize:vertical;min-height:76px}.compose-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.secret-input{padding-right:44px}.secret-input.masked{-webkit-text-security:disc;text-security:disc}.secret-toggle{position:absolute;top:8px;right:8px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.secret-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.secret-toggle svg{width:16px;height:16px}.compose-meta{margin-top:6px}.shake{animation:shake .4s ease;border-color:var(--bad)!important}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.mode-row{margin:20px 0 6px}.mode-opt{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin-bottom:8px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-panel);cursor:pointer;transition:var(--transition)}.mode-opt:hover{border-color:var(--border-strong)}.mode-opt:has(input:checked){border-color:var(--accent);background:var(--accent-dim)}.mode-opt input{margin-top:3px;accent-color:var(--accent);width:16px;height:16px;flex:none}.mode-opt div{display:flex;flex-direction:column;gap:2px}.mode-opt strong{font-size:14px}.mode-opt span{font-size:12.5px;color:var(--text-tertiary)}.compose-actions{display:flex;gap:8px;align-items:center;margin-top:16px;flex-wrap:wrap}.compose-hint{margin-top:12px;display:flex;align-items:center;gap:6px}.compose-hint svg{width:14px;height:14px;color:var(--warn);flex:none}.compose-hint kbd{font-family:var(--font-mono);font-size:11px;padding:1px 5px;border-radius:4px;background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-primary);font:inherit;font-size:14px;font-weight:550;cursor:pointer;transition:var(--transition)}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn:disabled{opacity:.6;cursor:default}.btn svg{width:16px;height:16px}.btn-sm{padding:6px 11px;font-size:12.5px}.btn-primary{background:linear-gradient(140deg,#fcd34d,var(--accent));color:#1a0f05;border-color:transparent;font-weight:650;box-shadow:0 4px 16px var(--accent-glow)}.btn-primary:hover{background:linear-gradient(140deg,#fde68a,var(--accent-hover));border-color:transparent}.btn-danger{color:var(--bad);border-color:#f8717159}.btn-danger:hover{background:#f871711f;border-color:var(--bad)}.status-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.status-dot{width:11px;height:11px;border-radius:50%;background:var(--text-muted);flex:none}.status-dot[data-status=waiting]{background:var(--warn);animation:pulse 1.6s infinite}.status-dot[data-status=connected]{background:var(--info)}.status-dot[data-status=delivered]{background:var(--good)}.status-dot[data-status=error]{background:var(--bad)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.status-text{font-weight:600}.status-row .btn-danger{margin-left:auto}.pair-grid{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:start}.pair-left{display:flex;flex-direction:column;gap:16px;min-width:0}.pair-right{display:flex;flex-direction:column;align-items:center;gap:8px}.qr-box{width:160px;height:160px;border-radius:var(--radius-md);background:#fff;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border-default)}.qr-box img{display:block;width:100%;height:100%}.qr-cap{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary)}.qr-cap svg{width:14px;height:14px}.sas-box{padding:14px 16px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-panel)}.sas-head{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-secondary);margin-bottom:10px}.sas-head svg{width:15px;height:15px;color:var(--accent);flex:none}.sas-words{display:flex;flex-wrap:wrap;gap:8px}.sas-word{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--accent);padding:6px 12px;border-radius:var(--radius-sm);background:var(--accent-dim);border:1px solid rgba(251,146,60,.3)}.pass-box{padding:14px 16px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-panel)}.pass-head{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-secondary);margin-bottom:10px}.pass-head svg{width:15px;height:15px;color:var(--accent);flex:none}.pass-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pass-value{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--accent);padding:6px 12px;border-radius:var(--radius-sm);background:var(--accent-dim);border:1px solid rgba(251,146,60,.3);word-break:break-all}.pass-box p{margin:8px 0 0}.extra-peer{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-sm);background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:var(--warn);font-size:13px}.extra-peer svg{width:16px;height:16px;flex:none}.reveal-label{display:inline-flex;align-items:center;gap:6px;margin:14px 0 8px;font-size:13px;color:var(--text-secondary)}.reveal-label svg{width:15px;height:15px;color:var(--accent)}.secret-reveal{margin:10px 0 16px;padding:16px 18px;border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--bg-base);font-family:var(--font-mono);font-size:16px;line-height:1.6;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;user-select:all;-webkit-user-select:all;box-shadow:0 0 0 3px var(--accent-dim)}.site-footer{flex-shrink:0;border-top:1px solid var(--border-subtle);padding:20px}.footer-inner{text-align:center;font-size:13px;color:var(--text-tertiary)}.footer-inner a{color:var(--text-secondary);text-decoration:none}.footer-inner a:hover{color:var(--accent)}.drawer{position:fixed;top:0;right:0;height:100%;width:min(420px,92vw);z-index:40;background:var(--bg-surface);border-left:1px solid var(--border-default);box-shadow:-20px 0 60px #00000080;transform:translate(100%);transition:transform .22s ease;display:flex;flex-direction:column}.drawer.open{transform:translate(0)}#drawer-body{display:flex;flex-direction:column;height:100%;min-height:0}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-subtle)}.drawer-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.drawer-controls{display:flex;align-items:center;gap:10px}.count{font-size:12px;color:var(--text-tertiary)}.filter-pill{padding:4px 9px;border:1px solid var(--border-default);border-radius:20px;background:transparent;color:var(--text-secondary);font:inherit;font-size:11.5px;cursor:pointer}.filter-pill:hover{background:var(--bg-hover)}.drawer-close{width:30px;height:30px;border:0;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);font-size:20px;line-height:1;cursor:pointer}.drawer-close:hover{background:var(--bg-hover);color:var(--text-primary)}.drawer-list{flex:1;overflow-y:auto;padding:8px 12px;font-family:var(--font-mono);font-size:12px}.event{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:baseline;padding:3px 0}.event .ts{color:var(--text-muted);font-size:11px}.event .ev-dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);align-self:center}.event[data-kind=good] .ev-dot{background:var(--good)}.event[data-kind=warn] .ev-dot{background:var(--warn)}.event[data-kind=bad] .ev-dot{background:var(--bad)}.event[data-kind=info] .ev-dot{background:var(--info)}.event[data-kind=xfer] .ev-dot{background:var(--xfer)}.event .msg{color:var(--text-secondary);word-break:break-word}#modal-host{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px}.modal-backdrop{position:absolute;inset:0;background:#040302bd;backdrop-filter:blur(3px)}.modal{position:relative;z-index:1;width:min(640px,100%);max-height:86vh;overflow-y:auto;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:0 30px 90px #0009}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border-subtle);position:sticky;top:0;background:var(--bg-surface)}.modal-title{margin:0;font-size:18px}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{padding:22px}.modal-body p{color:var(--text-secondary)}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.steps li{display:flex;gap:14px}.step-n{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--accent-dim);color:var(--accent);font-weight:700;font-size:13px;border:1px solid rgba(251,146,60,.3)}.steps strong{color:var(--text-primary)}.steps div{color:var(--text-secondary);font-size:14px}.steps code{font-family:var(--font-mono);font-size:12px;background:var(--bg-elevated);padding:1px 5px;border-radius:4px;color:var(--accent)}.muted{color:var(--text-tertiary)}.small{font-size:12.5px}.tm{display:flex;flex-direction:column;gap:20px}.tm h3{margin:0 0 8px;font-size:14px;display:flex;align-items:center;gap:8px}.tm-good{color:var(--good)}.tm-bad{color:var(--bad)}.tm-trust{color:var(--info)}.tm ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}.tm li{color:var(--text-secondary);font-size:13.5px}.tm strong{color:var(--text-primary)}.about-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px}.about-links a{color:var(--accent);text-decoration:none;font-size:14px}.about-links a:hover{text-decoration:underline}.glossary-link{color:var(--accent);border-bottom:1px dotted var(--accent);cursor:help;text-decoration:none}.glossary-tip{position:fixed;z-index:80;width:min(300px,82vw);padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:0 18px 50px #0009}.glossary-term{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:5px}.glossary-def{font-size:13px;color:var(--text-secondary);line-height:1.5}#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);z-index:90;padding:11px 18px;border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text-primary);font-size:13.5px;box-shadow:0 12px 40px #00000080;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%)}#toast[data-kind=ok]{border-color:var(--good)}#toast[data-kind=err]{border-color:var(--bad)}@media(max-width:640px){.nav-btn span{display:none}.nav-btn{padding:8px}.pair-grid{grid-template-columns:1fr}.pair-right{order:-1}.status-row .btn-danger{margin-left:0}.compose-actions .btn-primary{flex:1}}
