:root { color-scheme: dark; --bg:#07050f; --card:#11101a; --line:rgba(255,255,255,.12); --muted:#a3a0ad; --text:#f7f5fb; --accent:#a878ff; --green:#70e29a; --red:#ff8a8a; }
[hidden] { display:none !important; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:400 15px/1.5 Geist,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; min-height:100vh; }
a { color:inherit; }
button,input,select { font:inherit; }
.nav { height:64px; display:flex; align-items:center; justify-content:space-between; padding:0 max(20px,calc((100vw - 880px)/2)); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:9px; text-decoration:none; font-size:15px; font-weight:800; letter-spacing:.08em; }
.brand img { border-radius:8px; }
.back { color:var(--muted); text-decoration:none; font-size:13px; }
.back:hover, footer a:hover { color:var(--text); }
.trade-page { width:min(100% - 32px,680px); margin:42px auto 64px; }
.eyebrow,.label { display:block; color:var(--muted); font:700 10px/1.4 "Geist Mono",ui-monospace,monospace; letter-spacing:.12em; text-transform:uppercase; }
h1 { margin:8px 0 6px; font-size:clamp(30px,7vw,42px); line-height:1.1; letter-spacing:-.04em; }
.lede { max-width:560px; margin:0; color:var(--muted); }
.coin-box { margin:24px 0 14px; padding:15px; display:grid; gap:13px; background:var(--card); border:1px solid var(--line); border-radius:15px; }
.coin-box b { display:block; margin-top:3px; font-size:15px; }
.coin-market { display:block; margin-top:3px; color:var(--muted); font-size:12px; }
.mint { min-width:0; display:grid; grid-template-columns:1fr auto; align-items:center; gap:5px 12px; }
.mint .label { grid-column:1/-1; }
.mint code,.wallet-address-row code { overflow-wrap:anywhere; color:#cbc6d4; font:500 11px/1.45 "Geist Mono",ui-monospace,monospace; }
.mint button,.text-button { padding:6px 10px; border:1px solid var(--line); border-radius:8px; background:transparent; color:var(--text); cursor:pointer; font:600 11px Geist,sans-serif; }
.mint button:hover,.text-button:hover { border-color:var(--accent); }
.swap-box { padding:18px; background:var(--card); border:1px solid var(--line); border-radius:16px; }
.wallet-row { display:flex; align-items:center; gap:10px; min-height:44px; }
.wallet-copy { flex:1; min-width:0; }
.wallet-status { display:block; margin-top:3px; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.wallet-status.connected { color:var(--green); }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:42px; padding:0 16px; border:1px solid var(--line); border-radius:10px; cursor:pointer; font-weight:800; font-size:13px; transition:transform .15s,opacity .15s,border-color .15s; }
.button:hover:not(:disabled) { transform:translateY(-1px); }
.button:disabled { cursor:not-allowed; opacity:.55; }
.button.secondary { color:var(--text); background:rgba(255,255,255,.04); }
.button.secondary:hover:not(:disabled) { border-color:var(--accent); }
.wallet-row select { max-width:170px; padding:8px; border:1px solid var(--line); border-radius:8px; background:#191722; color:var(--text); }
.wallet-address-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:7px 12px; margin:12px 0 18px; padding:10px 11px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.025); }
.wallet-address-row p { grid-column:1/-1; margin:0; color:var(--muted); font-size:11px; }
.field-head { display:flex; justify-content:space-between; align-items:center; margin:20px 0 8px; color:#dbd7e2; font-size:12px; font-weight:700; }
.field-head span { color:var(--muted); font:700 10px "Geist Mono",ui-monospace,monospace; }
.amount-presets { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.amount-presets button { min-height:35px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.03); color:#ccc8d5; cursor:pointer; font:700 11px "Geist Mono",ui-monospace,monospace; }
.amount-presets button:hover,.amount-presets button[aria-pressed=true] { border-color:var(--accent); color:var(--text); background:rgba(168,120,255,.12); }
.number-input { display:flex; align-items:center; gap:8px; margin-top:8px; padding:0 13px; min-height:48px; border:1px solid var(--line); border-radius:10px; background:#0b0a11; }
.number-input:focus-within { border-color:var(--accent); }
.number-input input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:var(--text); font:700 18px "Geist Mono",ui-monospace,monospace; }
.number-input span { color:var(--muted); font:700 11px "Geist Mono",ui-monospace,monospace; }
.slippage-head { margin-top:17px; }
.short-input { max-width:190px; min-height:42px; }
.short-input input { font-size:14px; }
.field-help { margin:6px 1px 0; color:var(--muted); font-size:11px; }
.fee-box { margin-top:17px; padding:12px 13px; border:1px solid rgba(168,120,255,.22); border-radius:10px; background:rgba(168,120,255,.055); }
.fee-box b { font-size:12px; }
.fee-box p { margin:5px 0 0; color:#bcb7c7; font-size:11px; }
.fee-box p a { color:var(--text); text-underline-offset:3px; white-space:nowrap; }
.check-box.good { border-color:rgba(97,220,150,.4); background:rgba(97,220,150,.07); }
.check-box.bad { border-color:rgba(255,107,107,.5); background:rgba(255,107,107,.08); }
.check-box.good p, .check-box.bad p { color:var(--text); font-size:12px; }
.button.primary { width:100%; margin-top:15px; border-color:transparent; background:#f5f2fa; color:#17131f; }
.button.primary:hover:not(:disabled) { background:#fff; }
.message { min-height:18px; margin:9px 1px 0; color:var(--muted); font-size:11px; overflow-wrap:anywhere; }
.message.error { color:#ffb7b7; }
.message.success { color:#a8e7bd; }
.after-buy { margin-top:16px; padding:16px; border:1px solid rgba(112,226,154,.32); border-radius:14px; background:rgba(67,187,115,.055); }
.success-head { display:flex; align-items:center; gap:8px; }
.success-dot { width:8px; height:8px; flex:none; border-radius:50%; background:var(--green); }
.success-dot.pending { background:#ffcc66; }
.success-dot.failed { background:var(--red); }
.success-head a { margin-left:auto; color:#b3f2c5; font-size:12px; }
.after-buy p { color:var(--muted); font-size:12px; }
.after-buy h2 { margin:14px 0 8px; font-size:13px; }
.terminal-links { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.terminal-links a { padding:9px 6px; text-align:center; border:1px solid var(--line); border-radius:9px; background:rgba(255,255,255,.04); text-decoration:none; font-size:12px; font-weight:700; }
.terminal-links a:hover { border-color:var(--accent); }
.terminal-links.rh-links { grid-template-columns:repeat(2,1fr); margin-top:14px; }
.wallet-note { display:grid; gap:4px; margin-top:14px; padding:13px 15px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.025); color:var(--muted); font-size:12px; }
.wallet-note b { color:var(--text); }
.risk { margin:20px 2px 0; color:#8d8997; font-size:11px; }
footer { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 18px; padding:18px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
footer a { text-decoration:none; }
@media(max-width:520px) {
  .trade-page { margin-top:30px; }
  .swap-box { padding:14px; }
  .wallet-row { flex-wrap:wrap; }
  .wallet-row select { max-width:none; flex:1 1 100%; order:3; }
  .wallet-row .button { padding:0 12px; }
  .terminal-links { grid-template-columns:repeat(2,1fr); }
}
/* Insta Buy: the same page as a small window over X. Only what the buy needs; the wallet note and footer drop out. */
.insta .nav, .insta .lede, .insta .wallet-note, .insta footer, .insta .field-help, .insta .wallet-address-row p { display:none; }
.insta .trade-page { width:min(100% - 24px,520px); margin:16px auto 20px; }
.insta h1 { font-size:26px; margin:4px 0 0; }
.insta .coin-box { margin:12px 0 10px; padding:12px 13px; gap:9px; }
.insta .swap-box { padding:14px; }
.insta .fee-box { margin-top:12px; padding:10px 11px; }
.insta .risk { margin-top:12px; font-size:10.5px; }
.after-buy.neutral { border-color:var(--line); background:rgba(255,255,255,.025); }
