/* The forex agents' page styles (2026-10-18). GENERATED by tools/forex/fx_page.py from assets/doge/halo.css (Agent Halo's), in
   the forex teal (#2bb3c0 on dark, #0e7c86 on light, 4.9:1 on white). Edit Halo's styles or the builder, never this file. */
/* Agent Halo's Lab page (1.0, 2026-10-17), Halo's page sheet in Halo's orange, both shades from his drawing (tools/doge/halo_art.py). #0e7c86 on light pages (4.90:1 on --paper #ffffff, 4.61:1 on --surface-2 #f6f8fd), #2bb3c0 on dark ones (6.76:1 on --paper #0e1628, 6.42:1 on --surface-2 #121b31, 7.36:1 on --dark #060b1a); button ink #ffffff on #0e7c86 4.90:1, #060b1a on #2bb3c0 7.36:1. The accent hairline at 45% is decorative: every card it edges has its own fill. Green and red mean Up and Down and nothing else. */
.hl-page{--hl-or:#0e7c86;--hl-or-d:#2bb3c0;
  --hl-acc:var(--hl-or);--hl-acc-ink:#ffffff;--hl-soft:rgba(14,124,134,.10);--hl-line:color-mix(in srgb,var(--hl-acc) 45%,transparent)}
:root[data-theme="dark"] .hl-page{--hl-acc:var(--hl-or-d);--hl-acc-ink:#060b1a;--hl-soft:rgba(43,179,192,.16)}

/* hero: the medallion carries its own ring, so the frame is only a soft violet glow */
.hl-hero .lo-av.hl-av{box-shadow:0 22px 56px -22px color-mix(in srgb,var(--hl-acc) 60%,transparent);background:transparent}
.hl-hero .hl-av .lo-av-m{display:block;width:100%;height:100%}
.hl-hero .hl-av img,.hl-hero .hl-av svg{display:block;width:100%;height:100%;border-radius:50%}
.hl-av.is-thinking::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid var(--hl-acc);opacity:0;animation:lo-breathe 2.4s ease-out infinite;pointer-events:none}
@media (prefers-reduced-motion:reduce){.hl-av.is-thinking::after{animation:none}}
.hl-hero .wr-chips li{border-color:var(--hl-line)}
.hl-hero .wr-follow .btn-brand{background:var(--hl-acc);border-color:var(--hl-acc);color:var(--hl-acc-ink)}
.hl-hero .wr-follow .btn-brand:hover{filter:brightness(1.08)}
.hl-ref{margin:12px 0 0;font:500 13px/1.4 var(--sans);color:var(--ink-2);display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}

.hl-h2{margin:0 0 12px;font:800 20px/1.2 var(--sans);color:var(--ink);text-wrap:balance}
.hl-body .wr-bio p{max-width:66ch}

/* how Halo trades */
.hl-how{margin-top:26px}
.hl-list{margin:0;padding-left:22px;font:500 16px/1.55 var(--sans);color:var(--ink-2)}
.hl-list li{margin:0 0 10px;padding-left:4px}
.hl-list li::marker{color:var(--hl-acc);font-weight:800}
.hl-list b{color:var(--ink)}

/* notes: what Halo watches, the hours, the cents note, where the rules come from */
.hl-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:26px}
.hl-note{padding:18px 20px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2)}
.hl-note h3{margin:0 0 8px;font:800 17px/1.25 var(--sans);color:var(--ink)}
.hl-note p{margin:0;font:500 15px/1.55 var(--sans);color:var(--ink-2)}
.hl-note p+p{margin-top:8px}
.hl-note--scale,.hl-note--study{grid-column:1/-1}
.hl-note--scale{border-color:var(--hl-line);background:var(--hl-soft)}
.hl-note--scale h3{color:var(--hl-acc)}
.hl-hours{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px;font:600 14px/1.4 var(--sans);color:var(--ink)}
.hl-hours li{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:10px;background:var(--paper);border:1px solid var(--line)}
.hl-hours li span{color:var(--ink-3);font-weight:500}

/* Halo's own words */
.hl-say{margin:22px 0 0;padding:16px 20px;border-left:3px solid var(--hl-acc);border-radius:0 var(--r) var(--r) 0;background:var(--hl-soft)}
.hl-say blockquote{margin:0}
.hl-say p{margin:0;font:700 18px/1.45 var(--sans);color:var(--ink);text-wrap:pretty}
.hl-say figcaption{margin-top:6px;font:600 13px/1.3 var(--sans);color:var(--ink-2)}

/* FAQ */
.hl-faq-s{margin-top:28px}
.hl-faq{margin:0;display:grid;gap:10px}
.hl-faq>div{padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.hl-faq dt{font:800 16px/1.35 var(--sans);color:var(--ink)}
.hl-faq dd{margin:6px 0 0;font:500 15px/1.55 var(--sans);color:var(--ink-2)}

/* record */
.hl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.hl-grid>div{padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);min-width:0}
.hl-grid dt{font:700 11px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.hl-grid dd{margin:8px 0 6px;font:800 34px/1 var(--cond);color:var(--ink);font-variant-numeric:tabular-nums}
.hl-grid small{font:500 13px/1.4 var(--sans);color:var(--ink-3)}
.hl-stats{margin-top:26px}
.hl-page .is-pos{color:var(--gain)}.hl-page .is-neg{color:var(--loss)}
.hl-first{padding:22px 24px;border:1px dashed var(--hl-line);border-radius:var(--r-lg);background:var(--hl-soft)}
.hl-first-t{margin:0;font:800 20px/1.35 var(--sans);color:var(--ink);text-wrap:balance}
.hl-first-s{margin:8px 0 0;font:500 14.5px/1.5 var(--sans);color:var(--ink-2)}
.hl-fg{grid-template-columns:minmax(0,1fr)}
.lch-l.hl-l{stroke:var(--hl-acc)}.lch-p.hl-p{fill:var(--hl-acc)}

/* trade log */
.hl-tlog{padding:18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2)}
.hl-tlog-h{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hl-tlog-h>div{text-align:center;min-width:0}.hl-tlog-h h2{margin:2px 0}
.hl-nav{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--paper);color:var(--ink);font:700 20px/1 var(--sans);cursor:pointer}
.hl-nav:hover{border-color:var(--hl-acc)}
.hl-tlog-l{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.hl-tl,.hl-tlog-empty{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.hl-tlog-empty{color:var(--ink-2);font:500 14px/1.5 var(--sans)}
.hl-first-li{border-style:dashed;border-color:var(--hl-line);background:var(--hl-soft);color:var(--ink);font-weight:700}
.hl-tl--off{border-style:dashed;background:repeating-linear-gradient(135deg,transparent 0 8px,rgba(127,127,127,.06) 8px 16px)}
.hl-tl--off .hl-tl-r,.hl-tl--off .hl-tl-note{color:var(--ink-2)}
.hl-tl-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hl-tl-w{font:700 14px/1.2 var(--sans);font-variant-numeric:tabular-nums}
.hl-tl-r{font-size:13px;color:var(--ink-2)}
.hl-tl-n{margin-left:auto;font:800 16px/1 var(--cond);font-variant-numeric:tabular-nums}
.hl-tl-d,.hl-tl-g{margin:6px 0 0;font-size:13px;color:var(--ink-2)}
.hl-tl-g{margin-top:3px;font-variant-numeric:tabular-nums}
.hl-tl-note{margin:4px 0 0;font-size:13.5px;color:var(--ink)}
.hl-tp{font:700 11px/1 var(--sans);padding:4px 8px;border-radius:6px;color:#fff;letter-spacing:.04em}
.hl-tp.is-up{background:var(--gain)}.hl-tp.is-down{background:var(--loss)}.hl-tp.is-flat{background:var(--line-2);color:var(--ink-2)}
:root[data-theme="dark"] .hl-tp.is-up,:root[data-theme="dark"] .hl-tp.is-down{color:#07101f}
.hl-ok{color:var(--gain);font-weight:700}.hl-no{color:var(--loss);font-weight:700}
.hl-tlog-f{margin:12px 0 0;font-size:13px;color:var(--ink-3)}
.hl-tlog .lo-tlog-c{margin:4px 0 14px;color:var(--ink-2)}
.hl-tlog .lt-cr{font-size:17px;color:var(--ink)}
.hl-tlog .lt-cr em{color:var(--gain);text-shadow:none}
.hl-tlog .lt-cf--cum{color:var(--ink-3)}
.hl-tlog .lo-tlog-c .is-gain{color:var(--gain)}.hl-tlog .lo-tlog-c .is-loss{color:var(--loss)}.hl-tlog .lo-tlog-c .is-flat{color:var(--ink-2)}

/* patch notes */
.hl-pn-lede{color:var(--ink-2);margin:4px 0 14px}
.hl-pn-c{padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2);margin-bottom:12px}
.hl-pn-c.is-live{border-color:var(--hl-line);box-shadow:inset 3px 0 0 var(--hl-acc)}
.hl-pn-c h3{margin:2px 0;font:800 20px/1.2 var(--sans);color:var(--ink)}
.hl-pn-when{margin:0;font-size:13px;color:var(--ink-3)}
.hl-pn-st{margin-left:6px;padding:2px 8px;border-radius:999px;background:var(--hl-soft);color:var(--hl-acc);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.hl-pn-c ul{margin:10px 0 0;padding-left:18px;color:var(--ink-2)}.hl-pn-c li{margin:4px 0}
.hl-pn-why{margin:8px 0 0;font-size:14px;color:var(--ink-2)}

/* rail */
.hl-page .lo-sb-desk{border-color:var(--hl-line)}
.hl-disc{margin:26px 0 8px}

/* the founding band keeps LoLo's dark card (--dark in both themes), so its accent is always the dark-surface violet */
.hl-page .lo-join h2 em{color:var(--hl-or-d)}

@media (max-width:860px){.hl-notes{grid-template-columns:1fr}}
@media (max-width:640px){
  .hl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hl-grid dd{font-size:28px}
  .hl-note{padding:16px}
  .hl-first{padding:18px 16px}.hl-first-t{font-size:18px}
}

/* lolo.css colours these for LoLo's dark log card; Halo's log card follows the theme, so they take the page's ink here */
.hl-tlog .lo-tlog-k{color:var(--hl-acc)}
.hl-tlog .lo-tlog-s{color:var(--ink-2)}
.hl-pn-c .lp-v{display:inline-flex;align-items:baseline;gap:6px;width:auto;height:auto;margin:0 0 6px;padding:5px 10px;border-radius:8px;background:var(--hl-acc);color:var(--hl-acc-ink);font:800 16px/1 var(--cond)}
.hl-pn-c .lp-v span{display:inline;margin:0;font-size:9.5px}
.lo-calls .hl-first{grid-column:1/-1}
.lo-calls:has(.hl-first){display:block}

/* the month mini nav (lolo.css .mn*): the chosen chip is ink on paper inverted, so its net needs its own colours to keep
   AA in both themes (lolo.css uses --ink-3 and light greens there, 3.3:1 and 1.4:1 on the inverted chip) */
.hl-page .mn-m.is-on .mn-net{color:color-mix(in srgb,var(--paper) 80%,var(--ink))}
.hl-page .mn-m.is-on .mn-net.is-gain{color:#7ee2a8}.hl-page .mn-m.is-on .mn-net.is-loss{color:#ff9aa4}
:root[data-theme="dark"] .hl-page .mn-m.is-on .mn-net.is-gain{color:#087043}
:root[data-theme="dark"] .hl-page .mn-m.is-on .mn-net.is-loss{color:#b42333}
.hl-page{--ag-acc:var(--hl-acc);--ag-soft:var(--hl-soft);--ag-line:var(--hl-line)}   /* the Record card (assets/pages/lolo.css .ag-rec), 2026-10-15 */
