:root{--page:#edf2f7;--surface:#fff;--ink:#152b45;--muted:#5c7086;--line:#d7e1ec;--blue:#1764c0;--purple:#7657b8;--green:#087f66;--red:#bc4452;--orange:#aa6313;font-family:"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--page);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,select,a.button{font:inherit}button,select,.button{border:1px solid #c9d5e2;background:white;color:var(--ink);padding:8px 13px;border-radius:7px;cursor:pointer;text-decoration:none;white-space:nowrap}button:hover,.button:hover{background:#eaf1fb;border-color:#8faed1}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #73aaff;outline-offset:3px}button.selected{background:var(--blue);color:white;border-color:var(--blue)}.topbar{min-height:83px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:16px max(24px,calc((100vw - 1280px)/2));background:rgba(255,255,255,.72);gap:20px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:19px;font-weight:650;text-decoration:none;line-height:1.2}.brand small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:4px}.brandmark{background:var(--blue);color:#fff;width:40px;height:40px;display:grid;place-items:center;font-size:28px;border-radius:12px}.connection{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px}.dot,.record-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#8091a5}.dot.live{background:var(--green)}.dot.error{background:var(--red)}.tag{padding:4px 9px;background:#e7edf5;color:#425a76;border-radius:5px;margin-left:13px;font-size:12px}main{max-width:1328px;padding:25px 24px 20px;margin:auto}.notice{background:#e2ebfa;border:1px solid #c0d4f1;padding:12px 16px;border-radius:8px;margin-bottom:22px;color:#254d7f}.notice.error{background:#fff0ee;border-color:#edc8c3;color:#983b31}.notice[hidden]{display:none}.market-head{display:flex;align-items:center;justify-content:space-between;margin:7px 0 26px;gap:20px}.pair{font-size:20px;font-weight:600}.pair span{font-size:12px;display:inline-block;margin-left:10px;color:var(--muted);font-weight:400}h1{font-size:clamp(30px,4.5vw,48px);font-weight:600;letter-spacing:-1.7px;line-height:1.15;margin:7px 0;font-variant-numeric:tabular-nums}p{margin:0;color:var(--muted)}#priceNote{font-size:12px}.recording{display:flex;align-items:center;gap:12px;background:#e3ebf5;padding:14px 20px;border-radius:10px}.record-dot{background:var(--blue);width:8px;height:8px}.recording strong{display:block;font-size:14px;font-weight:600}.recording span:not(.record-dot){display:block;font-size:12px;color:var(--muted);margin-top:3px}.workspace{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.chart-toolbar{padding:20px 24px 12px;display:flex;justify-content:space-between;align-items:center;gap:20px}h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-.25px}.legend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin-top:8px}.legend i{display:inline-block;width:17px;height:2px;background:var(--blue)}.legend .forecast-key{background:var(--purple);margin-left:12px}.chart-controls{display:flex;align-items:center;gap:8px;font-size:12px}.chart-controls label{color:var(--muted)}.chart-wrap{position:relative;height:330px;padding:0 14px}.chart-wrap canvas,.detail-chart-wrap canvas{width:100%;height:100%;display:block}.chart-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);pointer-events:none}.chart-empty[hidden]{display:none}.chart-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;padding:0 25px 17px}.horizon-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.horizon-card{border:0;border-right:1px solid var(--line);border-radius:0;display:block;text-align:left;padding:17px 24px 19px;background:#f9fbfe;position:relative;white-space:normal}.horizon-card:last-child{border-right:0}.horizon-card.active{background:#edf4ff;box-shadow:inset 0 3px 0 var(--blue)}.horizon-label{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.horizon-label b{font-weight:600;color:var(--ink);font-size:14px}.horizon-prob{font-size:26px;letter-spacing:-.5px;font-weight:600;margin-top:6px;line-height:1.3;font-variant-numeric:tabular-nums}.horizon-prob small{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0;margin-left:6px}.horizon-move{display:block;font-size:12px;margin-top:5px;color:var(--muted);font-variant-numeric:tabular-nums}.up{color:var(--green)}.down{color:var(--red)}.neutral{color:var(--muted)}.results{margin:32px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px}.section-heading p{font-size:12px;margin-top:4px}.segmented{display:flex;padding:3px;gap:3px;border:1px solid var(--line);border-radius:8px;background:#e4ebf4}.segmented button{border:0;background:transparent;font-size:12px;padding:7px 12px}.segmented button.selected{background:#fff;color:var(--blue);box-shadow:0 1px 4px #243d5610}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{padding:19px 21px;background:var(--surface);border-radius:10px;border:1px solid var(--line)}.metric-label{font-size:12px;color:var(--muted)}.metric-value{font-size:27px;font-weight:600;letter-spacing:-.7px;margin:5px 0;font-variant-numeric:tabular-nums}.metric-foot{font-size:11px;color:var(--muted)}.explanation{font-size:12px;margin:12px 1px;max-width:90ch}.method{border-bottom:1px solid var(--line);padding:9px 0 14px}.method summary{color:#3a5675;font-size:12px;cursor:pointer}.method-content{display:grid;grid-template-columns:1fr 1fr;gap:13px 30px;margin-top:12px;max-width:1080px}.method p{font-size:12px;line-height:1.65}.ledger-section{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 0 0;overflow:hidden}.ledger-section>.section-heading{padding:0 24px}.export{font-size:12px}.ledger-filters{display:flex;align-items:center;gap:9px;padding:0 24px 18px;color:var(--muted);font-size:12px}.ledger-filters select{padding:6px 8px;font-size:12px}.ledger-filters #ledgerLive{margin-left:auto}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap}th{font-size:11px;font-weight:500;color:var(--muted);padding:10px 16px;background:#f4f7fb;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{font-size:12px;padding:11px 16px;border-bottom:1px solid #edf1f6}th:first-child,td:first-child{padding-left:24px}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.chosen{background:#eef4ff}.row-select{border:0;padding:0;background:transparent;color:var(--blue);font-size:12px}.row-select:hover{background:transparent;text-decoration:underline}.time-sub{display:block;font-size:10px;color:var(--muted)}.pill{display:inline-block;border-radius:4px;padding:2px 7px;font-size:10px;background:#edf1f6;color:var(--muted)}.pill.hit{background:#e4f3ed;color:var(--green)}.pill.miss{background:#fbeaec;color:var(--red)}.pill.wait{background:#e9f0fb;color:var(--blue)}.pagination{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;color:var(--muted);font-size:12px}.pagination button{font-size:12px;padding:6px 12px}.empty-state{padding:35px 24px;color:var(--muted);text-align:center;font-size:13px}.empty-state[hidden]{display:none}.detail{margin-top:24px;border:1px solid #b6cdea;background:white;padding:22px 24px;border-radius:14px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:25px}.detail-chart-wrap{height:260px;min-width:0}.detail-facts{font-size:12px}.fact{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid var(--line)}.fact span{color:var(--muted)}.fact strong{font-weight:500;font-variant-numeric:tabular-nums}.detail-facts p{font-size:11px;margin-top:12px}footer{display:flex;justify-content:space-between;gap:20px;padding:22px 2px;color:var(--muted);font-size:11px}
@media(min-width:1600px){.chart-wrap{height:390px}}
@media(max-width:800px){.topbar{padding:14px 20px}.tag{display:none}.chart-toolbar{align-items:flex-start}.chart-controls label{display:none}.chart-controls{flex-wrap:wrap;justify-content:flex-end}.chart-controls select,.chart-controls button{padding:6px 8px}.metric-grid{grid-template-columns:repeat(2,1fr)}.horizon-card{padding:14px}.horizon-label{display:block}.horizon-label span{display:block;margin-top:2px}.horizon-prob{font-size:22px}.section-heading{align-items:flex-start}.detail-layout{grid-template-columns:1fr}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.method-content{grid-template-columns:1fr}}
@media(max-width:520px){main{padding:18px 12px}.topbar{padding:13px 14px;min-height:73px}.brand{font-size:17px}.brandmark{width:35px;height:35px}.connection{font-size:11px;gap:6px}.market-head{margin:0 5px 20px;display:block}.recording{margin-top:16px;padding:9px 12px;display:inline-flex}.recording strong{font-size:12px}.recording span:not(.record-dot){font-size:11px}.pair{font-size:18px}h1{font-size:38px}.chart-toolbar{padding:17px 14px 6px;gap:8px}h2{font-size:16px}.legend{font-size:9px;gap:4px}.legend .forecast-key{margin-left:4px}.chart-controls{max-width:107px}.chart-controls select,.chart-controls button{font-size:10px;width:100%}.chart-wrap{height:280px;padding:0 3px}.chart-foot{padding:0 15px 13px;font-size:9px}.horizon-card{padding:12px 10px}.horizon-label b{font-size:12px}.horizon-label span{font-size:10px}.horizon-prob{font-size:20px}.horizon-prob small{display:block;font-size:10px;margin:0}.horizon-move{font-size:10px}.results{margin:25px 2px}.section-heading{display:block}.segmented{width:max-content;margin-top:13px}.metric{padding:14px}.metric-value{font-size:24px}.metric-label,.metric-foot{font-size:11px}.ledger-section>.section-heading{padding:0 15px}.export{display:inline-block;margin-top:12px}.ledger-filters{padding:0 15px 14px;gap:6px;flex-wrap:wrap}.ledger-filters #ledgerLive{width:100%;margin-left:0;margin-top:4px}.ledger-filters select{font-size:11px}.pagination{padding:13px 15px}.detail{padding:18px 14px}.detail .section-heading button{margin-top:10px}.detail-facts{grid-template-columns:1fr}.detail-chart-wrap{height:240px}footer{flex-direction:column;gap:5px}.notice{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* User-requested dark trading view. Price and prediction share the same axis. */
:root{color-scheme:dark;--page:#10151d;--surface:#171e28;--ink:#e7edf5;--muted:#9aaabd;--line:#2a3442;--blue:#7ca5ff;--purple:#9ca8ff;--green:#42cf9a;--red:#ff8792;--orange:#edb86b}
body{background:var(--page)}.topbar{background:#121923;border-color:#242e3b}.brandmark{background:#263b59;color:#a9c8ff}.tag{background:#253142;color:#b7c7dc}.notice{background:#192c41;border-color:#2b4768;color:#b2d0f2}.notice.error{background:#352027;border-color:#64303b;color:#ffc0c6}.recording{background:#1b2634}.record-dot{background:#42cf9a}.workspace,.ledger-section{border-color:#2b3644;box-shadow:0 4px 22px #00000012}.chart-toolbar{padding-bottom:18px}.legend .actual-key,.summary-label .actual-key{background:#42cf9a}.legend .forecast-key,.summary-label .forecast-key{background:#8caaff}.chart-wrap{height:340px}.chart-foot{padding-top:8px;color:#a5b4c7}button,select,.button{background:#202b3a;color:var(--ink);border-color:#354359}button:hover,.button:hover{background:#2b3a4e;border-color:#6a88ae}button.selected{background:#315a94;color:#fff}.horizon-card{background:#151d27}.horizon-card:hover{background:#202c3b}.horizon-card.active{background:#21324b;box-shadow:inset 0 3px 0 #8caaff}.horizon-prob{font-size:24px}.segmented{background:#131a24}.segmented button.selected{background:#2c3c52;color:#d8e7ff;box-shadow:none}.segmented button{color:#9cacc0}.metric{background:#171f2b}.method summary{color:#b4c9e5}.ledger-filters select{background:#202a38}th{background:#1b2532;color:#a4b5c9}td{border-color:#25303e}tbody tr:hover,tbody tr.chosen{background:#233247}.row-select{background:transparent;color:#9abcff}.row-select:hover{background:transparent}.pill{background:#2b3543;color:#b2c1d4}.pill.hit{background:#17392f;color:#74e7b6}.pill.miss{background:#422630;color:#ffadb6}.pill.wait{background:#233652;color:#b6d0ff}.detail{background:#171e28;border-color:#415677}.chart-empty{color:#acbbce}.forecast-summary{display:grid;grid-template-columns:1fr 1fr auto;gap:25px;padding:0 24px 22px;align-items:center}.forecast-summary>div{min-width:0}.summary-label{display:flex;align-items:center;gap:7px;font-size:12px;color:#a9b9cc}.summary-label i{width:7px;height:7px;border-radius:50%;display:inline-block}.forecast-summary strong{display:block;font-size:29px;letter-spacing:-.7px;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.4}.forecast-summary>div:first-child strong{color:#6ce5b4}.forecast-summary>div:nth-child(2) strong{color:#a4bdff}.forecast-summary small{display:block;font-size:11px;color:#a7b6cb}.learning-status{text-align:right;color:#aec2db;font-size:12px;align-self:end;padding-bottom:5px}.learning-status small{margin-top:8px}.chart-wrap canvas{cursor:crosshair}.metric-value{color:#ecf3ff}#chartExpectedMove{color:#b7c7df}.connection{color:#aab9cc}
@media(min-width:1600px){.chart-wrap{height:380px}}
@media(max-width:800px){.forecast-summary{gap:18px;grid-template-columns:1fr 1fr}.learning-status{grid-column:1/-1;display:flex;justify-content:space-between;text-align:left;padding:0}.learning-status small{margin:0}.chart-toolbar{padding-bottom:16px}}
@media(max-width:520px){.forecast-summary{padding:0 15px 15px;gap:12px}.forecast-summary strong{font-size:23px;letter-spacing:-.4px}.summary-label{font-size:10px;gap:5px}.forecast-summary small{font-size:10px}.learning-status{font-size:10px}.chart-wrap{height:285px}.legend{font-size:10px}.chart-toolbar h2{font-size:14px}.chart-controls{max-width:102px}.horizon-prob{font-size:21px}.chart-foot{font-size:9px;gap:12px}.chart-foot>span:last-child{max-width:150px;text-align:right}.market-head{margin-bottom:18px}.notice{margin-bottom:18px}.recording{margin-top:12px}}
.market-head #price,.market-head #priceNote{display:none}.market-head{margin:0 0 18px}.market-head .pair{font-size:24px;letter-spacing:-.35px}.recording{padding:10px 16px}.chart-wrap{height:300px}.chart-toolbar{padding-top:17px;padding-bottom:15px}.forecast-summary{padding-bottom:14px}
@media(max-width:520px){.market-head .pair{font-size:21px}.chart-wrap{height:270px}.recording{padding:8px 12px}}
.compare-toggle{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap;color:var(--muted)}.compare-toggle input{accent-color:#8caaff;width:14px;height:14px}.chart-controls{flex-wrap:wrap}.chart-wrap{height:330px}.chart-foot{flex-wrap:wrap}.forecast-summary small{line-height:1.5}.horizon-label b{font-size:12px}.chart-toolbar .legend{margin-top:7px}
.chart-controls .compare-toggle{display:flex}
@media(max-width:680px){.chart-toolbar{align-items:flex-start;gap:12px}.chart-controls{max-width:155px;justify-content:flex-end}.compare-toggle{width:100%;justify-content:flex-end;font-size:10px}.chart-wrap{height:290px}.forecast-summary{gap:12px}.learning-status{flex-wrap:wrap;gap:5px}}
#forecastPathNote{max-width:70%;line-height:1.5;text-align:right}
@media(max-width:680px){#forecastPathNote{max-width:100%;flex-basis:100%;text-align:left}}
.forecast-targets{display:flex;gap:0;padding:13px 24px;background:#131d2a;border-top:1px solid #2a374a}.forecast-target{flex:1;padding:0 16px;border-left:1px solid #35445a;min-width:0}.forecast-target:first-child{padding-left:0;border:0}.forecast-target>span{display:block;font-size:11px;color:#a7bbd7}.forecast-target strong{display:block;font-size:19px;font-weight:600;color:#b9cdff;font-variant-numeric:tabular-nums}.forecast-target small{display:block;font-size:11px;font-variant-numeric:tabular-nums}.chosen-target>span{color:#e0eaff}.chart-toolbar .forecast-key{height:7px;width:7px;border-radius:50%}
.forecast-target .target-timing{color:#9fb0c8;margin-top:4px;line-height:1.5}
@media(max-width:520px){.forecast-targets{padding:12px 14px}.forecast-target{padding:0 9px}.forecast-target strong{font-size:16px}.forecast-target>span,.forecast-target small{font-size:10px}.forecast-target small{line-height:1.5}}

.experiment-control{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 16px;color:var(--muted);font-size:12px}.experiment-control span{font-size:11px}.gap-note{font-size:11px;padding:0 24px 12px;color:#b9a789}

.paper-summary{margin:22px 0;padding:18px 22px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.paper-summary p{font-size:11px;margin-top:8px}.paper-values{display:flex;flex-wrap:wrap;gap:25px;margin:12px 0;color:var(--muted);font-size:11px}.paper-values strong{display:block;color:var(--ink);font-size:18px;font-weight:500}
