/* Isolated dashboard styles; never change backtest table layout. */
.direction-page { --dir-border:#e3e7ed; --dir-muted:#65738a; --dir-ink:#19263d; --dir-bg:#fff; --dir-soft:#f5f7fa; --dir-accent:#365caa; color:var(--dir-ink); padding-bottom:2rem; font-size:14px; line-height:1.55; }
.dark .direction-page { --dir-border:#30394a; --dir-muted:#a0acc0; --dir-ink:#e4eaf3; --dir-bg:#171d29; --dir-soft:#202838; --dir-accent:#9ebcff; }
.dir-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.4rem; }
.dir-heading h1 { font-size:1.9rem; font-weight:600; letter-spacing:-.035em; margin:.25rem 0; }
.dir-eyebrow { font-size:.68rem; font-weight:600; letter-spacing:.13em; color:var(--dir-muted); }
.dir-muted,.dir-meta,.dir-ci { color:var(--dir-muted); }
.dir-meta,.dir-ci { display:block; font-size:.72rem; font-weight:400; line-height:1.55; }
.dir-ci { font-size:.65rem; }
.dir-text-link { color:var(--dir-accent); text-decoration:underline; text-underline-offset:3px; }
.dir-notice { border:1px solid #e3cda1; border-left:3px solid #be8a30; background:#fffbf1; color:#79581d; border-radius:.65rem; padding:.9rem 1.15rem; margin-bottom:1.3rem; font-size:.82rem; }
.dir-notice strong { display:block; margin-bottom:.2rem; }
.dark .dir-notice { background:#302a1e; color:#e1c389; border-color:#695534; }
.dir-controls { display:flex; flex-wrap:wrap; gap:.75rem; align-items:flex-end; margin-bottom:1.3rem; }
.dir-controls label { display:flex; flex-direction:column; gap:.35rem; font-size:.72rem; font-weight:500; color:var(--dir-muted); }
.dir-controls select { border:1px solid var(--dir-border); background:var(--dir-bg); color:var(--dir-ink); border-radius:.5rem; font-size:.8rem; height:38px; padding:0 2rem 0 .65rem; max-width:100%; }
.dir-controls button { height:38px; }
.dir-instruments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-bottom:1.5rem; }
.dir-instrument { padding:1.1rem 1.2rem; border:1px solid var(--dir-border); border-radius:.8rem; background:var(--dir-bg); color:var(--dir-ink); transition:border-color .15s; }
.dir-instrument:hover { border-color:var(--dir-accent); }
.dir-instrument.is-selected { border-color:var(--dir-accent); box-shadow:inset 0 3px 0 var(--dir-accent); }
.dir-instrument-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.8rem; }
.dir-instrument-top strong { font-size:1.1rem; letter-spacing:.025em; }
.dir-instrument-top span { color:var(--dir-muted); font-size:.7rem; }
.dir-card-label { color:var(--dir-muted); font-size:.73rem; margin-bottom:.4rem; }
.dir-instrument .dir-rate { font-size:1.8rem; letter-spacing:-.045em; font-weight:600; }
.dir-instrument > .dir-meta:last-child { margin-top:.55rem; }
.dir-panel { border:1px solid var(--dir-border); border-radius:.8rem; background:var(--dir-bg); margin-bottom:1.3rem; overflow:hidden; }
.dir-panel h2 { font-size:1rem; font-weight:600; letter-spacing:-.015em; }
.dir-section-head { display:flex; gap:.8rem; align-items:flex-start; padding:1.2rem 1.3rem 1rem; }
.dir-section-head p { font-size:.78rem; margin-top:.3rem; max-width:65rem; }
.dir-step { background:var(--dir-soft); color:var(--dir-accent); font-variant-numeric:tabular-nums; font-size:.75rem; padding:.4rem; border-radius:.4rem; }
.dir-table { width:100%; table-layout:fixed; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.dir-table th,.dir-table td { text-align:right; vertical-align:middle; padding:.8rem 1rem; border-top:1px solid var(--dir-border); overflow-wrap:anywhere; }
.dir-table th:first-child { text-align:left; width:25%; }
.dir-table thead th { color:var(--dir-muted); background:var(--dir-soft); font-size:.7rem; font-weight:500; line-height:1.4; }
.dir-table tbody th { font-size:.8rem; font-weight:500; }
.dir-rate { font-size:1.05rem; font-weight:500; }
.dir-total { background:var(--dir-soft); }
.dir-emphasis .dir-rate { color:var(--dir-accent); }
.dir-time { display:block; color:var(--dir-accent); font-size:1rem; font-weight:600; }
.dir-time-start th,.dir-time-start td { border-top-width:2px; }
.dir-footnote { padding:.85rem 1.3rem 1rem; color:var(--dir-muted); font-size:.73rem; }
.dir-footnote p + p { margin-top:.35rem; }
.dir-example { margin:0 1.3rem 1rem; padding:.65rem .8rem; background:var(--dir-soft); border-radius:.5rem; font-size:.78rem; color:var(--dir-muted); }
.dir-empty { padding:1.4rem; }
.dir-empty p { margin-top:.75rem; max-width:65rem; color:var(--dir-muted); }
.dir-method summary { padding:1rem 1.3rem; cursor:pointer; font-weight:500; font-size:.85rem; list-style:revert; }
.dir-method-body { padding:0 1.3rem 1.2rem; color:var(--dir-muted); font-size:.78rem; }
.dir-method-body p + p { margin-top:.75rem; }
.direction-page a:focus-visible,.direction-page select:focus-visible,.direction-page summary:focus-visible { outline:2px solid var(--dir-accent); outline-offset:4px; }
@media (max-width:1100px) { .dir-table th,.dir-table td { padding:.7rem .6rem; } .dir-table tbody th { font-size:.73rem; } .dir-ci { font-size:.62rem; } }
@media (max-width:767px) {
  .dir-heading { align-items:flex-start; } .dir-heading h1 { font-size:1.45rem; } .dir-heading > a { font-size:.72rem; white-space:nowrap; }
  .dir-instruments { grid-template-columns:1fr; gap:.7rem; } .dir-instrument { padding:.85rem 1rem; }
  .dir-controls label { flex:1 1 160px; min-width:0; } .dir-controls button { flex:1 1 160px; justify-content:center; }
  .dir-controls label:has(select[name="premarket"]),.dir-controls label:has(select[name="neutral"]) { flex-basis:100%; }
  .dir-section-head { padding:1rem; } .dir-footnote { padding:.8rem 1rem; } .dir-example { margin:0 1rem .85rem; }
  .dir-table thead { display:none; } .dir-table,.dir-table tbody,.dir-table tr { display:block; width:100%; }
  .dir-table tr { padding:.6rem 1rem; border-top:1px solid var(--dir-border); }
  .dir-table th:first-child { display:block; width:100%; padding:.3rem 0 .6rem; font-size:.85rem; }
  .dir-table td { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 .65rem; width:100%; padding:.45rem 0; border:0; }
  .dir-table th { border:0; } .dir-table td::before { content:attr(data-label); text-align:left; grid-row:1 / span 3; font-size:.74rem; color:var(--dir-muted); align-self:center; }
  .dir-table td > * { grid-column:2; } .dir-table td > strong { font-size:.95rem; }
  .dir-time { display:inline; margin-right:.5rem; } .dir-checkpoints tr.dir-time-start { border-top-width:2px; }
}
