:root {
    color-scheme:dark;
    --bg:#11141b;
    --panel:#191e29;
    --raised:#202737;
    --line:#343d50;
    --ink:#edf0f5;
    --muted:#aab5c9;
    --accent:#acbadf;
    --benchmark:#77b6bd;
    --danger:#efadab;
    font-family:"Segoe UI",Arial,sans-serif
}
* {
    box-sizing:border-box
}
body {
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-size:14px;
    line-height:1.5
}
a {
    color:inherit;
    text-underline-offset:4px
}
button,input,select {
    font:inherit;
    color:inherit;
    border:1px solid var(--line);
    border-radius:6px;
    min-height:40px;
    background:var(--panel);
    padding:8px 11px;
    max-width:100%
}
button {
    cursor:pointer;
    transition:background-color 120ms,border-color 120ms
}
button:hover:not(:disabled) {
    background:var(--raised);
    border-color:var(--accent)
}
button:disabled {
    opacity:.4;
    cursor:default
}
input,select {
    width:100%;
    min-width:0
}
input::placeholder {
    color:#929db2
}
:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:3px
}
.primary {
    background:var(--accent);
    color:var(--bg);
    border-color:var(--accent);
    font-weight:650
}
.primary:hover:not(:disabled) {
    background:#c2ccE5
}
.site-header,main {
    width:min(1184px,calc(100% - 64px));
    margin:auto
}
.site-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    min-height:88px;
    border-bottom:1px solid var(--line)
}
.brand {
    text-decoration:none;
    font-size:19px;
    font-weight:650;
    letter-spacing:-.035em
}
.brand span {
    display:block;
    font-size:12px;
    font-weight:400;
    letter-spacing:0;
    color:var(--muted);
    margin-top:2px
}
.site-header nav {
    display:flex;
    gap:5px;
    align-items:center
}
.site-header nav a {
    min-height:40px;
    padding:9px 13px;
    color:var(--muted);
    text-decoration:none;
    border-radius:6px
}
.site-header nav a[aria-current=page] {
    color:var(--ink);
    background:var(--panel)
}
.site-header nav a:hover {
    color:var(--ink)
}
main {
    padding:32px 0 24px
}
.page-heading {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:40px;
    padding-bottom:30px
}
.eyebrow {
    margin:0 0 9px;
    font:12px/1.5 Consolas,monospace;
    color:var(--muted)
}
h1 {
    margin:0;
    font-size:36px;
    line-height:1.14;
    font-weight:560;
    letter-spacing:-.04em
}
.page-heading>p {
    max-width:340px;
    margin:0;
    color:var(--muted);
    font-size:15px;
    line-height:1.7
}
.research-desk {
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    gap:32px;
    align-items:start
}
.library {
    min-width:0
}
label {
    font-size:12px;
    color:var(--muted)
}
form>label {
    display:block;
    margin-bottom:8px
}
.search-row {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px
}
.search-row input {
    min-height:46px;
    font-size:15px
}
.search-row button {
    min-height:46px
}
#status {
    margin:8px 0 16px;
    min-height:18px;
    color:var(--muted);
    font-size:12px
}
.topics {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:14px
}
.topics button {
    padding:7px 10px;
    min-height:36px;
    font-size:12px;
    background:transparent
}
.topics button[aria-pressed=true] {
    color:var(--ink);
    background:var(--raised);
    border-color:var(--accent)
}
.result-tools {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border-block:1px solid var(--line);
    padding:11px 0
}
.result-tools p {
    margin:0;
    font-size:12px;
    color:var(--muted)
}
.result-tools>div {
    display:flex;
    gap:7px;
    align-items:center
}
.result-tools button,.result-tools select {
    font-size:12px;
    min-height:38px;
    width:auto
}
.result-tools button[aria-pressed=true] {
    border-color:var(--accent);
    color:var(--accent)
}
#saved-count {
    font-weight:500;
    margin-left:3px
}
.paper {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:20px;
    padding:21px 0;
    border-bottom:1px solid var(--line)
}
.paper .meta {
    font:12px/1.5 Consolas,monospace;
    color:var(--muted);
    margin:0 0 5px
}
.paper h2 {
    font:400 20px/1.3 Georgia,serif;
    margin:0 0 8px;
    overflow-wrap:anywhere
}
.paper h2 a {
    text-decoration:none
}
.paper h2 a:hover {
    text-decoration:underline;
    text-decoration-color:var(--accent)
}
.paper p {
    color:var(--muted);
    font-size:12px;
    margin:0
}
.paper>button {
    font-size:12px;
    background:transparent;
    min-width:61px
}
.paper>button[aria-pressed=true] {
    color:var(--accent);
    border-color:var(--accent)
}
.pagination {
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:15px;
    margin:16px 0;
    color:var(--muted);
    font:12px Consolas,monospace
}
.pagination button {
    width:40px
}
.reading-list {
    border-block:1px solid var(--line);
    color:var(--muted);
    font-size:12px
}
.reading-list summary {
    cursor:pointer;
    padding:15px 0
}
.reading-list>div {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding-bottom:8px
}
.reading-list button {
    font-size:12px
}
.reading-list .import-label {
    display:inline-flex;
    align-items:center;
    position:relative;
    border:1px solid var(--line);
    border-radius:6px;
    min-height:40px;
    padding:8px 11px;
    color:var(--ink);
    cursor:pointer
}
.import-label input {
    position:absolute;
    inset:0;
    opacity:0;
    cursor:pointer
}
.import-label:focus-within {
    outline:2px solid var(--accent);
    outline-offset:3px
}
.walk-forward {
    min-width:0;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:10px;
    padding:22px
}
.forward-head h2 {
    font-size:25px;
    line-height:1.15;
    font-weight:520;
    letter-spacing:-.035em;
    margin:0 0 18px
}
.panel-note {
    color:var(--muted);
    font-size:12px;
    line-height:1.65;
    margin:12px 0
}
.experiment-inputs {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px
}
.experiment-inputs label {
    display:grid;
    gap:6px;
    min-width:0
}
.experiment-inputs button {
    align-self:end;
    border-color:var(--accent);
    color:var(--accent)
}
#forward-state {
    min-height:40px
}
#status:empty,#forward-state:empty {
    display:none
}
#forward-stats {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    border-block:1px solid var(--line);
    padding:14px 0
}
#forward-stats strong {
    display:block;
    font:22px/1.3 Consolas,monospace;
    color:var(--ink);
    letter-spacing:-1px
}
#forward-stats small {
    display:block;
    font-size:12px;
    color:var(--muted)
}
.plot-label {
    display:flex;
    flex-wrap:wrap;
    gap:5px 16px;
    justify-content:space-between;
    color:var(--muted);
    font-size:12px;
    margin:16px 0 5px
}
.plot-label i {
    display:inline-block;
    width:10px;
    height:2px;
    vertical-align:middle;
    margin:0 4px 3px 5px
}
.strategy-key {
    background:var(--accent)
}
.benchmark-key {
    background:var(--benchmark)
}
#forward-chart {
    width:100%;
    min-height:240px;
    touch-action:pan-y
}
.equity-plot svg {
    display:block;
    width:100%;
    height:auto
}
.chart-cursor {
    min-height:51px;
    color:var(--muted);
    font:12px/1.6 Consolas,monospace;
    margin:8px 0 14px
}
.chart-cursor b {
    color:var(--ink);
    font-weight:400
}
.data-note {
    font:12px/1.7 Consolas,monospace;
    color:var(--muted);
    margin:0 0 12px
}
.detail-link {
    display:block;
    padding:10px 0;
    color:var(--accent);
    font-size:14px
}
.boundary-note {
    border-top:1px solid var(--line);
    padding-top:14px;
    margin-top:10px;
    color:var(--muted);
    font-size:12px;
    line-height:1.7
}
footer {
    display:flex;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid var(--line);
    margin-top:32px;
    padding-top:18px;
    color:var(--muted);
    font-size:12px
}
.skip {
    position:absolute;
    left:20px;
    top:-90px;
    background:var(--raised);
    padding:10px;
    z-index:4
}
.skip:focus {
    top:10px
}
[hidden] {
    display:none!important
}
@media(max-width:1000px) {
    .research-desk {
        grid-template-columns:minmax(0,1fr) 340px;
        gap:24px
    }
    .site-header,main {
        width:calc(100% - 40px)
    }
}
@media(max-width:900px) {
    .research-desk {
        display:flex;
        flex-direction:column
    }
    .library {
        display:contents
    }
    .walk-forward {
        order:2;
        width:100%;
        margin:4px 0 12px
    }
    .library>form,.library>.topics {
        order:-1;
        width:100%
    }
    .library>.result-tools,.library>#papers,.library>.pagination,.library>.reading-list {
        order:1;
        width:100%
    }
    .experiment-inputs {
        grid-template-columns:repeat(4,minmax(0,1fr))
    }
    #forward-chart {
        min-height:0
    }
    .page-heading {
        gap:25px
    }
}
@media(max-width:560px) {
    .site-header,main {
        width:calc(100% - 28px)
    }
    .site-header {
        align-items:start;
        flex-direction:column;
        gap:14px;
        padding:18px 0 12px
    }
    .site-header nav {
        gap:3px;
        flex-wrap:wrap
    }
    .site-header nav a {
        padding:8px 10px;
        font-size:13px
    }
    .page-heading {
        display:block;
        padding-bottom:24px
    }
    .page-heading>p {
        margin-top:16px;
        font-size:14px
    }
    h1 {
        font-size:32px
    }
    .search-row {
        grid-template-columns:1fr
    }
    .topics button {
        min-height:40px
    }
    .walk-forward {
        padding:18px
    }
    .experiment-inputs {
        grid-template-columns:1fr 1fr
    }
    .forward-head h2 br {
        display:none
    }
    .forward-head h2 {
        font-size:25px
    }
    .result-tools {
        flex-wrap:wrap
    }
    .result-tools>div {
        margin-left:auto
    }
    .paper {
        gap:12px;
        padding:19px 0
    }
    .paper h2 {
        font-size:20px
    }
    footer {
        display:block;
        line-height:1.8
    }
    footer a {
        display:block;
        margin-top:8px
    }
}
@media(prefers-reduced-motion:reduce) {
    * {
        transition:none!important;
        scroll-behavior:auto!important
    }
}
