.fi-sep{width:1px;height:16px;background:rgba(100,220,215,0.1)}
.swap-wrap::-webkit-scrollbar{display:none}
.swap-card .bk{display:none}
.dex-wallet .bk{position:absolute;width:9px;height:9px;pointer-events:none;z-index:2}
.dex-wallet .bk::before,.dex-wallet .bk::after{content:'';position:absolute;background:var(--cyan);transition:all 0.3s}
.dex-wallet .bk::before{width:9px;height:1.5px;opacity:0.5}
.dex-wallet .bk::after{width:1.5px;height:9px;opacity:0.5}
.dex-wallet .bk.tl{top:-1px;left:-1px}
.dex-wallet .bk.tl::before,.dex-wallet .bk.tl::after{top:0;left:0}
.dex-wallet .bk.tr{top:-1px;right:-1px}
.dex-wallet .bk.tr::before{top:0;right:0}
.dex-wallet .bk.tr::after{top:0;right:0}
.dex-wallet .bk.bl{bottom:-1px;left:-1px}
.dex-wallet .bk.bl::before{bottom:0;left:0}
.dex-wallet .bk.bl::after{bottom:0;left:0}
.dex-wallet .bk.br{bottom:-1px;right:-1px}
.dex-wallet .bk.br::before{bottom:0;right:0}
.dex-wallet .bk.br::after{bottom:0;right:0}
.swap-card.mode-limit::before{background:linear-gradient(90deg,transparent 0%,rgba(245,185,66,0.35) 25%,rgba(255,200,80,0.7) 50%,rgba(245,185,66,0.35) 75%,transparent 100%) !important;background-size:100% 100% !important;animation:limitGlow 3s ease-in-out infinite !important;opacity:1 !important}
.swap-card.mode-limit{border-color:rgba(245,185,66,0.3) !important;animation:none !important}
.swap-card.mode-limit::after{box-shadow:0 0 25px rgba(245,185,66,0.15),0 0 50px rgba(245,185,66,0.08),0 0 80px rgba(245,185,66,0.04),0 24px 64px rgba(0,0,0,0.8) !important;animation:limitGlowOuter 3s ease-in-out infinite !important}
@keyframes limitGlow{0%,100%{opacity:0.7}
50%{opacity:1}
}
@keyframes limitGlowOuter{0%,100%{box-shadow:0 0 20px rgba(245,185,66,0.12),0 0 50px rgba(245,185,66,0.06),0 24px 64px rgba(0,0,0,0.8)}
50%{box-shadow:0 0 30px rgba(245,185,66,0.2),0 0 60px rgba(245,185,66,0.1),0 0 90px rgba(245,185,66,0.04),0 24px 64px rgba(0,0,0,0.8)}
}
.swap-card.mode-market{border-color:rgba(109,232,225,0.3) !important;animation:none !important;display:flex !important;flex-direction:column !important;height:calc(100vh - 180px) !important;max-height:calc(100vh - 180px) !important}
.swap-card.mode-market::before{background:linear-gradient(90deg,transparent 0%,rgba(109,232,225,0.35) 25%,rgba(160,245,240,0.7) 50%,rgba(109,232,225,0.35) 75%,transparent 100%) !important;background-size:100% 100% !important;animation:limitGlow 3s ease-in-out infinite !important;opacity:1 !important}
.swap-card.mode-market::after{box-shadow:0 0 25px rgba(109,232,225,0.15),0 0 50px rgba(109,232,225,0.08),0 0 80px rgba(109,232,225,0.04),0 24px 64px rgba(0,0,0,0.8) !important;animation:marketGlowOuter 3s ease-in-out infinite !important}
@keyframes marketGlowOuter{0%,100%{box-shadow:0 0 20px rgba(109,232,225,0.12),0 0 50px rgba(109,232,225,0.06),0 24px 64px rgba(0,0,0,0.8)}
50%{box-shadow:0 0 30px rgba(109,232,225,0.2),0 0 60px rgba(109,232,225,0.1),0 0 90px rgba(109,232,225,0.04),0 24px 64px rgba(0,0,0,0.8)}
}
.swap-card.mode-dca::before{background:linear-gradient(90deg,transparent 0%,rgba(79,255,170,0.3) 25%,rgba(79,255,170,0.65) 50%,rgba(79,255,170,0.3) 75%,transparent 100%) !important;background-size:100% 100% !important;animation:dcaGlow 3s ease-in-out infinite !important;opacity:1 !important}
.swap-card.mode-dca{border-color:rgba(79,255,170,0.3) !important;animation:none !important}
.swap-card.mode-dca::after{box-shadow:0 0 25px rgba(79,255,170,0.15),0 0 50px rgba(79,255,170,0.08),0 0 80px rgba(79,255,170,0.04),0 24px 64px rgba(0,0,0,0.8) !important;animation:dcaGlowOuter 3s ease-in-out infinite !important}
@keyframes dcaGlow{0%,100%{opacity:0.7}
50%{opacity:1}
}
@keyframes dcaGlowOuter{0%,100%{box-shadow:0 0 20px rgba(79,255,170,0.12),0 0 50px rgba(79,255,170,0.06),0 24px 64px rgba(0,0,0,0.8)}
50%{box-shadow:0 0 30px rgba(79,255,170,0.2),0 0 60px rgba(79,255,170,0.1),0 0 90px rgba(79,255,170,0.04),0 24px 64px rgba(0,0,0,0.8)}
}
.swap-card-glow-top{display:none}
.st{flex:1;text-align:center;padding:8px 6px 7px;border-radius:4px;font-family:'IBM Plex Mono',monospace;color:rgba(255,255,255,0.3);cursor:pointer;transition:all 0.22s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;align-items:center;gap:2px;position:relative}
.st-icon{font-size:13px;line-height:1;transition:all 0.2s}
.st-label{font-size:9px;font-weight:500;letter-spacing:2px;line-height:1}
.st-sub{font-size:7px;letter-spacing:0.5px;opacity:0;transition:opacity 0.2s;white-space:nowrap;color:rgba(255,255,255,0.4)}
.st:hover{color:rgba(255,255,255,0.6)}
.st:hover .st-sub{opacity:1}
.st:hover .st-icon{transform:scale(1.15)}
#st-market.on{color:var(--cyan);background:rgba(109,232,225,0.08);border:1px solid rgba(109,232,225,0.2);box-shadow:0 0 14px rgba(109,232,225,0.06) inset}
#st-market.on .st-sub{opacity:1;color:rgba(109,232,225,0.5)}
#st-market.on .st-icon{text-shadow:0 0 8px rgba(109,232,225,0.6)}
#st-limit.on{color:var(--amber);background:rgba(245,185,66,0.08);border:1px solid rgba(245,185,66,0.22);box-shadow:0 0 14px rgba(245,185,66,0.05) inset}
#st-limit.on .st-sub{opacity:1;color:rgba(245,185,66,0.5)}
#st-limit.on .st-icon{text-shadow:0 0 8px rgba(245,185,66,0.6)}
#st-dca.on{color:var(--green);background:rgba(79,255,170,0.07);border:1px solid rgba(79,255,170,0.2);box-shadow:0 0 14px rgba(79,255,170,0.05) inset}
#st-dca.on .st-sub{opacity:1;color:rgba(79,255,170,0.5)}
#st-dca.on .st-icon{text-shadow:0 0 8px rgba(79,255,170,0.6)}
.st-tooltip{position:fixed;background:rgba(8,12,24,0.98);border:1px solid rgba(109,232,225,0.2);border-radius:4px;padding:9px 12px;font-family:'IBM Plex Mono',monospace;font-size:9px;line-height:1.55;color:rgba(255,255,255,0.65);width:220px;max-width:220px;text-align:center;pointer-events:none;opacity:0;transition:opacity 0.15s;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,0.6);white-space:normal}
.st-tooltip.show{opacity:1}
.tb-label{font-family:'IBM Plex Mono',monospace;font-size:12px;color:rgba(255,255,255,0.4);margin-bottom:5px;display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0}
.tb-bal{color:rgba(255,255,255,0.28);cursor:pointer;transition:color 0.15s;font-size:11px;flex-shrink:0;white-space:nowrap}
.tb-bal:hover,.tb-bal:focus-visible{color:rgba(109,232,225,0.7)}
.tb-bal:focus-visible{outline:1px solid rgba(109,232,225,0.5);outline-offset:2px}
.tb-bal{background:none;border:none;padding:0;font-family:inherit}
.tb-main{display:flex;align-items:center;gap:10px;padding:2px 0 4px;min-width:0}
.tok-ico{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.tok-ico svg{width:16px;height:16px;display:block}
.tok-name{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:700;color:#fff}
.tok-chev{color:rgba(255,255,255,0.4);font-size:10px;margin-left:1px}
.amt-input::placeholder{color:rgba(255,255,255,0.12)}
.amt-input::-webkit-outer-spin-button,.amt-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.amt-input[type=number]{-moz-appearance:textfield}
.rp-k{color:rgba(255,255,255,0.28);flex-shrink:0}
.rp-v{color:rgba(255,255,255,0.6);text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-v.pos{color:#4FFFAA}
.rp-v.route{color:#6DE8E1}
.ctb-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.ctb-text{display:flex;flex-direction:column;min-width:0;flex:1}
.ctb-badge.live{border-color:rgba(79,255,170,0.35);background:rgba(79,255,170,0.08);color:#4FFFAA}
.cond-panel.vis{width:300px;opacity:1;pointer-events:all;align-self:flex-start;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:0;border:1px solid rgba(109,232,225,0.18);border-top-color:rgba(109,232,225,0.28);border-bottom-color:rgba(109,232,225,0.10);background:linear-gradient(170deg,rgba(14,20,38,0.99) 0%,rgba(10,14,28,0.99) 45%,rgba(7,10,20,1) 100%);box-shadow:inset 0 1px 0 rgba(109,232,225,0.1),inset 0 -1px 0 rgba(0,0,0,0.3),0 24px 64px rgba(0,0,0,0.8),0 0 0 1px rgba(0,0,0,0.5);max-height:calc(100vh - 120px);position:sticky;top:80px;animation:condPanelBreathe 7s ease-in-out infinite}
.cond-panel.vis::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;box-shadow:0 0 25px rgba(109,232,225,0.06),0 0 50px rgba(109,232,225,0.03);animation:condPanelGlow 6s ease-in-out infinite}
@keyframes condPanelBreathe{0%,100%{border-color:rgba(109,232,225,0.18);border-top-color:rgba(109,232,225,0.28)}50%{border-color:rgba(109,232,225,0.24);border-top-color:rgba(109,232,225,0.38)}}
@keyframes condPanelGlow{0%,100%{box-shadow:0 0 25px rgba(109,232,225,0.06),0 0 50px rgba(109,232,225,0.03)}50%{box-shadow:0 0 35px rgba(109,232,225,0.1),0 0 70px rgba(109,232,225,0.05),0 0 90px rgba(109,232,225,0.02)}}
/* Hide mobile-only sheet elements on desktop */
.snap-hint,.snap-dots,.cond-sheet-handle,.sheet-sparkline,.cond-sheet-backdrop,.sheet-bottom-receipt{display:none}
.cond-panel.vis::-webkit-scrollbar{display:none}
.cp-logics{display:flex;gap:4px}
.cp-thresh-row.vis{display:flex}
.active-stack{display:flex;flex-direction:column;gap:8px;flex-shrink:0;overflow:visible;padding-top:10px;border-top:1px solid rgba(109,232,225,0.1);position:relative}
.active-stack::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 5%,rgba(109,232,225,0.25) 30%,rgba(109,232,225,0.4) 50%,rgba(109,232,225,0.25) 70%,transparent 95%)}
.acb-body{flex:1;min-width:0;display:flex;align-items:center}
.acb-full-name{font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:600;color:rgba(255,255,255,0.95);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,0.4)}
.acb-val-inline{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;color:rgba(79,255,170,0.85);margin-left:6px;letter-spacing:0.2px}
.acb::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 5%,rgba(109,232,225,0.3) 30%,rgba(109,232,225,0.5) 50%,rgba(109,232,225,0.3) 70%,transparent 95%);z-index:3}
.dot-met{background:var(--green);box-shadow:0 0 8px var(--green),0 0 16px rgba(79,255,170,0.3);animation:glowG 2.5s ease-in-out infinite}
.as-watch{background:rgba(109,232,225,0.08);color:var(--cyan);border:1px solid rgba(109,232,225,0.22)}
/* ── Status-aware card glow — met conditions get green ambient ── */
.acb.active .acb-collapsed .acb-dot.dot-met~.acb-body .acb-full-name{text-shadow:0 0 8px rgba(79,255,170,0.2),0 1px 2px rgba(0,0,0,0.4)}
.acb-del{background:none;border:none;cursor:pointer;color:rgba(255,255,255,0.15);font-size:14px;opacity:1;transition:all 0.18s;padding:2px 4px;flex-shrink:0;line-height:1}
.acb:hover .acb-del{color:rgba(229,80,80,0.4)}
.acb-del:hover{color:rgba(229,80,80,0.9) !important;opacity:1!important}
.acb-edit{background:rgba(109,232,225,0.06);border:1px solid rgba(109,232,225,0.12);cursor:pointer;color:rgba(109,232,225,0.5);font-size:8px;opacity:1;transition:all 0.18s;padding:2px 7px;flex-shrink:0;line-height:1;font-family:'IBM Plex Mono',monospace;border-radius:3px;letter-spacing:0.5px}
.acb-edit:hover{color:rgba(109,232,225,1) !important;background:rgba(109,232,225,0.12);border-color:rgba(109,232,225,0.35);box-shadow:0 0 8px rgba(109,232,225,0.15)}
.acb{position:relative;display:flex;flex-direction:column;gap:0;padding:0;border:1px solid rgba(109,232,225,0.12);border-top-color:rgba(109,232,225,0.2);border-bottom-color:rgba(109,232,225,0.06);border-radius:0;background:linear-gradient(165deg,rgba(16,22,42,0.95) 0%,rgba(10,14,28,0.98) 100%);backdrop-filter:blur(12px);transition:all 0.3s cubic-bezier(.22,1,.36,1) !important;overflow:hidden;box-shadow:inset 0 1px 0 rgba(109,232,225,0.12),inset 0 -1px 0 rgba(0,0,0,0.25),0 4px 16px rgba(0,0,0,0.5),0 0 0 1px rgba(109,232,225,0.04) !important;font-family:'Space Grotesk',sans-serif;font-size:11px;margin-bottom:6px}
.acb::before{content:'';position:absolute;top:0;left:0;width:40%;height:100%;background:linear-gradient(105deg,transparent 0%,rgba(109,232,225,0.03) 40%,rgba(109,232,225,0.06) 50%,rgba(109,232,225,0.03) 60%,transparent 100%);transform:translateX(-200%);pointer-events:none;z-index:1;opacity:0;transition:opacity 0.3s}
.acb:hover::before{animation:acbShimmer 0.7s ease-out forwards;opacity:1}
@keyframes acbShimmer{from{transform:translateX(-200%)}to{transform:translateX(350%)}}
/* ── Collapsed row (always visible) ── */
.acb-collapsed{display:flex;align-items:center;gap:7px;padding:9px 12px;cursor:pointer;transition:background 0.2s,transform 0.15s;position:relative;z-index:2}
.acb-collapsed:hover{background:rgba(109,232,225,0.04)}
.acb-weight-badge{font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;color:var(--cyan);background:linear-gradient(135deg,rgba(109,232,225,0.1) 0%,rgba(109,232,225,0.05) 100%);border:1px solid rgba(109,232,225,0.22);padding:2px 8px;border-radius:3px;flex-shrink:0;letter-spacing:0.3px;box-shadow:0 0 8px rgba(109,232,225,0.1),inset 0 1px 0 rgba(109,232,225,0.1);text-shadow:0 0 6px rgba(109,232,225,0.4);transition:all 0.2s}
/* ── Weight explainer caption (shown in expanded detail) ── */
.acb-weight-help{font-family:'IBM Plex Mono',monospace;font-size:8.5px;line-height:1.5;letter-spacing:0.2px;color:rgba(255,255,255,0.42);padding:2px 0 4px}
/* ── Lock icon (required toggle on collapsed row) ── */
.acb-lock{background:none;border:1px solid transparent;border-radius:3px;cursor:pointer;color:rgba(255,255,255,0.2);padding:2px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all 0.18s;position:relative}
.acb-lock:hover{color:rgba(109,232,225,0.6);border-color:rgba(109,232,225,0.15);background:rgba(109,232,225,0.04)}
.acb-required .acb-lock{color:var(--cyan);text-shadow:0 0 6px rgba(109,232,225,0.4);animation:lockPulse 3s ease-in-out infinite}
/* ── Lock tooltip ── */
.acb-lock-tip{position:absolute;bottom:calc(100% + 10px);right:-8px;width:220px;padding:10px 12px;background:linear-gradient(165deg,#12162a 0%,#0a0e1c 100%);border:1px solid rgba(109,232,225,0.2);border-top-color:rgba(109,232,225,0.35);border-radius:0px;font-family:'IBM Plex Mono',monospace;font-size:9px;line-height:1.5;letter-spacing:0.3px;color:rgba(255,255,255,0.55);text-align:left;white-space:normal;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity 0.2s,transform 0.2s;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,0.6),0 0 1px rgba(109,232,225,0.15),inset 0 1px 0 rgba(109,232,225,0.08)}
.acb-lock-tip::after{content:'';position:absolute;bottom:-5px;right:14px;width:8px;height:8px;background:#0a0e1c;border-right:1px solid rgba(109,232,225,0.2);border-bottom:1px solid rgba(109,232,225,0.2);transform:rotate(45deg)}
.acb-lock-tip strong{color:var(--cyan);font-weight:600;font-size:9px;letter-spacing:1.2px;text-shadow:0 0 8px rgba(109,232,225,0.3)}
.acb-lock-tip-sep{display:block;height:1px;background:linear-gradient(90deg,rgba(109,232,225,0.2) 0%,transparent 100%);margin:6px 0}
.acb-lock:hover .acb-lock-tip{opacity:1;transform:translateY(0)}
/* ── Lock badge — "LOCKED" label ── */
.acb-lock-badge{font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:1.8px;color:var(--cyan);background:rgba(109,232,225,0.08);border:1px solid rgba(109,232,225,0.2);padding:1px 4px;margin-left:2px;white-space:nowrap;text-shadow:0 0 8px rgba(109,232,225,0.4)}
/* ── Required state — cyan left accent + glow ── */
.acb-required{border-left:2px solid rgba(109,232,225,0.5) !important;box-shadow:inset 3px 0 8px rgba(109,232,225,0.06),inset 0 1px 0 rgba(109,232,225,0.15),inset 0 -1px 0 rgba(0,0,0,0.25),0 4px 16px rgba(0,0,0,0.5),0 0 12px rgba(109,232,225,0.04) !important;animation:lockBarPulse 3s ease-in-out infinite}
.acb-required .acb-weight-badge{border-color:rgba(109,232,225,0.35);box-shadow:0 0 10px rgba(109,232,225,0.15),inset 0 1px 0 rgba(109,232,225,0.12)}
.acb-required::after{background:linear-gradient(90deg,rgba(109,232,225,0.5) 0%,rgba(109,232,225,0.6) 20%,rgba(109,232,225,0.4) 50%,transparent 95%) !important}
/* ── Required/optional toggle in expanded detail ── */
.acb-req-toggle{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid rgba(255,255,255,0.08);border-radius:3px;background:rgba(255,255,255,0.03);font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:1px;color:rgba(255,255,255,0.4);cursor:pointer;transition:all 0.18s}
.acb-req-toggle:hover{border-color:rgba(109,232,225,0.25);color:rgba(255,255,255,0.6);background:rgba(109,232,225,0.04)}
.acb-req-toggle.on{border-color:rgba(109,232,225,0.35);color:var(--cyan);background:linear-gradient(135deg,rgba(109,232,225,0.1) 0%,rgba(109,232,225,0.04) 100%);box-shadow:0 0 8px rgba(109,232,225,0.08);text-shadow:0 0 6px rgba(109,232,225,0.3)}
.acb-req-icon{font-size:10px;line-height:1}
.acb-expand-icon{font-size:8px;color:rgba(255,255,255,0.25);flex-shrink:0;transition:transform 0.2s}
.acb-expanded .acb-expand-icon{transform:rotate(180deg);color:var(--cyan)}
/* ── Expanded detail panel ── */
.acb-detail{display:none;padding:0 12px 10px;border-top:1px solid rgba(109,232,225,0.08);background:linear-gradient(180deg,rgba(109,232,225,0.02) 0%,transparent 100%)}
.acb-expanded .acb-detail{display:block}
.acb-expanded{border-color:rgba(109,232,225,0.25) !important;box-shadow:inset 0 1px 0 rgba(109,232,225,0.15),inset 0 -1px 0 rgba(0,0,0,0.2),0 8px 28px rgba(0,0,0,0.55),0 0 16px rgba(109,232,225,0.06),0 0 0 1px rgba(109,232,225,0.08) !important}
.acb-detail-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0;font-size:10px}
.acb-detail-label{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1.5px;color:rgba(255,255,255,0.35);font-weight:700}
.acb-detail-val{font-family:'IBM Plex Mono',monospace;font-size:11px;color:rgba(79,255,170,0.85);font-weight:500}
.acb-weight-row{flex-wrap:wrap}
.acb-weight-editor{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end}
.acb-weight-slider{-webkit-appearance:none;appearance:none;width:80px;height:3px;background:linear-gradient(90deg,rgba(109,232,225,0.1),rgba(109,232,225,0.25));border-radius:2px;outline:none;cursor:pointer}
.acb-weight-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--cyan);border-radius:50%;cursor:pointer;box-shadow:0 0 8px rgba(109,232,225,0.5),0 0 16px rgba(109,232,225,0.2);transition:box-shadow 0.15s}
.acb-weight-slider::-webkit-slider-thumb:hover{box-shadow:0 0 12px rgba(109,232,225,0.7),0 0 24px rgba(109,232,225,0.3)}
.acb-weight-slider::-moz-range-thumb{width:14px;height:14px;background:var(--cyan);border:none;border-radius:50%;cursor:pointer;box-shadow:0 0 8px rgba(109,232,225,0.5),0 0 16px rgba(109,232,225,0.2)}
.acb-weight-val{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--cyan);min-width:32px;text-align:right}
.acb-weight-input{width:38px;background:rgba(0,0,0,0.4);border:1px solid rgba(109,232,225,0.15);border-radius:2px;color:#fff;font-family:'IBM Plex Mono',monospace;font-size:11px;padding:2px 4px;text-align:center;outline:none}
.acb-weight-input:focus{border-color:rgba(109,232,225,0.4)}
.acb-weight-input::-webkit-inner-spin-button,.acb-weight-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.acb-detail-actions{display:flex;gap:6px;padding-top:6px}
.acb-detail-actions .acb-edit{flex:1}
.acb-detail-actions .acb-del{flex:0 0 auto;background:rgba(229,80,80,0.06);border:1px solid rgba(229,80,80,0.15);color:rgba(229,80,80,0.5);font-family:'IBM Plex Mono',monospace;font-size:8px;padding:2px 7px;border-radius:3px;cursor:pointer;letter-spacing:0.5px;transition:all 0.18s}
.acb-detail-actions .acb-del:hover{color:rgba(229,80,80,0.9);background:rgba(229,80,80,0.12);border-color:rgba(229,80,80,0.35)}
/* ── Drag-drop reorder ── */
.acb-drag-handle{display:flex;flex-direction:column;gap:2px;cursor:grab;padding:2px 4px;flex-shrink:0;opacity:0.25;transition:opacity 0.18s}
.acb-drag-handle:hover{opacity:0.7}
.acb-drag-handle:active{cursor:grabbing}
.acb-drag-handle span{display:block;width:10px;height:1.5px;background:rgba(255,255,255,0.5);border-radius:1px}
.acb.acb-dragging{opacity:0.4;border-color:rgba(109,232,225,0.4) !important;box-shadow:0 0 20px rgba(109,232,225,0.15) !important;transform:scale(0.97)}
.acb.acb-drop-above{border-top:2px solid rgba(109,232,225,0.7) !important;margin-top:-1px}
.acb.acb-drop-below{border-bottom:2px solid rgba(109,232,225,0.7) !important;margin-bottom:-1px}
.active-stack.dragging-active .acb{transition:transform 0.2s cubic-bezier(.22,1,.36,1),border 0.15s,margin 0.15s}
/* ── Weighted threshold row ── */
.cp-weighted-row{display:flex;align-items:center;gap:6px;padding:6px 0 2px;flex-wrap:wrap}
.cp-weighted-row .thresh-input{width:42px}
.cp-weighted-hint{font-family:'IBM Plex Mono',monospace;font-size:7px;color:rgba(255,255,255,0.4);letter-spacing:0.5px;width:100%;margin-top:2px}
/* ── Weight badge in trade receipt ── */
.tr-cond-weight{font-family:'IBM Plex Mono',monospace;font-size:8px;color:var(--cyan);background:rgba(109,232,225,0.06);padding:1px 5px;border-radius:2px;margin-left:auto;margin-right:6px;flex-shrink:0;letter-spacing:0.3px}
.acb-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:rgba(6,10,20,0.97);border:1px solid rgba(109,232,225,0.2);padding:8px 12px;font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.6);white-space:normal;pointer-events:none;opacity:0;transition:opacity 0.15s;z-index:100;box-shadow:0 4px 16px rgba(0,0,0,0.6);max-width:280px;line-height:1.5;letter-spacing:0.3px}
.acb-tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:rgba(109,232,225,0.2)}
.acb-tooltip .att-label{color:rgba(109,232,225,0.5);font-size:7px;letter-spacing:1.5px;margin-bottom:3px;font-weight:700}
.acb-tooltip .att-val{color:rgba(255,255,255,0.8);font-weight:600}
.acb:hover .acb-tooltip{opacity:1}
.ci:active{transform:scale(0.98) translateX(4px)}
.ci:hover .ci-dot{background:#9FF4FF;box-shadow:0 0 10px rgba(159,244,255,0.85),0 0 22px rgba(109,232,255,0.35)}
/* Condition item hover tooltip — rendered via JS to avoid overflow clipping */
.ci:hover .ci-plus{color:var(--green)}
.dex-foot .fi-sep{background:rgba(109,232,225,0.07)}
.tb-badge{display:flex;align-items:center;gap:5px;font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--green);letter-spacing:2px;padding:3px 9px;border:1px solid rgba(80,200,120,0.22);border-radius:3px;background:rgba(80,200,120,0.05)}
.sec-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}
.sec-title{font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:600;color:rgba(255,255,255,0.45);letter-spacing:1px;display:flex;align-items:center;gap:6px;text-transform:uppercase}
.sec-title::before{content:'';width:3px;height:14px;border-radius:2px;background:var(--cyan);box-shadow:0 0 8px rgba(109,232,225,0.5);flex-shrink:0}
.scard.fire{animation:firePop 2s ease-out forwards;border-color:var(--green)}
.cd{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--txt3);transition:all 0.4s}
.cd.inactive{background:transparent;border-color:var(--txt3);opacity:0.35}
.cd.approach{background:var(--amber);border-color:var(--amber);box-shadow:0 0 7px var(--amber);animation:glowA 1.5s ease-in-out infinite}
.cd.met{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 7px var(--cyan);animation:glowC 2.5s ease-in-out infinite}
.cd.fired{background:var(--green);border-color:var(--green);box-shadow:0 0 9px var(--green)}
.cd-count{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--txt3);margin-left:3px}
.sc-stat{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:0.8px}
.s-app{color:var(--amber)}
.s-fire{color:var(--green)}
.sc-eval{font-family:'IBM Plex Mono',monospace;font-size:8px;color:var(--txt3);margin-left:auto}
.n1-banner{display:none;align-items:center;gap:11px;padding:11px 14px;border:1px solid rgba(220,160,60,0.38);border-radius:0;background:rgba(220,160,60,0.055);margin-bottom:14px;animation:n1pulse 2.5s ease-in-out infinite;cursor:pointer}
.n1-banner.show{display:flex}
.rp-sec{padding:13px 14px;border-bottom:1px solid var(--border)}
.rp-title{font-family:'Orbitron',sans-serif;font-size:8px;color:var(--txt3);letter-spacing:2.5px;margin-bottom:9px;display:flex;align-items:center;gap:5px}
.rp-title::before{content:'';width:3px;height:3px;background:var(--cyan);border-radius:50%;box-shadow:0 0 4px var(--cyan);animation:dotBlink 2.2s ease-in-out infinite}
.al-row{display:flex;align-items:flex-start;gap:7px;padding:6px 0;border-bottom:1px solid rgba(95,191,184,0.04);cursor:pointer;transition:all 0.15s}
.al-row:last-child{border-bottom:none}
.al-row:hover{background:rgba(95,191,184,0.03);margin:0 -4px;padding:6px 4px;border-radius:3px}
@keyframes addCondPulse{0%,100%{border-color:rgba(109,232,225,0.28); box-shadow:0 0 0 0 rgba(109,232,225,0); color:rgba(109,232,225,0.65)}
50%{border-color:rgba(109,232,225,0.55); box-shadow:0 0 12px 2px rgba(109,232,225,0.1); color:rgba(109,232,225,0.9)}
}
.add-cond{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px;border:1px dashed rgba(109,232,225,0.28);border-radius:var(--r6);cursor:pointer;transition:all 0.2s;font-family:'Orbitron',sans-serif;font-size:9px;color:rgba(109,232,225,0.65);letter-spacing:2px;margin-bottom:18px;animation:addCondPulse 3s ease-in-out infinite}
.add-cond:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(95,191,184,0.05);animation:none;box-shadow:0 0 16px rgba(109,232,225,0.15)}
.ticker-inner{display:flex;align-items:center;height:100%;animation:marquee 40s linear infinite;white-space:nowrap;gap:0}
.ti-chg{font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:400}
.ca-overlay{position:fixed;inset:0;z-index:10000;background:rgba(2,4,8,0.82);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.25s ease}
.ca-overlay.open{opacity:1;pointer-events:all}
.ca-modal{width:420px;max-width:calc(100vw - 32px);max-height:calc(100vh - 60px);background:#0c1020;border:1px solid rgba(255,255,255,0.1);border-radius:0;box-shadow:0 32px 80px rgba(0,0,0,0.8),0 0 0 1px rgba(109,232,225,0.06);overflow-y:auto;overflow-x:hidden;transform:translateY(12px) scale(0.97);transition:transform 0.28s cubic-bezier(.16,1,.3,1);scrollbar-width:thin;scrollbar-color:rgba(109,232,225,0.12) transparent}
.ca-overlay.open .ca-modal{transform:translateY(0) scale(1)}
.ca-modal::-webkit-scrollbar{width:3px}
.ca-modal::-webkit-scrollbar-thumb{background:rgba(109,232,225,0.18);border-radius:2px}
.ca-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 14px;border-bottom:1px solid rgba(109,232,225,0.07)}
.ca-sentence{padding:14px 18px 10px;font-family:'Space Grotesk',sans-serif;font-size:13px;color:rgba(255,255,255,0.55);line-height:1.7;border-bottom:1px solid rgba(255,255,255,0.04)}
.ca-sentence b{color:#fff;font-weight:600}
.ca-sentence .ca-tok{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.1);border-radius:4px;padding:1px 8px 1px 5px;font-size:12px;font-weight:700;color:#fff;vertical-align:middle;cursor:default}
.ca-search-wrap{padding:12px 18px 8px}
.ca-search-input::placeholder{color:rgba(255,255,255,0.2)}
.ca-proxy-confirm{display:none;align-items:center;gap:12px;margin:0 18px 14px;padding:12px 14px;border-radius:0;border:1px solid rgba(109,232,225,0.3);background:linear-gradient(135deg,rgba(109,232,225,0.07) 0%,rgba(79,255,170,0.04) 100%);animation:proxyConfirmIn 0.35s cubic-bezier(.22,1,.36,1)}
.ca-proxy-confirm.vis{display:flex}
@keyframes proxyConfirmIn{from{opacity:0; transform:translateY(-6px) scale(0.97)}
to{opacity:1; transform:translateY(0) scale(1)}
}
.ca-proxy-confirm-ico{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,0.1);overflow:hidden}
.ca-proxy-confirm-text{flex:1;min-width:0}
.ca-proxy-confirm-label{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:2px;color:rgba(109,232,225,0.6);margin-bottom:3px}
.ca-proxy-confirm-name{font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:700;color:#fff;letter-spacing:-0.3px;line-height:1;margin-bottom:2px}
.ca-proxy-confirm-sym{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:1px;color:rgba(255,255,255,0.35)}
/* Live price of the PROXY asset — the one being watched, not the one traded.
   Without it a target is guesswork: you cannot tell whether it sits above or
   below the market, so you cannot tell a real trigger from one that fires the
   moment you deploy. Tapping it fills the target with the current price. */
.ca-live{display:inline-flex;align-items:center;gap:6px;margin-top:5px;padding:3px 7px;
  border:1px solid rgba(109,232,225,0.22);border-radius:4px;cursor:pointer;
  background:rgba(109,232,225,0.06);font-family:'IBM Plex Mono',monospace;
  transition:background 0.15s ease,border-color 0.15s ease}
.ca-live:hover{background:rgba(109,232,225,0.13);border-color:rgba(109,232,225,0.4)}
.ca-live-dot{width:5px;height:5px;border-radius:50%;background:#4FFFAA;
  box-shadow:0 0 6px rgba(79,255,170,0.8);animation:caLivePulse 2s ease-in-out infinite}
.ca-live-val{font-size:11px;font-weight:600;color:rgba(109,232,225,0.95)}
.ca-live-use{font-size:8px;color:rgba(255,255,255,0.3);letter-spacing:0.3px}
/* No feed for this asset — say so rather than showing an invented number. */
.ca-live.na{cursor:default;border-color:rgba(255,165,0,0.25);background:rgba(255,165,0,0.05)}
.ca-live.na .ca-live-dot{background:#FFA500;box-shadow:none;animation:none}
.ca-live.na .ca-live-val{color:rgba(255,165,0,0.85);font-size:9px;font-weight:400}
.ca-live.na .ca-live-use{display:none}
@keyframes caLivePulse{0%,100%{opacity:1}50%{opacity:0.35}}
.ca-proxy-change{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:1px;color:rgba(109,232,225,0.55);background:none;border:1px solid rgba(109,232,225,0.2);border-radius:4px;padding:4px 9px;cursor:pointer;transition:all 0.18s;flex-shrink:0}
.ca-proxy-change:hover{color:var(--cyan);border-color:rgba(109,232,225,0.5);background:rgba(109,232,225,0.06)}
.ca-tok-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:0 18px 12px;max-height:200px;overflow-y:auto}
.ca-tok-grid::-webkit-scrollbar{width:2px}
.ca-tok-grid::-webkit-scrollbar-thumb{background:rgba(109,232,225,0.2);border-radius:2px}
/* WRAP, never scroll: the modal is ~420px wide even on desktop, so a nowrap
   row put RATIOS/METALS/FOREX past the edge with the scrollbar hidden — an
   invisible scroll nobody would find. Two visible rows beat hidden tabs. */
.ca-cat-tabs{display:flex;gap:4px;padding:4px 18px 8px;flex-shrink:0;flex-wrap:wrap}
.ca-cat-tab{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1.2px;color:rgba(255,255,255,0.28);background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:4px;padding:3px 8px;cursor:pointer;transition:all 0.12s;white-space:nowrap;display:flex;align-items:center;gap:3px;flex-shrink:0}
.ca-cat-tab:hover{color:rgba(255,255,255,0.55)}
.ca-cat-tab.on{color:rgba(109,232,225,0.95);background:rgba(109,232,225,0.08);border-color:rgba(109,232,225,0.28)}
.ca-cat-hdr{grid-column:1/-1}
.ca-tok-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px 8px;border-radius:4px;cursor:pointer;transition:all 0.2s;background:linear-gradient(145deg,rgba(14,20,34,0.97),rgba(8,12,22,0.99));border:1px solid rgba(255,255,255,0.08);box-shadow:0 2px 8px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.03)}
.ca-tok-btn:hover{background:linear-gradient(145deg,rgba(20,28,46,0.98),rgba(12,18,30,0.99));border-color:rgba(109,232,225,0.28);box-shadow:0 4px 18px rgba(0,0,0,0.45),0 0 14px rgba(109,232,225,0.06);transform:translateY(-1px)}
.ca-tok-sym{font-family:'Space Grotesk',sans-serif;font-size:9px;font-weight:600;color:rgba(255,255,255,0.7)}
.ca-tok-btn.sel .ca-tok-sym{color:var(--cyan)}
/* Unpriced condition tokens — gated SOON until their price feed is wired */
.cond-tok-btn.cond-tok-soon,.ca-tok-btn.soon{opacity:0.45;position:relative}
.cond-tok-btn.cond-tok-soon:hover,.ca-tok-btn.soon:hover{opacity:0.62}
.cond-tok-soon-badge{position:absolute;top:2px;right:2px;font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:0.5px;color:rgba(255,215,0,0.9);border:1px solid rgba(255,215,0,0.4);padding:0 2px;background:rgba(0,0,0,0.5);line-height:1.4}
/* ── Edit-mode banner: redeploy an existing trade (feels like editing) ── */
.s2-edit-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 14px;background:linear-gradient(180deg,rgba(109,232,225,0.08),rgba(109,232,225,0.02));border:1px solid rgba(109,232,225,0.25);border-left:2px solid rgba(109,232,225,0.6);position:relative;z-index:6}
.s2eb-main{display:flex;align-items:center;gap:10px;min-width:0}
.s2eb-icon{font-size:14px;color:rgba(109,232,225,0.9);flex-shrink:0}
.s2eb-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.s2eb-title{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:1px;color:rgba(109,232,225,0.95);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s2eb-title b{color:#fff}
.s2eb-sub{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:0.3px;color:rgba(255,255,255,0.5)}
.s2eb-close{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(255,255,255,0.15);color:rgba(255,255,255,0.5);cursor:pointer;font-size:11px;transition:all 0.18s}
.s2eb-close:hover{border-color:rgba(229,80,80,0.5);color:rgba(255,150,150,0.9);background:rgba(229,80,80,0.1)}
#exec-btn.edit-mode{box-shadow:0 0 0 1px rgba(109,232,225,0.3) inset}
.ca-cond-row{display:flex;gap:8px;align-items:stretch;padding:8px 18px 12px;border-top:1px solid rgba(255,255,255,0.04)}
.ca-dir-group{display:flex;gap:4px;flex-shrink:0}
.ca-dir-btn{padding:8px 11px;border-radius:4px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.04);font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:600;color:rgba(255,255,255,0.45);cursor:pointer;transition:all 0.15s;white-space:nowrap}
.ca-dir-btn:hover{border-color:rgba(109,232,225,0.3);color:rgba(255,255,255,0.8);background:rgba(109,232,225,0.05)}
.ca-dir-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.ca-dir-btn:active{transform:scale(0.97)}
.ca-price-input{flex:1;background:rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.08);border-radius:2px;padding:8px 12px;font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;color:#fff;outline:none;transition:border-color 0.15s}
.ca-price-input:focus{border-color:rgba(109,232,225,0.4)}
.ca-price-input::placeholder{color:rgba(255,255,255,0.2)}
.ca-preview{margin:0 18px 16px;padding:10px 12px;background:rgba(109,232,225,0.04);border:1px solid rgba(109,232,225,0.12);border-radius:0;font-family:'IBM Plex Mono',monospace;font-size:10px;color:rgba(255,255,255,0.5);line-height:1.6;min-height:36px}
.ca-preview b{color:var(--cyan)}
.ca-add-btn{display:block;width:calc(100% - 36px);margin:0 18px 16px;padding:12px;border:none;border-radius:0;background:linear-gradient(135deg,rgba(79,255,170,0.2),rgba(109,232,225,0.16));box-shadow:0 0 0 1px rgba(79,255,170,0.28),0 4px 16px rgba(0,0,0,0.3);font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:700;color:#fff;cursor:pointer;letter-spacing:0.3px;transition:all 0.2s}
.ca-add-btn:hover{background:linear-gradient(135deg,rgba(79,255,170,0.28),rgba(109,232,225,0.22));transform:translateY(-1px)}
@keyframes caShake{0%,100%{transform:translateY(0) scale(1)}
20%,60%{transform:translateX(-6px) scale(1)}
40%,80%{transform:translateX(6px) scale(1)}
}
.route-panel{border:1px solid rgba(109,232,225,0.1) !important;border-radius:0;padding:5px 11px;background:linear-gradient(160deg,rgba(109,232,225,0.04) 0%,rgba(0,0,0,0.3) 100%) !important;flex-shrink:0;box-shadow:inset 0 1px 0 rgba(109,232,225,0.08),0 2px 12px rgba(0,0,0,0.35) !important}
.cond-picker{border:1px solid rgba(109,232,225,0.1) !important;border-top-color:rgba(109,232,225,0.18) !important;border-radius:0;background:linear-gradient(180deg,rgba(14,19,36,0.85) 0%,rgba(8,11,22,0.92) 100%) !important;backdrop-filter:blur(20px);overflow:visible;box-shadow:inset 0 1px 0 rgba(109,232,225,0.1),inset 0 -1px 0 rgba(0,0,0,0.2),0 4px 16px rgba(0,0,0,0.4) !important;flex-shrink:0;display:flex;flex-direction:column}
.ci[data-cat="PRICE"]:hover{border-left-color:rgba(109,232,225,0.6) !important}
.ci[data-cat="VOLUME"]:hover{border-left-color:rgba(245,185,66,0.6) !important}
.ci[data-cat="CROSS"]:hover{border-left-color:rgba(245,185,66,0.7) !important}
.ci[data-cat="TA"]:hover{border-left-color:rgba(157,127,234,0.6) !important}
.ci[data-cat="PORTFOLIO"]:hover{border-left-color:rgba(255,94,94,0.6) !important}
.ci[data-cat="MARKET"]:hover{border-left-color:rgba(79,255,170,0.6) !important}
.acb:hover{border-color:rgba(109,232,225,0.32) !important;border-top-color:rgba(109,232,225,0.45) !important;background:linear-gradient(165deg,rgba(18,26,48,0.98) 0%,rgba(12,16,32,0.99) 100%) !important;box-shadow:inset 0 1px 0 rgba(109,232,225,0.18),inset 0 -1px 0 rgba(0,0,0,0.2),0 8px 24px rgba(0,0,0,0.5),0 0 20px rgba(109,232,225,0.08),0 0 0 1px rgba(109,232,225,0.1) !important}
.acb:hover .acb-weight-badge{box-shadow:0 0 12px rgba(109,232,225,0.2),inset 0 1px 0 rgba(109,232,225,0.15);border-color:rgba(109,232,225,0.35)}
.st.on{background:linear-gradient(135deg,rgba(109,232,225,0.14) 0%,rgba(79,255,170,0.08) 100%) !important;box-shadow:0 1px 4px rgba(0,0,0,0.4),0 0 0 1px rgba(109,232,225,0.2),inset 0 1px 0 rgba(109,232,225,0.15) !important}
.swap-mode-badge{display:flex;align-items:center;justify-content:center;margin-top:6px;padding:4px 12px;border-radius:4px;border:1px solid rgba(79,255,170,0.3);background:linear-gradient(90deg,rgba(109,232,225,0.06),rgba(79,255,170,0.08));animation:badgeFadeIn 0.35s cubic-bezier(.22,1,.36,1)}
.swap-mode-badge span{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:1.5px;color:#4FFFAA;white-space:nowrap}
.swap-mode-badge::before{content:'';width:5px;height:5px;border-radius:50%;background:#4FFFAA;box-shadow:0 0 6px rgba(79,255,170,0.8);margin-right:7px;flex-shrink:0;animation:dotBlink 2s ease-in-out infinite}
@keyframes badgeFadeIn{from{opacity:0;transform:translateY(-4px) scale(0.95)}
to{opacity:1;transform:translateY(0) scale(1)}
}
.tok-box:first-of-type{box-shadow:inset 0 1px 0 rgba(109,232,225,0.08),inset 0 0 40px rgba(153,69,255,0.04),0 2px 8px rgba(0,0,0,0.3) !important}
.tok-box:last-of-type{box-shadow:inset 0 1px 0 rgba(109,232,225,0.08),inset 0 0 40px rgba(247,147,26,0.04),0 2px 8px rgba(0,0,0,0.3) !important}
.ci .ci-dot{background:#6DECFF;box-shadow:0 0 7px rgba(109,232,255,0.7),0 0 14px rgba(109,232,255,0.25)}
.ci.added .ci-dot{background:#4FFFAA !important;box-shadow:0 0 9px rgba(79,255,170,0.9),0 0 20px rgba(79,255,170,0.35) !important;transition:all 0.25s ease}
.ci.added .ci-plus{color:var(--green) !important}
.dex-main::before{content:'';position:absolute;top:50%;left:50%;width:600px;height:600px;transform:translate(-50%,-55%);background:radial-gradient(ellipse at center,rgba(109,232,225,0.06) 0%,rgba(109,232,225,0.025) 30%,transparent 65%);pointer-events:none;z-index:0}
.amt-input:focus{border-color:rgba(109,232,225,0.35) !important;box-shadow:0 0 0 3px rgba(109,232,225,0.08),inset 0 1px 0 rgba(109,232,225,0.1) !important;background:rgba(109,232,225,0.03) !important}
.card-animator{overflow:visible;padding-bottom:3px}
@media(min-width:769px){
.card-animator{min-height:100%;will-change:transform,opacity;transform:translateZ(0)}
@keyframes cardEnter{from{opacity:0; transform:translateZ(0) translateY(16px) scale(0.96)}
to{opacity:1; transform:translateZ(0) translateY(0) scale(1)}
}
.card-animator.entering{animation:cardEnter 0.4s cubic-bezier(0.16,1,0.3,1) both}
.card-animator.settled{will-change:auto;transform:translateZ(0)}
}
.cp-head-sub{font-family:'Space Grotesk',sans-serif;font-size:10px;color:rgba(255,255,255,0.28);margin-bottom:10px;line-height:1.4}
.tok-sel{font-family:inherit;text-align:left;padding:0}
.tok-sel .tok-chev{font-size:10px;color:rgba(255,255,255,0.35);transition:all 0.15s;margin-left:2px}
.tok-sel:hover .tok-chev,.tok-sel:focus-visible .tok-chev{color:var(--cyan);transform:translateY(1px)}
.tok-sel:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.tok-ico-dynamic svg{width:100%;height:100%;display:block}
.tok-ico-dynamic img{border-radius:50%;display:block}
.tok-ico-dynamic{position:relative}
.cond-picker-head{padding:11px 13px 8px;border-bottom:1px solid rgba(109,232,225,0.06);flex-shrink:0}
.cp-ph-title{font-family:'Orbitron',sans-serif;font-size:9px;letter-spacing:3px;color:var(--cyan);margin-bottom:3px}
.cp-ph-sub{font-family:'Space Grotesk',sans-serif;font-size:11px;color:rgba(255,255,255,0.28)}
.cond-list{flex:1;overflow-y:auto;padding:6px 0 10px;scrollbar-width:thin;scrollbar-color:rgba(109,232,225,0.12) transparent}
.cond-list::-webkit-scrollbar{width:3px}
.cond-list::-webkit-scrollbar-thumb{background:rgba(109,232,225,0.18);border-radius:2px}
.cond-cat-label:first-child{padding-top:4px}
.ci.added{opacity:1;background:linear-gradient(135deg,rgba(79,255,170,0.1) 0%,rgba(109,232,225,0.06) 100%);border-color:rgba(79,255,170,0.35) !important;box-shadow:0 0 0 1px rgba(79,255,170,0.12),0 2px 12px rgba(79,255,170,0.08)}
.ci-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:#6DECFF;box-shadow:0 0 7px rgba(109,232,255,0.7),0 0 14px rgba(109,232,255,0.25);transition:all 0.25s cubic-bezier(.22,1,.36,1)}
.ci-text{flex:1;min-width:0}
.ci-arrow{font-size:18px;color:rgba(109,232,225,0.3);flex-shrink:0;line-height:1;margin-left:2px;transition:all 0.18s;font-family:sans-serif;font-weight:300}
.ci:hover .ci-arrow{color:rgba(109,232,225,0.8);transform:translateX(2px)}
.ci.added .ci-arrow{content:'✓';color:var(--green) !important;font-size:14px}
.ci.added .ci-name{color:#fff !important;font-weight:700 !important}
.ci.added .ci-desc{color:rgba(79,255,170,0.5) !important}
.ci-plus{font-family:'Orbitron',sans-serif;font-size:14px;color:var(--txt3);width:20px;text-align:right;flex-shrink:0;transition:color 0.2s;display:none !important}
.cond-section{padding:12px 18px 6px}
.cond-section-label{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:2px;color:rgba(109,232,225,0.45);margin-bottom:6px;text-shadow:0 0 8px rgba(109,232,225,0.2)}
.cond-btn-group{display:flex;gap:5px;flex-wrap:wrap}
.cond-btn:hover{background:rgba(109,232,225,0.07);border-color:rgba(109,232,225,0.25)}
.cond-btn.sel{background:rgba(109,232,225,0.12);border-color:rgba(109,232,225,0.45);color:var(--cyan)}
.cond-btn.sel-green{background:rgba(79,255,170,0.1);border-color:rgba(79,255,170,0.4);color:var(--green)}
.cond-input-wrap{position:relative;display:flex;align-items:center}
.cond-input{width:100%;padding:9px 44px 9px 12px;box-sizing:border-box;background:rgba(0,0,0,0.45);border:1px solid rgba(255,255,255,0.1);border-radius:2px;font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;color:#fff;outline:none;transition:border-color 0.14s}
.cond-input:focus{border-color:rgba(109,232,225,0.4)}
.cond-input-unit{position:absolute;right:12px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:rgba(255,255,255,0.3);pointer-events:none}
.cond-slider-wrap{padding:4px 0 8px}
.cond-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px rgba(109,232,225,0.5);cursor:pointer}
.cond-slider-labels{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.4);margin-top:5px}
.rsi-gauge-wrap{display:flex;align-items:center;gap:14px;padding:10px 0 6px}
/* THE THRESHOLD IS TYPEABLE, not only draggable. A slider is the right tool
   for exploring the range and the wrong one for "I want exactly 68" — it
   takes a steady hand and gives no way to be precise. Same size, same glow,
   same colour states as the read-only number it replaces; the spinners go
   because they shrink the hit area and look nothing like the rest of the
   design language. */
.rsi-gauge-input{font-family:'Orbitron',sans-serif;font-size:36px;font-weight:700;line-height:1;
  color:var(--cyan);text-shadow:0 0 18px rgba(109,232,225,0.45);transition:color .2s,text-shadow .2s;
  letter-spacing:-1px;min-width:96px;width:96px;text-align:center;background:rgba(109,232,225,0.05);
  border:1px solid rgba(109,232,225,0.18);border-radius:2px;padding:6px 4px;outline:none;
  -moz-appearance:textfield}
.rsi-gauge-input::-webkit-outer-spin-button,
.rsi-gauge-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rsi-gauge-input:focus{border-color:rgba(109,232,225,0.5);background:rgba(109,232,225,0.09)}
.rsi-gauge-input.rsi-hot{color:#ff6b6b;text-shadow:0 0 18px rgba(255,80,80,0.45);
  border-color:rgba(255,107,107,0.25);background:rgba(255,107,107,0.05)}
.rsi-gauge-input.rsi-cold{color:var(--green);text-shadow:0 0 18px rgba(79,255,170,0.4);
  border-color:rgba(79,255,170,0.25);background:rgba(79,255,170,0.05)}

/* The asset picker grew from nine hardcoded symbols to the whole priced
   universe, so it needs a search field and a bounded, scrollable grid. */
.cond-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:0 18px 6px;flex-wrap:wrap}
.cond-section-head .cond-section-label{padding:0}
.cond-tok-search{flex:1;min-width:140px;max-width:230px;background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.09);border-radius:2px;color:rgba(255,255,255,0.85);
  font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:0.04em;padding:5px 8px;outline:none}
.cond-tok-search:focus{border-color:rgba(109,232,225,0.4);background:rgba(109,232,225,0.05)}
.cond-tok-search::placeholder{color:rgba(255,255,255,0.28)}
.cond-note{font-family:'IBM Plex Mono',monospace;font-size:9px;line-height:1.5;
  color:rgba(255,255,255,0.32);padding:0 18px 8px}
.cond-tok-empty{font-family:'IBM Plex Mono',monospace;font-size:10px;
  color:rgba(255,255,255,0.35);padding:14px 18px;grid-column:1/-1}
/* Bounded so a long list scrolls inside the picker instead of pushing the
   deploy button off the modal — the failure the order-type parity spec
   exists to catch. */
.cond-tok-grid{max-height:224px;overflow-y:auto}

.rsi-gauge-num{font-family:'Orbitron',sans-serif;font-size:36px;font-weight:700;line-height:1;color:var(--cyan);text-shadow:0 0 18px rgba(109,232,225,0.45);transition:color .2s,text-shadow .2s;letter-spacing:-1px;min-width:72px;text-align:center}
.rsi-gauge-num.rsi-hot{color:#ff6b6b;text-shadow:0 0 18px rgba(255,80,80,0.45)}
.rsi-gauge-num.rsi-cold{color:var(--green);text-shadow:0 0 18px rgba(79,255,170,0.4)}
.rsi-gauge-meta{flex:1}
.rsi-gauge-zone{font-size:9px;letter-spacing:1.5px;font-family:'Space Grotesk',sans-serif;font-weight:600;opacity:.6;text-transform:uppercase;margin-bottom:3px}
.rsi-gauge-hint{font-size:9px;color:var(--txt3);font-family:'IBM Plex Mono',monospace;line-height:1.5}
.rsi-track-wrap{position:relative;padding-bottom:6px}
.rsi-track-bg{position:relative;height:3px;border-radius:2px;overflow:visible;margin-bottom:12px;background:transparent}
.rsi-zone-cold{position:absolute;left:0;width:22.2%;height:100%;background:linear-gradient(90deg,rgba(79,255,170,0.35),rgba(79,255,170,0.12));border-radius:2px 0 0 2px}
.rsi-zone-hot{position:absolute;right:0;width:22.2%;height:100%;background:linear-gradient(90deg,rgba(229,80,80,0.12),rgba(229,80,80,0.35));border-radius:0 2px 2px 0}
.rsi-zone-neutral{position:absolute;left:22.2%;right:22.2%;height:100%;background:rgba(255,255,255,0.08)}
.vol-spike-vis{display:flex;align-items:flex-end;gap:5px;height:48px;padding:8px 0 4px}
.vsv-bar{flex:1;border-radius:3px 3px 0 0;transition:all .3s cubic-bezier(.22,1,.36,1);min-width:0}
.vsv-bar.normal{background:rgba(109,232,225,0.15);border:1px solid rgba(109,232,225,0.15)}
.vsv-bar.spike{background:linear-gradient(180deg,rgba(229,80,80,0.8),rgba(229,80,80,0.4));border:1px solid rgba(229,80,80,0.6);box-shadow:0 0 12px rgba(229,80,80,0.25)}
.vsv-label{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:8px;color:var(--txt3);padding-top:3px}
.vsv-spike-label{color:rgba(229,80,80,0.8);font-weight:700;letter-spacing:.5px}
.vol-worked-ex{margin-top:8px;padding:8px 10px;border-radius:0;background:rgba(109,232,225,0.04);border:1px solid rgba(109,232,225,0.1);font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--txt2);line-height:1.65}
.vol-worked-ex b{color:var(--cyan)}
.vel-window-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.vel-win-btn{padding:7px 4px;border-radius:4px;border:1px solid rgba(109,232,225,0.12);background:rgba(109,232,225,0.04);cursor:pointer;transition:all .18s;text-align:center}
.vel-win-btn:hover{border-color:rgba(109,232,225,0.3);background:rgba(109,232,225,0.08)}
.vel-win-btn.sel{border-color:rgba(109,232,225,0.55);background:rgba(109,232,225,0.12)}
.vel-win-tf{font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:700;color:var(--txt);display:block}
.vel-win-btn.sel .vel-win-tf{color:var(--cyan)}
.vel-win-hint{font-family:'IBM Plex Mono',monospace;font-size:8px;color:var(--txt3);display:block;margin-top:2px;line-height:1.3}
.vel-win-btn.sel .vel-win-hint{color:rgba(109,232,225,0.6)}
.cond-tok-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:0 18px 12px}
.cond-tok-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border-radius:0;background:linear-gradient(180deg,rgba(255,255,255,0.04) 0%,rgba(255,255,255,0.01) 100%);border:1px solid rgba(255,255,255,0.07);border-top-color:rgba(255,255,255,0.1);cursor:pointer;transition:all 0.18s;box-shadow:inset 0 1px 0 rgba(255,255,255,0.03)}
.cond-tok-btn:hover{background:linear-gradient(180deg,rgba(109,232,225,0.08) 0%,rgba(109,232,225,0.03) 100%);border-color:rgba(109,232,225,0.25);box-shadow:0 0 8px rgba(109,232,225,0.06)}
.cond-tok-btn.sel{background:linear-gradient(180deg,rgba(109,232,225,0.14) 0%,rgba(109,232,225,0.06) 100%);border-color:rgba(109,232,225,0.4);border-top-color:rgba(109,232,225,0.5);box-shadow:inset 0 1px 0 rgba(109,232,225,0.12),0 0 10px rgba(109,232,225,0.08)}
.cond-tok-sym{font-family:'Space Grotesk',sans-serif;font-size:9px;font-weight:700;color:rgba(255,255,255,0.75)}
.cond-ema-presets{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:5px}
.cond-ema-btn{padding:6px 10px;border-radius:4px;border:1px solid rgba(255,255,255,0.09);background:rgba(255,255,255,0.04);font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:600;color:rgba(255,255,255,0.5);cursor:pointer;transition:all 0.14s}
.cond-ema-btn:hover{background:rgba(157,127,234,0.1);border-color:rgba(157,127,234,0.3)}
.cond-ema-btn.sel{background:rgba(157,127,234,0.18);border-color:rgba(157,127,234,0.55);color:#b59af0}
.cond-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(109,232,225,0.12) 20%,rgba(109,232,225,0.12) 80%,transparent);margin:6px 18px}
.ca-dir-btn.sel{background:rgba(109,232,225,0.12) !important;border-color:rgba(109,232,225,0.45) !important;color:var(--cyan) !important}
.cp-head-inner{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cp-count{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(255,255,255,0.35)}
.cp-done-btn{display:none;font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:700;letter-spacing:2px;padding:8px 18px;background:rgba(109,232,225,0.06);border:1px solid rgba(109,232,225,0.2);color:rgba(109,232,225,0.8);cursor:pointer;transition:all 0.15s;margin-left:auto}
.cp-done-btn:hover{background:rgba(109,232,225,0.12);border-color:rgba(109,232,225,0.4)}
.cp-close-btn{display:none;width:32px;height:32px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.4);font-size:14px;cursor:pointer;transition:all 0.15s;flex-shrink:0;align-items:center;justify-content:center;margin-left:6px}
.cp-close-btn:hover{background:rgba(255,80,80,0.1);border-color:rgba(255,80,80,0.3);color:rgba(255,80,80,0.8)}
.cpl{font-family:'Space Grotesk',sans-serif !important;font-size:10px !important;letter-spacing:0 !important;padding:6px 11px !important;border-radius:0;cursor:pointer;border:1px solid rgba(255,255,255,0.08);border-top-color:rgba(255,255,255,0.12);background:linear-gradient(180deg,rgba(255,255,255,0.05) 0%,rgba(255,255,255,0.02) 100%);color:rgba(255,255,255,0.45);transition:all 0.2s;font-weight:600 !important;box-shadow:inset 0 1px 0 rgba(255,255,255,0.04),0 1px 3px rgba(0,0,0,0.3)}
.cpl:hover:not(.on){border-color:rgba(109,232,225,0.25);border-top-color:rgba(109,232,225,0.35);color:rgba(255,255,255,0.7) !important;background:linear-gradient(180deg,rgba(109,232,225,0.08) 0%,rgba(109,232,225,0.03) 100%) !important;box-shadow:0 0 8px rgba(109,232,225,0.08),inset 0 1px 0 rgba(109,232,225,0.08)}
.cp-thresh-row{display:flex;align-items:center;gap:6px;margin-top:9px;padding:7px 12px;border:1px solid rgba(109,232,225,0.12);border-radius:0;background:rgba(109,232,225,0.03);cursor:default;font-family:'Space Grotesk',sans-serif;font-size:11px;color:rgba(255,255,255,0.35)}
.cp-thresh-label{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(255,255,255,0.35)}
.acb-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#4FFFAA;box-shadow:0 0 8px rgba(79,255,170,0.9),0 0 18px rgba(79,255,170,0.3);animation:glowG 2.5s ease-in-out infinite}
.acb-val{display:none;font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--cyan);flex-shrink:0}
.acb-state{font-family:'Orbitron',sans-serif;font-size:7px;letter-spacing:1px;padding:2px 7px;border-radius:3px;flex-shrink:0}
.ca-modal-title{font-family:'Orbitron',sans-serif !important;font-size:9px !important;letter-spacing:3px !important;color:var(--cyan) !important}
.ca-modal-close{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,0.06);border:none;color:rgba(255,255,255,0.5);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:all 0.15s}
.ca-modal-close:hover{background:rgba(255,255,255,0.12);color:#fff}
.ca-search-input{width:100%;background:rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.08);border-radius:2px;padding:9px 12px;font-family:'Space Grotesk',sans-serif;font-size:13px;color:#fff;outline:none;box-sizing:border-box;transition:border-color 0.15s}
.ca-search-input:focus{border-color:rgba(109,232,225,0.4)}
.ca-search-label{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:2px;color:rgba(255,255,255,0.28);margin-bottom:6px}
.ca-tok-btn.sel{background:rgba(109,232,225,0.12) !important;border-color:rgba(109,232,225,0.45) !important;box-shadow:0 0 18px rgba(109,232,225,0.14),inset 0 1px 0 rgba(109,232,225,0.1)}
@keyframes cardEdgePulse{0%,35%{background-position:-200% 0; opacity:0}
40%{opacity:1}
65%{background-position:200% 0; opacity:0}
100%{background-position:200% 0; opacity:0}
}
.swap-card::after{content:'';position:absolute;inset:0;border-radius:0;background:transparent;box-shadow:0 0 0 1px rgba(109,232,225,0.08),0 32px 80px rgba(0,0,0,0.8),0 0 60px rgba(109,232,225,0.04);pointer-events:none;z-index:0;animation:cardAmbient 6s ease-in-out infinite}
@keyframes cardAmbient{0%,100%{box-shadow:0 0 0 1px rgba(109,232,225,0.08),0 32px 80px rgba(0,0,0,0.8),0 0 25px rgba(109,232,225,0.12),0 0 50px rgba(109,232,225,0.06)}
50%{box-shadow:0 0 0 1px rgba(109,232,225,0.16),0 32px 80px rgba(0,0,0,0.8),0 0 35px rgba(109,232,225,0.18),0 0 70px rgba(109,232,225,0.08),0 0 90px rgba(109,232,225,0.03)}
}
.tok-box::after{content:'';position:absolute;top:0;left:0;width:60%;height:100%;background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,0.0) 30%,rgba(255,255,255,0.04) 50%,rgba(109,232,225,0.06) 55%,rgba(255,255,255,0.0) 70%,transparent 100% );transform:translateX(-220%) skewX(-15deg);transition:none;pointer-events:none;will-change:transform}
.tok-box:hover::after{animation:tokShimmer 0.55s ease-out forwards}
@keyframes tokShimmer{from{transform:translateX(-220%)}
to{transform:translateX(240%)}
}
@keyframes execSweep{0%,100%{transform:translateX(-200%); opacity:0}
15%{opacity:1}
60%{transform:translateX(250%); opacity:0}
}
.cond-toggle-btn:hover::before{opacity:0.6}
.cond-toggle-btn.open{border-color:rgba(109,232,225,0.35) !important;background:rgba(109,232,225,0.04) !important}
.cond-toggle-btn.open::before{opacity:0.8}
.cond-toggle-btn.circuit-fire::after{content:'';position:absolute;inset:-1px;border-radius:5px;background:linear-gradient(90deg,rgba(109,232,225,0.9) 1px,transparent 1px) top/100% 1px no-repeat,linear-gradient(180deg,rgba(109,232,225,0.9) 1px,transparent 1px) right/1px 100% no-repeat,linear-gradient(90deg,rgba(109,232,225,0.9) 1px,transparent 1px) bottom/100% 1px no-repeat,linear-gradient(180deg,rgba(109,232,225,0.9) 1px,transparent 1px) left/1px 100% no-repeat;animation:circuitDraw 0.38s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none;z-index:2}
@keyframes circuitDraw{0%{clip-path:inset(0 100% 100% 0 round 5px); opacity:1}
40%{clip-path:inset(0 0% 50% 0 round 5px)}
80%{clip-path:inset(0 0% 0% 0 round 5px); opacity:1}
100%{clip-path:inset(0 0% 0% 0 round 5px); opacity:0}
}
.ctb-badge{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:2px;padding:5px 10px;border-radius:4px;flex-shrink:0;border:1px solid rgba(109,232,225,0.35);background:rgba(109,232,225,0.06);color:rgba(109,232,225,0.7);transition:all 0.25s;white-space:nowrap}
.cond-toggle-btn.open .ctb-badge{background:rgba(109,232,225,0.14);border-color:rgba(109,232,225,0.5);color:rgba(109,232,225,1.0);box-shadow:0 0 10px rgba(109,232,225,0.2)}
.ctb-badge.charge-flash{animation:badgeCharge 0.35s ease-out forwards}
@keyframes badgeCharge{0%{background:rgba(109,232,225,0.7); color:#000; box-shadow:0 0 20px rgba(109,232,225,0.6)}
100%{background:rgba(109,232,225,0.14); color:rgba(109,232,225,1.0); box-shadow:0 0 10px rgba(109,232,225,0.2)}
}
.cond-toggle-btn.open .ctb-icon{color:rgba(109,232,225,0.9);filter:drop-shadow(0 0 6px rgba(109,232,225,0.5))}
.cond-dual-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cond-dual-label{font-size:7px;letter-spacing:1.5px;color:var(--txt3);margin-bottom:5px;font-family:'Space Grotesk',sans-serif;font-weight:600}
.trade-intent{border:1px solid rgba(109,232,225,0.1);border-radius:0;background:linear-gradient(135deg,rgba(109,232,225,0.03) 0%,rgba(79,255,170,0.02) 100%);padding:9px 14px;display:flex;flex-direction:column;gap:5px}
.ti-label{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:2px;color:rgba(109,232,225,0.4);margin-bottom:-2px}
.ti-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-family:'Space Grotesk',sans-serif;font-size:12px;color:rgba(255,255,255,0.5)}
.ti-row b{color:#fff;font-weight:700;font-family:'Space Grotesk',sans-serif;font-size:13px;letter-spacing:-0.2px}
.ti-sep{color:rgba(255,255,255,0.12)}
.ti-tp{color:#4FFFAA;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:700;background:rgba(79,255,170,0.08);padding:2px 7px;border-radius:4px;border:1px solid rgba(79,255,170,0.15)}
.ti-sl{color:#ff7070;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:700;background:rgba(229,80,80,0.08);padding:2px 7px;border-radius:4px;border:1px solid rgba(229,80,80,0.15)}
.ti-cond{color:var(--cyan);font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:700;background:rgba(109,232,225,0.06);padding:2px 7px;border-radius:4px;border:1px solid rgba(109,232,225,0.15)}
.ti-rr{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(255,255,255,0.28);letter-spacing:0.3px;padding-top:5px;border-top:1px solid rgba(109,232,225,0.06)}
.ti-conflict{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--amber);letter-spacing:0.3px;padding-top:5px;border-top:1px solid rgba(255,165,0,0.15)}
.prot-row{background:rgba(0,0,0,0.2);border:1px solid rgba(255,255,255,0.07);border-radius:0;overflow:hidden;flex-shrink:0;transition:border-color 0.18s}
.prot-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:pointer;transition:background 0.15s}
.prot-header:hover{background:rgba(255,255,255,0.03)}
.prot-left{display:flex;align-items:center;gap:8px}
.prot-label{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:1.5px;color:rgba(255,255,255,0.55);font-weight:500}
.prot-hint{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.2);letter-spacing:0.3px}
.prot-caret{font-family:'IBM Plex Mono',monospace;font-size:14px;color:rgba(255,255,255,0.4);transition:all 0.2s;line-height:1}
#tp-toggle-row.tp-on{border-color:rgba(79,255,170,0.22)}
#tp-toggle-row.tp-on .prot-label{color:rgba(79,255,170,0.9)}
#tp-toggle-row.tp-on .prot-caret{color:rgba(79,255,170,0.6);transform:rotate(45deg)}
#sl-toggle-row.sl-on{border-color:rgba(229,80,80,0.22)}
#sl-toggle-row.sl-on .prot-label{color:rgba(229,80,80,0.9)}
#sl-toggle-row.sl-on .prot-caret{color:rgba(229,80,80,0.6);transform:rotate(45deg)}
.prot-panel{padding:8px 12px 10px;border-top:1px solid rgba(109,232,225,0.06);display:flex;flex-direction:column;gap:7px}
.prot-input-row{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,0.3);border:1px solid rgba(255,255,255,0.08);border-radius:2px;padding:7px 10px;transition:border-color 0.15s}
.prot-input-row:focus-within{border-color:rgba(109,232,225,0.3)}
#sl-toggle-row .prot-input-row:focus-within{border-color:rgba(229,80,80,0.3)}
.prot-currency{font-family:'IBM Plex Mono',monospace;font-size:11px;color:rgba(255,255,255,0.25);flex-shrink:0}
.prot-price-input{flex:1;background:transparent;border:none;outline:none;font-family:'IBM Plex Mono',monospace;font-size:14px;font-weight:500;color:rgba(255,255,255,0.9);min-width:0;-moz-appearance:textfield}
.prot-price-input::-webkit-inner-spin-button,.prot-price-input::-webkit-outer-spin-button{-webkit-appearance:none}
.prot-price-input::placeholder{color:rgba(255,255,255,0.15)}
.prot-savings{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(79,255,170,0.7);flex-shrink:0}
.prot-pct-row{display:flex;gap:5px}
.prot-pct{flex:1;font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:0.5px;color:rgba(255,255,255,0.3);background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:5px;padding:5px 0;cursor:pointer;transition:all 0.15s}
.tp-toggle-dot,.sl-toggle-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;transition:all 0.2s}
.tp-toggle-dot{background:rgba(79,255,170,0.2);border:1px solid rgba(79,255,170,0.3)}
.tp-toggle-dot.active{background:#4FFFAA;box-shadow:0 0 7px rgba(79,255,170,0.7);border-color:#4FFFAA}
.sl-toggle-dot{background:rgba(229,80,80,0.2);border:1px solid rgba(229,80,80,0.3)}
.sl-toggle-dot.active{background:#E55050;box-shadow:0 0 7px rgba(229,80,80,0.7);border-color:#E55050}
.dca-mode-pill{display:flex;gap:0;background:rgba(0,0,0,0.3);border:1px solid rgba(109,232,225,0.1);border-radius:8px;padding:3px;flex-shrink:0}
.dca-pill-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:1.5px;color:rgba(255,255,255,0.3);background:transparent;border:none;border-radius:5px;padding:6px 8px;cursor:pointer;transition:all 0.18s}
.dca-pill-btn:hover{color:rgba(109,232,225,0.7)}
.dca-pill-btn.on{color:rgba(109,232,225,1);background:rgba(109,232,225,0.1);border:1px solid rgba(109,232,225,0.22);box-shadow:0 0 12px rgba(109,232,225,0.06)}
.dca-pill-icon{font-size:11px;opacity:0.85}
.dca-time-body,.dca-ladder-body{display:flex;flex-direction:column;gap:4px;flex-shrink:0}
.dca-row:hover{border-color:rgba(109,232,225,0.1)}
.dca-amt-row,.dca-freq-row,.dca-dur-row,.dca-tranche-row,.dca-range-row{display:flex;align-items:center;gap:6px;flex:1;justify-content:flex-end}
.dca-cur{font-family:'IBM Plex Mono',monospace;font-size:11px;color:rgba(109,232,225,0.45);flex-shrink:0}
.dca-input::-webkit-inner-spin-button,.dca-input::-webkit-outer-spin-button{-webkit-appearance:none}
.dca-input:focus{color:rgba(109,232,225,1)}
.dca-input::placeholder{color:rgba(255,255,255,0.12);font-size:14px}
.dca-amt-input{width:80px}
.dca-freq-num,.dca-dur-num{width:44px}
.dca-tranche-input{width:44px}
.dca-range-row{gap:8px}
.dca-range-field{display:flex;align-items:center;gap:4px;flex:1;background:rgba(0,0,0,0.2);border-radius:2px;padding:4px 8px}
.dca-range-lbl{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(255,255,255,0.2);flex-shrink:0}
.dca-range-input{flex:1;width:0;text-align:right;font-size:14px}
.dca-range-sep{font-family:'IBM Plex Mono',monospace;font-size:11px;color:rgba(255,255,255,0.3);flex-shrink:0}
.dca-tranche-hint{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(109,232,225,0.3);flex:1;text-align:right}
.dca-ladder-vis{display:flex;flex-direction:column;gap:4px;margin-top:2px;padding:4px 8px;background:rgba(0,0,0,0.15);border-radius:0}
.dca-ladder-row{display:flex;align-items:center;gap:8px}
.dca-lad-price{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(255,255,255,0.35);width:52px;flex-shrink:0;text-align:right}
.dca-lad-bar-wrap{flex:1;height:4px;background:rgba(255,255,255,0.06);border-radius:3px;overflow:hidden}
.dca-lad-bar{height:100%;background:linear-gradient(90deg,rgba(109,232,225,0.5),rgba(79,255,170,0.8));border-radius:3px;transition:width 0.3s cubic-bezier(.16,1,.3,1)}
.dca-lad-amt{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(79,255,170,0.5);width:44px;text-align:right;flex-shrink:0}
.dca-summary{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.3);line-height:1.65;padding:8px 12px;border-radius:0;background:linear-gradient(165deg,rgba(16,22,42,0.6) 0%,rgba(10,14,28,0.5) 50%,rgba(6,8,18,0.6) 100%);border:1px solid rgba(109,232,225,0.1);border-top-color:rgba(109,232,225,0.18);border-bottom-color:rgba(109,232,225,0.05);margin-top:2px;box-shadow:inset 0 1px 0 rgba(109,232,225,0.06),inset 0 -1px 0 rgba(0,0,0,0.15),0 4px 16px rgba(0,0,0,0.3)}
.dca-summary b{font-weight:600;color:rgba(109,232,225,0.7)}
.lim-price-input::-webkit-inner-spin-button,.lim-price-input::-webkit-outer-spin-button{-webkit-appearance:none}
.lim-price-input::placeholder{color:rgba(255,255,255,0.15)}
.lim-exp-num::-webkit-inner-spin-button,.lim-exp-num::-webkit-outer-spin-button{-webkit-appearance:none}
.lim-exp-num:focus{border-color:rgba(255,165,0,0.55);box-shadow:0 0 8px rgba(255,165,0,0.1)}
.thresh-n-static{font-family:'Orbitron',sans-serif;font-size:16px;font-weight:700;color:var(--cyan);min-width:22px;text-align:center;display:inline-flex;align-items:center;justify-content:center}
.thresh-input{font-family:'Orbitron',sans-serif;font-size:16px;font-weight:700;color:#4FFFAA;background:rgba(79,255,170,0.07);border:1.5px solid rgba(79,255,170,0.45);border-radius:2px;width:52px;text-align:center;padding:4px 0;outline:none;-moz-appearance:textfield;cursor:text}
.thresh-input::-webkit-inner-spin-button,.thresh-input::-webkit-outer-spin-button{-webkit-appearance:none}
.thresh-input:focus{border-color:#4FFFAA;box-shadow:0 0 12px rgba(79,255,170,0.18);background:rgba(79,255,170,0.1)}
.thresh-edit-hint{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(79,255,170,0.4);letter-spacing:0.5px;display:inline-flex;align-items:center;margin-left:2px;animation:pulse 2s ease-in-out infinite}
.nb5{width:640px;height:480px;background:radial-gradient(ellipse,rgba(15,80,55,0.10) 0%,rgba(8,50,38,0.04) 55%,transparent 75%);bottom:-30px;left:-60px;animation-duration:35s;animation-delay:-20s}
.exec-sub{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1.5px;color:rgba(255,255,255,0.2);text-align:center;margin-top:7px;text-transform:uppercase}
.leg2-trigger{margin:8px 0 4px}
.leg2-trigger-btn{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:linear-gradient(160deg,rgba(157,127,234,0.03) 0%,rgba(109,232,225,0.01) 100%);border:1px solid rgba(157,127,234,0.08);cursor:pointer;transition:all 0.3s;position:relative;overflow:hidden}
.leg2-trigger-btn::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(157,127,234,0.3),rgba(109,232,225,0.15),transparent);opacity:0;transition:opacity 0.3s}
.leg2-trigger-btn::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(157,127,234,0.04),transparent 60%);opacity:0;transition:opacity 0.3s}
.leg2-trigger-btn:hover{border-color:rgba(157,127,234,0.22);box-shadow:0 0 20px rgba(157,127,234,0.06),inset 0 1px 0 rgba(157,127,234,0.05)}
.leg2-trigger-btn:hover::before{opacity:1}
.leg2-trigger-btn:hover::after{opacity:1}
.leg2-trigger-left{display:flex;align-items:center;gap:10px}
.leg2-trigger-icon{color:rgba(157,127,234,0.45);flex-shrink:0;transition:color 0.25s}
.leg2-trigger-btn:hover .leg2-trigger-icon{color:rgba(157,127,234,0.7)}
.leg2-trigger-main{font-family:'Orbitron',sans-serif;font-size:9px;font-weight:700;color:rgba(255,255,255,0.55);letter-spacing:2px;transition:color 0.25s}
.leg2-trigger-btn:hover .leg2-trigger-main{color:rgba(255,255,255,0.8)}
.leg2-trigger-sub{font-family:'IBM Plex Mono',monospace;font-size:7px;color:rgba(255,255,255,0.3);margin-top:2px;letter-spacing:0.3px;transition:color 0.25s}
.leg2-trigger-btn:hover .leg2-trigger-sub{color:rgba(255,255,255,0.25)}
.leg2-trigger-badge{font-family:'Orbitron',sans-serif;font-size:7px;font-weight:700;letter-spacing:2.5px;padding:4px 12px;border:1px solid rgba(157,127,234,0.12);background:rgba(157,127,234,0.04);color:rgba(157,127,234,0.45);transition:all 0.3s;position:relative;z-index:1}
.leg2-trigger-btn:hover .leg2-trigger-badge{background:rgba(157,127,234,0.1);border-color:rgba(157,127,234,0.3);color:rgba(157,127,234,0.8);box-shadow:0 0 14px rgba(157,127,234,0.12)}
.leg1-locked{margin:0 0 2px;position:relative;overflow:hidden}
.leg1-locked.animating{animation:leg1LockIn 0.4s cubic-bezier(.16,1,.3,1) forwards}
.leg1-locked-inner{padding:10px 14px;background:linear-gradient(160deg,rgba(79,255,170,0.03),rgba(10,20,14,0.98));border:1px solid rgba(79,255,170,0.12);border-left:2px solid rgba(79,255,170,0.3);position:relative}
.leg1-locked-inner::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 5%,rgba(79,255,170,0.35) 50%,transparent 95%)}
.leg1-locked-glow{position:absolute;bottom:-1px;left:0;right:0;height:12px;background:linear-gradient(180deg,rgba(79,255,170,0.03),transparent);pointer-events:none}
.leg1-locked-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.leg1-locked-tag{font-family:'Orbitron',sans-serif;font-size:7px;font-weight:800;letter-spacing:2px;padding:3px 8px;background:rgba(79,255,170,0.1);border:1px solid rgba(79,255,170,0.2);color:rgba(79,255,170,0.8);flex-shrink:0}
.leg1-locked-action{font-family:'Orbitron',sans-serif;font-size:10px;font-weight:700;color:rgba(255,255,255,0.75);letter-spacing:1px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leg1-locked-controls{display:flex;align-items:center;gap:5px;flex-shrink:0}
.leg1-locked-edit{background:rgba(109,232,225,0.06);border:1px solid rgba(109,232,225,0.12);color:rgba(109,232,225,0.5);font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:0.5px;padding:2px 7px;cursor:pointer;transition:all 0.2s}
.leg1-locked-edit:hover{color:rgba(109,232,225,1);background:rgba(109,232,225,0.12);border-color:rgba(109,232,225,0.35)}
.leg1-locked-rm{background:none;border:1px solid rgba(255,255,255,0.06);color:rgba(255,255,255,0.15);width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:9px;transition:all 0.2s}
.leg1-locked-rm:hover{border-color:rgba(255,80,80,0.3);color:rgba(255,80,80,0.6);background:rgba(255,80,80,0.04)}
.leg1-locked-details{display:flex;align-items:center;gap:4px;margin-top:5px;flex-wrap:wrap}
.leg1-d-item{font-family:'IBM Plex Mono',monospace;font-size:7px;color:rgba(255,255,255,0.25);letter-spacing:0.3px}
.leg1-d-sep{font-size:7px;color:rgba(255,255,255,0.1)}
@keyframes leg1LockIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.leg2-pipe-indicator{display:flex;align-items:center;gap:6px;padding:5px 14px;justify-content:center;animation:leg2PipeIn 0.35s 0.15s both cubic-bezier(.16,1,.3,1)}
@keyframes leg2OrbPulse{0%,100%{box-shadow:0 0 6px rgba(157,127,234,0.1)}50%{box-shadow:0 0 14px rgba(157,127,234,0.3)}}
@keyframes leg2PipeIn{from{opacity:0;transform:scaleX(0.3)}to{opacity:1;transform:scaleX(1)}}
.leg2-mode-bar{display:flex;align-items:center;gap:8px;padding:6px 14px 4px;animation:leg2ModeIn 0.35s 0.25s both cubic-bezier(.16,1,.3,1)}
@keyframes leg2ModeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.swap-card.pipeline-mode{border-color:rgba(157,127,234,0.15) !important}
.swap-card.pipeline-mode .sell-box{border-color:rgba(157,127,234,0.08) !important}
.swap-card.pipeline-mode .buy-box{border-color:rgba(157,127,234,0.08) !important}
.swap-card.pipeline-mode .tok-sel:hover{border-color:rgba(157,127,234,0.3) !important}
.swap-card.pipeline-mode #sell-sel{opacity:0.5;pointer-events:none}
.swap-card.pipeline-mode #sell-sel::after{content:'🔒';position:absolute;right:8px;font-size:8px;opacity:0.4}
.leg1-confirm-overlay{position:fixed;inset:0;z-index:800;background:rgba(2,4,12,0.88);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.22s ease}
.leg1-confirm-overlay.open{opacity:1;pointer-events:all}
.leg1-confirm-card{width:340px;max-width:90vw;background:linear-gradient(165deg,rgba(8,14,22,0.99),rgba(4,8,16,0.99));border:1px solid rgba(79,255,170,0.15);position:relative;overflow:hidden;transform:translateY(12px) scale(0.97);transition:transform 0.3s cubic-bezier(.16,1,.3,1);box-shadow:0 20px 60px rgba(0,0,0,0.5),0 0 40px rgba(79,255,170,0.03)}
.leg1-confirm-overlay.open .leg1-confirm-card{transform:translateY(0) scale(1)}
.leg1-confirm-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 5%,rgba(79,255,170,0.5) 30%,rgba(109,232,225,0.3) 70%,transparent 95%)}
.l1c-head{padding:16px 18px 10px;display:flex;align-items:center;gap:8px}
.l1c-icon{width:28px;height:28px;border-radius:50%;background:rgba(79,255,170,0.08);border:1px solid rgba(79,255,170,0.15);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.l1c-titles{flex:1}
.l1c-title{font-family:'Orbitron',sans-serif;font-size:10px;font-weight:700;letter-spacing:2.5px;color:rgba(255,255,255,0.8)}
.l1c-sub{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.35);margin-top:2px;letter-spacing:0.3px}
.l1c-body{padding:0 18px 14px}
.l1c-trade{padding:12px;background:rgba(79,255,170,0.02);border:1px solid rgba(79,255,170,0.08);margin-bottom:10px}
.l1c-trade-action{font-family:'Orbitron',sans-serif;font-size:13px;font-weight:700;color:rgba(255,255,255,0.85);letter-spacing:1px;text-align:center;margin-bottom:6px}
.l1c-trade-action .l1c-arrow{color:rgba(79,255,170,0.6);margin:0 5px}
.l1c-trade-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.l1c-meta-tag{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:0.5px;padding:2px 7px;border:1px solid rgba(109,232,225,0.1);color:rgba(109,232,225,0.5);background:rgba(109,232,225,0.03)}
.l1c-meta-tag.green{border-color:rgba(79,255,170,0.12);color:rgba(79,255,170,0.5)}
.l1c-meta-tag.red{border-color:rgba(229,80,80,0.12);color:rgba(229,80,80,0.5)}
.l1c-note{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.3);text-align:center;line-height:1.5;margin-bottom:12px}
.l1c-btns{display:flex;gap:8px}
.l1c-btn{flex:1;padding:11px;border:1px solid;font-family:'Orbitron',sans-serif;font-size:9px;font-weight:700;letter-spacing:2px;cursor:pointer;text-align:center;transition:all 0.2s;position:relative;overflow:hidden}
.l1c-btn.cancel{border-color:rgba(255,255,255,0.06);background:rgba(255,255,255,0.02);color:rgba(255,255,255,0.3)}
.l1c-btn.cancel:hover{border-color:rgba(255,255,255,0.12);color:rgba(255,255,255,0.5)}
.l1c-btn.confirm{border-color:rgba(79,255,170,0.25);background:linear-gradient(160deg,rgba(79,255,170,0.1),rgba(79,255,170,0.03));color:rgba(79,255,170,0.85);box-shadow:0 0 16px rgba(79,255,170,0.06)}
.l1c-btn.confirm:hover{background:linear-gradient(160deg,rgba(79,255,170,0.16),rgba(79,255,170,0.05));border-color:rgba(79,255,170,0.35);box-shadow:0 0 24px rgba(79,255,170,0.1);letter-spacing:2.5px}
.l1c-btn.confirm::before{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(79,255,170,0.06),transparent);transition:left 0.4s}
.l1c-btn.confirm:hover::before{left:100%}
.tr-leg2-section{margin:0 12px;padding:8px 0;border-top:1px solid rgba(157,127,234,0.1)}
.trade-receipt.has-pipeline{border-color:rgba(157,127,234,0.18) !important;border-left-color:rgba(157,127,234,0.35) !important}
.trade-receipt.has-pipeline::before{background:linear-gradient(90deg,transparent 5%,rgba(157,127,234,0.5) 30%,rgba(79,255,170,0.4) 70%,transparent 95%) !important}
.tr-leg2-pipe{display:flex;align-items:center;justify-content:center;gap:6px;padding:4px 0;margin-bottom:4px}
.tr-leg2-pipe-dot{width:5px;height:5px;border-radius:50%;background:rgba(157,127,234,0.4);box-shadow:0 0 6px rgba(157,127,234,0.2)}
.tr-leg2-pipe-label{font-family:'Orbitron',sans-serif;font-size:7px;letter-spacing:2px;color:rgba(157,127,234,0.35)}
.tr-leg2-action{font-family:'Orbitron',sans-serif;font-size:10px;font-weight:700;color:rgba(255,255,255,0.65);letter-spacing:1.5px;margin-bottom:2px}
.tr-leg2-action .tr-arrow{color:rgba(157,127,234,0.5)}
.tr-leg2-market{font-family:'IBM Plex Mono',monospace;font-size:7px;color:rgba(157,127,234,0.3)}
.tr-leg2-conds{margin-top:4px}
.tr-leg2-cond-row{display:flex;gap:6px;padding:2px 0;font-family:'IBM Plex Mono',monospace;font-size:8px}
.tr-leg2-cond-row .tr-cond-idx{color:rgba(157,127,234,0.4);min-width:12px}
.tr-leg2-cond-row .tr-cond-name{color:rgba(255,255,255,0.5);flex:1}
.tr-leg2-cond-row .tr-cond-val{color:rgba(157,127,234,0.55)}
#exec-btn.has-pipeline{background:linear-gradient(160deg,rgba(157,127,234,0.14) 0%,rgba(79,255,170,0.05) 100%) !important;border-color:rgba(157,127,234,0.4) !important;color:rgba(210,195,255,0.95) !important;animation:execPipeIdle 3s ease-in-out infinite !important}
@keyframes execPipeIdle{0%,100%{box-shadow:0 0 20px rgba(157,127,234,0.08)}50%{box-shadow:0 0 35px rgba(157,127,234,0.15)}}
.exec-btn-outer.has-pipeline .dw-corner{border-color:rgba(157,127,234,0.6) !important}
.trade-receipt{margin:10px 0 4px;padding:0;flex-shrink:0;background:linear-gradient(165deg,rgb(6,18,28) 0%,rgb(4,12,20) 40%,rgb(8,20,16) 100%);border:1px solid rgba(79,255,170,0.18);border-left:2px solid rgba(79,255,170,0.35);position:relative;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,0.4),0 0 40px rgba(79,255,170,0.04),inset 0 1px 0 rgba(79,255,170,0.06),inset 2px 0 12px rgba(79,255,170,0.03)}
.trade-receipt.tr-enter{animation:trReceiptIn 0.35s cubic-bezier(.16,1,.3,1)}
.trade-receipt::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 5%,rgba(79,255,170,0.6) 30%,rgba(109,232,225,0.4) 50%,rgba(79,255,170,0.6) 70%,transparent 95%)}
.trade-receipt::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:repeating-linear-gradient(90deg,rgba(79,255,170,0.18) 0px,rgba(79,255,170,0.18) 4px,transparent 4px,transparent 8px)}
.trade-receipt .tr-scan{position:absolute;top:0;left:0;right:0;height:100%;pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(79,255,170,0.02) 50%,transparent 100%);background-size:100% 40px;animation:trScan 6s linear infinite;opacity:0.5}
@keyframes trScan{0%{background-position:0 -40px}100%{background-position:0 200px}}
@keyframes trReceiptIn{0%{opacity:0;transform:translateY(8px);max-height:0}100%{opacity:1;transform:translateY(0);max-height:400px}}
.tr-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tr-collapse-btn{background:none;border:none;padding:2px;color:rgba(79,255,170,0.5);cursor:pointer;transition:transform 0.25s;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:6px}
.trade-receipt.collapsed .tr-collapse-btn{transform:rotate(180deg)}
.tr-body{transition:max-height 0.3s ease,opacity 0.2s ease;overflow:hidden}
.trade-receipt.collapsed .tr-body{max-height:0 !important;opacity:0}
.tr-title{font-family:'Orbitron',sans-serif;font-size:7px;letter-spacing:3px;color:rgba(79,255,170,0.7);font-weight:800;text-shadow:0 0 12px rgba(79,255,170,0.2)}
.tr-logic{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1.5px;color:rgba(109,232,225,0.6);padding:2px 7px;border:1px solid rgba(109,232,225,0.18);background:rgba(109,232,225,0.06)}
.tr-summary{padding:0 12px 8px;text-align:center}
.tr-action{font-family:'Orbitron',sans-serif;font-size:12px;font-weight:700;color:rgba(255,255,255,0.92);letter-spacing:1px;line-height:1.3;text-shadow:0 1px 8px rgba(0,0,0,0.5)}
.tr-action .tr-arrow{color:rgba(79,255,170,0.8);margin:0 5px;font-size:14px;text-shadow:0 0 10px rgba(79,255,170,0.3)}
.tr-market{font-family:'IBM Plex Mono',monospace;font-size:7px;color:rgba(255,255,255,0.18);margin-top:3px;letter-spacing:0.5px}
.tr-divider{height:1px;background:linear-gradient(90deg,transparent 5%,rgba(79,255,170,0.06) 30%,rgba(255,255,255,0.04) 50%,rgba(79,255,170,0.06) 70%,transparent 95%);margin:0 12px}
.tr-conditions-label{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:2px;color:rgba(109,232,225,0.4);padding:6px 12px 4px;font-weight:700}
.tr-conditions{padding:0 12px 6px;display:flex;flex-direction:column;gap:3px}
.tr-cond-row{display:flex;align-items:center;gap:7px;font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(255,255,255,0.55);padding:4px 8px;background:linear-gradient(90deg,rgba(109,232,225,0.03),rgba(109,232,225,0.01));border-left:2px solid rgba(109,232,225,0.2);transition:all 0.15s}
.tr-cond-row:hover{background:linear-gradient(90deg,rgba(109,232,225,0.06),rgba(109,232,225,0.02));border-left-color:rgba(109,232,225,0.4)}
.tr-cond-idx{font-size:7px;color:rgba(109,232,225,0.35);font-weight:700;min-width:12px}
.tr-cond-name{color:rgba(255,255,255,0.7);font-weight:600}
.tr-cond-val{color:rgba(109,232,225,0.55);margin-left:auto;font-size:8px}
.tr-footer{padding:6px 12px 10px;display:flex;flex-direction:column;gap:3px;background:linear-gradient(180deg,transparent,rgba(79,255,170,0.015))}
.tr-footer-row{display:flex;justify-content:space-between;align-items:center}
.tr-fl{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.2);letter-spacing:0.5px}
.tr-fv{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(255,255,255,0.5);font-weight:600}
.tr-live{display:flex;align-items:center;gap:5px;color:rgba(79,255,170,0.65)}
.tr-live-dot{width:5px;height:5px;border-radius:50%;background:rgba(79,255,170,0.85);box-shadow:0 0 8px rgba(79,255,170,0.5),0 0 16px rgba(79,255,170,0.2);animation:trLivePulse 2s ease-in-out infinite}
@keyframes trLivePulse{0%,100%{opacity:0.5;box-shadow:0 0 6px rgba(79,255,170,0.3)}50%{opacity:1;box-shadow:0 0 10px rgba(79,255,170,0.6),0 0 20px rgba(79,255,170,0.2)}}
.tr-protections{padding:0 12px 6px;display:flex;flex-direction:column;gap:3px}
.tr-prot-row{display:flex;align-items:center;gap:7px;font-family:'IBM Plex Mono',monospace;font-size:9px;padding:4px 8px}
.tr-prot-tp{background:rgba(79,255,170,0.03);border-left:2px solid rgba(79,255,170,0.25)}
.tr-prot-sl{background:rgba(229,80,80,0.03);border-left:2px solid rgba(229,80,80,0.25)}
.tr-prot-icon{font-size:10px;min-width:14px;text-align:center}
.tr-prot-tp .tr-prot-icon{color:rgba(79,255,170,0.6)}
.tr-prot-sl .tr-prot-icon{color:rgba(229,80,80,0.6)}
.tr-prot-label{font-weight:700;font-size:8px;letter-spacing:1.5px}
.tr-prot-tp .tr-prot-label{color:rgba(79,255,170,0.7)}
.tr-prot-sl .tr-prot-label{color:rgba(229,80,80,0.7)}
.tr-prot-val{margin-left:auto;font-size:9px;color:rgba(255,255,255,0.5);font-weight:600}
/* ── Tenon Lock vesting section in trade receipt ── */
.tr-vest-section{padding:6px 12px 8px}
.tr-vest-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.tr-vest-icon{color:rgba(79,255,170,0.6);flex-shrink:0}
.tr-vest-title{font-family:'Orbitron',sans-serif;font-size:7px;letter-spacing:2px;color:rgba(79,255,170,0.7);font-weight:700}
.tr-vest-immutable{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:1px;color:rgba(245,185,66,0.5);background:rgba(245,185,66,0.06);border:1px solid rgba(245,185,66,0.12);padding:1px 4px;margin-left:auto}
.tr-vest-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}
.tr-vest-row{display:flex;align-items:center;justify-content:space-between;padding:2px 0}
.tr-vest-lbl{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1px;color:rgba(255,255,255,0.2)}
.tr-vest-val{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(79,255,170,0.7);font-weight:500;text-align:right}
.tr-vest-val.tr-vest-output{color:rgba(79,255,170,0.6)}
@keyframes cardScan{0%{transform:translateY(-100%); opacity:0 }
5%{opacity:1 }
95%{opacity:1 }
100%{transform:translateY(100%); opacity:0 }
}
.cond-toggle-btn::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,transparent 20%,rgba(109,232,225,0.08) 50%,transparent 80%);border:none;pointer-events:none;z-index:0;animation:condPulse 4s ease-in-out infinite;will-change:background-position;background-size:200% 100%}
@keyframes condPulse{0%{background-position:200% 0}
100%{background-position:-200% 0}
}
/* Subtle glow pulse on the badge to draw attention */
.ctb-badge:not(.live){animation:badgePulse 2.5s ease-in-out infinite}
@keyframes badgePulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 8px rgba(109,232,225,0.15)}}
/* First-interaction tooltip */
.cond-toggle-btn[data-hint]::after{content:attr(data-hint);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(109,232,225,0.8);background:rgba(6,8,18,0.95);border:1px solid rgba(109,232,225,0.2);padding:6px 12px;white-space:nowrap;pointer-events:none;z-index:10;opacity:0;animation:hintFadeIn 0.4s ease-out 2s forwards}
@keyframes hintFadeIn{to{opacity:1}}
.cond-toggle-btn:hover,.cond-toggle-btn:focus-visible{border-color:rgba(109,232,225,0.5) !important;background:linear-gradient(135deg,rgba(109,232,225,0.08) 0%,rgba(109,232,225,0.03) 100%) !important;box-shadow:0 0 24px rgba(109,232,225,0.10) !important;transform:none !important}
.cond-toggle-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.cond-toggle-btn{font-family:inherit;text-align:left;padding:0}
.ctb-icon{color:rgba(109,232,225,0.7);display:flex;align-items:center;flex-shrink:0;transition:color 0.25s,filter 0.25s}
.ctb-main{font-family:'IBM Plex Mono',monospace !important;font-size:11px !important;font-weight:600;color:rgba(255,255,255,0.85) !important;letter-spacing:1.5px !important;text-transform:uppercase !important}
.ctb-sub{font-family:'IBM Plex Mono',monospace !important;font-size:8px !important;color:rgba(109,232,225,0.45) !important;margin-top:2px;white-space:normal;line-height:1.35;letter-spacing:0.5px !important}
.ci-name{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;color:rgba(255,255,255,0.88);margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0.5px}
.ci-desc{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.32);line-height:1.4;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0.3px}
/* Opacity only — no hue. A price that changes colour on every tick reads as a
   Christmas light rather than a number, and at a two-second cadence across
   eighty-eight symbols the whole strip strobes. This says "just updated" and
   nothing else; what the price is DOING is the 24h change's job, and that
   colour is steady. */
/* No price flash. Dimming a light price against a dark bar reads as flashing
   white and grey, and at a two-second feed it never stops. The number changing
   is the signal. */
#s2 .dex-bar{opacity:1}
#s8 .dex-bar{animation:s2DropIn 0.50s cubic-bezier(.16,1,.3,1) 0.02s both !important;background:rgb(9,11,21) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;border-bottom:1px solid rgba(109,232,225,0.15) !important}
#s2 .ticker-bar{opacity:1}
/* Desktop only: card starts hidden, revealed by s2Materialise animation */
@media(min-width:769px){
#s2 .swap-card{opacity:0;will-change:transform,opacity}
#s2 .cond-panel{opacity:0;will-change:transform,opacity}
}
.ti-sym{font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:600;color:rgba(255,255,255,0.7);letter-spacing:0.5px}
/* TABULAR NUMERALS ARE LOAD-BEARING HERE, not typography polish.
   The ticker loops with translateX(-50%), which only lands seamlessly while
   the strip's total width is stable. Without fixed-width digits every price
   update reflows the item, moves the 50% mark, and the scroll visibly jumps —
   once per poll. min-width stops a short price shrinking the item for the same
   reason. */
/* The marquee's width-stability budget lives on the ITEM (below), not on the
   text cells — fixed inner boxes left a dead-air gulf between a short price
   and its % change ("RAY $0.7437        +0.00%"). Snug text, slack at the
   item's end where it reads as natural spacing before the divider. */
.ti-price{font-family:'IBM Plex Mono',monospace;font-size:10px;color:rgba(255,255,255,0.85);font-weight:500;font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1}
.ti-chg{font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1}
/* A ticker item must not change width when its price does. */
/* 200px matches what the old inner boxes measured, so total strip width is
   unchanged and the 50%-translate loop stays seamless — a percentage-driven
   marquee treats variable width as a correctness bug, not a cosmetic one. */
.ticker-item{will-change:auto;contain:layout style;min-width:200px}
.dex-live-dot{width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);animation:dotBlink 1.4s ease-in-out infinite !important}
.protection-group-label{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:3px;color:rgba(255,255,255,0.25);padding:0 2px;margin-bottom:1px}
/* ── Tenon Lock (Moonbag) section ── */
.moonbag-section{border:1px solid rgba(109,232,225,0.1);border-radius:0;background:linear-gradient(165deg,rgba(10,16,30,0.95) 0%,rgba(8,12,24,0.98) 100%);overflow:hidden;margin-top:4px;position:relative;z-index:1;flex-shrink:0}
.moonbag-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;transition:background 0.2s}
.moonbag-header:hover{background:rgba(109,232,225,0.03)}
.moonbag-header-left{display:flex;align-items:center;gap:10px;flex:1}
.moonbag-icon{color:rgba(109,232,225,0.5);flex-shrink:0;transition:color 0.2s}
.moonbag-section.active .moonbag-icon{color:rgba(79,255,170,0.8);filter:drop-shadow(0 0 6px rgba(79,255,170,0.4))}
.moonbag-text{display:flex;flex-direction:column;gap:1px}
.moonbag-label{font-family:'Orbitron',sans-serif;font-size:8px;letter-spacing:2px;color:rgba(255,255,255,0.4);font-weight:600;transition:color 0.2s}
.moonbag-section.active .moonbag-label{color:rgba(79,255,170,0.85);text-shadow:0 0 8px rgba(79,255,170,0.3)}
.moonbag-sub{font-family:'IBM Plex Mono',monospace;font-size:7px;color:rgba(255,255,255,0.2);letter-spacing:0.3px}
.moonbag-toggle-track{width:28px;height:14px;border-radius:7px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.06);position:relative;transition:all 0.25s;cursor:pointer}
.moonbag-toggle-thumb{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,0.25);position:absolute;top:1px;left:1px;transition:all 0.25s cubic-bezier(.22,1,.36,1)}
.moonbag-section.active .moonbag-toggle-track{background:rgba(79,255,170,0.15);border-color:rgba(79,255,170,0.35)}
.moonbag-section.active .moonbag-toggle-thumb{left:15px;background:rgba(79,255,170,0.9);box-shadow:0 0 8px rgba(79,255,170,0.5)}
.moonbag-body{padding:0 14px 12px;border-top:1px solid rgba(109,232,225,0.06)}
.moonbag-desc{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.4);line-height:1.6;padding:8px 0 10px;letter-spacing:0.2px}
.moonbag-pct-row{display:flex;align-items:center;gap:8px}
.moonbag-pct-label{font-family:'Orbitron',sans-serif;font-size:7px;letter-spacing:2px;color:rgba(109,232,225,0.4);flex-shrink:0}
.moonbag-pct-btns{display:flex;gap:4px;flex:1}
.moonbag-pct-btn{font-family:'IBM Plex Mono',monospace;font-size:9px;padding:4px 10px;border:1px solid rgba(109,232,225,0.12);border-radius:0;background:rgba(109,232,225,0.04);color:rgba(255,255,255,0.35);cursor:pointer;transition:all 0.18s;flex:1;text-align:center}
.moonbag-pct-btn:hover{border-color:rgba(109,232,225,0.25);color:rgba(255,255,255,0.6);background:rgba(109,232,225,0.08)}
.moonbag-pct-btn.on{border-color:rgba(79,255,170,0.4);color:rgba(79,255,170,0.9);background:rgba(79,255,170,0.08);box-shadow:0 0 8px rgba(79,255,170,0.1);text-shadow:0 0 6px rgba(79,255,170,0.3)}
.moonbag-pct-input{width:36px;background:rgba(0,0,0,0.4);border:1px solid rgba(109,232,225,0.15);border-radius:2px;color:#fff;font-family:'IBM Plex Mono',monospace;font-size:10px;padding:3px 4px;text-align:center;outline:none}
.moonbag-pct-input:focus{border-color:rgba(109,232,225,0.4)}
.moonbag-pct-input::-webkit-inner-spin-button,.moonbag-pct-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.moonbag-vest-warning{display:flex;align-items:center;gap:6px;padding:6px 10px;margin-bottom:8px;background:rgba(245,185,66,0.04);border:1px solid rgba(245,185,66,0.15);border-radius:0;font-family:'IBM Plex Mono',monospace;font-size:7px;color:rgba(245,185,66,0.6);letter-spacing:0.3px}
.moonbag-vest-warning svg{color:rgba(245,185,66,0.5);flex-shrink:0}
.moonbag-pct-unit{font-family:'IBM Plex Mono',monospace;font-size:10px;color:rgba(255,255,255,0.3)}
/* ── Moonbag release schedule ── */
.moonbag-release{display:flex;align-items:center;gap:8px;padding-top:10px;border-top:1px solid rgba(109,232,225,0.06);margin-top:10px}
.moonbag-release-label{font-family:'Orbitron',sans-serif;font-size:7px;letter-spacing:2px;color:rgba(109,232,225,0.4);flex-shrink:0}
.moonbag-release-type{display:flex;gap:4px;flex:1}
.moonbag-rel-btn{font-family:'IBM Plex Mono',monospace;font-size:8px;padding:4px 10px;border:1px solid rgba(109,232,225,0.12);border-radius:0;background:rgba(109,232,225,0.04);color:rgba(255,255,255,0.35);cursor:pointer;transition:all 0.18s;flex:1;text-align:center;letter-spacing:0.3px}
.moonbag-rel-btn:hover{border-color:rgba(109,232,225,0.25);color:rgba(255,255,255,0.6);background:rgba(109,232,225,0.08)}
.moonbag-rel-btn.on{border-color:rgba(79,255,170,0.4);color:rgba(79,255,170,0.9);background:rgba(79,255,170,0.08);box-shadow:0 0 8px rgba(79,255,170,0.1);text-shadow:0 0 6px rgba(79,255,170,0.3)}
.moonbag-once-row,.moonbag-gradual-row{display:flex;align-items:center;gap:8px;padding-top:8px;flex-wrap:wrap}
.moonbag-once-label{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1.5px;color:rgba(255,255,255,0.25);flex-shrink:0;width:100%;margin-bottom:2px}
.moonbag-once-btns{display:flex;gap:4px;flex:1}
.moonbag-once-btn,.moonbag-freq-btn,.moonbag-over-btn{font-family:'IBM Plex Mono',monospace;font-size:9px;padding:4px 8px;border:1px solid rgba(109,232,225,0.12);border-radius:0;background:rgba(109,232,225,0.04);color:rgba(255,255,255,0.35);cursor:pointer;transition:all 0.18s;flex:1;text-align:center}
.moonbag-once-btn:hover,.moonbag-freq-btn:hover,.moonbag-over-btn:hover{border-color:rgba(109,232,225,0.25);color:rgba(255,255,255,0.6)}
.moonbag-once-btn.on,.moonbag-freq-btn.on,.moonbag-over-btn.on{border-color:rgba(79,255,170,0.4);color:rgba(79,255,170,0.9);background:rgba(79,255,170,0.08);box-shadow:0 0 8px rgba(79,255,170,0.1)}
.moonbag-grad-freq,.moonbag-grad-over{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;padding-top:4px}
.moonbag-grad-summary{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(79,255,170,0.5);padding:6px 0 0;width:100%;letter-spacing:0.3px;text-shadow:0 0 4px rgba(79,255,170,0.15)}
.dca-time-body{display:flex;flex-direction:column;gap:8px;padding:0}
.cond-modal-overlay{position:fixed;inset:0;z-index:10000;background:rgba(2,4,12,0.88);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.22s ease}
.cond-modal-overlay.open{opacity:1;pointer-events:all}
.cond-modal{width:460px;max-width:calc(100vw - 32px);max-height:calc(100vh - 80px);background:linear-gradient(165deg,rgba(16,22,42,0.99) 0%,rgba(10,14,28,0.99) 45%,rgba(7,10,20,1) 100%);border:1px solid rgba(109,232,225,0.2);border-top-color:rgba(109,232,225,0.35);border-bottom-color:rgba(109,232,225,0.1);border-radius:0;box-shadow:inset 0 1px 0 rgba(109,232,225,0.12),inset 0 -1px 0 rgba(0,0,0,0.3),0 40px 100px rgba(0,0,0,0.9),0 0 0 1px rgba(0,0,0,0.5);display:flex;flex-direction:column;overflow:hidden;transform:translateY(12px) scale(0.97);transition:transform 0.25s cubic-bezier(.16,1,.3,1);position:relative}
.cond-modal::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;box-shadow:0 0 30px rgba(109,232,225,0.06),0 0 60px rgba(109,232,225,0.03);animation:condModalGlow 5s ease-in-out infinite}
@keyframes condModalGlow{0%,100%{box-shadow:0 0 30px rgba(109,232,225,0.06),0 0 60px rgba(109,232,225,0.03)}50%{box-shadow:0 0 40px rgba(109,232,225,0.1),0 0 80px rgba(109,232,225,0.05)}}
.cond-modal-overlay.open .cond-modal{transform:translateY(0) scale(1)}
.cond-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 14px;border-bottom:1px solid rgba(109,232,225,0.1);flex-shrink:0;position:relative;z-index:1}
.cond-modal-head::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 5%,rgba(109,232,225,0.4) 30%,rgba(109,232,225,0.6) 50%,rgba(109,232,225,0.4) 70%,transparent 95%)}
.cond-modal-title{font-family:'Orbitron',sans-serif;font-size:9px;letter-spacing:3px;color:var(--cyan);text-shadow:0 0 12px rgba(109,232,225,0.5)}
.cond-modal-close{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);color:rgba(255,255,255,0.5);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:all 0.15s}
.cond-modal-close:hover{background:rgba(255,255,255,0.12);color:#fff;border-color:rgba(255,255,255,0.2);box-shadow:0 0 8px rgba(255,255,255,0.06)}
.cond-modal-sentence{padding:12px 18px 10px;font-family:'Space Grotesk',sans-serif;font-size:12px;color:rgba(255,255,255,0.5);line-height:1.6;border-bottom:1px solid rgba(109,232,225,0.06);flex-shrink:0;position:relative;z-index:1}
.cond-modal-sentence b{text-shadow:0 0 6px rgba(109,232,225,0.3)}
.cond-modal-body{flex:1;overflow-y:auto;padding:14px 18px;scrollbar-width:thin;scrollbar-color:rgba(109,232,225,0.12) transparent;position:relative;z-index:1}
.cond-modal-body::-webkit-scrollbar{width:3px}
.cond-modal-body::-webkit-scrollbar-thumb{background:rgba(109,232,225,0.18);border-radius:2px}
.cond-modal-preview{padding:10px 18px;font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(109,232,225,0.6);line-height:1.5;background:linear-gradient(180deg,rgba(109,232,225,0.04) 0%,rgba(109,232,225,0.01) 100%);border-top:1px solid rgba(109,232,225,0.1);flex-shrink:0;min-height:36px;text-shadow:0 0 6px rgba(109,232,225,0.2);position:relative;z-index:1}
.cond-modal-foot{padding:12px 18px 16px;flex-shrink:0;border-top:1px solid rgba(109,232,225,0.1);position:relative;z-index:1}
.cond-modal-add{width:100%;padding:13px;border:1px solid rgba(79,255,170,0.3);border-top-color:rgba(79,255,170,0.4);border-bottom-color:rgba(79,255,170,0.2);border-radius:0;background:linear-gradient(160deg,rgba(79,255,170,0.18) 0%,rgba(109,232,225,0.1) 100%);color:var(--cyan);font-family:'Orbitron',sans-serif;font-size:9px;letter-spacing:2px;font-weight:700;cursor:pointer;transition:all 0.18s;box-shadow:inset 0 1px 0 rgba(79,255,170,0.15),inset 0 -1px 0 rgba(0,0,0,0.2),0 0 12px rgba(79,255,170,0.06);text-shadow:0 0 8px rgba(79,255,170,0.4);position:relative;overflow:hidden}
.cond-modal-add::before{content:'';position:absolute;top:0;left:0;width:50%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(79,255,170,0.08) 50%,transparent 100%);animation:condAddSweep 6s ease-in-out 1s infinite;pointer-events:none}
@keyframes condAddSweep{0%,100%{transform:translateX(-200%)}50%{transform:translateX(300%)}}
.cond-modal-add:hover{background:linear-gradient(160deg,rgba(79,255,170,0.28) 0%,rgba(109,232,225,0.18) 100%);box-shadow:inset 0 1px 0 rgba(79,255,170,0.2),0 0 24px rgba(79,255,170,0.12),0 0 0 1px rgba(79,255,170,0.1);border-color:rgba(79,255,170,0.45);transform:translateY(-1px)}
.cond-modal-body input[type=number],.cond-modal-body input[type=text],.cond-modal-body select{background:rgba(0,0,0,0.4);border:1px solid rgba(109,232,225,0.15);border-top-color:rgba(109,232,225,0.2);border-radius:2px;color:#fff;font-family:'IBM Plex Mono',monospace;font-size:13px;padding:8px 10px;outline:none;transition:all 0.15s;box-shadow:inset 0 1px 3px rgba(0,0,0,0.3)}
.cond-modal-body input:focus,.cond-modal-body select:focus{border-color:rgba(109,232,225,0.4);box-shadow:inset 0 1px 3px rgba(0,0,0,0.3),0 0 0 2px rgba(109,232,225,0.06),0 0 8px rgba(109,232,225,0.08)}
.cond-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cond-label{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:1.5px;color:rgba(109,232,225,0.4);width:90px;flex-shrink:0;text-transform:uppercase}
.cond-btn{padding:7px 12px;border-radius:0;border:1px solid rgba(255,255,255,0.08);border-top-color:rgba(255,255,255,0.12);background:linear-gradient(180deg,rgba(255,255,255,0.05) 0%,rgba(255,255,255,0.02) 100%);font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;color:rgba(255,255,255,0.5);cursor:pointer;transition:all 0.18s;white-space:nowrap;letter-spacing:0.5px;box-shadow:inset 0 1px 0 rgba(255,255,255,0.04),0 1px 3px rgba(0,0,0,0.25)}
.cond-btn.sel{border-color:rgba(109,232,225,0.4);border-top-color:rgba(109,232,225,0.5);background:linear-gradient(180deg,rgba(109,232,225,0.12) 0%,rgba(109,232,225,0.05) 100%);color:var(--cyan);box-shadow:inset 0 1px 0 rgba(109,232,225,0.12),0 0 10px rgba(109,232,225,0.08);text-shadow:0 0 6px rgba(109,232,225,0.3)}
.cond-btn:hover:not(.sel){border-color:rgba(109,232,225,0.3);background:linear-gradient(180deg,rgba(109,232,225,0.08) 0%,rgba(109,232,225,0.03) 100%);color:rgba(255,255,255,0.8)}
.cond-recommend{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;background:rgba(79,255,170,0.08);border:1px solid rgba(79,255,170,0.2);font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.2);margin-top:6px;letter-spacing:0.3px}
/* ── Live price of the selected condition token (Price Level modal) ── */
.cond-live-row{display:flex;align-items:center;gap:8px;margin:2px 0 8px;padding:8px 11px;background:linear-gradient(135deg,rgba(79,255,170,0.07) 0%,rgba(79,255,170,0.02) 100%);border:1px solid rgba(79,255,170,0.18);border-radius:4px;cursor:pointer;transition:all 0.18s;font-family:'IBM Plex Mono',monospace}
.cond-live-row:hover{border-color:rgba(79,255,170,0.45);background:linear-gradient(135deg,rgba(79,255,170,0.12) 0%,rgba(79,255,170,0.04) 100%)}
.cond-live-dot{width:6px;height:6px;border-radius:50%;background:#4FFFAA;box-shadow:0 0 7px rgba(79,255,170,0.9);flex-shrink:0;animation:condLivePulse 2s ease-in-out infinite}
.cond-live-label{font-size:9px;letter-spacing:1px;color:rgba(255,255,255,0.5);text-transform:uppercase}
.cond-live-val{font-size:13px;font-weight:600;color:#4FFFAA;text-shadow:0 0 8px rgba(79,255,170,0.35)}
.cond-live-use{margin-left:auto;font-size:8px;letter-spacing:0.6px;color:rgba(79,255,170,0.65);text-transform:uppercase}
.cond-live-na{display:flex;align-items:center;gap:7px;margin:2px 0 8px;padding:8px 11px;background:rgba(255,255,255,0.02);border:1px dashed rgba(255,255,255,0.1);border-radius:4px;font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:0.4px;color:rgba(255,255,255,0.32)}
@keyframes condLivePulse{0%,100%{opacity:1}50%{opacity:0.4}}
/* Instant-trigger warning — target already satisfied at current price */
.cond-instant-warn{display:flex;align-items:flex-start;gap:6px;margin-top:8px;padding:8px 11px;background:linear-gradient(135deg,rgba(255,180,60,0.08) 0%,rgba(255,180,60,0.03) 100%);border:1px solid rgba(255,180,60,0.28);border-left:2px solid rgba(255,180,60,0.6);border-radius:4px;font-family:'IBM Plex Mono',monospace;font-size:9px;line-height:1.55;letter-spacing:0.3px;color:rgba(255,200,120,0.88)}
.cond-slider{-webkit-appearance:none;width:100%;height:3px;background:rgba(255,255,255,0.1);border-radius:2px;outline:none;cursor:pointer;accent-color:var(--cyan)}

/* ── Polymarket condition ── */
.pm-tag{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1.2px;color:var(--cyan);background:rgba(109,232,225,0.08);border:1px solid rgba(109,232,225,0.2);padding:1px 6px;border-radius:3px;margin-left:6px;vertical-align:middle}
/* Market rows must show the WHOLE question — it is the entire content of the
   choice. They were height-clipped and character-truncated, so every row read
   as a half-sentence. Rows now size to their text, the question wraps, and the
   odds/category column is pinned so it can never squeeze the question out. */
.pm-market-list{display:flex;flex-direction:column;gap:5px;max-height:min(300px,42vh);overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(109,232,225,0.15) transparent;padding:2px 2px 2px 0}
.pm-market-list::-webkit-scrollbar{width:3px}
.pm-market-list::-webkit-scrollbar-thumb{background:rgba(109,232,225,0.15);border-radius:2px}
.pm-market{position:relative;padding:9px 11px;border:1px solid rgba(255,255,255,0.06);border-radius:0;background:rgba(255,255,255,0.02);cursor:pointer;transition:all 0.15s;height:auto;min-height:0;flex-shrink:0}
.pm-market:hover{border-color:rgba(109,232,225,0.2);background:rgba(109,232,225,0.03)}
.pm-market.sel{border-color:rgba(109,232,225,0.4);background:rgba(109,232,225,0.06);box-shadow:inset 0 0 0 1px rgba(109,232,225,0.08),0 0 12px rgba(109,232,225,0.06)}
.pm-market-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.pm-market-q{font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:500;color:rgba(255,255,255,0.85);
  line-height:1.4;flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere;
  /* Two lines is enough for any real market question and keeps rows scannable. */
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pm-market.sel .pm-market-q{color:#fff}
.pm-market-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0;min-width:62px}
.pm-odds{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:0.3px}
.pm-odds-yes{color:var(--green)}
.pm-vol{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.3);letter-spacing:0.5px}
/* ── Macro-category chip on each Polymarket row ──
   The list is curated to market-moving themes; naming the theme is what makes
   that visible to the user instead of looking like an arbitrary feed. */
.pm-cat{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1px;padding:1px 5px;border-radius:3px;
  color:rgba(255,255,255,0.55);background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.09);white-space:nowrap}
.pm-cat-crypto{color:rgba(109,232,225,0.85);background:rgba(109,232,225,0.07);border-color:rgba(109,232,225,0.22)}
.pm-cat-monetary{color:rgba(255,215,0,0.85);background:rgba(255,215,0,0.06);border-color:rgba(255,215,0,0.22)}
.pm-cat-macro{color:rgba(79,255,170,0.8);background:rgba(79,255,170,0.06);border-color:rgba(79,255,170,0.2)}
.pm-cat-elections{color:rgba(157,127,234,0.85);background:rgba(157,127,234,0.07);border-color:rgba(157,127,234,0.22)}
.pm-cat-geopolitics{color:rgba(255,140,90,0.85);background:rgba(255,140,90,0.06);border-color:rgba(255,140,90,0.2)}
.pm-cat-regulation{color:rgba(120,180,255,0.85);background:rgba(120,180,255,0.06);border-color:rgba(120,180,255,0.2)}
.pm-cat-equities{color:rgba(200,215,235,0.8);background:rgba(200,215,235,0.05);border-color:rgba(200,215,235,0.16)}
.pm-cat-commodities{color:rgba(214,168,110,0.85);background:rgba(214,168,110,0.06);border-color:rgba(214,168,110,0.2)}
.pm-curation-note{font-family:'IBM Plex Mono',monospace;font-size:8px;line-height:1.5;color:rgba(255,255,255,0.32);
  letter-spacing:0.3px;margin:2px 0 8px}
.pm-market-bar{height:2px;background:rgba(255,255,255,0.06);margin-top:6px;border-radius:1px;overflow:hidden}
.pm-market-bar-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--green));border-radius:1px;transition:width 0.4s cubic-bezier(.16,1,.3,1)}
.pm-market.sel .pm-market-bar-fill{box-shadow:0 0 6px rgba(109,232,225,0.3)}
.pm-threshold-row{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}
.pm-threshold-display{font-family:'Orbitron',sans-serif;font-size:28px;font-weight:700;color:var(--cyan);letter-spacing:1px;text-shadow:0 0 20px rgba(109,232,225,0.3)}
.pm-cent{font-size:16px;opacity:0.6;margin-left:1px}
.pm-threshold-pct{font-family:'IBM Plex Mono',monospace;font-size:10px;color:rgba(255,255,255,0.3);letter-spacing:0.5px}
.pm-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:rgba(255,255,255,0.3);letter-spacing:0.5px}
.pm-spinner{width:14px;height:14px;border:2px solid rgba(109,232,225,0.15);border-top-color:var(--cyan);border-radius:50%;animation:pmSpin 0.8s linear infinite}
@keyframes pmSpin{to{transform:rotate(360deg)}}
.pm-mode-toggle{display:flex;gap:6px}
.pm-mode-btn{flex:1;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid rgba(255,255,255,0.08);border-radius:0;background:rgba(255,255,255,0.02);cursor:pointer;transition:all 0.18s;text-align:left}
.pm-mode-btn:hover{border-color:rgba(109,232,225,0.2);background:rgba(109,232,225,0.03)}
.pm-mode-btn.sel{border-color:rgba(109,232,225,0.45);background:rgba(109,232,225,0.07);box-shadow:inset 0 0 0 1px rgba(109,232,225,0.08),0 0 16px rgba(109,232,225,0.06)}
.pm-mode-icon{font-size:16px;flex-shrink:0;width:22px;text-align:center;opacity:0.5;transition:opacity 0.15s}
.pm-mode-btn.sel .pm-mode-icon{opacity:1;filter:drop-shadow(0 0 4px rgba(109,232,225,0.5))}
.pm-mode-text{display:flex;flex-direction:column;gap:1px}
.pm-mode-name{font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:700;letter-spacing:1.5px;color:rgba(255,255,255,0.5);transition:color 0.15s}
.pm-mode-btn.sel .pm-mode-name{color:var(--cyan)}
.pm-mode-btn.pm-mode-soon{opacity:0.5;cursor:not-allowed}
.pm-mode-btn.pm-mode-soon:hover{border-color:rgba(255,255,255,0.08);background:rgba(255,255,255,0.02)}
.pm-soon-tag{font-size:8px;letter-spacing:0.5px;color:rgba(255,215,0,0.9);border:1px solid rgba(255,215,0,0.4);padding:1px 3px;margin-left:4px;vertical-align:middle;font-family:'IBM Plex Mono',monospace}
.pm-mode-desc{font-family:'Space Grotesk',sans-serif;font-size:10px;color:rgba(255,255,255,0.25)}
.ci-polymarket .ci-dot{box-shadow:0 0 6px rgba(109,232,225,0.4)}

.slip-dropdown-wrap{position:relative;padding:0 14px 6px}
.slip-pill{display:flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:1px;color:rgba(255,255,255,0.4);background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:5px;padding:4px 9px;cursor:pointer;transition:all 0.15s}
.slip-pill:hover{border-color:rgba(109,232,225,0.25);color:rgba(109,232,225,0.8)}
.slip-pill.open{border-color:rgba(109,232,225,0.35);color:rgba(109,232,225,0.9);background:rgba(109,232,225,0.04)}
.slip-pill-label{opacity:0.6}
.slip-pill-val{color:rgba(109,232,225,0.9);font-weight:600}
.slip-pill-caret{font-size:8px;opacity:0.5;transition:transform 0.15s}
.slip-pill.open .slip-pill-caret{transform:rotate(180deg)}
.slip-panel{position:static;margin:4px 0 2px;background:linear-gradient(165deg,rgba(14,18,36,0.7) 0%,rgba(8,12,24,0.6) 50%,rgba(6,8,18,0.7) 100%);border:1px solid rgba(109,232,225,0.12);border-top-color:rgba(109,232,225,0.22);border-bottom-color:rgba(109,232,225,0.06);border-radius:0;box-shadow:inset 0 1px 0 rgba(109,232,225,0.06),inset 0 -1px 0 rgba(0,0,0,0.15),0 4px 12px rgba(0,0,0,0.2)}
.slip-panel-inner{padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.slip-panel-row{display:flex;gap:5px}
.slip-opt{flex:1;font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:0.5px;padding:4px 0;border-radius:4px;cursor:pointer;transition:all 0.12s;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);color:rgba(255,255,255,0.4)}
.slip-opt:hover{border-color:rgba(109,232,225,0.3);color:rgba(109,232,225,0.8)}
.slip-opt.on{background:rgba(109,232,225,0.1);border-color:rgba(109,232,225,0.4);color:rgba(109,232,225,1)}
.slip-custom-wrap-new{display:flex;align-items:center;gap:6px}
.slip-custom-field-new{flex:1;display:flex;align-items:center;gap:4px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:4px;padding:4px 8px}
.slip-custom-field-new:focus-within{border-color:rgba(109,232,225,0.35)}
.slip-desc{font-family:'IBM Plex Mono',monospace;font-size:7px;line-height:1.6;color:rgba(255,255,255,0.22)}
.rib-text{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,215,0,0.65);flex:1;letter-spacing:0.5px}
.rib-text strong{color:rgba(255,215,0,0.9)}
.rib-cta{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1.5px;color:rgba(255,215,0,0.5);flex-shrink:0}
.receipt-strip{margin-top:0;border:1px solid rgba(109,232,225,0.08);border-top-color:rgba(109,232,225,0.15);border-bottom-color:rgba(109,232,225,0.04);border-radius:0;background:linear-gradient(165deg,rgba(12,16,32,0.5) 0%,rgba(6,8,18,0.4) 50%,rgba(4,6,14,0.5) 100%);overflow:hidden;margin-bottom:6px;box-shadow:inset 0 1px 0 rgba(109,232,225,0.05),0 4px 12px rgba(0,0,0,0.2);position:relative}
.receipt-header{display:flex;align-items:center;justify-content:space-between;padding:7px 11px;cursor:pointer;gap:8px;transition:background 0.15s}
.receipt-header:hover{background:rgba(255,255,255,0.03)}
.receipt-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0;overflow:hidden}
.receipt-protocol-badge{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;background:rgba(109,232,225,0.07);border:1px solid rgba(109,232,225,0.18);border-radius:5px;padding:2px 6px}
.receipt-chain-tag{font-family:'IBM Plex Mono',monospace;font-size:7px;font-weight:700;color:rgba(153,69,255,0.8);background:rgba(153,69,255,0.12);border:1px solid rgba(153,69,255,0.2);padding:1px 4px;border-radius:3px}
.receipt-live-dot{width:5px;height:5px;border-radius:50%;background:rgba(79,255,170,0.9);box-shadow:0 0 5px rgba(79,255,170,0.6);flex-shrink:0;animation:pulse 2s ease-in-out infinite}
.receipt-route{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(255,255,255,0.3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.receipt-impact{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(79,255,170,0.6);flex-shrink:0}
.receipt-caret{font-size:14px;color:rgba(255,255,255,0.18);transition:transform 0.2s;line-height:1;flex-shrink:0}
.receipt-caret.open{transform:rotate(90deg)}
.receipt-expanded{padding:0 11px 9px;border-top:1px solid rgba(255,255,255,0.05)}
.receipt-rows{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.receipt-row{display:flex;justify-content:space-between;align-items:center;font-family:'Space Grotesk',sans-serif;font-size:11px;padding:2px 0}
@media(max-width:960px){.s2-conv-prompt{display:none}}
/* ── Tablet landscape (1024px) ── */
@media(max-width:1024px){
  .swap-card{max-width:420px}
  .dex-center{max-width:460px}
}
.exec-preview{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:0;background:rgba(79,255,170,0.04);border:1px solid rgba(79,255,170,0.10);margin-bottom:4px}
.ep-item{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1}
.ep-val.green{color:var(--green)}
.ep-val.cyan{color:var(--cyan)}
/* Watch's own strip: purple, matching the mode's glow. */
.ep-val.purple{color:rgba(180,150,255,0.92)}
.watch-preview .ep-lbl{color:rgba(157,127,234,0.5)}

/* Mobile Pro toggle — inside swap card, hidden on desktop */
.mob-pro-toggle-row{display:none}

/* ═══ MOBILE: 768px and below ═══ */
@media(max-width:768px){
  .mob-pro-toggle-row{display:flex;justify-content:flex-end;padding:8px 14px 0}
  .mob-pro-pill{display:flex;align-items:center;gap:5px;padding:3px 10px;background:rgba(109,232,225,0.04);border:1px solid rgba(109,232,225,0.15);cursor:pointer;transition:all 0.18s;font-family:'IBM Plex Mono',monospace}
  .mob-pro-pill-label{font-size:7px;letter-spacing:2px;color:rgba(109,232,225,0.55);font-weight:600}
  .mob-pro-pill-dot{width:5px;height:5px;border-radius:50%;background:rgba(109,232,225,0.3);transition:all 0.2s}
  .mob-pro-pill.active .mob-pro-pill-dot{background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
  .mob-pro-pill.active .mob-pro-pill-label{color:var(--cyan)}
  .mob-pro-pill.active{border-color:rgba(109,232,225,0.35)}
  #s2.on{display:flex !important;flex-direction:column !important;overflow:hidden !important}
  #dex-main{position:relative !important;top:auto !important;bottom:auto !important;left:auto !important;right:auto !important;flex:1 1 0% !important;min-height:0 !important;overflow-y:auto !important;overflow-x:hidden !important;-webkit-overflow-scrolling:touch;padding:12px 0 !important;z-index:2 !important}
  #dex-center{position:relative !important;transform:none !important;top:0 !important;left:auto !important;right:auto !important;width:calc(100% - 24px) !important;margin:0 auto !important;height:auto !important}
  .swap-wrap,.swap-wrap.mode-market,.swap-wrap.mode-limit,.swap-wrap.mode-dca,.swap-wrap.mode-watch{width:100% !important;height:auto !important;max-height:none !important;overflow:visible !important}
  .swap-card,.swap-card.mode-market,.swap-card.mode-limit,.swap-card.mode-dca,.swap-card.mode-watch{height:auto !important;max-height:none !important;overflow:visible !important}
  /* Force card visible on mobile — override s2Materialise animation that gates opacity behind JS */
  #s2.on .swap-card,#s2.on.s2-live .swap-card{opacity:1 !important;animation:none !important;transform:none !important;filter:none !important;visibility:visible !important;display:flex !important;flex-direction:column !important}
  #s2.on .cond-panel{opacity:1 !important;animation:none !important}
  .sc-inner{max-height:none !important;overflow:visible !important;-webkit-mask-image:none !important;mask-image:none !important;padding-bottom:8px !important}
  /* Neutralise all desktop card-animator rules: height, animation, transform */
  .card-animator,.card-animator.entering,.card-animator.settled,.swap-wrap.mode-market .card-animator,.swap-wrap.mode-limit .card-animator,.swap-wrap.mode-dca .card-animator,.swap-wrap.mode-watch .card-animator{transform:none !important;will-change:auto !important;height:auto !important;min-height:0 !important;opacity:1 !important;animation:none !important}
  /* Execute button: fixed above footer so it's ALWAYS visible while scrolling */
  #s2 .exec-wrap{
    position:fixed !important;
    bottom:48px !important; /* above dex-foot */
    left:0 !important;right:0 !important;
    z-index:200 !important;
    background:linear-gradient(180deg, rgba(6,8,18,0) 0%, rgba(6,8,18,0.85) 40%, rgba(6,8,18,0.95) 100%) !important;
    padding:8px 6px max(8px, env(safe-area-inset-bottom)) !important;
    margin:0 !important;
  }
  /* Reserve space at bottom of scroll content so exec-wrap doesn't cover last items */
  #dex-main{padding-bottom:130px !important}
  /* Footer: static in flex column instead of absolute (S2 only) */
  #s2 .dex-foot{position:static !important;flex-shrink:0 !important}
  /* Footer layout */
  .dex-foot{padding:0 12px !important;gap:0 !important}
  .dex-foot::before{display:none !important}
  #pro-toggle-wrap{display:none !important}
  .dex-foot .fi-sep{display:none !important}
  /* Trust badge crossfade: stack badges, show one at a time */
  .dex-foot-trust{position:relative !important;min-width:0 !important;height:20px !important;flex:1 !important}
  .dex-foot-trust .df-fi{position:absolute !important;left:0 !important;top:50% !important;transform:translateY(-50%) !important;opacity:0 !important;transition:opacity 0.6s ease !important;pointer-events:none !important;padding:0 !important}
  .dex-foot-trust .df-fi.trust-active{opacity:1 !important;pointer-events:auto !important}

  /* Trust items: match S5 terminal mobile style */
  .dex-foot-trust .df-fi{white-space:nowrap !important;font-family:'IBM Plex Mono',monospace !important;font-size:8px !important;color:rgba(255,255,255,0.35) !important;gap:4px !important}

  /* Nav dots: tighter spacing on mobile, pushed right */
  .foot-dots{gap:4px !important;margin-left:auto !important;flex-shrink:0 !important}
  .foot-nd{width:4px !important;height:4px !important}
  .foot-nd.on{width:16px !important;height:4px !important}

  /* Settings & mute: inline in footer instead of floating */
  .foot-micro-controls{position:static !important;bottom:auto !important;right:auto !important;display:flex !important;align-items:center !important;gap:4px !important;flex-shrink:0 !important;z-index:auto !important}
  .foot-micro-btn{width:28px !important;height:28px !important;min-width:28px !important;background:rgba(255,255,255,0.04) !important;backdrop-filter:none !important;border-color:rgba(255,255,255,0.08) !important}

  /* ─── CONDITION STACK: full-screen bottom sheet ─── */

  /* Never expand dex-center gap on mobile */
  .dex-center.expanded{gap:0 !important}

  /* Backdrop */
  .cond-sheet-backdrop{
    display:block !important;
    position:fixed;inset:0;z-index:8999;
    background:rgba(2,4,10,0);
    backdrop-filter:blur(0px);
    pointer-events:none;opacity:0;
    transition:background 0.35s ease, backdrop-filter 0.35s ease, opacity 0.35s ease;
  }
  .cond-sheet-backdrop.vis{
    background:rgba(2,4,10,0.97);
    backdrop-filter:blur(12px);
    pointer-events:all;opacity:1;
  }
  /* Snap-point backdrop intensity: peek shows more chart, full hides it */
  .cond-sheet-backdrop.snap-peek{
    background:rgba(2,4,10,0.65) !important;
    backdrop-filter:blur(4px) !important;
  }
  .cond-sheet-backdrop.snap-half{
    background:rgba(2,4,10,0.85) !important;
    backdrop-filter:blur(8px) !important;
  }

  /* Override cond-panel: bottom sheet instead of side panel */
  .cond-panel{
    position:fixed !important;
    bottom:0 !important;left:0 !important;right:0 !important;
    width:100% !important;
    height:0 !important;
    max-height:88vh !important;
    z-index:9000 !important;
    border-radius:0 !important;
    border:none !important;
    border-top:1px solid rgba(109,232,225,0.15) !important;
    background:linear-gradient(180deg,rgb(10,14,26) 0%,rgb(6,8,18) 100%) !important;
    box-shadow:0 -12px 60px rgba(0,0,0,0.8),0 -1px 0 rgba(109,232,225,0.1) !important;
    transform:translateY(100%) !important;
    transition:transform 0.4s cubic-bezier(.22,1,.36,1), height 0.4s cubic-bezier(.22,1,.36,1), opacity 0.3s ease !important;
    overflow:hidden !important;
    flex-direction:column !important;
    padding:0 !important;
    gap:0 !important;
    align-self:auto !important;
  }
  .cond-panel.vis{
    width:100% !important;
    height:88vh !important;
    transform:translateY(0) !important;
    opacity:1 !important;
    pointer-events:all !important;
    display:flex !important;
    overflow:hidden !important;
    padding:0 !important;
    gap:0 !important;
  }
  /* ─── Snap-point positions ─── */
  .cond-panel.vis.snap-peek{
    height:22vh !important;
    overflow:hidden !important;
  }
  .cond-panel.vis.snap-half{
    height:52vh !important;
  }
  .cond-panel.vis.snap-full{
    height:88vh !important;
  }
  /* In peek mode, hide the condition picker and receipt to save space */
  .cond-panel.vis.snap-peek .cond-picker{display:none !important}
  .cond-panel.vis.snap-peek .sheet-bottom-receipt{display:none !important}
  .cond-panel.vis.snap-peek .tenon-monitoring{display:none !important}
  /* In peek mode, show compact summary */
  .cond-panel.vis.snap-peek .active-stack{max-height:8vh !important;overflow:hidden !important}
  /* Snap indicator dots */
  .snap-dots{
    display:none !important;
  }
  .cond-panel.vis .snap-dots{
    display:flex !important;
    justify-content:center;
    gap:6px;
    padding:4px 0 2px;
    flex-shrink:0;
  }
  .snap-dot{
    width:4px;height:4px;border-radius:50%;
    background:rgba(109,232,225,0.15);
    transition:all 0.25s ease;
  }
  .snap-dot.active{
    background:rgba(109,232,225,0.7);
    box-shadow:0 0 6px rgba(109,232,225,0.3);
    width:12px;border-radius:2px;
  }
  /* Swipe hint text below handle */
  .snap-hint{
    display:none !important;
  }
  .cond-panel.vis.snap-peek .snap-hint,
  .cond-panel.vis.snap-half .snap-hint{
    display:block !important;
    text-align:center;
    font-family:'IBM Plex Mono',monospace;
    font-size:7px;letter-spacing:1.5px;
    color:rgba(109,232,225,0.25);
    padding:0 0 2px;
    animation:snapHintPulse 2s ease-in-out infinite;
  }
  @keyframes snapHintPulse{
    0%,100%{opacity:0.4}
    50%{opacity:0.8}
  }
  /* ─── Sheet sparkline: mini chart in header ─── */
  .sheet-sparkline{
    display:none !important;
  }
  .cond-panel.vis.snap-full .sheet-sparkline{
    display:flex !important;
    align-items:center;
    gap:8px;
    padding:4px 16px 6px;
    flex-shrink:0;
    border-bottom:1px solid rgba(109,232,225,0.06);
    background:rgba(0,0,0,0.15);
  }
  .sheet-sparkline canvas{
    flex:1;height:28px;
    opacity:0.8;
  }
  .sheet-spark-price{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;font-weight:600;
    color:rgba(255,255,255,0.7);
    white-space:nowrap;flex-shrink:0;
  }

  /* Drag handle bar at top */
  .cond-sheet-handle{
    display:flex !important;
    flex-direction:column;
    align-items:center;
    padding:8px 0 4px;
    flex-shrink:0;
    cursor:grab;
    touch-action:none;
  }
  .cond-sheet-handle::before{
    content:'';
    width:36px;height:4px;
    background:rgba(109,232,225,0.25);
    border-radius:2px;
    transition:background 0.2s;
  }
  .cond-sheet-handle:active::before{
    background:rgba(109,232,225,0.5);
  }

  /* Shimmer line below handle */
  .cond-panel.vis::before{
    content:'' !important;
    position:absolute !important;
    top:0;left:0;right:0;height:1px !important;
    background:linear-gradient(90deg,transparent 5%,rgba(109,232,225,0.5) 30%,rgba(79,255,170,0.6) 50%,rgba(109,232,225,0.5) 70%,transparent 95%) !important;
    z-index:1;
    pointer-events:none;
    animation:sheetShimmer 3s ease-in-out infinite !important;
  }
  @keyframes sheetShimmer{
    0%,100%{opacity:0.6}
    50%{opacity:1}
  }

  /* Header area inside the sheet — compact */
  .cond-panel.vis .cp-head{
    padding:2px 16px 8px !important;
    position:relative;
    flex-shrink:0;
    border-bottom:1px solid rgba(109,232,225,0.08);
  }
  .cond-panel.vis .cp-head::before{display:none !important}
  .cond-panel.vis .cp-head-title{font-size:9px !important;letter-spacing:3px !important}
  .cond-panel.vis .cp-head-sub{font-size:8px !important;margin-bottom:4px !important}
  .cp-done-btn{display:inline-block !important;min-height:36px !important;padding:8px 20px !important;font-size:10px !important}
  .cp-done-btn:active{transform:scale(0.95)}
  .cp-close-btn{display:inline-flex !important;min-height:36px !important;min-width:36px !important;width:36px !important;height:36px !important}
  .cp-close-btn:active{transform:scale(0.95)}

  /* Logic row: horizontal scroll, compact */
  .cond-panel.vis .cp-logics{
    overflow-x:auto;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    flex-wrap:nowrap;
    margin-bottom:2px;
  }
  .cond-panel.vis .cp-logics::-webkit-scrollbar{display:none}
  .cond-panel.vis .cp-thresh-row{margin-top:4px !important;padding:5px 10px !important}

  /* Active stack section — compact */
  .cond-panel.vis .active-stack{
    padding:6px 16px !important;
    flex-shrink:0;
    max-height:28vh;
    overflow-y:auto;
    scrollbar-width:none;
  }
  .cond-panel.vis .active-stack::-webkit-scrollbar{display:none}

  /* Monitoring pulse bar */
  .cond-panel.vis .tenon-monitoring{
    margin:0 16px;
    flex-shrink:0;
  }

  /* Condition picker: fills remaining space, cond-list scrolls */
  .cond-panel.vis .cond-picker{
    flex:1 !important;
    min-height:0 !important;
    overflow:hidden !important;
    border:none !important;
    border-top:1px solid rgba(109,232,225,0.06) !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    margin:0 !important;
    display:flex !important;
    flex-direction:column !important;
  }
  .cond-panel.vis .cond-picker-head{
    padding:8px 16px 6px !important;
    flex-shrink:0;
  }
  .cond-panel.vis .cond-picker-body{
    padding:0 4px !important;
    flex-shrink:0 !important;
    overflow:visible !important;
  }
  /* The actual condition list: scrollable, takes remaining space */
  .cond-panel.vis .cond-list{
    flex:1 !important;
    min-height:0 !important;
    overflow-y:auto !important;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    padding-bottom:env(safe-area-inset-bottom, 16px) !important;
    /* Fade at bottom so user knows there's more */
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 90%,transparent 100%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 90%,transparent 100%);
  }
  .cond-panel.vis .cond-list::-webkit-scrollbar{display:none}

  /* Category pills: horizontal scroll */
  .cond-panel.vis .cond-cat-pills{
    display:flex !important;
    overflow-x:auto !important;
    scrollbar-width:none !important;
    -webkit-overflow-scrolling:touch;
    padding:6px 16px !important;
    gap:6px !important;
    flex-shrink:0;
    flex-wrap:nowrap !important;
  }
  .cond-panel.vis .cond-cat-pills::-webkit-scrollbar{display:none}
  .cond-panel.vis .cond-cat-pills .ccp{
    flex-shrink:0 !important;
    white-space:nowrap !important;
  }

  /* Condition items: full-width, tappable, compact */
  .cond-panel.vis .ci{
    margin:0 12px !important;
    padding:9px 14px !important;
    border-radius:0 !important;
    border-bottom:1px solid rgba(109,232,225,0.04) !important;
  }
  .cond-panel.vis .ci:active{
    background:rgba(109,232,225,0.06) !important;
  }
  .cond-panel.vis .ci-name{font-size:12px !important}
  .cond-panel.vis .ci-desc{font-size:9px !important;margin-top:1px !important}

  /* Active condition blocks: tighter on mobile */
  .cond-panel.vis .acb{
    padding:8px 12px !important;
    gap:8px !important;
  }
  .cond-panel.vis .acb-edit{
    padding:4px 10px !important;
    font-size:9px !important;
  }


  /* Category label headers in the picker */
  .cond-panel.vis .cond-cat-label{
    padding:10px 16px 4px !important;
    margin:0 !important;
  }

  /* First nudge — compact */
  .cond-panel.vis .cond-first-nudge{
    margin:0 12px 4px !important;
    padding:6px 10px !important;
  }

  /* ─── Bottom trade receipt in sheet (mirrors S2 trade-receipt) ─── */
  .cond-panel.vis .sheet-bottom-receipt{
    display:block !important;
    flex-shrink:0;
    position:relative;
    overflow:hidden;
    padding:0 0 12px;
    margin-top:auto;
    border-top:1px solid rgba(109,232,225,0.12);
    background:linear-gradient(180deg,rgba(6,8,18,0.95),rgba(6,8,18,0.98));
  }
  .sbr-scan{
    position:absolute;top:0;left:0;right:0;height:100%;
    pointer-events:none;
    background:linear-gradient(180deg,transparent 0%,rgba(79,255,170,0.02) 50%,transparent 100%);
    background-size:100% 40px;
    animation:trScan 6s linear infinite;
    opacity:0.5;
  }
  .sbr-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:10px 12px 6px;
  }
  .sbr-title{
    font-family:'Orbitron',sans-serif;
    font-size:7px;font-weight:800;
    letter-spacing:3px;
    color:rgba(79,255,170,0.7);
    text-shadow:0 0 12px rgba(79,255,170,0.2);
  }
  .sbr-logic{
    font-family:'IBM Plex Mono',monospace;
    font-size:7px;letter-spacing:1.5px;
    color:rgba(109,232,225,0.6);
    padding:2px 7px;
    border:1px solid rgba(109,232,225,0.18);
    background:rgba(109,232,225,0.06);
  }
  .sbr-summary{
    padding:0 12px 8px;text-align:center;
  }
  .sbr-action{
    font-family:'Orbitron',sans-serif;
    font-size:12px;font-weight:700;
    color:rgba(255,255,255,0.92);
    letter-spacing:1px;line-height:1.3;
    text-shadow:0 1px 8px rgba(0,0,0,0.5);
  }
  .sbr-arrow{
    color:rgba(79,255,170,0.8);
    margin:0 5px;font-size:14px;
    text-shadow:0 0 10px rgba(79,255,170,0.3);
  }
  .sbr-market{
    font-family:'IBM Plex Mono',monospace;
    font-size:7px;color:rgba(255,255,255,0.18);
    margin-top:3px;letter-spacing:0.5px;
  }
  .sbr-divider{
    height:1px;
    background:linear-gradient(90deg,transparent 5%,rgba(79,255,170,0.06) 30%,rgba(255,255,255,0.04) 50%,rgba(79,255,170,0.06) 70%,transparent 95%);
    margin:0 12px;
  }
  .sbr-conditions-label{
    font-family:'IBM Plex Mono',monospace;
    font-size:7px;letter-spacing:2px;
    color:rgba(109,232,225,0.4);
    padding:6px 12px 4px;font-weight:700;
  }
  .sbr-conditions{
    padding:0 12px 6px;
    display:flex;flex-direction:column;gap:3px;
  }
  .sbr-cond-row{
    display:flex;align-items:center;gap:7px;
    font-family:'IBM Plex Mono',monospace;
    font-size:9px;color:rgba(255,255,255,0.55);
    padding:4px 8px;
    background:linear-gradient(90deg,rgba(109,232,225,0.03),rgba(109,232,225,0.01));
    border-left:2px solid rgba(109,232,225,0.2);
  }
  .sbr-cond-idx{
    color:rgba(109,232,225,0.35);
    font-size:7px;font-weight:700;
    min-width:12px;
  }
  .sbr-cond-name{
    color:rgba(255,255,255,0.65);
    white-space:nowrap;
  }
  .sbr-cond-val{
    margin-left:auto;
    color:rgba(109,232,225,0.7);
    white-space:nowrap;
  }
  .sbr-rows{
    display:flex;flex-direction:column;gap:3px;
    padding:6px 12px 0;
    background:linear-gradient(180deg,transparent,rgba(79,255,170,0.015));
  }
  .sbr-row{
    display:flex;justify-content:space-between;align-items:center;
    font-family:'IBM Plex Mono',monospace;
    font-size:10px;line-height:1.5;
  }
  .sbr-k{
    color:rgba(255,255,255,0.35);
    letter-spacing:0.3px;
  }
  .sbr-v{
    color:rgba(255,255,255,0.75);
    text-align:right;
  }
  .sbr-live{
    display:inline-flex;align-items:center;gap:5px;
    color:var(--green);
  }
  .sbr-live-dot{
    width:5px;height:5px;border-radius:50%;
    background:var(--green);
    box-shadow:0 0 6px var(--green);
    animation:pulseDot 2s ease-in-out infinite;
  }
  @keyframes pulseDot{
    0%,100%{opacity:1}
    50%{opacity:0.4}
  }
  .sbr-deploy-sub{
    margin-top:10px;text-align:center;
    font-family:'IBM Plex Mono',monospace;
    font-size:8.5px;color:rgba(255,255,255,0.2);
    letter-spacing:0.5px;
  }
  .sbr-done-btn{
    display:block;
    width:calc(100% - 24px);
    margin:12px auto 0;
    padding:12px 0;
    font-family:'Orbitron',sans-serif;
    font-size:11px;font-weight:700;
    letter-spacing:3px;
    color:var(--base);
    background:linear-gradient(135deg,var(--cyan),var(--green));
    border:none;
    border-radius:4px;
    cursor:pointer;
    text-shadow:0 1px 2px rgba(0,0,0,0.3);
    box-shadow:0 0 20px rgba(109,232,225,0.15),inset 0 1px 0 rgba(255,255,255,0.15);
    transition:opacity 0.2s,box-shadow 0.2s;
    -webkit-tap-highlight-color:transparent;
  }
  .sbr-done-btn:active{
    opacity:0.85;
    box-shadow:0 0 30px rgba(109,232,225,0.25),inset 0 1px 0 rgba(255,255,255,0.15);
  }

  /* ─── Collapsible receipt ─── */
  .sbr-header{
    cursor:pointer !important;
    -webkit-tap-highlight-color:transparent;
  }
  .sbr-chevron{
    color:rgba(109,232,225,0.4);
    transition:transform 0.25s ease;
    margin-left:auto;
    flex-shrink:0;
  }
  .sheet-bottom-receipt.collapsed .sbr-chevron{
    transform:rotate(180deg);
  }
  .sbr-body{
    overflow:hidden;
    transition:max-height 0.3s cubic-bezier(.22,1,.36,1),opacity 0.2s ease;
    max-height:600px;
    opacity:1;
  }
  .sheet-bottom-receipt.collapsed .sbr-body{
    max-height:0 !important;
    opacity:0 !important;
    padding:0 !important;
  }

  /* ─── Tooltip mobile overrides ─── */

  /* Swap-type tab tooltip: redundant on mobile (tabs show sub-labels) */
  .st-tooltip,
  .st-tooltip.show{
    display:none !important;
  }

  /* Active condition bubble tooltip: no hover on touch — disable */
  .acb:hover .acb-tooltip{
    opacity:0 !important;
  }

  /* Condition toggle hint: allow text wrap, constrain width */
  .cond-toggle-btn[data-hint]::after{
    white-space:normal !important;
    max-width:200px !important;
    text-align:center;
    left:50% !important;
    transform:translateX(-50%) !important;
  }

  /* ─── Touch target fixes (44px minimum) ─── */

  /* Swap type tabs */
  .st{
    padding:12px 6px 10px !important;
    min-height:44px !important;
    box-sizing:border-box !important;
  }

  /* Token selectors */
  .tok-sel{
    min-height:44px !important;
    padding:8px 10px 8px 8px !important;
  }

  /* Slippage pill */
  .slip-pill{
    min-height:36px !important;
    padding:8px 12px !important;
  }

  /* Slippage options */
  .slip-opt{
    min-height:36px !important;
    padding:8px 0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }

  /* Protection percent buttons */
  .prot-pct{
    min-height:36px !important;
    padding:8px 0 !important;
  }

  /* Condition logic buttons (ALL MET / N OF N / ANY ONE) */
  .cpl{
    padding:8px 12px !important;
    min-height:36px !important;
  }

  /* DCA mode pills */
  .dca-pill-btn{
    padding:10px 10px !important;
    min-height:36px !important;
  }

  /* Nav tabs */
  .dt{
    min-height:40px !important;
    padding:10px 14px !important;
    display:inline-flex !important;
    align-items:center !important;
  }

  /* Protection caret toggles — bigger tap target */
  .prot-caret{
    min-width:32px !important;
    min-height:32px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
  }

  /* Condition category pills */
  .ccp{
    min-height:34px !important;
    padding:8px 14px !important;
    display:inline-flex !important;
    align-items:center !important;
  }

  /* ─── Text legibility: bump small actionable text ─── */
  .st-sub{font-size:9px !important}
  .exec-sub{font-size:9px !important}
  .acb-edit{font-size:10px !important;padding:6px 12px !important;min-height:30px !important}
  .leg1-d-item{font-size:9px !important}
  .leg1-d-sep{font-size:9px !important}
  .leg1-locked-edit{font-size:9px !important;padding:4px 10px !important;min-height:28px !important}
  .prot-label{font-size:10px !important}
  .prot-hint{font-size:9px !important}

  /* ─── Active/tap feedback for touch ─── */
  .st:active{transform:scale(0.97) !important;transition:transform 0.08s !important}
  .cpl:active{transform:scale(0.95) !important}
  .slip-opt:active{transform:scale(0.95) !important}
  .slip-pill:active{transform:scale(0.97) !important}
  .prot-pct:active{transform:scale(0.95) !important}
  .ccp:active{transform:scale(0.95) !important}
  .dca-pill-btn:active{transform:scale(0.95) !important}
  .prot-header:active{background:rgba(255,255,255,0.05) !important}
  .tok-sel:active{transform:scale(0.97) !important}

  /* ─── Overscroll containment ─── */
  .cond-panel.vis .cond-list{
    overscroll-behavior:contain !important;
  }
  .cond-panel.vis .active-stack{
    overscroll-behavior:contain !important;
  }
  .cond-panel.vis .cp-logics{
    overscroll-behavior-x:contain;
  }

  /* ─── Category pills scroll indicator (gradient fade at edges) ─── */
  .cond-panel.vis .cond-cat-pills{
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 16px,#000 calc(100% - 24px),transparent 100%) !important;
    mask-image:linear-gradient(to right,transparent 0,#000 16px,#000 calc(100% - 24px),transparent 100%) !important;
    scroll-snap-type:x proximity;
  }
  .cond-panel.vis .cond-cat-pills .ccp{
    scroll-snap-align:start;
  }

  /* ─── Safe area: exec button padding ─── */
  .exec-wrap{
    padding-bottom:max(10px, env(safe-area-inset-bottom)) !important;
  }
}

/* ═══ iPhone 14 Pro (393px) and similar modern phones ═══ */
@media(max-width:428px){

  /* ─── Swap card: tighter spacing for narrower viewport ─── */
  .sc-inner{
    padding:6px 10px !important;
    gap:5px !important;
  }

  /* Token boxes: compact */
  .tok-box{
    padding:8px 10px 9px !important;
  }

  /* Amount input: scale down for narrower card, 16px min prevents iOS zoom */
  .amt-input{
    font-size:22px !important;
    letter-spacing:-0.5px !important;
  }

  /* Token selector: ensure 44px tap target */
  .tok-sel{
    min-height:44px !important;
    padding:6px 8px 6px 6px !important;
    gap:5px !important;
  }
  .tok-name{font-size:13px !important}
  .tok-ico{width:26px !important;height:26px !important}

  /* Balance label row */
  .tb-label{font-size:11px !important}
  .tb-bal{font-size:10px !important}

  /* Swap type tabs: fit 3 in narrower space */
  .swap-types{
    padding:2px !important;
    margin-bottom:1px !important;
  }
  .st{
    padding:10px 4px 8px !important;
    gap:1px !important;
  }
  .st-icon{font-size:12px !important}
  .st-label{font-size:8px !important;letter-spacing:1.5px !important}

  /* Execute button: full width, proper height */
  #exec-btn{
    padding:16px !important;
    font-size:11px !important;
    letter-spacing:3px !important;
    min-height:48px !important;
  }

  /* Flip button */
  .flip-wrap{margin:0 !important}
  .flip-btn{width:24px !important;height:24px !important;font-size:10px !important}

  /* Route panel compact */
  .route-panel{padding:4px 8px !important}
  .rp-k,.rp-v{font-size:9px !important}

  /* Protection rows: tighter */
  .prot-header{padding:7px 10px !important}
  .prot-label{font-size:9px !important}
  .prot-panel{padding:6px 10px 8px !important}
  .prot-price-input{font-size:16px !important}
  .prot-pct{padding:6px 0 !important;font-size:9px !important}

  /* DCA inputs: 16px to prevent zoom */
  .dca-input{font-size:16px !important}

  /* Limit price input */
  .lim-price-input{font-size:16px !important}

  /* Slippage */
  .slip-pill{font-size:9px !important}

  /* Condition toggle button: tighter */
  .cond-toggle-btn{padding:6px 10px !important;gap:8px !important}
  .ctb-badge{font-size:7px !important;padding:4px 8px !important}

  /* Exec preview row */
  .exec-preview{padding:5px 8px !important}
  .ep-lbl{font-size:7px !important}
  .ep-val{font-size:9px !important}

  /* Trade intent: compact */
  .trade-intent{padding:7px 10px !important;gap:4px !important}
  .ti-row{font-size:11px !important;gap:4px !important}
  .ti-row b{font-size:12px !important}

  /* Wallet strip */
  .wallet-strip{padding:5px 8px !important;gap:6px !important}

  /* ─── Mobile Pro toggle: larger tap target ─── */
  .mob-pro-toggle-row{padding:6px 10px 0 !important}
  .mob-pro-pill{
    min-height:32px !important;
    padding:5px 12px !important;
  }
  .mob-pro-pill-label{font-size:8px !important}

  /* Footer: compact for narrow screens */
  .dex-foot{
    height:36px !important;
    padding:0 8px !important;
  }
  .foot-dots{gap:0 !important}
  .foot-nd{width:24px !important}

  /* Ticker bar: slightly smaller */
  .ticker-bar{height:26px !important}
  .ti-sym{font-size:9px !important}
  .ti-price{font-size:9px !important}
  .ti-chg{font-size:8px !important}

  /* ─── Condition bottom sheet: iPhone refinements ─── */
  .cond-panel.vis{
    max-height:92vh !important;
    height:92vh !important;
  }
  .cond-sheet-handle{padding:10px 0 6px !important}
  .cond-sheet-handle::before{width:40px !important;height:4px !important}

  /* Condition panel header: compact */
  .cond-panel.vis .cp-head{padding:2px 12px 6px !important}
  .cp-done-btn{padding:8px 16px !important;min-height:40px !important;font-size:11px !important}
  .cp-close-btn{width:40px !important;height:40px !important;min-width:40px !important;font-size:16px !important}

  /* Active condition blocks: ensure tap targets */
  .cond-panel.vis .acb{
    padding:10px 12px !important;
    min-height:44px !important;
  }
  .cond-panel.vis .acb-del{
    min-width:32px !important;
    min-height:32px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:16px !important;
  }
  .cond-panel.vis .acb-edit{
    min-height:32px !important;
    padding:6px 12px !important;
    font-size:10px !important;
  }

  /* Condition items: 48px tap targets */
  .cond-panel.vis .ci{
    padding:12px 12px !important;
    min-height:48px !important;
  }
  .cond-panel.vis .ci-name{font-size:13px !important}
  .cond-panel.vis .ci-desc{font-size:10px !important}

  /* Category pills: bigger for touch */
  .cond-panel.vis .cond-cat-pills .ccp{
    min-height:36px !important;
    padding:8px 14px !important;
    font-size:10px !important;
  }

  /* Logic buttons */
  .cpl{
    min-height:40px !important;
    padding:10px 12px !important;
    font-size:11px !important;
  }

  /* Add condition button */
  .add-cond{
    padding:12px !important;
    font-size:10px !important;
    min-height:44px !important;
  }
}

/* ═══ EXECUTE BUTTON: tap flash feedback ═══ */
@keyframes execFlash{
  0%{box-shadow:0 0 0 0 rgba(79,255,170,0.7),inset 0 0 0 rgba(79,255,170,0.3)}
  20%{box-shadow:0 0 40px 8px rgba(79,255,170,0.5),inset 0 0 20px rgba(79,255,170,0.15)}
  50%{box-shadow:0 0 60px 16px rgba(79,255,170,0.3),inset 0 0 30px rgba(79,255,170,0.08)}
  100%{box-shadow:0 0 20px rgba(109,232,225,0.08),inset 0 1px 0 rgba(109,232,225,0.15)}
}
@keyframes execCornerFlash{
  0%{border-color:rgba(79,255,170,1);width:calc(50% + 6px);height:calc(50% + 6px)}
  100%{border-color:rgba(109,232,225,0.5);width:14px;height:14px}
}
#exec-btn.exec-fired{
  animation:execFlash 0.8s cubic-bezier(.22,1,.36,1) forwards !important;
  border-color:rgba(79,255,170,0.8) !important;
  color:#fff !important;
  letter-spacing:5px !important;
}
.exec-btn-outer.exec-fired .dw-corner{
  animation:execCornerFlash 0.8s cubic-bezier(.22,1,.36,1) forwards !important;
}

/* ═══ SHIMMER GLOW: swap card top edge on mobile ═══ */
@keyframes mobileCardShimmer{
  0%,100%{opacity:0.5;background-position:-200% 0}
  50%{opacity:1;background-position:200% 0}
}
@media(max-width:768px){
  .swap-card::before{
    background:linear-gradient(90deg,transparent 0%,rgba(109,232,225,0.3) 20%,rgba(109,232,225,0.7) 45%,rgba(255,255,255,0.9) 50%,rgba(109,232,225,0.7) 55%,rgba(109,232,225,0.3) 80%,transparent 100%) !important;
    background-size:200% 100% !important;
    animation:mobileCardShimmer 6s ease-in-out infinite !important;
    height:1px !important;
  }

  /* Shimmer glow on execute button */
  #exec-btn::before{
    background:linear-gradient(90deg,transparent 0%,rgba(109,232,225,0.12) 40%,rgba(79,255,170,0.15) 50%,rgba(109,232,225,0.12) 60%,transparent 100%) !important;
    animation:execSweep 5s ease-in-out 1s infinite !important;
  }

  /* Shimmer on condition toggle button — override tooltip properties */
  .cond-toggle-btn::after,
  .cond-toggle-btn[data-hint]::after{
    content:'' !important;
    position:absolute !important;
    top:0 !important;left:0 !important;right:0 !important;
    bottom:auto !important;
    height:1px !important;
    background:linear-gradient(90deg,transparent,rgba(109,232,225,0.35),transparent) !important;
    border:none !important;
    padding:0 !important;
    transform:none !important;
    max-width:none !important;
    font-size:0 !important;
    opacity:1 !important;
    animation:none !important;
    pointer-events:none !important;
    z-index:1 !important;
  }

  /* ─── iOS input zoom prevention: 16px minimum on all inputs ─── */
  .amt-input{font-size:22px !important}
  .prot-price-input{font-size:16px !important}
  .lim-price-input{font-size:16px !important}
  .dca-input{font-size:16px !important}
  .ca-price-input{font-size:16px !important}
  .ca-search-input{font-size:16px !important}
  .tok-modal-search-wrap input{font-size:16px !important}
  .ws-paste-input{font-size:16px !important}
  .thresh-input{font-size:16px !important}
  .dca-range-input{font-size:16px !important}
}

/* ═══ ULTRA-SMALL MOBILE: 375px and below ═══ */
@media(max-width:375px){

  /* Swap card: tighter padding for ultra-narrow viewport */
  .sc-inner{
    padding:4px 8px !important;
    gap:4px !important;
  }

  /* Token boxes: compact */
  .tok-box{
    padding:6px 8px 7px !important;
  }

  /* Amount input: smaller but still >=16px to prevent iOS zoom */
  .amt-input{
    font-size:20px !important;
    letter-spacing:-0.5px !important;
  }

  /* Token selector: smaller but 44px min tap target */
  .tok-sel{
    min-height:44px !important;
    padding:5px 6px 5px 5px !important;
    gap:4px !important;
  }
  .tok-name{font-size:12px !important}
  .tok-ico{width:24px !important;height:24px !important}

  /* Balance label row */
  .tb-label{font-size:10px !important}
  .tb-bal{font-size:9px !important}

  /* Swap type tabs: squeeze 3 into ultra-narrow */
  .swap-types{
    padding:2px !important;
    margin-bottom:0 !important;
  }
  .st{
    padding:8px 3px 6px !important;
    gap:1px !important;
  }
  .st-icon{font-size:11px !important}
  .st-label{font-size:7px !important;letter-spacing:1px !important}

  /* Execute button: full width, compact */
  #exec-btn{
    padding:14px !important;
    font-size:10px !important;
    letter-spacing:2.5px !important;
    min-height:44px !important;
  }

  /* Flip button */
  .flip-wrap{margin:0 !important}
  .flip-btn{width:22px !important;height:22px !important;font-size:9px !important}

  /* Route panel compact */
  .route-panel{padding:3px 6px !important}
  .rp-k,.rp-v{font-size:8px !important}

  /* Protection rows: tighter */
  .prot-header{padding:6px 8px !important}
  .prot-label{font-size:8px !important}
  .prot-panel{padding:5px 8px 6px !important}
  .prot-price-input{font-size:16px !important}
  .prot-pct{padding:5px 0 !important;font-size:8px !important}

  /* DCA inputs: 16px minimum to prevent zoom */
  .dca-input{font-size:16px !important}

  /* Limit price input */
  .lim-price-input{font-size:16px !important}

  /* Slippage */
  .slip-pill{font-size:8px !important;padding:5px 8px !important}

  /* Condition toggle button: tighter */
  .cond-toggle-btn{padding:5px 8px !important;gap:6px !important}
  .ctb-badge{font-size:7px !important;padding:3px 6px !important}

  /* Exec preview row */
  .exec-preview{padding:4px 6px !important}
  .ep-lbl{font-size:7px !important}
  .ep-val{font-size:8px !important}

  /* Trade intent: compact */
  .trade-intent{padding:6px 8px !important;gap:3px !important}
  .ti-row{font-size:10px !important;gap:3px !important}
  .ti-row b{font-size:11px !important}

  /* Wallet strip */
  .wallet-strip{padding:4px 6px !important;gap:5px !important}

  /* Mobile Pro toggle */
  .mob-pro-pill{
    min-height:30px !important;
    padding:4px 10px !important;
  }
  .mob-pro-pill-label{font-size:7px !important}

  /* Footer: ultra compact */
  .dex-foot{
    height:32px !important;
    padding:0 6px !important;
  }
  .foot-dots{gap:0 !important}
  .foot-nd{width:20px !important}

  /* Ticker bar: smaller */
  .ticker-bar{height:24px !important}
  .ti-sym{font-size:8px !important}
  .ti-price{font-size:8px !important}
  .ti-chg{font-size:7px !important}

  /* Receipt section: compact */
  .receipt-card{padding:8px 10px !important}
  .rc-row{font-size:10px !important;padding:3px 0 !important}
  .rc-label{font-size:9px !important}
  .rc-val{font-size:9px !important}
}

/* ═══ WIDE DESKTOP: 1440px and above ═══ */
@media(min-width:1440px){

  /* Swap card: slightly wider with more breathing room */
  .swap-card{max-width:480px}
  .dex-center{max-width:520px}

  /* Inner content: more generous padding */
  .sc-inner{
    padding:12px 20px;
    gap:10px;
  }

  /* Token boxes: roomier */
  .tok-box{
    padding:14px 18px 15px;
  }

  /* Amount input: larger for wide screens */
  .amt-input{
    font-size:30px;
  }

  /* Token selector: roomier */
  .tok-sel{
    padding:10px 14px 10px 10px;
    gap:10px;
  }
  .tok-name{font-size:16px}
  .tok-ico{width:32px;height:32px}

  /* Swap type tabs: more space */
  .st{
    padding:10px 8px 9px;
    gap:3px;
  }
  .st-label{font-size:10px;letter-spacing:2.5px}

  /* Execute button: roomier */
  #exec-btn{
    padding:22px;
    font-size:13px;
    letter-spacing:5px;
  }

  /* Route panel */
  .route-panel{padding:8px 16px}
  .rp-k,.rp-v{font-size:11px}

  /* Exec preview row */
  .exec-preview{padding:8px 14px}
  .ep-lbl{font-size:9px}
  .ep-val{font-size:11px}

  /* Trade intent */
  .trade-intent{padding:10px 16px;gap:6px}
  .ti-row{font-size:13px}
}

/* ═══ Mobile tap targets — expand the HIT AREA, not the visual (audit fix M3) ═══
   The footer is only 32px tall on phones, so a 44px button cannot fit visually.
   Instead each control keeps its 28px look and gains an invisible 44x44 hit
   region via ::after. This satisfies the touch-target guideline without
   changing a single pixel of the design.
   (Note: css/s1-landing.css tried width:44px!important here, but this file
   loads later at equal specificity, so it never applied — the buttons measured
   28x28. Expanding the hit area is the fix that actually works in a 32px bar.) */
@media(max-width:768px){
  .foot-micro-btn,.foot-float-btns > *,#foot-sound-btn,#foot-settings-btn{position:relative}
  .foot-micro-btn::after,.foot-float-btns > *::after,#foot-sound-btn::after,#foot-settings-btn::after{
    content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:44px;height:44px;border-radius:4px;
  }
  /* Page-dot navigation: 4px dots are far too small to hit reliably */
  .foot-nd{position:relative}
  .foot-nd::after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40px;height:40px}
  /* The sole mobile escape from the trade detail panel back to the list */
  #s8 .mt-dp-back{min-height:40px;display:inline-flex;align-items:center;padding:8px 10px}
}

/* Narrow screens: the odds/category column drops under the question rather than
   crushing it to two words. */
@media(max-width:480px){
  .pm-market-inner{flex-direction:column;gap:6px}
  .pm-market-meta{flex-direction:row;align-items:center;gap:8px;min-width:0}
  .pm-market-q{-webkit-line-clamp:3}
}

/* ═══ WATCH MODE — its own colour, because it is its own thing ═══
   Market, limit and DCA all end in a trade; a watch never does. Purple sets it
   apart at a glance from the three modes that move money. */
.swap-card.mode-watch::before{background:linear-gradient(90deg,transparent 0%,rgba(157,127,234,0.32) 25%,rgba(180,150,255,0.7) 50%,rgba(157,127,234,0.32) 75%,transparent 100%) !important;background-size:100% 100% !important;animation:watchGlow 3s ease-in-out infinite !important;opacity:1 !important}
.swap-card.mode-watch{border-color:rgba(157,127,234,0.32) !important;animation:none !important}
.swap-card.mode-watch::after{box-shadow:0 0 25px rgba(157,127,234,0.16),0 0 50px rgba(157,127,234,0.09),0 0 80px rgba(157,127,234,0.045),0 24px 64px rgba(0,0,0,0.8) !important;animation:watchGlowOuter 3s ease-in-out infinite !important}
@keyframes watchGlow{0%,100%{opacity:0.7}
50%{opacity:1}
}
@keyframes watchGlowOuter{0%,100%{box-shadow:0 0 20px rgba(157,127,234,0.13),0 0 50px rgba(157,127,234,0.07),0 24px 64px rgba(0,0,0,0.8)}
50%{box-shadow:0 0 30px rgba(157,127,234,0.22),0 0 60px rgba(157,127,234,0.11),0 0 90px rgba(157,127,234,0.05),0 24px 64px rgba(0,0,0,0.8)}
}
/* The WATCH tab itself, so the mode is legible before you pick it. */
.st#st-watch.on{border-color:rgba(157,127,234,0.45) !important;background:rgba(157,127,234,0.08) !important}
.st#st-watch.on .st-label,.st#st-watch.on .st-icon{color:rgba(190,165,255,0.95) !important}

/* The explainer that replaces the removed controls — says what a watch does
   instead of implying a trade by looking exactly like one. */
.watch-note{
  display:none;margin:0 0 10px;padding:10px 12px;
  background:linear-gradient(135deg,rgba(157,127,234,0.10),rgba(157,127,234,0.03));
  border:1px solid rgba(157,127,234,0.28);border-left-width:2px;
  font-family:'IBM Plex Mono',monospace;font-size:9px;line-height:1.55;
  letter-spacing:0.5px;color:rgba(200,180,255,0.85);
}
.watch-note b{color:rgba(215,200,255,0.98);font-weight:600}
