:root{--bg:#f8fafc;--panel:#fff;--panel-2:#f7f7f7;--line:#ecf0f2;--line-strong:#dae1e4;--fg:#002536;--fg-2:#798b95;--fg-3:#a8b4bb;--accent:#00aab4;--accent-soft:#e6f5fa;--buy:#1ab74c;--buy-soft:#dff5e6;--sell:#e04c4f;--sell-soft:#fecdca;--pending-soft:#ffddc4;--violet:#785ae6;--violet-soft:#dbdcf0;--btn:#000;--btn-hover:#464646;--on-btn:#fff;--elevation:0px 1px 3px 0px #0000000f, 0px 1px 2px -1px #0000000f;--air-gradient:conic-gradient(from 90deg, #f7df99 0%, #fec5a4 20%, #f1c6e3 40%, #c3c4e5 60%, #9bd5ea 80%, #addbd0 100%);--air-horizontal:linear-gradient(90deg, #f7df99 0%, #fec5a4 20%, #f1c6e3 40%, #c3c4e5 60%, #9bd5ea 80%, #addbd0 100%);--font-display:"Poppins", "DM Sans", system-ui, sans-serif;--font-body:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-data:"Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;--r-card:12px;--r-input:4px;--r-pill:999px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body)}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);margin:0;font-size:14px;line-height:1.45}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page{flex-direction:column;gap:12px;height:100%;padding:14px 18px 16px;display:flex}.mast{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand .logo{width:auto;height:22px}h1.title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:600;line-height:1.2}.relay{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--panel);max-width:min(440px,48vw);box-shadow:var(--elevation);color:var(--fg);margin:0;padding:6px 12px;font-size:13px;font-weight:600;line-height:1.35}.relay:before{content:"";background:var(--fg-3);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.relay[data-tone=ok]:before{background:var(--buy);box-shadow:0 0 0 3px var(--buy-soft)}.relay[data-tone=bad]:before{background:var(--sell);box-shadow:0 0 0 3px var(--sell-soft)}.banner{border-radius:var(--r-card);background:var(--sell-soft);color:var(--fg);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.banner-text{margin:0}button.banner-action,button.send,button.offer,button.act,button.tour-go,button.ask{border-radius:var(--r-pill);background:var(--btn);color:var(--on-btn);border:0;padding:6px 14px;font-size:13px;font-weight:600}button.banner-action:hover,button.send:hover,button.offer:hover,button.act:hover,button.tour-go:hover,button.ask:hover{background:var(--btn-hover)}button.tour-go:disabled,button.send:disabled,button.offer:disabled{opacity:.45;cursor:default}.desks{flex:1;grid-template-columns:minmax(0,1fr) 108px minmax(0,1fr);gap:12px;min-height:0;display:grid;position:relative}.spine{--beacon:#00aab473;--beacon-dot:var(--accent);flex-direction:column;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:0;display:flex}.spine-line{background:linear-gradient(transparent, var(--line-strong), transparent);flex:1;width:2px;min-height:28px}.spine-link{background:linear-gradient(var(--panel), var(--panel)) padding-box, var(--air-gradient) border-box;width:92px;height:92px;color:var(--fg);text-align:center;box-shadow:var(--elevation);border:3px solid #0000;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:12px;line-height:1.15;text-decoration:none;animation:3.2s ease-in-out infinite beacon-glow;display:flex;position:relative}.spine-link:before{content:"";background:var(--beacon-dot);border-radius:50%;width:8px;height:8px;margin-bottom:3px;animation:3.2s ease-in-out infinite beacon-dot}.spine-link:after{content:"";border:1px solid var(--beacon);pointer-events:none;border-radius:50%;animation:3.2s ease-out infinite beacon-ring;position:absolute;inset:-3px}.spine[data-tone=ok]{--beacon:#1ab74c73;--beacon-dot:var(--buy)}.spine[data-tone=bad]{--beacon:#e04c4f80;--beacon-dot:var(--sell)}@keyframes beacon-glow{0%,to{box-shadow:var(--elevation)}45%{box-shadow:var(--elevation), 0 0 0 6px color-mix(in srgb, var(--beacon-dot) 18%, transparent)}}@keyframes beacon-dot{0%,to{opacity:.4;transform:scale(.85)}45%{opacity:1;transform:scale(1)}}@keyframes beacon-ring{0%{opacity:.7;transform:scale(.92)}70%{opacity:0;transform:scale(1.4)}to{opacity:0;transform:scale(1.4)}}.spine-name{font-family:var(--font-display);color:var(--fg);font-size:12px;font-weight:600;line-height:1.15}.desk{border:1px solid var(--line);border-radius:var(--r-card);background:var(--panel);min-width:0;min-height:0;color:var(--fg);box-shadow:var(--elevation);flex-direction:column;display:flex;position:relative;overflow:visible}.desk:before{content:"";background:var(--air-horizontal);border-radius:calc(var(--r-card) - 1px) calc(var(--r-card) - 1px) 0 0;flex:none;height:3px;display:block}.desk.attention{box-shadow:var(--elevation), inset 0 0 0 2px var(--accent)}.desk-head,.rail-head{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 10px;display:flex}.rail-head{padding-top:0}.desk-name{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:600;display:flex}.buyer .desk-name:before,.merchant .desk-name:before{content:"";border-radius:50%;flex:none;width:8px;height:8px}.buyer .desk-name:before{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.merchant .desk-name:before{background:var(--violet);box-shadow:0 0 0 3px var(--violet-soft)}.identity{text-align:right;max-width:46%;position:relative}.identity-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.pubkey{font-family:var(--font-data);color:var(--fg-3);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.reveal{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:600}.reveal:hover{color:var(--fg)}button.info{border:1px solid var(--line-strong);background:var(--panel);width:22px;height:22px;color:var(--fg-2);font-family:var(--font-display);border-radius:50%;padding:0;font-size:12px;font-weight:600;line-height:1}button.info[aria-expanded=true]{background:var(--btn);border-color:var(--btn);color:var(--on-btn)}.notice{z-index:5;border:1px solid var(--line);border-radius:var(--r-card);background:var(--panel);width:min(320px,70vw);color:var(--fg);text-align:left;box-shadow:var(--elevation), 0 16px 40px #0025361f;margin:0;padding:12px 14px 4px;position:absolute;top:calc(100% + 8px);left:auto;right:0}.notice-list{margin:0;padding:0}.notice-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 8px;font-size:14px;font-weight:600}.notice-item{color:var(--fg-2);margin:0 0 10px;padding:0;font-size:13px;line-height:1.45;list-style:none}.notice-item .notice-label{color:var(--fg);font-weight:600}.warning{min-height:1em;color:var(--sell);margin:4px 0 0;font-size:13px}.secret{border-radius:var(--r-input);background:var(--panel-2);color:var(--fg);font-family:var(--font-data);word-break:break-all;text-align:left;margin-top:6px;padding:8px;font-size:11px;line-height:1.35;display:block}.pane-gate{z-index:4;text-align:center;border-radius:0 0 calc(var(--r-card) - 1px) calc(var(--r-card) - 1px);background:var(--panel);color:var(--fg);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;display:flex;position:absolute;inset:3px 0 0}.gate-kicker{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);margin:0;font-size:12px;font-weight:600}.merchant .gate-kicker{color:var(--violet)}.gate-title{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:28px;font-weight:600}.gate-copy{max-width:360px;color:var(--fg-2);margin:0 0 8px}.want{border-radius:var(--r-pill);background:var(--btn);color:var(--on-btn);font-family:var(--font-display);letter-spacing:-.01em;cursor:pointer;border:0;flex:none;margin:4px 16px 12px;padding:12px 16px;font-size:15px;font-weight:600}.want:hover{background:var(--btn-hover)}.hint,.quiet{color:var(--fg-2);margin:0 16px 8px;font-size:13px}.count,.rail-note,.composer-label,.kicker,.field-label{font-family:var(--font-display);letter-spacing:-.02em;color:var(--fg-2);margin:0;font-size:12px;font-weight:500}.count{background:var(--panel-2);border-radius:var(--r-pill);padding:1px 8px}.tabs{background:var(--panel-2);border-radius:var(--r-pill);scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;gap:2px;width:fit-content;max-width:calc(100% - 32px);margin:0 16px 8px;padding:2px;display:flex;overflow-x:auto}.tab{border-radius:var(--r-pill);color:var(--fg-2);cursor:pointer;background:0 0;border:0;flex:none;padding:3px 12px;font-size:12px}.tab.on{background:var(--panel);color:var(--fg);box-shadow:0 0 0 1px var(--line-strong);font-weight:600}.thread,.rail,.mthread{min-width:0;min-height:0;padding:0 16px 12px;overflow:hidden auto}.buyer .thread{flex-direction:column;flex:1;gap:10px;display:flex}.rail{flex-direction:column;flex:1;gap:8px;display:flex}.group{border:1px solid var(--line);border-radius:var(--r-card);background:var(--panel);padding:10px 12px 12px}.group.open{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.group-head{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:0;display:flex}.group-title,.bubble-title,.detail-title,.ticket-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--fg);margin:0;font-size:15px;font-weight:600}.notice-mark{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.notice-mark .notice-label,.closed-label{font-size:12px;font-weight:600}.notice-mark .notice-label{color:var(--accent)}.closed-label{color:var(--fg-3);margin-left:auto}.dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%;flex:none}.group .tags{margin:8px 0 0}.group:not(.open) .group-notes{display:none}.group-notes{flex-direction:column;gap:8px;margin-top:10px;display:flex}.group-notes:empty{display:none}.bubble{border-radius:var(--r-card);background:var(--panel);border:1px solid var(--line);min-width:0;max-width:100%;color:var(--fg);overflow-wrap:anywhere;padding:10px 12px;animation:.18s ease-out rise}.bubble.out{background:var(--panel-2)}.bubble.offer{border-left:3px solid var(--buy)}.bubble.proof_request{border-left:3px solid var(--accent)}.bubble.proof{border-left:3px solid var(--violet)}.bubble.prompt{box-shadow:inset 3px 0 0 var(--accent)}.meta,.ticket-top,.line-item,.actions{justify-content:space-between;gap:8px;display:flex}.meta,.when,.who,.about,.from{color:var(--fg-2);font-size:12px}.from,.who,.when{font-family:var(--font-data)}.about,.claim,.line,.total,.ticket-summary,.detail-copy,.detail-want{margin:4px 0 0}.detail-want,.ticket-summary,.detail-copy{color:var(--fg-2)}.total{color:var(--buy);font-weight:600}.lines{margin:8px 0 0;padding:0;list-style:none}.line-title,.qty{color:var(--fg)}.actions{justify-content:flex-start;margin-top:10px}.act.decline{background:var(--panel);color:var(--fg);border:1px solid var(--line-strong)}.act.decline:hover{border-color:var(--accent);background:var(--panel);color:var(--fg)}.ticket{text-align:left;border:1px solid var(--line);border-radius:var(--r-card);background:var(--panel);width:100%;max-width:100%;color:var(--fg);cursor:pointer;padding:10px 12px}.ticket:hover{background:var(--panel-2)}.ticket.mine{background:var(--buy-soft)}.ticket.selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.ticket.arrive{animation:.6s ease-out arrive}@keyframes arrive{0%{background:var(--accent-soft)}to{background:var(--panel)}}.tags{flex-wrap:wrap;gap:4px 6px;margin-top:8px;display:flex}.tag{border-radius:var(--r-input);background:var(--panel-2);color:var(--fg-2);padding:1px 7px;font-size:11.5px}.tag.mine{background:var(--buy-soft);color:var(--fg);font-weight:600}.tag.asked{background:var(--accent-soft);color:var(--fg);font-weight:600}.tag.offered{background:var(--violet-soft);color:var(--fg);font-weight:600}.modal{z-index:20;background:#00253673;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.buyer-modal{z-index:22}.modal-card{border-radius:var(--r-card);border:1px solid var(--line);background:var(--panel);width:min(560px,100%);max-height:min(760px,100% - 32px);color:var(--fg);box-shadow:var(--elevation), 0 24px 60px #00253629;padding:0 22px 8px;position:relative;overflow:auto}.modal-card:before{content:"";background:var(--air-horizontal);height:3px;margin:0 -22px 16px;display:block}.modal-close{z-index:2;background:var(--panel-2);width:32px;height:32px;color:var(--fg);cursor:pointer;border:0;border-radius:50%;font-size:22px;line-height:1;position:absolute;top:14px;right:12px}.modal-close:hover{background:var(--line)}.modal .detail{padding:4px 40px 8px 0}.modal-card>.detail-title{margin:4px 40px 0 0;font-size:20px}.modal .detail-title{margin-top:0;font-size:20px}.detail{padding:12px 16px 0}.kicker{font-family:var(--font-data);letter-spacing:0}.mthread{flex-direction:column;flex:1;gap:8px;width:100%;min-width:0;min-height:0;display:flex;overflow:hidden auto}.modal .mthread{max-height:none;padding:0 0 8px}.composer{border-top:1px solid var(--line);background:0 0;grid-template-columns:1fr;gap:8px;padding:12px 0 16px;display:grid}.composer.intent{border-top:0;padding-top:4px}.modal .composer.offer{grid-template-columns:1.4fr .8fr}.modal .composer-actions{grid-column:1/-1}.profile-note{color:var(--fg-2);grid-column:1/-1;margin:0;font-size:13px}.field.profile,form.profile button.ask{grid-column:1/-1}form.profile button.ask{justify-self:end}.composer-label{grid-column:1/-1}.field{color:var(--fg);flex-direction:column;gap:4px;font-size:13px;display:flex}.field.summary,.field.want{grid-column:span 2}input{border:1px solid var(--line-strong);background:var(--panel);width:100%;min-width:0;color:var(--fg);border-radius:var(--r-input);padding:8px 10px;font-size:16px}input::placeholder{color:var(--fg-3)}.composer-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}button.generate{border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--panel);color:var(--fg);padding:6px 14px;font-size:13px;font-weight:600}button.generate:hover{border-color:var(--accent)}button.send,button.offer{align-self:end}.form-error{color:var(--sell);grid-column:1/-1;margin:0}.profile-ask{white-space:pre-wrap;color:var(--fg)}.discount{color:var(--fg);margin:4px 0 0;font-weight:600}.proofs{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.proofs button.proof{border:1px solid var(--line-strong);color:var(--fg-2);border-radius:var(--r-pill);cursor:pointer;background:0 0;padding:4px 12px;font-size:13px;font-weight:600}.proofs button.proof:hover{border-color:var(--accent);color:var(--fg)}.proofs button.proof.on{background:var(--accent-soft);color:var(--fg);border-color:var(--accent)}.dial{grid-column:1/-1;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;display:grid}.dial-readout{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--accent);font-size:22px;font-weight:600}.dial input[type=range]{width:100%;accent-color:var(--accent);background:0 0;border:0;grid-column:1/-1;margin:0;padding:0}.mark{outline:2px solid var(--accent);outline-offset:3px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.bubble,.spine-link,.spine-link:before,.spine-link:after,.ticket.arrive{animation:none}.spine-link:before{opacity:1}}@media (width<=860px){html,body,#app{height:auto;min-height:100%}.page{height:auto;padding:12px 12px 24px}.mast{flex-direction:column;align-items:stretch;gap:10px}h1.title{font-size:16px}.relay{max-width:none}.desks{grid-template-columns:1fr;gap:0}.spine{flex-direction:row;padding:10px 4px}.spine-line{background:linear-gradient(90deg, transparent, var(--line-strong), transparent);flex:1;width:auto;height:1px;min-height:0}.spine-link{flex:none;width:92px;height:92px}.desk{min-height:0}.buyer .thread,.rail{min-height:240px;max-height:62vh}.identity{max-width:54%}.mthread{flex:none;min-height:72px;max-height:220px}.modal .composer.offer{grid-template-columns:1fr}.desk-head,.rail-head{padding:14px 14px 8px}.rail-head{padding-top:0}.thread,.rail,.mthread{padding-left:12px;padding-right:12px}.banner{flex-direction:column;align-items:flex-start}}
