|
198 | 198 | #backtest{background:var(--bg)} |
199 | 199 | .backtest-grid{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start} |
200 | 200 | .win-rate-wrap{display:flex;flex-direction:column;align-items:center;gap:20px} |
201 | | -.win-donut{position:relative;width:220px;height:220px} |
202 | | -.win-donut svg{transform:rotate(-90deg)} |
| 201 | +.win-donut{position:relative;width:220px;height:220px;flex-shrink:0} |
| 202 | +.win-donut svg{display:block;transform:rotate(-90deg);width:100%!important;height:100%!important} |
203 | 203 | .donut-track{fill:none;stroke:rgba(255,255,255,.06);stroke-width:16} |
204 | 204 | .donut-fill{fill:none;stroke:url(#donutGrad);stroke-width:16;stroke-linecap:round;stroke-dasharray:566;stroke-dashoffset:566;transition:stroke-dashoffset 2s cubic-bezier(.4,0,.2,1)} |
205 | 205 | .donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px} |
|
221 | 221 |
|
222 | 222 | /* P&L Table */ |
223 | 223 | .pnl-table-wrap{margin-top:60px} |
| 224 | +.th-short{display:none} |
224 | 225 | .pnl-table{width:100%;border-collapse:collapse} |
225 | | -.pnl-table th{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;padding:12px 20px;text-align:left;border-bottom:1px solid var(--border)} |
| 226 | +.pnl-table th{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;padding:12px 20px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap} |
226 | 227 | .pnl-table td{padding:16px 20px;border-bottom:1px solid var(--border);font-size:14px;color:var(--text2)} |
227 | 228 | .pnl-table tr:hover td{background:rgba(255,255,255,.02)} |
228 | 229 | .pnl-table td.month{font-family:'JetBrains Mono',monospace;color:var(--muted);font-size:13px} |
|
387 | 388 | @media(max-width:768px){ |
388 | 389 | .tui-statusbar{gap:12px} |
389 | 390 | .win-donut{width:180px;height:180px} |
390 | | - .win-donut svg{width:180px!important;height:180px!important} |
| 391 | + /* win-rate-wrap: row on ≥480, column on narrow */ |
| 392 | + .win-rate-wrap{flex-direction:row;align-items:flex-start;flex-wrap:wrap;justify-content:center;gap:24px} |
| 393 | + .win-stats{max-width:260px} |
391 | 394 | } |
392 | 395 | @media(max-width:640px){ |
393 | 396 | .metrics-grid{grid-template-columns:1fr} |
|
405 | 408 | .tui-stats{grid-template-columns:repeat(3,1fr);gap:6px} |
406 | 409 | .tui-stat-v{font-size:12px} |
407 | 410 | .tui-bottombar{flex-direction:column;gap:4px;align-items:flex-start} |
| 411 | + /* pnl-table: mobile-friendly headers + compact cells */ |
408 | 412 | .pnl-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch} |
409 | | - .pnl-table{min-width:480px} |
| 413 | + .th-long{display:none} |
| 414 | + .th-short{display:inline} |
| 415 | + .pnl-table{min-width:0;width:100%} |
| 416 | + .pnl-table th{padding:10px 12px;font-size:10px;letter-spacing:.06em} |
| 417 | + .pnl-table td{padding:12px 12px;font-size:13px} |
410 | 418 | h2.section-h2{font-size:clamp(26px,7vw,40px)} |
411 | 419 | .section-desc{font-size:15px;margin-bottom:40px} |
412 | 420 | .win-donut{width:160px!important;height:160px!important} |
413 | | - .win-donut svg{width:160px!important;height:160px!important} |
| 421 | + .donut-pct{font-size:28px} |
| 422 | + .win-rate-wrap{flex-direction:column;align-items:center;gap:20px} |
| 423 | + .win-stats{max-width:100%;width:100%} |
414 | 424 | .hero-badge{font-size:10px;padding:6px 12px} |
415 | 425 | .btn-primary,.btn-ghost{padding:12px 20px;font-size:13px} |
| 426 | + .pnl-table-wrap{margin-top:40px} |
| 427 | + .ws-item{padding:12px} |
| 428 | + .ws-val{font-size:17px} |
416 | 429 | } |
417 | 430 | @media(max-width:400px){ |
418 | 431 | section{padding:48px 14px} |
|
423 | 436 | .tui-stat-b:last-child{grid-column:1/-1} |
424 | 437 | .hero-metrics{gap:12px} |
425 | 438 | .hm-val{font-size:22px} |
| 439 | + .win-donut{width:140px!important;height:140px!important} |
| 440 | + .donut-pct{font-size:24px} |
| 441 | + .pnl-table th{padding:8px 8px;font-size:9px} |
| 442 | + .pnl-table td{padding:10px 8px;font-size:12px} |
| 443 | + .cat-bars{gap:14px} |
426 | 444 | } |
427 | 445 |
|
428 | 446 | /* ═══════════════════════════════════════════ |
@@ -848,7 +866,7 @@ <h2 class="section-h2 reveal">Backtest <span class="hl">Results.</span></h2> |
848 | 866 | <div> |
849 | 867 | <div class="win-rate-wrap"> |
850 | 868 | <div class="win-donut"> |
851 | | - <svg width="220" height="220" viewBox="0 0 220 220"> |
| 869 | + <svg width="220" height="220" viewBox="0 0 220 220" preserveAspectRatio="xMidYMid meet"> |
852 | 870 | <defs> |
853 | 871 | <linearGradient id="donutGrad" x1="0" y1="0" x2="1" y2="1"> |
854 | 872 | <stop offset="0%" stop-color="#00ff88"/> |
@@ -910,9 +928,9 @@ <h2 class="section-h2 reveal">Backtest <span class="hl">Results.</span></h2> |
910 | 928 | <thead> |
911 | 929 | <tr> |
912 | 930 | <th>Month</th> |
913 | | - <th>Conservative (+10%/mo)</th> |
914 | | - <th>Target (+20%/mo)</th> |
915 | | - <th>Stretch (+30%/mo)</th> |
| 931 | + <th><span class="th-long">Conservative (+10%/mo)</span><span class="th-short">Cons.</span></th> |
| 932 | + <th><span class="th-long">Target (+20%/mo)</span><span class="th-short">Target</span></th> |
| 933 | + <th><span class="th-long">Stretch (+30%/mo)</span><span class="th-short">Stretch</span></th> |
916 | 934 | </tr> |
917 | 935 | </thead> |
918 | 936 | <tbody> |
|
0 commit comments