/* Pharos Terminal · 0.9.28 subject cards (Zac, Oct 29, 2026, t1636u / t1640u). Nexus Points and Lesson Packets tabs, and
 * (0.9.30) the dashboard's Nexus Points section.
 * Every rule here is scoped to .pt-cards (the card grid) or form.find.tinted (the subject chips on those two tabs):
 * the one place the Oct 22 one-color rule is lifted. The subject color arrives as --sc (terminal-cards.js). No red. */
.pt-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:4px}
.pt-cards .pc-w{display:flex;flex-direction:column;min-width:0}
.pt-cards .pc{--sc:#7a8da0;display:flex;flex-direction:column;flex:1 1 auto;min-width:0;background:#fff;color:var(--navy);text-decoration:none;border:1px solid var(--line);border-top:4px solid var(--sc);border-radius:10px;padding:12px 16px;transition:box-shadow .15s}
.pt-cards a.pc:hover{box-shadow:0 4px 14px rgba(20,33,61,.13)}
.pt-cards a.pc:focus-visible{outline:none;box-shadow:0 0 0 3px var(--orange)}
.pt-cards .pc-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font:600 11.5px var(--sans);color:var(--navy2)}
.pt-cards .pc-subj{display:inline-flex;align-items:center;gap:6px;min-width:0}
.pt-cards .pc-subj i{flex:none;width:8px;height:8px;transform:rotate(45deg);background:var(--sc);outline:1px solid rgba(20,33,61,.35)}
.pt-cards time,.pt-cards .pc-start{white-space:nowrap}
.pt-cards .pc-start{font:700 10.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--otx)}
.pt-cards .pc-head{display:flex;gap:12px;align-items:flex-start;margin:8px 0 6px}
.pt-cards .pc-tv{--acc:var(--orange)}
.pt-cards .pc-tv .tv{width:44px;height:44px}.pt-cards .pc-tv .tv:before{inset:5px}.pt-cards .pc-tv .tv b{font-size:17px}
.pt-cards .pc h3{font-size:21px;line-height:1.05;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.pt-cards .pc-sum{font-size:13px;line-height:1.45;color:#26324d;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pt-cards .find-hit{display:block;margin:-4px 0 8px}
.pt-cards .as-tag{align-self:flex-start;margin-top:6px}
.pt-cards .pc-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:8px}
.pt-cards .pc-foot .tvlbl{font:700 10.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--navy2);margin:0;text-align:left}
.pt-cards .pc-foot .go{font-weight:700;font-size:13px;white-space:nowrap;margin-left:auto}
.pt-cards .pc-st{display:flex;flex-wrap:wrap;gap:4px}.pt-cards .pc-st .pill{margin:0}
.pt-cards .pc.soon{background:var(--tint2)}
/* 0.9.31 course teasers: a premium course's included lessons, after the packets. Gold "Premium course" chip (brand gold) */
.pt-cards .pc-prem{white-space:nowrap;font:700 10.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--otx);background:color-mix(in srgb,var(--orange) 22%,#fff);border:1px solid var(--orange);border-radius:10px;padding:2px 8px}
.pt-cards .pc-ls{margin:0 0 10px;padding:0 0 0 18px;font-size:13.5px;line-height:1.4}.pt-cards .pc-ls li{margin:3px 0}
.pt-cards .pc-ls a{color:var(--navy);font-weight:600}
.pt-cards .pc-note{font-size:12px;color:var(--navy2);margin:0 0 10px}
.pt-cards .pc-course .pc-foot a.go{color:var(--navy)}
/* 0.9.32 Courses tab (Zac t1818u, Oct 30, 2026): the course cards are packet cards (.pc) with a small series line */
.pt-cards .pc-kick{font:700 10.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--otx);margin:8px 0 -4px}
.pt-cards .pc-hub .pc-sum{-webkit-line-clamp:3}
.pt-cards .find-ss{margin:6px 4px 0 16px;padding:0;font-size:13px}
.pc-more{display:flex;flex-direction:column;align-items:center;gap:6px;margin:22px 0 4px}.pc-more .btn{margin:0}
/* subject chips: 30% subject color on white, navy text, a count; selected = check mark, bold, navy border, gold ring */
.find.tinted .chip small.find-cc{font:700 11px var(--sans);opacity:.75}
.find.tinted .chip.all.on small.find-cc{opacity:.85}
.find.tinted .chip.subj{background:color-mix(in srgb,var(--sc) 30%,#fff);border-color:color-mix(in srgb,var(--sc) 70%,#14213d 10%);color:var(--navy)}
.find.tinted .chip.subj.on{background:color-mix(in srgb,var(--sc) 45%,#fff);color:var(--navy);border:2px solid var(--navy);box-shadow:0 0 0 3px var(--orange);font-weight:800;padding:5px 11px}
.find.tinted .chip.subj .chk{font-weight:900}
.find.tinted .chip.subj:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
/* 0.9.30 "Also:" tag (Zac, Oct 29, 2026): a Nexus Point's other subjects, small and tinted with the first of them (--ac),
 * each name after a small mark in its own color. One line; on phones it is smaller still. */
.pt-cards .pc-also{align-self:flex-start;display:inline-block;max-width:100%;margin:-4px 0 10px;padding:2px 9px;border-radius:10px;font:600 11px/1.5 var(--sans);color:var(--navy);
  background:color-mix(in srgb,var(--ac) 18%,#fff);border:1px solid color-mix(in srgb,var(--ac) 60%,#fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-cards .pc-also i{display:inline-block;width:6px;height:6px;margin:0 4px 1px 3px;vertical-align:middle;transform:rotate(45deg);background:var(--ac);outline:1px solid rgba(20,33,61,.3)}
/* 0.9.30 dashboard (Zac approved the mockup, Oct 29, 2026, 1:58 PM ET): today's featured Nexus Point as one larger card,
 * then the six newest as the tab's cards in two columns (one on phones) */
.pt-cards.pt-dash{grid-template-columns:repeat(2,minmax(0,1fr))}
.pt-cards.pt-feat{grid-template-columns:1fr;margin-top:12px}
.pt-cards .pc-lg{border-top-width:6px;padding:16px 20px 16px}
.pt-cards .pc-flabel{font:700 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
.pt-cards .pc-lg .pc-head{gap:16px;margin:10px 0 8px;align-items:center}
.pt-cards .pc-lg .pc-tv .tv{width:64px;height:64px}.pt-cards .pc-lg .pc-tv .tv:before{inset:6px}.pt-cards .pc-lg .pc-tv .tv b{font-size:23px}
.pt-cards .pc-lg .pc-tv .tvlbl{font-size:9px;margin-top:4px}
.pt-cards .pc-lg h3{font-size:28px;-webkit-line-clamp:3}.pt-cards .pc-lg h3 a{text-decoration:none}
.pt-cards .pc-place{font-size:12.5px;color:var(--navy2);margin-top:4px}
.pt-cards .pc-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px}
.pt-cards .pc-chip{display:inline-flex;align-items:center;gap:6px;font:600 12px var(--sans);padding:4px 10px;border-radius:20px;color:var(--navy);
  background:color-mix(in srgb,var(--sc) 30%,#fff);border:1px solid color-mix(in srgb,var(--sc) 70%,#14213d 10%)}
.pt-cards .pc-chip i{width:7px;height:7px;transform:rotate(45deg);background:var(--sc);outline:1px solid rgba(20,33,61,.35)}
.pt-cards .pc-lg .pc-sum{font-size:14px;-webkit-line-clamp:3;margin-bottom:12px}
.pt-cards .pc-lg .pc-foot{gap:14px;justify-content:flex-start;padding-top:12px}
.pt-cards .pc-lg .pc-foot .btn{margin:0;padding:9px 16px}
.pt-cards .pc-lg .pc-foot .go{text-decoration:none;font-size:14px}
@media(max-width:1100px){.pt-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .pt-cards{grid-template-columns:1fr;gap:12px}.pt-cards .pc h3{font-size:20px}
  .pt-cards.pt-dash{grid-template-columns:1fr}.pt-cards .pc-lg{padding:14px 16px}.pt-cards .pc-lg h3{font-size:24px}
  .pt-cards .pc-lg .pc-head{align-items:flex-start}.pt-cards .pc-lg .pc-foot{flex-wrap:wrap}
  .pt-cards .pc-also{font-size:11.5px;padding:1px 8px}
  /* phones: the subject chips scroll sideways in one row */
  .find.tinted .find-c{flex-wrap:nowrap;overflow-x:auto;padding:4px 2px 8px;margin-right:-14px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .find.tinted .find-c .chip{flex:none;white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){.pt-cards .pc{transition:none}}

/* ------------------------------------------------------------------ 1.1.3 courses (Option A, Zac Nov 1, 2026)
   Course banner, dashboard shelf and the Courses tab grid (terminal.js cxa*). Art is never cropped: the whole image sits
   in a dark 16:9 frame (object-fit: contain). The shelf scrolls sideways inside itself; the page never does. */
.cx-art{position:relative;background:#0b0f19;border-radius:9px 9px 0 0;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cx-art img{width:100%;height:100%;object-fit:contain;display:block}
.cx-art.cx-fb{background:linear-gradient(135deg,#0b0f19,#1b2335)}.cx-art.cx-fb div{text-align:left;padding:0 10%;width:100%}
.cx-art.cx-fb b{display:block;font:400 clamp(28px,4vw,52px)/.9 var(--serif);color:#fff;text-transform:uppercase}.cx-art.cx-fb b.g{color:var(--orange)}
.cx-art.cx-fb small{display:block;margin-top:8px;font:700 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#e8e2d0}
.cx-subj{font:700 10.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--otx);margin:0 0 2px}
.cx-body{padding:10px 14px 12px;min-width:0}.cx-body h3{font-size:21px;line-height:1.05;margin:0 0 6px;overflow-wrap:anywhere}
.cx-st{font:600 12px var(--sans);color:var(--navy2);margin:4px 0 0}.cx-st.dev{color:#5b6270}.cx-st.lock{color:#4b5563}
.cx-prog{height:6px;border-radius:4px;background:#e5e1d6;overflow:hidden;margin-top:6px}.cx-prog span{display:block;height:100%;background:var(--orange)}
.cx-prog.big{height:9px;max-width:360px}
.cx-go{display:inline-block;background:var(--orange);color:var(--navy);font:700 14px var(--sans);padding:10px 18px;border-radius:6px;text-decoration:none}
.cx-all{font:700 13px var(--sans);color:var(--navy);margin-left:12px}
.cx-tile{display:block;min-width:0;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--navy);text-decoration:none;transition:box-shadow .15s}
a.cx-tile:hover{box-shadow:0 6px 18px rgba(20,33,61,.16)}a.cx-tile:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.cx-tile.dev{background:var(--tint2,#f4f2ec)}.cx-tile.dev .cx-art img{filter:grayscale(.65) brightness(.8)}
.cx-tile.locked .cx-art img{filter:grayscale(.85)}
.cx-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);background:#0b0f19;color:#fff;border-radius:12px;overflow:hidden;margin:6px 0 22px;border-bottom:5px solid var(--orange)}
.cx-hero .cx-art{border-radius:0}
.cx-hb{padding:22px 26px;align-self:center;min-width:0}.cx-hb .eyebrow{color:#e8e2d0}.cx-hb h2{color:#fff;font-size:46px;line-height:.95;margin:2px 0 8px}
.cx-hb .lead{color:#e8e2d0;font-size:17px;margin:0 0 6px}.cx-hb .cx-note{color:#c9c4b6;margin:0 0 6px}.cx-hb .cx-st{color:#e8e2d0}.cx-hb .cx-prog{background:#2b3346}
.cx-hb .cx-subj{color:var(--orange)}.cx-hb .cx-all{color:#fff}.cx-acts{margin:14px 0 0}
.cx-shelf{margin:8px 0 18px;min-width:0}.cx-sh{display:flex;align-items:baseline;gap:4px 14px;flex-wrap:wrap}.cx-sh .eyebrow{margin:0}.cx-sh h2{font-size:34px;margin:0}.cx-sh .cx-all{margin-left:auto}
.cx-sub{margin:2px 0 12px}
.cx-row{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/4);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
.cx-row>*{scroll-snap-align:start}
.cx-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
@media (max-width:1000px){.cx-row{grid-auto-columns:calc((100% - 32px)/3)}.cx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cx-hb h2{font-size:36px}}
@media (max-width:640px){.cx-hero{grid-template-columns:1fr}.cx-hb{padding:16px 18px}.cx-hb h2{font-size:34px}
  .cx-row{grid-auto-columns:72%}.cx-grid{grid-template-columns:1fr}.cx-sh h2{font-size:28px}}
.cx-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:6px}.cx-big.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cx-tile.lg .cx-body{padding:14px 18px 16px}.cx-tile.lg h3{font-size:28px}.cx-line{font-size:14px;line-height:1.45;margin:0 0 6px;color:#26324d}
@media (max-width:1000px){.cx-big,.cx-big.n2{grid-template-columns:repeat(2,minmax(0,1fr))}.cx-big.n3>:last-child{grid-column:1/-1}}
@media (max-width:640px){.cx-big,.cx-big.n2{grid-template-columns:1fr}}
/* 1.1.3 (Zac t2207u): the compact dashboard Nexus Points */
.pt-cards .pc-lg.pc-compact{padding:12px 16px}.pt-cards .pc-lg.pc-compact h3{font-size:24px;-webkit-line-clamp:2}
.pt-cards .pc-lg.pc-compact .pc-head{margin:6px 0 6px}.pt-cards .pc-lg.pc-compact .pc-sum{-webkit-line-clamp:2;margin-bottom:8px}
.pt-cards .pc-lg.pc-compact .pc-foot{padding-top:8px}
.np-rows{list-style:none;margin:6px 0 0;padding:0;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}
.np-rows li+li{border-top:1px solid var(--line)}
.np-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:9px 14px;color:var(--navy);text-decoration:none;border-left:4px solid var(--sc)}
.np-row:hover .np-rt{text-decoration:underline}.np-row:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}
.np-row .pc-chip{display:inline-flex;align-items:center;gap:6px;font:600 11.5px var(--sans);padding:3px 9px;border-radius:20px;background:color-mix(in srgb,var(--sc) 16%,#fff);white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis}
.np-row .pc-chip i{width:7px;height:7px;flex:none;transform:rotate(45deg);background:var(--sc);outline:1px solid rgba(20,33,61,.35)}
.np-rt{font:700 15px/1.25 var(--sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.np-row time{font:600 12px var(--sans);color:var(--navy2);white-space:nowrap}
.np-tv{font:700 13px var(--sans);min-width:34px;text-align:center;padding:3px 6px;border-radius:6px;background:var(--navy);color:#fff}
@media (max-width:640px){.np-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}.np-row .pc-chip{grid-column:1;justify-self:start}.np-tv{grid-column:2;grid-row:1/3;align-self:center}
  .np-rt{grid-column:1;white-space:normal}.np-row time{grid-column:1}}
.cx-hero .cx-art{align-self:center}.cx-all{white-space:nowrap}
@media (max-width:900px){.cx-hero{grid-template-columns:1fr}.cx-hero .cx-art{align-self:stretch}}
