/* /curve — bonding-curve simulator. Loads after buy.css + marketing.css + design.css. */
.mkt.curve-page{max-width:1080px}
.curve-page .mkt-kicker .badge{vertical-align:middle;margin-left:6px;letter-spacing:.6px}
.no-sell{max-width:720px;margin:18px auto 0;padding:12px 16px;border:1px solid #5e3a33;border-radius:12px;background:#211817;color:#ecd2cc;font-size:15px}
.no-sell b{color:var(--text)}
.curve-page h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;font-size:18px;margin:0 0 12px}
.curve-page h3 small{font-size:13px}
.curve-page h4{margin:18px 0 8px;font-size:14px;color:var(--muted);font-weight:600}
.param-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.solved-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px;margin-top:14px}
.ctl{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin:10px 0 4px;font-size:14px;color:var(--muted)}
.ctl output{font:700 15px 'Space Grotesk',sans-serif;color:var(--text);white-space:nowrap}
.curve-page input[type=range]{width:100%;accent-color:#c5f277}
.split-bar{display:flex;height:10px;border-radius:6px;overflow:hidden;margin:12px 0 6px;background:#242d24}
.split-bar i{display:block;height:100%;transition:width .2s}
#split-curve{background:var(--green)}#split-lp{background:#8fd3ff}
.field{display:flex;align-items:center;gap:6px;background:#0f1410;border:1px solid #2c332b;border-radius:10px;padding:8px 12px}
.field:focus-within{border-color:var(--green)}
.field span{color:var(--muted)}
.field input{flex:1;min-width:0;border:0;background:none;color:var(--text);font:600 16px 'Space Grotesk',sans-serif;outline:none}
.field input:disabled{color:#5e675d}
.sub-field{margin:4px 0 8px 26px}
.modes{border:0;margin:12px 0 0;padding:0;display:grid;gap:6px}
.modes legend{font-size:14px;color:var(--muted);margin-bottom:6px;padding:0}
.modes label,.tog{display:grid;grid-template-columns:20px 1fr;gap:6px;align-items:start;font-size:14px;color:#d6e8bd;line-height:1.4;cursor:pointer}
.modes input,.tog input{margin:3px 0 0;accent-color:#c5f277}
.tog{margin:0 0 12px}
.no-tax{margin:0 0 12px;padding:10px 12px;border:1px solid #3c5a2a;border-radius:10px;background:#18200f;color:#d6e8bd;font-size:14px;line-height:1.4}
.no-tax b{color:var(--text)}
.tog b,.modes b{color:var(--text)}
#p-reset{width:100%;padding:10px 14px;font-size:14px}
.curve-page .fine{margin:10px 0 0;color:var(--muted);font-size:13px}
.curve-page .msg.on{color:var(--err)}
.curve-page .rows dd{overflow-wrap:anywhere}
.rows dd.ok{color:var(--green)}.rows dd.warn{color:#e9d9a8}.rows dd.bad{color:var(--err)}
.math{margin:0;padding-left:20px;display:grid;gap:8px;font-size:14px;color:#d6e8bd;line-height:1.5}
.math b{color:var(--green);font-weight:700}
.math sub{font-size:.75em}
.sim-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:start}
.chart-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-bottom:8px;font-size:14px}
#chart{display:block;width:100%;height:auto;background:#111612;border:1px solid #262d26;border-radius:12px}
#chart .grid{stroke:#344035;stroke-width:1}
#chart .ax{fill:#c8d2c4;font:12.5px 'DM Sans',system-ui,sans-serif}
#chart .ax.lbl{fill:#e3e9dc;font-size:13px;font-weight:600}
#chart .glbl{fill:#8fd3ff}
#chart.narrow .ax{font-size:19px}#chart.narrow .ax.lbl{font-size:19px}
#chart .gradline{stroke:#8fd3ff;stroke-dasharray:5 5;stroke-width:1.2;opacity:.8}
#chart .curve{fill:none;stroke:#c5f277;stroke-width:2.5}
#chart .area{fill:rgba(197,242,119,.18)}
#chart .mark{fill:#c5f277;stroke:#101312;stroke-width:3}
#chart .prev{fill:none;stroke:#e9d9a8;stroke-width:2;stroke-dasharray:3 3}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 0}
.stats div{background:#111612;border:1px solid #262d26;border-radius:10px;padding:8px 10px;min-width:0}
.stats dt{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.stats dd{margin:2px 0 0;font:700 15px 'Space Grotesk',sans-serif;overflow-wrap:anywhere}
.progress{height:6px;border-radius:6px;background:#242d24;margin:10px 0 0;overflow:hidden}
.progress i{display:block;height:100%;width:0;background:var(--green);transition:width .15s}
.sim-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:14px;font-size:14px;color:var(--muted)}
.sim-ctl input{width:90px;background:#0f1410;border:1px solid #2c332b;border-radius:10px;padding:9px 10px;color:var(--text);font:600 15px 'Space Grotesk',sans-serif}
.sim-ctl button{padding:10px 16px;font-size:14px}
.sim-ctl button:disabled,.buy-box .primary:disabled{opacity:.5;cursor:not-allowed}
.grad-msg{margin:14px 0 0;padding:12px 14px;border-left:3px solid #8fd3ff;background:#152028;border-radius:0 12px 12px 0;color:#d4ecff;font-size:14px}
.buy-box .amount-field{padding:10px 14px}
.buy-box .amount-field .cur{font-size:24px}
.buy-box .amount-field input{font-size:26px}
.mini-chips{margin:10px 0 6px}
.mini-chips .chip{font-size:15px;padding:9px 0}
.quote div{padding:8px 0;font-size:14.5px}
.quote .get dd{color:var(--green);font:700 18px 'Space Grotesk',sans-serif}
.sell-note{text-align:center}
.log{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px;max-height:220px;overflow:auto}
.log li{padding:6px 10px;background:#111612;border-radius:8px;color:#d6e8bd;overflow-wrap:anywhere}
.ms-table,.el-table{min-width:600px}
.ms-table td,.el-table td{font-variant-numeric:tabular-nums}
.yield-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 12px}
.yield-inputs label{display:grid;gap:6px;font-size:14px;color:var(--muted)}
.yield-inputs input{background:#0f1410;border:1px solid #2c332b;border-radius:10px;padding:10px 12px;color:var(--text);font:600 16px 'Space Grotesk',sans-serif;min-width:0}
.yield-card .get dd{color:#e9d9a8;font:700 18px 'Space Grotesk',sans-serif}
.yield-card{border-color:#5a4b22}
body.bad-params #p-err{display:block}
@media(max-width:980px){.param-grid{grid-template-columns:1fr 1fr}.param-grid>.card:last-child{grid-column:1/-1}.sim-grid,.solved-grid{grid-template-columns:1fr}}
@media(max-width:680px){
 .mkt.curve-page{padding:20px 16px 40px}
 .param-grid{grid-template-columns:1fr}
 .stats{grid-template-columns:1fr 1fr}
 .yield-inputs{grid-template-columns:1fr}
 .curve-page .mkt-hero{padding:32px 18px 24px}
 .curve-page .mkt-strip{grid-template-columns:1fr 1fr}
 .curve-page .mkt-strip div:nth-child(3){border-left:0}
 .curve-page .mkt-strip div:nth-child(n+3){border-top:1px solid var(--border)}
 .curve-page .rows div{flex-wrap:wrap}
 .curve-page .rows dd{text-align:left}
}
/* design-mode switch + Option D post-graduation panel */
[hidden]{display:none!important}
.design-mode{max-width:720px;margin:18px auto 0;padding:12px 16px;border:1px solid #2a4558;border-radius:12px;background:#152028;display:grid;gap:8px;text-align:left}
.design-mode legend{padding:0 6px;font:700 12px 'Space Grotesk',sans-serif;letter-spacing:1.2px;text-transform:uppercase;color:#8fd3ff}
.design-mode label{display:grid;grid-template-columns:20px 1fr;gap:6px;align-items:start;font-size:14.5px;color:#d6e8bd;line-height:1.4;cursor:pointer}
.design-mode input{margin:3px 0 0;accent-color:#c5f277}
.design-mode b{color:var(--text)}
.design-mode .badge{margin-left:4px;font-size:10.5px;padding:2px 8px;vertical-align:1px}
.dm-note{max-width:720px;margin:12px auto 0;padding:10px 14px;border-left:3px solid #e9d9a8;background:#1f1d16;border-radius:0 12px 12px 0;color:#ece3c4;font-size:14.5px;text-align:left}
.dm-note b{color:var(--text)}
.hy-tax-note{border-color:#5a4b22;background:#1f1d16}
.hy-lead{margin:0 0 14px;color:#d6e8bd;font-size:15.5px;line-height:1.55;max-width:860px}
.hy-lead b{color:var(--text)}
.hy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.hy-grid .ctl .badge{font-size:10.5px;padding:2px 8px}
.hy-select{width:100%;padding:9px 12px;background:#0f1410;border:1px solid #2c332b;border-radius:10px;color:var(--text);font:600 15px 'Space Grotesk',sans-serif}
.hy-results{border-color:#5a4b22}
.hy-results .get dd{color:#e9d9a8;font:700 16px 'Space Grotesk',sans-serif}
.hy-results .rows div{padding:7px 0;font-size:14px}
.hy-math-card,.hy-open{margin-top:14px}
@media(max-width:980px){.hy-grid{grid-template-columns:1fr 1fr}.hy-results{grid-column:1/-1}}
@media(max-width:680px){.hy-grid{grid-template-columns:1fr}.design-mode,.dm-note{margin-left:0;margin-right:0}}
.curve-page .badge.open{color:#e9d9a8;background:#262113;border:1px solid #5a4b22;font-size:10.5px;padding:1px 7px;margin-left:4px;vertical-align:1px}
.curve-page .pool-note{margin-top:8px}
.curve-page .reserve-ctl{margin-top:10px}
.curve-page .split-bar #split-res{background:repeating-linear-gradient(45deg,#3a3f4b 0 6px,#2c303a 6px 12px)}
