:root{--bg:#f4f3ec;--panel:#fff;--panel2:#ece9dd;--border:#141414;--border-strong:#141414;--line-soft:#d8d4c6;--text:#141414;--muted:#5c5a52;--accent:#141414;--accent-hover:#000;--accent-ink:#fff;--green:#137a37;--red:#b3261e;--yellow:#8a6a00;--shadow:#141414;--sh:4px 4px 0 var(--shadow);--sh-sm:2px 2px 0 var(--shadow);--sh-lg:6px 6px 0 var(--shadow);--radius:12px}[data-theme=dark]{--bg:#0c0c0c;--panel:#1a1a1a;--panel2:#262626;--border:#ece9dd;--border-strong:#fff;--line-soft:#2a2a2a;--text:#f2f2f2;--muted:#a6a39a;--accent:#f2f2f2;--accent-hover:#fff;--accent-ink:#0c0c0c;--green:#4ac26b;--red:#ff6b61;--yellow:#e3b341;--shadow:#ece9dd;--sh:4px 4px 0 var(--shadow);--sh-sm:2px 2px 0 var(--shadow);--sh-lg:6px 6px 0 var(--shadow)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{display:flex;flex-direction:column;height:100dvh;position:relative;isolation:isolate}.topbar{justify-content:space-between;padding:max(env(safe-area-inset-top),10px) 12px 10px;border-bottom:1px solid var(--border)}.brand,.topbar{display:flex;align-items:center}.brand{font-weight:700;gap:8px;min-width:0}.brand-titles{display:flex;flex-direction:column;line-height:1.1;min-width:0}.brand-name{font-size:.96rem;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}.brand-sub{font-size:.66rem;color:var(--muted);font-weight:500}.actions{display:flex;align-items:center;gap:8px}.status-dot{width:9px;height:9px;border-radius:50%;background:#ff7b72;flex:none;box-shadow:0 0 0 3px hsla(4,100%,72%,.12)}.status-dot.online{background:#56d364;box-shadow:0 0 0 3px rgba(86,211,100,.14)}.status-dot.connecting,.status-dot.host-offline{background:#e3b341;box-shadow:0 0 0 3px rgba(227,179,65,.14);animation:pulse 1.2s infinite}button.icon{background:transparent;border:none;font-size:1.2rem;color:var(--muted);cursor:pointer;padding:4px 6px;line-height:1;border-radius:8px}button.icon:hover{color:var(--text)}.menu{border-bottom:1px solid var(--border);padding:12px 14px;gap:12px}.menu,.menu label{display:flex;flex-direction:column}.menu label{gap:6px;font-size:.85rem;color:var(--muted)}.menu label.row{flex-direction:row;align-items:center;justify-content:space-between}.menu select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px;font-size:1rem}.menu-buttons{display:flex;gap:10px}.menu-buttons button{flex:1 1;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px;font-size:.9rem}.log{flex:1 1;overflow-y:auto;padding:6px 0 14px;display:flex;flex-direction:column;gap:2px}.msg{max-width:100%;padding:12px 16px;white-space:pre-wrap;word-wrap:break-word;line-height:1.55}.msg.user{position:relative;align-self:stretch;margin:8px 12px 2px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;color:var(--text);font-weight:500}.msg.user .msg-edit{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:7px;background:transparent;border:none;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .15s}.msg.user:hover .msg-edit{opacity:.85}.msg.user .msg-images{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.msg.user .msg-images img{max-width:180px;border-radius:8px;border:1px solid var(--border)}.msg.assistant{align-self:stretch;background:transparent;border:none;padding:6px 16px 14px;color:var(--text)}.msg.info{align-self:center;background:transparent;color:var(--muted);font-size:.8rem;text-align:center;padding:4px 16px}.msg.error{color:var(--red);border:1px solid var(--red);border-radius:var(--radius);font-weight:600}.msg.error,.msg.file-card{align-self:stretch;margin:8px 12px;background:var(--panel);box-shadow:var(--sh-sm)}.msg.file-card{display:flex;flex-direction:column;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius)}.file-card-top{gap:12px;min-width:0}.file-card-top,.file-icon{display:flex;align-items:center}.file-icon{flex:none;width:46px;height:46px;justify-content:center;font-family:ui-monospace,Menlo,monospace;font-size:.66rem;font-weight:700;letter-spacing:.02em;color:var(--accent-ink);background:var(--accent);border:none;border-radius:9px}.file-meta{flex:1 1;min-width:0}.file-name{font-weight:700;color:var(--text)}.file-name,.file-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-sub{font-size:.74rem;color:var(--muted);margin-top:2px}.file-actions{display:flex;gap:8px}.file-progress{height:6px;border-radius:999px;background:var(--border);overflow:hidden}.file-progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .2s ease}.file-btn{flex:1 1;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;padding:9px 10px;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:9px;box-shadow:none;transition:transform .1s,box-shadow .12s,background .12s}.file-btn.primary{color:var(--accent-ink);background:var(--accent);border-color:transparent}.file-btn:hover{background:var(--text);color:var(--bg)}.file-btn.primary:hover{background:var(--accent-hover)}.file-btn:active{transform:scale(.97);box-shadow:none}.file-btn:disabled{opacity:.55;cursor:default;transform:none}.file-btn:disabled:hover{background:var(--panel);color:var(--text)}.file-btn.primary:disabled:hover{background:var(--accent);color:var(--accent-ink)}.tool-group{align-self:stretch;margin:5px 12px;background:var(--panel2);border:1px solid var(--border);border-radius:11px;overflow:hidden;box-shadow:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.77rem}.tool-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:9px 12px}.tool-group>summary::-webkit-details-marker{display:none}.tg-glyph{flex:none;width:14px;display:flex;align-items:center;justify-content:center;color:var(--text)}.tg-label{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-weight:600}.tg-stats{flex:none;display:flex;align-items:center;gap:6px}.tg-fail{color:var(--red);font-weight:700}.tg-count{background:var(--panel);border:1.5px solid var(--border);border-radius:999px;padding:1px 9px;font-size:.68rem;font-weight:700;color:var(--muted)}.tg-chev{flex:none;color:var(--muted);transition:transform .15s}.tool-group[open]>summary .tg-chev{transform:rotate(180deg)}.tg-spinner{display:inline-block;width:11px;height:11px;border:2px solid var(--accent);border-top:2px solid transparent;border-radius:50%;animation:spin .8s linear infinite}.tg-body{border-top:1px solid var(--border);background:var(--panel);padding:4px;display:flex;flex-direction:column;gap:2px}.tg-row-head{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;min-width:0}.tg-row-head:hover{background:var(--panel2)}details.tg-row{border-radius:7px}details.tg-row>summary{list-style:none;cursor:pointer}details.tg-row>summary::-webkit-details-marker{display:none}.tg-row-glyph{flex:none;width:14px;text-align:center;color:var(--muted)}.tg-row-name{flex:none;font-weight:700;color:var(--text)}.tg-row-summary{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.tg-row-state{flex:none}.tg-row-state.ok{color:var(--green)}.tg-row-state.fail{color:var(--red)}.tg-row-state.running{color:var(--muted)}.tg-row-body{margin:2px 8px 6px;padding:9px 10px;background:var(--panel2);border:1px solid var(--line-soft);border-radius:7px;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow-y:auto;color:var(--text);font-size:.74rem;line-height:1.5}.tool-group.casting{animation:tool-blink 1.1s steps(2) infinite}@keyframes tool-blink{50%{border-color:var(--muted)}}.run-banner{display:flex;align-items:center;gap:10px;margin:0 12px 6px;padding:9px 12px;background:var(--panel2);border:1px solid var(--border);border-radius:12px;font-size:.82rem}.run-banner .run-label{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px}.run-banner .run-title{font-weight:700}.run-banner .run-elapsed,.run-banner .run-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.run-banner .run-elapsed{font-size:.7rem;color:var(--muted);font-family:ui-monospace,Menlo,monospace}.run-banner.cancelling .run-elapsed{color:var(--red)}.run-banner .run-stop{flex:none;background:var(--red);color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:.82rem;font-weight:700;cursor:pointer}.run-banner .run-stop:disabled{opacity:.6;cursor:default}.run-spinner{width:15px;height:15px;border:2px solid var(--accent);border-top:2px solid transparent;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(1turn)}}.idle-bar{display:flex;justify-content:center;margin:0;padding:2px 12px 10px}.idle-retry{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:6px 18px;font-size:.8rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:color .15s,border-color .15s,transform .1s}.idle-retry:hover{color:var(--text);border-color:var(--border-strong)}.idle-retry:active{transform:scale(.96)}.approval{margin:0 12px 8px;background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);padding:12px;box-shadow:var(--sh)}.approval-title{font-weight:700;color:var(--text);margin-bottom:6px}.approval-detail{font-family:ui-monospace,monospace;font-size:.75rem;background:var(--panel2);border:1px solid var(--line-soft);color:var(--text);padding:8px;border-radius:8px;max-height:140px;overflow:auto;margin:0 0 10px;white-space:pre-wrap}.approval-buttons{display:flex;gap:10px}.approval-buttons button{flex:1 1;padding:12px;border:none;border-radius:8px;font-size:1rem;font-weight:600}.approve{background:var(--green);color:#fff}.deny{background:var(--red);color:#fff}.composer{display:flex;flex-direction:column;gap:6px;padding:8px 10px max(env(safe-area-inset-bottom),8px);border-top:1px solid var(--border)}.attachments{display:flex;gap:8px;padding:2px 2px 4px;overflow-x:auto}.att-chip{position:relative;flex-shrink:0}.att-chip img{width:54px;height:54px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}.att-chip .att-x{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;border:none;font-size:.8rem;cursor:pointer;line-height:1}.uploads{gap:6px;padding:2px 2px 6px}.upload-chip,.uploads{display:flex;flex-direction:column}.upload-chip{position:relative;gap:5px;padding:8px 30px 9px 10px;background:var(--panel);border:2px solid var(--border);border-radius:10px;box-shadow:var(--sh-sm)}.upload-chip.sent{border-color:var(--green)}.upload-chip.error{border-color:var(--red)}.upload-info{display:flex;align-items:center;justify-content:space-between;gap:10px}.upload-name{font-size:.8rem;color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-meta{font-size:.72rem;color:var(--muted);font-family:ui-monospace,Menlo,monospace;flex-shrink:0}.upload-chip.error .upload-meta{color:var(--red)}.upload-bar{height:5px;background:var(--panel2);border-radius:999px;overflow:hidden}.upload-bar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .15s ease}.upload-chip.sent .upload-bar-fill{background:var(--green)}.upload-chip.error .upload-bar-fill{background:var(--red)}.upload-chip .att-x{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:6px;background:var(--panel2);color:var(--muted);border:none;font-size:.9rem;cursor:pointer;line-height:1}.upload-chip .att-x:hover{color:var(--text)}.tool-btn:disabled{opacity:.4;cursor:default}.edit-banner{display:flex;align-items:center;gap:8px;padding:6px 10px;background:rgba(210,153,34,.12);border:1px solid var(--yellow);border-radius:10px;color:var(--yellow);font-size:.78rem}.edit-banner button{margin-left:auto;background:none;border:none;color:var(--yellow);font-size:1rem;cursor:pointer}.composer-box{display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:8px 8px 6px;transition:border-color .15s}.composer-box:focus-within{border-color:var(--accent)}.composer-box.listening{border-color:#ff5f57;box-shadow:0 0 0 1px rgba(255,95,87,.35)}.composer-box textarea{resize:none;min-height:44px;max-height:200px;background:transparent;color:var(--text);border:none;outline:none;padding:4px 6px;font-size:1rem;line-height:1.5;font-family:inherit}.composer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 2px 0}.composer-left,.composer-right{display:flex;align-items:center;gap:6px}.tool-btn{background:transparent;border:none;color:var(--muted);font-size:1.05rem;cursor:pointer;padding:4px 6px;border-radius:8px}.tool-btn:hover{color:var(--text)}.model-select{background:transparent;color:var(--muted);border:none;border-radius:8px;padding:4px 6px;font-size:.8rem;max-width:150px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.chip,.model-select:hover{color:var(--text)}.chip{border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:.8rem;cursor:pointer;line-height:1}.chip,.chip.warn{background:var(--panel2)}.chip.warn{color:var(--yellow);border-color:var(--yellow)}.mic{color:var(--text);border:1px solid var(--border);border-radius:50%;width:38px;height:38px;font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.mic,.mic.recording{background:var(--panel2)}.mic.recording{color:var(--red);border-color:var(--red);animation:pulse 1s infinite}.send{background:var(--accent);color:#fff;border:none;border-radius:50%;width:38px;height:38px;font-size:1.2rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.send:hover:not(:disabled){background:var(--accent-hover)}.send:disabled{opacity:.35;cursor:default}.send.is-stop{background:var(--red)}.rec-hint{display:flex;align-items:center;gap:7px;font-size:.74rem;color:var(--muted);padding:0 6px}.rec-dot{width:8px;height:8px;border-radius:50%;background:#ff5f57;animation:pulse 1s infinite}.rec-count{margin-left:2px}.rec-stop-link{margin-left:auto;background:none;border:none;color:#ff7b72;font-size:.74rem;cursor:pointer;text-decoration:underline;padding:2px 4px}.drawer-overlay{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.5);display:flex}.drawer{width:min(86vw,360px);height:100%;border-right:1px solid var(--border);display:flex;flex-direction:column;padding-top:max(env(safe-area-inset-top),10px);animation:slideIn .18s ease}@keyframes slideIn{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:700}.drawer-new{color:#fff;border:none;border-radius:999px;padding:6px 14px;font-size:.82rem;cursor:pointer}.drawer-list{flex:1 1;overflow-y:auto;padding:8px}.drawer-empty{color:var(--muted);padding:16px;font-size:.85rem}.drawer-group{margin-bottom:8px}.drawer-group-head{width:100%;display:flex;align-items:center;gap:6px;padding:9px 10px;margin-top:2px;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:none;border:1px solid transparent;border-radius:8px;cursor:pointer;text-align:left;font-family:inherit}.drawer-group-head:hover{background:var(--panel2);color:var(--text)}.drawer-group.current>.drawer-group-head{color:var(--text)}.drawer-group-chev{font-size:.7rem;opacity:.7}.drawer-group-titles{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px}.drawer-group-name,.drawer-group-path{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-group-path{font-size:.62rem;text-transform:none;letter-spacing:0;color:var(--muted);opacity:.8;font-family:ui-monospace,Menlo,monospace}.drawer-group-badge{color:#fff}.drawer-group-badge,.drawer-group-switch{font-size:.6rem;padding:1px 7px;border-radius:999px;text-transform:none;letter-spacing:0}.drawer-group-switch{color:var(--muted);border:1px solid var(--line-soft);opacity:.65;transition:opacity .12s}.drawer-group-head:hover .drawer-group-switch{opacity:1}.drawer-group-empty{color:var(--muted);font-size:.78rem;padding:6px 12px 4px}.drawer-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;cursor:pointer;border:1px solid transparent}.drawer-item:hover{background:var(--panel2)}.drawer-item.active{border-color:var(--accent)}.drawer-item-main{flex:1 1;min-width:0}.drawer-item-title{font-size:.9rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-item-meta{font-size:.72rem;color:var(--muted);margin-top:2px}.drawer-del{background:none;border:none;color:var(--muted);font-size:.9rem;cursor:pointer;padding:4px;opacity:.6}.drawer-del:hover{opacity:1;color:var(--red)}.drawer-add{padding:8px 8px 4px;border-bottom:1px solid var(--line-soft)}.drawer-add-btn{width:100%;display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--panel2);border:1px dashed var(--border);border-radius:10px;color:var(--text);font-size:.85rem;font-weight:600;cursor:pointer}.drawer-add-btn:hover{background:var(--panel)}.drawer-add-form{display:flex;flex-direction:column;gap:8px}.drawer-add-input{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:4px 4px 4px 10px}.drawer-add-input.listening{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.drawer-add-input input{flex:1 1;min-width:0;border:none;background:none;color:var(--text);font-size:.88rem;font-family:ui-monospace,Menlo,monospace;padding:6px 0;outline:none}.drawer-add-mic{background:none;border:none;font-size:1rem;cursor:pointer;padding:6px 8px;border-radius:8px}.drawer-add-mic.recording{color:var(--red);animation:micPulse 1s ease-in-out infinite}.drawer-add-actions{display:flex;gap:8px}.drawer-add-open{flex:1 1;color:#fff;border:none;border-radius:9px;padding:9px;font-size:.85rem;font-weight:700;cursor:pointer}.drawer-add-open:disabled{opacity:.5;cursor:default}.drawer-add-cancel{background:none;border:1px solid var(--line-soft);color:var(--muted);border-radius:9px;padding:9px 14px;font-size:.85rem;cursor:pointer}.drawer-add-hint{display:flex;align-items:center;gap:6px;font-size:.74rem;color:var(--muted);padding:2px 2px 0}@keyframes micPulse{0%,to{opacity:1}50%{opacity:.4}}.brand-ws{display:flex;align-items:center;gap:4px;background:none;border:none;padding:1px 0 0;margin:0;font-size:.68rem;color:var(--muted);cursor:pointer;max-width:52vw;font-family:ui-monospace,Menlo,monospace}.brand-ws:hover{color:var(--text)}.brand-ws-dot{font-size:.6rem;opacity:.7}.brand-ws{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.connect{max-width:460px;margin:0 auto;padding:36px 22px 48px;display:flex;flex-direction:column;gap:16px;min-height:100dvh}.connect h1{margin:0}.connect p{color:var(--muted);margin:0;line-height:1.5}.connect .warn{color:var(--yellow)}.connect label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}.connect input{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:12px;font-size:1rem}.connect-hero{display:flex;flex-direction:column;gap:8px;padding-top:8px}.connect-tag{color:var(--text)!important;font-weight:700;font-size:1.05rem}.connect-lede{font-size:.95rem}.setup-steps{list-style:none;margin:4px 0;padding:0;display:flex;flex-direction:column;gap:12px}.setup-steps li{display:flex;align-items:flex-start;gap:12px;font-size:.92rem;color:var(--text);line-height:1.45}.setup-steps .step-n{flex:none;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;color:var(--accent-ink);background:var(--accent);border:2px solid var(--border);border-radius:8px;box-shadow:var(--sh-sm)}.setup-steps .step-n,.setup-steps em{font-family:ui-monospace,Menlo,monospace}.setup-steps em{color:var(--muted);font-style:normal;font-size:.85em}.connect-go,.scan-btn{margin-top:4px;background:var(--accent);color:var(--accent-ink);border:2px solid var(--border);border-radius:10px;padding:15px;font-size:1.02rem;font-weight:700;cursor:pointer;box-shadow:var(--sh);transition:transform .08s,box-shadow .08s}.connect-go:active:not(:disabled),.scan-btn:active{transform:translate(2px,2px);box-shadow:none}.connect-go:disabled{opacity:.5;cursor:default}.scan-error{color:var(--red)!important}.manual-toggle,.scan-error{font-size:.85rem;font-weight:600}.manual-toggle{background:none;border:none;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px;align-self:center}.manual-toggle:hover{color:var(--text)}.manual-fields{gap:14px;padding:16px;border:2px solid var(--border);border-radius:var(--radius);box-shadow:var(--sh-sm);background:var(--panel)}.manual-fields,.scan-panel{display:flex;flex-direction:column}.scan-panel{gap:12px;align-items:center}.scan-video{width:100%;max-width:320px;aspect-ratio:1;object-fit:cover;background:#000;border:3px solid var(--border);border-radius:var(--radius);box-shadow:var(--sh)}.scan-hint{text-align:center}.scan-cancel{background:var(--panel);color:var(--text);border:2px solid var(--border);border-radius:10px;padding:12px 24px;font-size:.95rem;font-weight:700;cursor:pointer;box-shadow:var(--sh-sm)}.scan-cancel:active{transform:translate(2px,2px);box-shadow:none}.msg.assistant{font-size:1rem;line-height:1.6}.msg.assistant>div>:first-child{margin-top:0}.msg.assistant>div>:last-child{margin-bottom:0}.msg.assistant p{margin:0 0 10px}.msg.assistant h1,.msg.assistant h2,.msg.assistant h3,.msg.assistant h4,.msg.assistant h5,.msg.assistant h6{margin:16px 0 8px;line-height:1.25;color:var(--text);font-weight:700}.msg.assistant h1{font-size:1.4em;border-bottom:2px solid var(--border);padding-bottom:4px}.msg.assistant h2{font-size:1.22em}.msg.assistant h3{font-size:1.08em}.msg.assistant h4,.msg.assistant h5,.msg.assistant h6{font-size:1em}.msg.assistant strong{font-weight:700;color:var(--text)}.msg.assistant em{font-style:italic}.msg.assistant del{opacity:.65}.msg.assistant a{color:var(--text);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:2px;font-weight:600}.msg.assistant a:hover{background:var(--text);color:var(--bg);text-decoration:none}.msg.assistant hr{border:none;border-top:2px solid var(--border);margin:14px 0}.msg.assistant ol,.msg.assistant ul{margin:0 0 10px;padding-left:1.4em}.msg.assistant li{margin:3px 0}.msg.assistant li::marker{color:var(--muted);font-weight:700}.msg.assistant blockquote{margin:10px 0;padding:6px 14px;color:var(--muted);border-left:4px solid var(--border);background:var(--panel2);border-radius:0 8px 8px 0}.table-wrap{overflow-x:auto;margin:10px 0}.msg.assistant table{border-collapse:collapse;width:100%;font-size:.9em;border:2px solid var(--border)}.msg.assistant td,.msg.assistant th{border:1px solid var(--line-soft);padding:7px 10px;text-align:left}.msg.assistant th{background:var(--panel2);font-weight:700}.msg.assistant tbody tr:nth-child(2n) td{background:rgba(0,0,0,.025)}.msg.assistant code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:var(--panel2);border:1px solid var(--line-soft);padding:1px 5px;border-radius:5px;word-break:break-word}.code-block{margin:12px 0;border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--sh-sm);background:var(--panel)}.code-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px 5px 12px;background:var(--panel2);border-bottom:2px solid var(--border)}.code-lang{font-family:ui-monospace,Menlo,monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.code-tools{display:flex;gap:6px}.code-btn{font:inherit;font-size:.72rem;font-weight:700;cursor:pointer;padding:3px 10px;border:2px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);box-shadow:var(--sh-sm);transition:transform .08s,box-shadow .08s}.code-btn:hover{background:var(--text);color:var(--bg)}.code-btn:active{transform:translate(2px,2px);box-shadow:none}.msg.assistant pre{background:transparent;border:none;border-radius:0;padding:12px 14px;overflow-x:auto;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;line-height:1.55}.msg.assistant pre code{background:transparent;border:none;padding:0;font-size:.82rem}.streaming-cursor{display:inline-block;width:7px;height:13px;background:var(--accent);vertical-align:middle;margin-left:2px;animation:cur-blink .75s step-end infinite}@keyframes cur-blink{50%{opacity:0}}.thinking{display:flex;align-items:center;gap:5px;align-self:flex-start;padding:6px 16px;color:var(--muted)}.thinking span{display:inline-block;width:7px;height:7px;border-radius:50%;animation:td-bounce .9s ease-in-out infinite both}.thinking span:nth-child(2){animation-delay:.16s}.thinking span:nth-child(3){animation-delay:.32s}@keyframes td-bounce{0%,80%,to{transform:scale(.5);opacity:.5}40%{transform:scale(1);opacity:1}}.magic-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;background-color:var(--bg);background-image:radial-gradient(currentColor 1px,transparent 0);color:var(--line-soft);background-size:22px 22px;background-position:-1px -1px;opacity:.5}.topbar{border-bottom:2px solid var(--border)}.composer,.topbar{background:var(--panel)}.composer{border-top:2px solid var(--border)}.brand-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;color:var(--text);letter-spacing:-.01em}.brand-sub{font-family:ui-monospace,Menlo,monospace;letter-spacing:.04em;text-transform:uppercase}button.icon{border:2px solid transparent;border-radius:9px}button.icon:hover{border-color:var(--border)}.status-dot{box-shadow:none;border:2px solid var(--border)}.status-dot.online{background:var(--green);box-shadow:none}.status-dot.connecting,.status-dot.host-offline{background:var(--yellow);box-shadow:none}.log>*{animation:enter .22s ease both}@keyframes enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg.user{background:var(--panel);border:2px solid var(--border);box-shadow:var(--sh-sm);border-radius:var(--radius)}.tool-group .tg-row-state.ok{color:var(--green)}.tool-group .tg-row-state.fail{color:var(--red)}.run-banner{background:var(--panel);border:2px solid var(--border);box-shadow:var(--sh-sm);border-radius:var(--radius)}.run-banner .run-spinner{border-color:var(--border);border-top-color:transparent;box-shadow:none}.run-banner .run-label{color:var(--text);font-weight:600}.run-banner .run-stop{border:2px solid var(--border);box-shadow:var(--sh-sm)}.thinking span{background:var(--muted);box-shadow:none}.composer-box{border:2px solid var(--border);box-shadow:var(--sh-sm)}.composer-box:focus-within{border-color:var(--border-strong);box-shadow:var(--sh)}.composer-box.listening{border-color:var(--red);box-shadow:0 0 0 1px rgba(255,95,87,.3)}.send:not(.is-stop){background:var(--accent);color:var(--accent-ink);border:none;box-shadow:var(--sh-sm)}.send:not(.is-stop):hover:not(:disabled){background:var(--accent-hover);transform:none;box-shadow:var(--sh-sm)}.send:not(:disabled):active{transform:scale(.94);box-shadow:none}.send{transition:transform .1s,box-shadow .1s,background .15s}.send.is-stop{border:none}.mic,.send.is-stop{box-shadow:var(--sh-sm)}.mic{border:2px solid var(--border)}.mic:active{transform:translate(2px,2px);box-shadow:none}.chip{border:2px solid var(--border);box-shadow:var(--sh-sm)}.model-select{border:2px solid transparent}.model-select:hover{border-color:var(--line-soft)}.menu{background:var(--panel2);border-bottom:2px solid var(--border)}.menu select,.menu-buttons button{border:2px solid var(--border);box-shadow:var(--sh-sm)}.menu-buttons button:active{transform:translate(2px,2px);box-shadow:none}.menu-info{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted)}.menu-info-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.menu-info-row code{font-family:ui-monospace,Menlo,monospace;color:var(--text);background:var(--panel);border:1px solid var(--line-soft);border-radius:6px;padding:2px 7px;max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-install{background:var(--accent);color:var(--accent-ink);border:2px solid var(--border);border-radius:9px;padding:11px;font-size:.9rem;font-weight:700;cursor:pointer;box-shadow:var(--sh-sm)}.menu-install:active{transform:translate(2px,2px);box-shadow:none}.menu-unpair{background:var(--panel);color:var(--red);border:2px solid var(--red);border-radius:9px;padding:10px;font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:var(--sh-sm)}.menu-unpair:active{transform:translate(2px,2px);box-shadow:none}.drawer{background:var(--panel);border-right:2px solid var(--border)}.drawer-head{border-bottom:2px solid var(--border)}.drawer-new{background:var(--accent);color:var(--accent-ink);border:2px solid var(--border);box-shadow:var(--sh-sm)}.drawer-item{border:2px solid transparent}.drawer-item.active{border-color:var(--border);box-shadow:var(--sh-sm);background:var(--panel2)}.drawer-group-badge{background:var(--accent);color:var(--accent-ink)}.drawer-group-head{border:2px solid transparent}.drawer-group.current>.drawer-group-head{border-color:var(--line-soft)}.drawer-add-btn{border:2px dashed var(--border)}.drawer-add-input,.drawer-add-open{border:2px solid var(--border);box-shadow:var(--sh-sm)}.drawer-add-open{background:var(--accent);color:var(--accent-ink)}.drawer-add-cancel{border:2px solid var(--border)}.edit-banner{background:var(--panel2);border:2px solid var(--yellow);color:var(--text)}.streaming-cursor{background:var(--text);border-radius:1px;box-shadow:none}.connect h1{color:var(--text);font-family:ui-monospace,Menlo,monospace}.connect input{border:2px solid var(--border);box-shadow:var(--sh-sm)}.connect input:focus{outline:none;border-color:var(--border);box-shadow:var(--sh)}@media (prefers-reduced-motion:reduce){.log>*,.run-spinner,.status-dot,.thinking span,.tool.casting{animation:none!important}}.landing{min-height:100dvh;flex-direction:column;position:relative;overflow-x:hidden}.landing,.ln-nav{display:flex;background:var(--bg)}.ln-nav{position:-webkit-sticky;position:sticky;top:0;z-index:40;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--line-soft)}.ln-logo{font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:.95rem;letter-spacing:-.02em;color:var(--text)}.ln-nav-links{display:flex;align-items:center;gap:20px;font-size:.85rem}.ln-nav-links a{color:var(--muted);text-decoration:none}.ln-nav-links a:hover{color:var(--text)}.ln-nav-cta{background:var(--accent);color:#fff!important;padding:7px 16px;border-radius:999px;font-weight:600}.ln-nav-cta:hover{opacity:.88}@media (max-width:520px){.ln-nav-links a:not(.ln-nav-cta){display:none}}.ln-hero{display:flex;align-items:center;gap:48px;padding:64px 24px 80px;max-width:1100px;margin:0 auto;width:100%;flex-wrap:wrap}.ln-hero-inner{flex:1 1;min-width:280px}.ln-eyebrow{display:flex;align-items:center;gap:8px;font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:20px}.ln-eyebrow-dot{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.ln-h1{font-size:clamp(2.2rem,6vw,3.6rem);font-weight:800;line-height:1.08;margin:0 0 20px;color:var(--text);letter-spacing:-.03em}.ln-h1-accent{color:var(--accent)}.ln-lede{font-size:1.1rem;color:var(--muted);line-height:1.6;margin:0 0 28px;max-width:480px}.ln-hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.btn-primary{background:var(--accent);color:#fff;padding:13px 26px;border-radius:12px;font-weight:700;font-size:1rem;text-decoration:none;border:2px solid var(--accent);transition:opacity .12s}.btn-primary:hover{opacity:.88}.btn-secondary{background:var(--panel);color:var(--text);padding:13px 26px;border-radius:12px;font-weight:600;font-size:1rem;text-decoration:none;border:2px solid var(--border)}.btn-secondary:hover{background:var(--panel2)}.ln-hero-note{font-size:.75rem;color:var(--muted)}.ln-mockup{flex:1 1;min-width:280px;max-width:480px;background:var(--panel);border:2px solid var(--border);border-radius:14px;box-shadow:6px 6px 0 var(--border);overflow:hidden;font-family:ui-monospace,Menlo,monospace;font-size:.82rem}.ln-mock-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--panel2);border-bottom:1px solid var(--line-soft)}.ln-mock-bar span{width:10px;height:10px;border-radius:50%;background:var(--line-soft);display:inline-block}.ln-mock-bar span:first-child{background:#f87171}.ln-mock-bar span:nth-child(2){background:#fbbf24}.ln-mock-bar span:nth-child(3){background:#4ade80}.ln-mock-title{margin-left:8px;font-size:.74rem;color:var(--muted)}.ln-mock-body{padding:16px;display:flex;flex-direction:column;gap:10px}.ln-mock-msg{padding:9px 12px;border-radius:8px;line-height:1.45}.ln-mock-msg code{background:var(--panel2);padding:1px 5px;border-radius:4px}.ln-mock-user{background:var(--panel2);align-self:flex-end;max-width:90%}.ln-mock-assistant,.ln-mock-user{color:var(--text);border:1px solid var(--line-soft)}.ln-mock-assistant{background:var(--panel)}.ln-mock-tools{display:flex;flex-direction:column;gap:4px;padding:6px 0}.ln-mock-tool{font-size:.76rem;color:var(--muted);padding:3px 8px;border-left:2px solid var(--line-soft)}.ln-mock-approval{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--panel2);border-radius:8px;border:1px solid var(--yellow);flex-wrap:wrap}.ln-mock-appr-label{font-size:.78rem;color:var(--text);flex:1 1;min-width:120px}.ln-mock-appr-yes{background:var(--green);color:#fff;border:none;border-radius:6px;font-weight:700}.ln-mock-appr-no,.ln-mock-appr-yes{padding:4px 12px;font-size:.75rem;cursor:default}.ln-mock-appr-no{background:none;border:1px solid var(--line-soft);color:var(--muted);border-radius:6px}.ln-section{padding:72px 24px;max-width:1100px;margin:0 auto;width:100%;box-sizing:border-box}.ln-section-alt{background:var(--panel2);max-width:100%;padding-left:0;padding-right:0}.ln-section-alt>*{max-width:1100px;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}.ln-h2{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800;margin:0 0 12px;letter-spacing:-.025em;color:var(--text)}.ln-section-sub{color:var(--muted);font-size:1.05rem;margin:0 0 40px}.ln-steps{display:flex;flex-direction:column;gap:28px;margin-top:40px}.ln-step{display:flex;gap:20px;align-items:flex-start}.ln-step-n{font-family:ui-monospace,Menlo,monospace;font-size:1.6rem;font-weight:800;color:var(--accent);line-height:1;min-width:42px}.ln-step-body strong{display:block;font-size:1.05rem;margin-bottom:4px}.ln-step-body p{margin:0;color:var(--muted);line-height:1.55}.ln-features{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:20px;gap:20px;margin-top:40px}.ln-feature{background:var(--panel);border:1px solid var(--line-soft);border-radius:14px;padding:22px 20px}.ln-feature-icon{font-size:1.6rem;margin-bottom:10px}.ln-feature strong{display:block;font-size:.95rem;margin-bottom:6px}.ln-feature p{margin:0;font-size:.84rem;color:var(--muted);line-height:1.5}.ln-plans{display:flex;gap:20px;margin-top:40px;flex-wrap:wrap;align-items:flex-start}.plan-card{flex:1 1;min-width:220px;background:var(--panel);border:2px solid var(--border);border-radius:16px;padding:28px 24px;display:flex;flex-direction:column;gap:14px;position:relative}.plan-highlight{border-color:var(--accent);box-shadow:4px 4px 0 var(--accent)}.plan-tag{position:absolute;top:-12px;left:20px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;padding:2px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}.plan-name{font-weight:700;font-size:1rem;color:var(--text)}.plan-price{font-size:2.4rem;font-weight:800;color:var(--text);line-height:1}.plan-period{font-size:1rem;font-weight:500;color:var(--muted)}.plan-features{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;flex:1 1}.plan-features li{display:flex;gap:8px;font-size:.88rem;color:var(--muted);align-items:flex-start}.plan-check{color:var(--green);font-size:.85rem;margin-top:1px;flex-shrink:0}.plan-cta{display:block;width:100%;text-align:center;padding:11px;border-radius:10px;font-weight:700;font-size:.9rem;text-decoration:none;border:2px solid var(--border);color:var(--text);margin-top:4px;background:transparent;cursor:pointer;font-family:inherit}.plan-cta:hover{background:var(--panel2)}.plan-cta-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.plan-cta-primary:hover{background:var(--accent);opacity:.88}.plan-subtext{margin-top:-4px}.ln-pricing-foot,.plan-subtext{font-size:.8rem;color:var(--muted)}.ln-pricing-foot{margin-top:20px}.ln-pricing-foot,.ln-wl-section{text-align:center}.ln-wl-inner{max-width:480px;margin:0 auto;padding:72px 24px}.wl-form{display:flex;flex-direction:column;gap:10px;margin-top:8px}.wl-input{padding:12px 14px;border:2px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);font-size:.95rem;font-family:inherit}.wl-input:focus{outline:none;border-color:var(--accent)}.wl-submit{padding:13px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer}.wl-submit:disabled{opacity:.5;cursor:default}.wl-submit:not(:disabled):hover{opacity:.88}.wl-err{font-size:.82rem;color:var(--red);margin:0}.wl-success{display:flex;align-items:flex-start;gap:14px;background:var(--panel);border:2px solid var(--green);border-radius:12px;padding:18px;text-align:left}.wl-tick{font-size:1.4rem;color:var(--green);line-height:1}.wl-success strong{display:block;margin-bottom:4px}.wl-success p{margin:0;font-size:.85rem;color:var(--muted)}.ln-footer{border-top:1px solid var(--line-soft);padding:28px 24px;background:var(--bg)}.ln-footer-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.ln-footer-links{display:flex;gap:20px;flex:1 1}.ln-footer-links a{font-size:.82rem;color:var(--muted);text-decoration:none}.ln-footer-links a:hover{color:var(--text)}.ln-footer-copy{font-size:.78rem;color:var(--muted)}[data-theme=dark] .ln-mock-bar span:first-child{background:#ef4444}[data-theme=dark] .ln-feature{background:var(--panel);border-color:var(--line-soft)}[data-theme=dark] .plan-card,[data-theme=dark] .wl-input{background:var(--panel)}.sub-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px;animation:sub-fade .15s ease}@keyframes sub-fade{0%{opacity:0}to{opacity:1}}.sub-modal{position:relative;width:100%;max-width:420px;background:var(--panel);border:2px solid var(--border);border-radius:16px;box-shadow:var(--sh);padding:28px 24px 22px;animation:sub-pop .18s ease}@keyframes sub-pop{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}.sub-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border:none;background:transparent;font-size:1.4rem;line-height:1;color:var(--muted);cursor:pointer;border-radius:8px}.sub-close:hover{background:var(--panel2);color:var(--text)}.sub-title{margin:0 0 8px;font-size:1.25rem;font-weight:800;color:var(--text);display:flex;align-items:center;gap:10px}.sub-badge{background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}.sub-note{margin:0 0 18px;font-size:.86rem;line-height:1.5;color:var(--muted)}.sub-form{display:flex;flex-direction:column;gap:10px}.sub-input{padding:12px 14px;border:2px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font-size:.95rem;font-family:inherit}.sub-input:focus{outline:none;border-color:var(--accent)}.sub-submit{padding:13px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;font-family:inherit;margin-top:2px}.sub-submit:disabled{opacity:.5;cursor:default}.sub-submit:not(:disabled):hover{opacity:.88}.sub-err{font-size:.82rem;color:var(--red);margin:4px 0 0}.sub-footer{margin:16px 0 0;font-size:.74rem;color:var(--muted);text-align:center}.pay-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.pay-card{width:100%;max-width:460px;text-align:center;background:var(--panel);border:2px solid var(--border);border-radius:16px;box-shadow:var(--sh);padding:40px 32px}.pay-icon{width:64px;height:64px;margin:0 auto 20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800}.pay-icon-success{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green);border:2px solid var(--green)}.pay-icon-cancel{background:color-mix(in srgb,var(--yellow) 18%,transparent);color:var(--yellow);border:2px solid var(--yellow)}.pay-title{margin:0 0 12px;font-size:1.5rem;font-weight:800;color:var(--text)}.pay-body{margin:0 0 22px;font-size:.95rem;line-height:1.6;color:var(--muted)}.pay-detail{text-align:left;background:var(--bg);border:1px solid var(--line-soft);border-radius:12px;padding:16px 18px;margin:0 0 24px}.pay-detail-row{display:flex;justify-content:space-between;gap:12px;font-size:.86rem;padding:4px 0}.pay-detail-row strong{color:var(--text)}.pay-detail-muted,.pay-note{color:var(--muted)}.pay-note{margin:0 0 24px;font-size:.82rem;line-height:1.5}.pay-cta{display:inline-block;padding:13px 28px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;text-decoration:none;cursor:pointer}.pay-cta:hover{opacity:.88}.pay-back{display:block;margin-top:16px;font-size:.85rem;color:var(--muted);text-decoration:none}.pay-back:hover{color:var(--text)}[data-theme=dark] .pay-card,[data-theme=dark] .sub-modal{background:var(--panel)}[data-theme=dark] .pay-detail,[data-theme=dark] .sub-input{background:var(--bg)}.menu-gh{background:var(--panel);color:var(--text);border:2px solid var(--border);border-radius:9px;padding:11px;font-size:.9rem;font-weight:700;cursor:pointer;box-shadow:var(--sh-sm);font-family:inherit}.menu-gh:active{transform:translate(2px,2px);box-shadow:none}.gh-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px}.gh-modal{position:relative;width:100%;max-width:380px;background:var(--panel);border:2px solid var(--border);border-radius:16px;box-shadow:var(--sh);padding:26px 22px 20px}.gh-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border:none;background:transparent;font-size:1.4rem;line-height:1;color:var(--muted);cursor:pointer;border-radius:8px}.gh-close:hover{background:var(--panel2);color:var(--text)}.gh-title{margin:0 0 12px;font-size:1.2rem;font-weight:800;color:var(--text);display:flex;align-items:center;gap:8px}.gh-mark{font-size:1.1rem}.gh-note{margin:0 0 16px;font-size:.86rem;line-height:1.5;color:var(--muted)}.gh-note a{color:var(--text);font-weight:600}.gh-btn{display:block;width:100%;text-align:center;padding:12px;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;text-decoration:none;margin-top:8px;border:2px solid var(--border);background:var(--panel);color:var(--text);box-shadow:var(--sh-sm)}.gh-btn:active{transform:translate(2px,2px);box-shadow:none}.gh-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.gh-ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--muted);font-weight:600}.gh-ghost:active{transform:none}.gh-code{font-family:ui-monospace,Menlo,monospace;font-size:1.6rem;font-weight:800;letter-spacing:.12em;text-align:center;color:var(--text);background:var(--bg);border:2px dashed var(--border);border-radius:10px;padding:12px;margin:4px 0 10px;-webkit-user-select:all;-moz-user-select:all;user-select:all}.gh-waiting{font-size:.8rem;color:var(--muted);text-align:center;margin:0}.gh-input{width:100%;padding:11px 12px;border:2px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font-size:.95rem;font-family:ui-monospace,Menlo,monospace;margin-bottom:4px;box-sizing:border-box}.gh-input:focus{outline:none;border-color:var(--accent)}.gh-err{color:var(--red);font-size:.82rem;margin:8px 0 0}[data-theme=dark] .gh-modal{background:var(--panel)}[data-theme=dark] .gh-code,[data-theme=dark] .gh-input{background:var(--bg)}