/* Agent Nelly's Lab page (1.0, 2026-10-09), from assets/zic/zic.css on LoLo's page shell (writers.css + lolo.css).
   Nelly's accent is copper: #a35f22 on light pages, #b87333 on dark ones, never the other way round (#b87333 on #ffffff is
   3.79:1, #a35f22 on #0e1628 3.62:1). Computed WCAG 2.x, sRGB:
   #a35f22 on --paper #ffffff 4.98:1, on --surface-2 #f6f8fd 4.69:1; #b87333 on --paper #0e1628 4.76:1, on --surface-2 #121b31
   4.51:1, on --dark #060b1a 5.17:1 (the founding band, dark in both themes); button ink #ffffff on #a35f22 4.98:1, #060b1a on
   #b87333 5.17:1. Accent text sits only on --paper, --surface-2 or --dark: on the --nl-soft wash the accent falls under AA
   (4.13:1 light, 3.76:1 dark), so text on the wash takes --ink (16.35:1 light, 13.12:1 dark) or --ink-2 (7.12:1, 7.98:1),
   and the accent there is a dot, a bar or a hairline. --nl-line (the accent at 45%) is a decorative hairline, 1.89:1 light and
   1.90:1 dark: every card it edges has its own fill, so the boundary does not rest on it. Green and red mean Up and Down and
   nothing else. */
.nl-page{--nl-copper:#a35f22;--nl-copper-d:#b87333;
  --nl-acc:var(--nl-copper);--nl-acc-ink:#ffffff;--nl-soft:rgba(163,95,34,.10);--nl-line:color-mix(in srgb,var(--nl-acc) 45%,transparent)}
:root[data-theme="dark"] .nl-page{--nl-acc:var(--nl-copper-d);--nl-acc-ink:#060b1a;--nl-soft:rgba(184,115,51,.16)}

/* hero: the medallion carries its own ring, so the frame is only a soft copper glow */
.nl-hero .lo-av.nl-av{box-shadow:0 22px 56px -22px color-mix(in srgb,var(--nl-acc) 60%,transparent);background:transparent}
.nl-hero .nl-av .lo-av-m{display:block;width:100%;height:100%}
.nl-hero .nl-av img,.nl-hero .nl-av svg{display:block;width:100%;height:100%;border-radius:50%}
.nl-av.is-thinking::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid var(--nl-acc);opacity:0;animation:lo-breathe 2.4s ease-out infinite;pointer-events:none}
@media (prefers-reduced-motion:reduce){.nl-av.is-thinking::after{animation:none}}
.nl-hero .wr-chips li{border-color:var(--nl-line)}
.nl-hero .wr-follow .btn-brand{background:var(--nl-acc);border-color:var(--nl-acc);color:var(--nl-acc-ink)}
.nl-hero .wr-follow .btn-brand:hover{filter:brightness(1.08)}
.nl-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}

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

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

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

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

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

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

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

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

/* rail */
.nl-page .lo-sb-desk{border-color:var(--nl-line)}
.nl-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 copper (5.17:1) */
.nl-page .lo-join h2 em{color:var(--nl-copper-d)}

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

/* lolo.css colours these for LoLo's dark log card; Nelly's log card follows the theme, so they take the page's ink here */
.nl-tlog .lo-tlog-k{color:var(--nl-acc)}
.nl-tlog .lo-tlog-s{color:var(--ink-2)}
.nl-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(--nl-acc);color:var(--nl-acc-ink);font:800 16px/1 var(--cond)}
.nl-pn-c .lp-v span{display:inline;margin:0;font-size:9.5px}
.lo-calls .nl-first{grid-column:1/-1}
.lo-calls:has(.nl-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) */
.nl-page .mn-m.is-on .mn-net{color:color-mix(in srgb,var(--paper) 80%,var(--ink))}
.nl-page .mn-m.is-on .mn-net.is-gain{color:#7ee2a8}.nl-page .mn-m.is-on .mn-net.is-loss{color:#ff9aa4}
:root[data-theme="dark"] .nl-page .mn-m.is-on .mn-net.is-gain{color:#087043}
:root[data-theme="dark"] .nl-page .mn-m.is-on .mn-net.is-loss{color:#b42333}

/* Indicators tab (2026-10-09): the indicator list, the buy terms, "My view right now" and "Check my entries". Accent only as a
   bar, a dot or a button fill; text on the wash takes --ink or --ink-2, as above. With and against carry a word, never colour alone. */
.nl-ind .nl-say{margin-top:12px}
.nl-ind-l{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nl-ind-i{padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2);min-width:0}
.nl-ind-i h3{margin:0 0 6px;font:800 17px/1.25 var(--sans);color:var(--ink)}
.nl-ind-i p{margin:0;font:500 14.5px/1.5 var(--sans);color:var(--ink-2)}
.nl-ind-i p+p{margin-top:6px}
.nl-ind-i b{color:var(--ink)}
.nl-ind-w{padding-top:8px;border-top:1px solid var(--line)}
.nl-ind-i p.nl-ind-w{margin-top:10px}
.nl-ind-w span{display:block;font:700 11px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px}
.nl-ind-x{margin:12px 0 0;font:500 14px/1.5 var(--sans);color:var(--ink-3)}
.nl-terms{margin-top:18px;padding:18px 20px;border:1px solid var(--nl-line);border-radius:var(--r-lg);background:var(--nl-soft)}
.nl-terms h3{margin:0 0 8px;font:800 17px/1.25 var(--sans);color:var(--ink)}
.nl-terms h3::before{content:"";display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:50%;background:var(--nl-acc);vertical-align:1px}
.nl-terms ul{margin:0;padding-left:20px;font:600 15px/1.55 var(--sans);color:var(--ink)}
.nl-terms p{margin:8px 0 0;font:500 14.5px/1.5 var(--sans);color:var(--ink-2)}
.nl-now,.nl-ent{margin-top:28px;padding:18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper)}
.nl-now-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.nl-now-top .wr-h{margin:0}
.nl-now-t{font:500 13px/1.3 var(--sans);color:var(--ink-3);font-variant-numeric:tabular-nums}
.nl-now-e{margin-top:12px;padding:16px 18px;border:1px dashed var(--line-2);border-radius:var(--r);background:var(--surface-2)}
.nl-now-et{margin:0;font:800 17px/1.35 var(--sans);color:var(--ink)}
.nl-now-es{margin:6px 0 0;font:500 14.5px/1.5 var(--sans);color:var(--ink-2)}
.nl-now-call{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding:14px 16px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line)}
.nl-now-call .nl-tp{font-size:13px;padding:6px 10px}
.nl-now-k{margin:0;font:700 11px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.nl-now-c{margin:3px 0 0;font:700 16px/1.3 var(--sans);color:var(--ink)}
.nl-now-c b{font:800 20px/1 var(--cond);font-variant-numeric:tabular-nums}
.nl-now-tally{margin:0 0 0 auto;font:600 14px/1.3 var(--sans)}
.nl-now-l{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.nl-fr{display:grid;grid-template-columns:84px 120px minmax(0,1fr);align-items:baseline;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);border-left:4px solid var(--line-2)}
.nl-fr.is-with{border-left-color:var(--gain)}.nl-fr.is-against{border-left-color:var(--loss)}
.nl-fr-m{font:800 11px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.nl-fr.is-with .nl-fr-m{color:var(--gain)}.nl-fr.is-against .nl-fr-m{color:var(--loss)}
.nl-fr-k{font:700 14px/1.3 var(--sans);color:var(--ink)}
.nl-fr-t{font:500 14px/1.4 var(--sans);color:var(--ink-2);min-width:0}
.nl-fr-t small{display:block;font-size:12.5px;color:var(--ink-3)}
.nl-now-go{margin:12px 0 0;font-size:14px}
.nl-now-f{margin:12px 0 0;font-size:13px;color:var(--ink-3)}
.nl-ent-lede{margin:6px 0 0;max-width:66ch;font:500 15px/1.55 var(--sans);color:var(--ink-2)}
.nl-ent-l{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px}
.nl-en{display:grid;grid-template-columns:minmax(0,1.3fr) auto 64px minmax(0,1.4fr);align-items:center;gap:12px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);text-decoration:none}
.nl-en:hover{border-color:var(--nl-acc)}
.nl-en:focus-visible{outline:2px solid var(--nl-acc);outline-offset:2px}
.nl-en-w{font:600 14px/1.3 var(--sans);font-variant-numeric:tabular-nums}
.nl-en .nl-tp{justify-self:start}
.nl-en-p{font:800 17px/1 var(--cond);font-variant-numeric:tabular-nums;text-align:right}
.nl-en-r{font:600 13.5px/1.3 var(--sans);color:var(--ink-2);text-align:right}
.nl-ent-cta.btn{display:flex;justify-content:center;margin-top:16px;background:var(--nl-acc);border-color:var(--nl-acc);color:var(--nl-acc-ink)}
.nl-ent-cta.btn:hover{filter:brightness(1.08)}
@media (max-width:860px){.nl-ind-l{grid-template-columns:1fr}}
@media (max-width:640px){
  .nl-now,.nl-ent{padding:14px}
  .nl-fr{grid-template-columns:auto minmax(0,1fr);gap:4px 10px}
  .nl-fr-t{grid-column:1/-1}
  .nl-now-tally{margin-left:0;width:100%}
  .nl-en{grid-template-columns:auto minmax(0,1fr) auto;gap:4px 10px}
  .nl-en-w{grid-column:1/-1}
  .nl-en-r{text-align:right}
}
.nl-page{--ag-acc:var(--nl-acc);--ag-soft:var(--nl-soft);--ag-line:var(--nl-line)}   /* the Record card (assets/pages/lolo.css .ag-rec), 2026-10-15 */
