/*
Theme Name: Efficiency+
Theme URI: https://marcbeaton.co.uk
Author: Slop Factory
Author URI: https://marcbeaton.co.uk
Description: Shared design system for the NFL model brands (Snap Count, Line of Scrimmage). Paper/slate grounds, mono tabular numerals, per-brand accent set by a child theme. Classic theme + block patterns for the weekly model preview. Do not activate directly — use a child theme (snap-count / line-of-scrimmage).
Version: 1.0.1
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: efficiency
*/

/* =========================================================================
   PALETTE — structural grounds (light/dark + explicit data-theme override).
   --accent / --accent-soft are DEFAULTS; a child theme overrides them.
   ========================================================================= */
:root{
  --bg:#F3F1EA; --surface:#FBFAF5; --surface2:#EFECE2; --ink:#161A20; --muted:#5D6572;
  --line:#DCD6C9; --accent:#1F8A4C; --accent-soft:#4FB07A; --pos:#2E8B57; --neg:#BF5138;
  --barbg:#E4DFD2; --shadow:0 1px 2px rgba(20,20,20,.06),0 6px 20px rgba(20,20,20,.05);
  --home:var(--accent); --away:#6B7C8C;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0D141E; --surface:#141F2B; --surface2:#0F1925; --ink:#E9EEF4; --muted:#8F9DAD;
  --line:#213141; --accent:#2FBF71; --accent-soft:#2A9D5C; --pos:#48B981; --neg:#E37860;
  --barbg:#1A2634; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 26px rgba(0,0,0,.34);
  --home:var(--accent); --away:#6C8299;
}}
:root[data-theme="light"]{
  --bg:#F3F1EA; --surface:#FBFAF5; --surface2:#EFECE2; --ink:#161A20; --muted:#5D6572;
  --line:#DCD6C9; --accent:#1F8A4C; --accent-soft:#4FB07A; --pos:#2E8B57; --neg:#BF5138;
  --barbg:#E4DFD2; --home:var(--accent); --away:#6B7C8C;
}
:root[data-theme="dark"]{
  --bg:#0D141E; --surface:#141F2B; --surface2:#0F1925; --ink:#E9EEF4; --muted:#8F9DAD;
  --line:#213141; --accent:#2FBF71; --accent-soft:#2A9D5C; --pos:#48B981; --neg:#E37860;
  --barbg:#1A2634; --home:var(--accent); --away:#6C8299;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); line-height:1.5; -webkit-font-smoothing:antialiased;}

/* container (was the artifact's .wrap) */
.wrap{--sans:-apple-system,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","Cascadia Code","Roboto Mono",Menlo,Consolas,monospace;
  background:var(--bg); color:var(--ink); font-family:var(--sans);
  line-height:1.5; padding:clamp(18px,4vw,44px);
  max-width:1160px; margin:0 auto;}
:root{--sans:-apple-system,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","Cascadia Code","Roboto Mono",Menlo,Consolas,monospace;}
.wrap b{font-weight:700}
.wrap a{color:var(--accent); text-decoration:none}
.wrap a:hover{text-decoration:underline}
.mono,.num{font-family:var(--mono); font-variant-numeric:tabular-nums}

/* masthead */
.eyebrow{font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent); font-weight:600}
.brand-logo{display:inline-block; line-height:0; margin-bottom:8px}
.brand-logo-img{height:clamp(58px,7vw,78px); width:auto; max-width:100%; display:block}
.brand-logo-img--dark{display:none}

/* home/archive: logo is the hero, centered — no redundant site-name heading */
.mast--home{text-align:center; padding-top:6px}
.mast--home .brand-logo{margin:0 auto 10px}
.mast--home .brand-logo-img{height:clamp(88px,15vw,156px)}
.mast--home .sub{margin-left:auto; margin-right:auto}
.mast--home .rule{background:linear-gradient(90deg,transparent,var(--accent),transparent)}
.mast--home .mast-nav{justify-content:center}

/* season → week switcher (site-wide). week row = single horizontal scroll strip
   (18 weeks must never wrap into a tall block on mobile). */
.season-nav{margin-top:16px; display:flex; flex-direction:column; gap:8px}
.mast--home .season-nav{max-width:680px; margin-left:auto; margin-right:auto}
.season-row{display:flex; flex-wrap:wrap; gap:6px; align-items:center}
.mast--home .season-row{justify-content:center}
.week-row{display:flex; flex-wrap:nowrap; gap:6px; align-items:center; overflow-x:auto;
  -webkit-overflow-scrolling:touch; scroll-snap-type:x proximity; padding-bottom:6px;
  scrollbar-width:thin; scrollbar-color:var(--line) transparent}
.week-row::-webkit-scrollbar{height:6px}
.week-row::-webkit-scrollbar-thumb{background:var(--line); border-radius:3px}
.season-lab{font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin-right:4px; flex:0 0 auto}
.season-pill,.week-pill{font-family:var(--mono); font-size:12px; text-decoration:none; color:var(--muted);
  border:1px solid var(--line); border-radius:6px; padding:3px 9px; background:var(--surface); line-height:1.6}
.week-pill{flex:0 0 auto; min-width:32px; text-align:center; scroll-snap-align:center}
.season-pill:hover,.week-pill:hover{color:var(--ink); border-color:var(--accent)}
.season-pill.is-active,.week-pill.is-active{color:#0D141E; background:var(--accent);
  border-color:var(--accent); font-weight:700}
@media (prefers-color-scheme:dark){
  .brand-logo-img--light{display:none} .brand-logo-img--dark{display:block}
}
:root[data-theme="light"] .brand-logo-img--light{display:block}
:root[data-theme="light"] .brand-logo-img--dark{display:none}
:root[data-theme="dark"]  .brand-logo-img--light{display:none}
:root[data-theme="dark"]  .brand-logo-img--dark{display:block}
.mast h1{font-size:clamp(34px,7vw,66px); line-height:.95; letter-spacing:-.02em; margin:.18em 0 .1em;
  text-wrap:balance; font-weight:800}
.mast h1 a{color:inherit}
.mast h1 .yr{color:var(--accent)}
.mast .sub{color:var(--muted); font-size:14px; max-width:60ch}
.rule{height:2px; background:linear-gradient(90deg,var(--accent),transparent); margin:20px 0 0; border:0}

/* disclaimer */
.note{margin:22px 0 34px; padding:14px 16px 14px 18px; background:var(--surface2);
  border-left:3px solid var(--accent); border-radius:0 8px 8px 0; font-size:12.5px; color:var(--muted)}
.note b{color:var(--ink)}

/* section head */
.sh{display:flex; align-items:baseline; gap:12px; margin:38px 0 16px}
.sh h2{font-size:13px; letter-spacing:.16em; text-transform:uppercase; margin:0; font-weight:700}
.sh .sh-note{font-size:12px; color:var(--muted); font-family:var(--mono)}
.sh::after{content:""; flex:1; height:1px; background:var(--line)}

/* slate board */
.board{display:grid; gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:12px; overflow:hidden}
.brow{background:var(--surface); display:grid; gap:10px 18px; padding:13px 16px;
  grid-template-columns:1.1fr 1.5fr 1.4fr 1.5fr; align-items:center}
.bmatch{font-family:var(--mono); font-weight:700; font-size:15px; display:flex; gap:7px; align-items:center}
.bmatch .at{color:var(--muted); font-weight:400}
.bline{display:flex; gap:7px; flex-wrap:wrap}
.bscore{font-family:var(--mono); font-size:13px; color:var(--muted); font-variant-numeric:tabular-nums}
.bscore b{color:var(--ink)}
.pill{font-family:var(--mono); font-size:11.5px; font-weight:600; padding:3px 8px; border-radius:5px;
  white-space:nowrap; border:1px solid transparent}
.pill-fav{color:var(--pos); background:color-mix(in srgb,var(--pos) 12%,transparent);
  border-color:color-mix(in srgb,var(--pos) 30%,transparent)}
.pill-ou{color:var(--muted); background:var(--surface2); border-color:var(--line)}

/* win prob bar */
.wp{display:flex; height:7px; border-radius:4px; overflow:hidden; background:var(--barbg)}
.wp-seg{display:block; height:100%}
.wp-home{background:var(--home)} .wp-away{background:var(--away)}
.wp-lab{display:flex; justify-content:space-between; font-family:var(--mono); font-size:10.5px;
  color:var(--muted); margin-top:4px}

/* fantasy grid */
.fgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px}
.fcol{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:14px 14px 8px; box-shadow:var(--shadow)}
.fcol h3{margin:0 0 10px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent)}
.plist{list-style:none; margin:0; padding:0; display:flex; flex-direction:column}
.pl{display:grid; grid-template-columns:auto 1fr auto; gap:2px 8px; align-items:center;
  padding:8px 0; border-top:1px solid var(--line)}
.plist>li:first-child{border-top:0}
.pl-pos{font-family:var(--mono); font-size:9.5px; font-weight:700; padding:2px 5px; border-radius:4px;
  background:var(--surface2); color:var(--muted); letter-spacing:.04em; align-self:start}
.pl-pos.pos-RB{color:var(--pos)} .pl-pos.pos-WR{color:var(--away)}
.pl-pos.pos-TE{color:var(--accent)} .pl-pos.pos-QB{color:var(--neg)}
.pl-name{font-weight:600; font-size:13px}
.pl-pts{font-family:var(--mono); font-weight:700; font-size:14px; color:var(--ink); text-align:right}
.pl-line{grid-column:2/3; font-family:var(--mono); font-size:10.5px; color:var(--muted)}
.pl-td{grid-column:3/4; grid-row:2; display:flex; align-items:center; gap:5px; justify-content:flex-end}
.tdm{width:34px; height:5px; background:var(--barbg); border-radius:3px; overflow:hidden; display:inline-block}
.tdm-fill{display:block; height:100%; background:var(--accent)}
.tdm-n{font-family:var(--mono); font-size:9.5px; color:var(--muted)}

/* td magnets */
.tdmag{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:8px 16px; box-shadow:var(--shadow)}
.tdmag ol{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:0 26px}
.tdmag li{display:flex; align-items:center; gap:9px; padding:9px 0; border-top:1px solid var(--line)}
.tdmag li:nth-child(-n+2){border-top:0}
.tdmag .pl-name{flex:1}
.tdmag .pl-team{font-family:var(--mono); font-size:10.5px; color:var(--muted)}

/* model reads */
.reads{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.rcard{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:15px 16px; box-shadow:var(--shadow)}
.rcard h4{margin:0 0 6px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent)}
.rcard p.rc-note{margin:0 0 10px; font-size:11.5px; color:var(--muted)}
.rcard ol{list-style:none; margin:0; padding:0}
.rcard li{display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-top:1px solid var(--line);
  font-size:13px}
.rcard li:first-of-type{border-top:0}
.mk{font-family:var(--mono); font-weight:600}
.mv{font-family:var(--mono); color:var(--muted); font-variant-numeric:tabular-nums}

/* game cards */
.cards{display:grid; grid-template-columns:repeat(2,1fr); gap:16px}
.card{background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow)}
.card-h{padding:14px 16px 12px; background:var(--surface2); border-bottom:1px solid var(--line)}
.bug{display:flex; align-items:center; gap:10px; font-family:var(--mono); font-weight:800}
.bug-team{font-size:17px; letter-spacing:.02em}
.bug-sc{font-size:19px; color:var(--ink); font-variant-numeric:tabular-nums}
.bug-at{color:var(--muted); font-weight:400; font-size:13px}
.card-line{display:flex; gap:7px; align-items:center; margin-top:9px; flex-wrap:wrap}
.venue{font-size:10.5px; color:var(--muted); font-family:var(--mono)}
.card-win{padding:11px 16px 4px}
.tcols{display:grid; grid-template-columns:1fr 1fr; gap:0}
.tcol{padding:6px 16px 12px}
.tcol:first-child{border-right:1px solid var(--line)}
.tcol-h{display:flex; align-items:baseline; gap:7px; padding:8px 0 2px}
.tcol-h b{font-family:var(--mono); font-size:14px}
.tcol-nick{font-size:11px; color:var(--muted)}
.plist-sm .pl{grid-template-columns:auto 1fr auto; padding:6px 0}
.plist-sm .pl-name{font-size:12px}
.plist-sm .pl-pts{font-size:12.5px}
.plist-sm .pl-line{font-size:9.5px}

/* footer */
.foot{margin-top:40px; padding-top:18px; border-top:1px solid var(--line); font-size:11.5px; color:var(--muted)}
.foot b{color:var(--ink)}
.foot .foot-nav{margin-bottom:10px; display:flex; gap:16px; flex-wrap:wrap}
.foot .foot-nav a{color:var(--muted); font-family:var(--mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase}
.foot .foot-nav a:hover{color:var(--accent)}

/* accordion slate */
.slate-tools{display:flex; justify-content:flex-end; margin:0 0 10px}
.slate-btn{font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  padding:6px 12px; border-radius:6px; border:1px solid var(--line); background:var(--surface);
  color:var(--muted); cursor:pointer}
.slate-btn:hover{color:var(--ink); border-color:var(--accent)}
.slate{display:flex; flex-direction:column; gap:10px}
.game{background:var(--surface); border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:var(--shadow)}
.game[open]{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.g-sum{list-style:none; cursor:pointer; display:grid; align-items:center; gap:10px 18px;
  grid-template-columns:1.05fr 1.3fr 1.35fr 1.5fr auto; padding:13px 16px}
.g-sum::-webkit-details-marker{display:none}
.g-sum:hover{background:var(--surface2)}
.g-sum:focus-visible{outline:2px solid var(--accent); outline-offset:-2px}
.g-match{font-family:var(--mono); font-weight:700; font-size:15px; display:flex; gap:7px; align-items:center}
.g-match .at{color:var(--muted); font-weight:400}
.g-line{display:flex; gap:7px; flex-wrap:wrap}
.g-score{font-family:var(--mono); font-size:13px; color:var(--muted); font-variant-numeric:tabular-nums}
.g-score b{color:var(--ink)}
.g-chev{font-size:15px; color:var(--accent); transition:transform .18s ease; justify-self:end}
.game[open] .g-chev{transform:rotate(180deg)}
.g-body{border-top:1px solid var(--line)}
.g-venue{padding:8px 16px 0; font-family:var(--mono); font-size:10.5px; color:var(--muted)}
@media (prefers-reduced-motion:reduce){.g-chev{transition:none}}

/* ---- theme chrome: post/archive listing + WP core content ---- */
.entry-content > *{margin-top:1rem}
.entry-content h2{font-size:22px; letter-spacing:-.01em}
.entry-content h3{font-size:18px}
.entry-content img{max-width:100%; height:auto; border-radius:10px}
.entry-content .wp-block-embed{margin:1.2rem 0}
.arch{display:flex; flex-direction:column; gap:14px; margin-top:24px}
.arch-item{background:var(--surface); border:1px solid var(--line); border-radius:12px;
  padding:16px 18px; box-shadow:var(--shadow)}
.arch-item h2{margin:0 0 4px; font-size:19px; letter-spacing:-.01em}
.arch-item h2 a{color:var(--ink)}
.arch-item h2 a:hover{color:var(--accent)}
.arch-meta{font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted)}
.arch-item p{margin:.5rem 0 0; font-size:13.5px; color:var(--muted)}
.readmore{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.06em}
.pagination{display:flex; gap:10px; margin:26px 0; font-family:var(--mono); font-size:12px}
.pagination a,.pagination span{padding:6px 11px; border:1px solid var(--line); border-radius:6px; color:var(--muted)}
.pagination .current{color:var(--accent); border-color:var(--accent)}

@media (max-width:820px){
  .fgrid{grid-template-columns:repeat(2,1fr)}
  .reads{grid-template-columns:1fr}
  .tdmag ol{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .g-sum{grid-template-columns:1fr auto; gap:8px 12px}
  .g-line{grid-column:1/2} .g-score{grid-column:1/3; order:5}
  .g-win{grid-column:1/3} .g-chev{grid-row:1; grid-column:2}
  .tcols{grid-template-columns:1fr}
  .tcol:first-child{border-right:0; border-bottom:1px solid var(--line)}
}
@media (max-width:520px){
  .fgrid{grid-template-columns:1fr}
  .sh{margin:26px 0 12px}
  .note{margin:16px 0 24px}
  .mast--home .brand-logo-img{height:clamp(70px,20vw,120px)}
}
