/* ==========================================================================
   stylesheet-e-v1.css — ESPN-style page styles (ESPN body font + Anek Devanagari display).
   Edit this file directly. No build step.
   --------------------------------------------------------------------------
   RULES
     - Every class starts with "e-". Everything is scoped under #e (the <main id="e"> opened in
       header_v3.php and closed in footer_v2.php).
     - The reset right below discards site-wide styles for elements inside #e (all:revert),
       so only this file styles page content. header/footer styling lives in stylesheet-v4.css.
     - Colors and fonts only via the tokens in the "#e{" block (never hard-code hex).
     - Dark mode: set <html data-theme="dark"> (no automatic dark).
   ADD AN ELEMENT: copy markup from espn_components.html, add new rules at the bottom as "#e .e-name{…}".
   ========================================================================== */
#e :is(div,p,h1,h2,h3,h4,h5,h6,ul,ol,li,a,button,input,select,textarea,label,table,caption,thead,tbody,tfoot,tr,th,td,section,article,aside,nav,header,footer,main,small,b,strong,i,em,u,img,hr,form,pre,code,dl,dt,dd){all:revert}
#e{display:block;position:relative;z-index:2;isolation:isolate}  /* z-index:2 (the old footer logo uses z-index:1) keeps fixed bits inside the page (dock, sheets, toasts) above the old footer that follows </main> */
/* Layout: ESPN main-page skeleton. Black top nav, secondary tab bar, scoreboard strip, then 3 columns (left rail / feed / right rail) on a grey page. All colors and fonts come from ESPN's own page.css values; accent is ESPN's blue, red is not used. */
#e{--page:#edeef0; --card:#fff; --text:#48494a; --head:#1d1e1f; --mute:#6c6d6f; --faint:#a5a6a7;
  --line:#dcdddf; --div:#f1f2f3; --ctl:#cbccce; --zebra:#f7f7f8; --hl:#e4edf8;
  --link:#3772df; --link-hi:#305bc8; --btn-on:#fff; --nav:#000; --nav-text:#fff; --plus:#fab200;
  --pos:#1a8a3e; --neg:#c0392b;
  --c-goal:#3772df; --c-high:#1a8a3e; --c-low:#c0392b; --c-diff:#0f8b9d; --c-total:#a8710f;
  --fs-add:0px; /* extra px added to every font size; set to 1px on mobile (see end of file) */
  --font:-apple-system,BlinkMacSystemFont,"Roboto","Arial","Helvetica Neue",Helvetica,sans-serif;
  --display:"Anek Devanagari",-apple-system,BlinkMacSystemFont,"Roboto","Arial","Helvetica Neue",Helvetica,sans-serif;}
:root[data-theme="dark"] #e{--page:#171a2e; --card:#20243c; --text:#dfe2ee; --head:#fff; --mute:#a3a8c0; --faint:#737998;
  --line:#343a5c; --div:#2a2f4d; --ctl:#454c72; --zebra:#252945; --hl:#2c335a;
  --link:#6c9bf0; --link-hi:#8ab0f5; --btn-on:#121213; --nav:#000; --pos:#3ddc84; --neg:#ff6b72;
  --c-goal:#588ae4; --c-high:#2fae63; --c-low:#e0525a; --c-diff:#3ab5c6; --c-total:#c8912f; color-scheme:dark}
#e *{box-sizing:border-box}
#e{background:var(--page);color:var(--text);font-family:var(--font);font-size:calc(14px + var(--fs-add,0px));line-height:1.45;margin:0}
#e a{color:var(--link);text-decoration:none}
#e a:hover{color:var(--link-hi)}
#e h1,#e h2,#e h3,#e h4{color:var(--head);margin:0}
#e :focus-visible{outline:2px solid var(--link);outline-offset:2px}
#e .e-wrap{max-width:1240px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
/* ───────── top nav ───────── */
#e .e-nav{background:var(--nav);color:var(--nav-text)}
#e .e-nav .e-wrap{display:flex;align-items:center;gap:18px;height:48px}
#e .e-logo{font-family:var(--display);font-size:calc(21px + var(--fs-add,0px));letter-spacing:.5px;color:#fff}
#e .e-nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none}
#e .e-nav li a{display:block;padding:14px 10px 12px;color:#e8e8e8;font-size:calc(13px + var(--fs-add,0px));font-weight:700;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;border-bottom:3px solid transparent}
#e .e-nav li a:hover,#e .e-nav li a.e-on{color:#fff;border-bottom-color:var(--plus)}
#e .e-nav .e-sp{flex:1}
#e .e-nav .e-btn{background:var(--plus);color:#000;border-color:var(--plus)}
#e .e-sub{background:var(--card);border-bottom:1px solid var(--line)}
#e .e-sub .e-wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
#e .e-sub a{padding:10px 12px 8px;font-size:calc(13px + var(--fs-add,0px));font-weight:500;color:var(--mute);white-space:nowrap;border-bottom:2px solid transparent}
#e .e-sub a.e-on{color:var(--head);border-color:var(--head);font-weight:700}
/* ───────── scoreboard strip ───────── */
#e .e-strip{background:var(--card);border-bottom:1px solid var(--line)}
#e .e-strip .e-wrap{display:flex;gap:8px;padding-top:10px;padding-bottom:10px;overflow-x:auto;scrollbar-width:none;align-items:stretch}
#e .e-chip{flex:0 0 150px;border:1px solid var(--line);border-radius:6px;padding:6px 10px;background:var(--card)}
#e .e-chip .e-st{font-size:calc(11px + var(--fs-add,0px));font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.3px}
#e .e-chip .e-tm{display:flex;justify-content:space-between;font-size:calc(13px + var(--fs-add,0px));font-weight:500;color:var(--head)}
#e .e-chip .e-tm b{font-weight:700;font-variant-numeric:tabular-nums}
#e .e-chip.e-live .e-st{color:var(--pos)}
#e .e-strip .e-nav-arrow{flex:0 0 auto;align-self:center}
/* ───────── page grid ─────────
   <div class="e-grid e-cols-3|e-cols-2|e-cols-2l|e-cols-1"> with .e-col children (.e-left / .e-main / .e-right)
   e-cols-3 = left rail + main + right rail · e-cols-2 = main + right rail · e-cols-2l = left rail + main · e-cols-1 = single column
   PHP: e_cols(3) / e_cols(2,'right') / e_cols(2,'left') / e_cols(1), then e_col('left'|'main'|'right') … e_col_end(), e_cols_end() */
#e .e-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
#e .e-cols-3{grid-template-columns:240px minmax(0,1fr) 300px}
#e .e-cols-2{grid-template-columns:minmax(0,1fr) 300px}
#e .e-cols-2l{grid-template-columns:240px minmax(0,1fr)}
#e .e-col{display:grid;gap:16px;min-width:0}
@media (max-width:1000px){
#e .e-cols-3{grid-template-columns:minmax(0,1fr) 280px}
#e .e-cols-3 .e-left{grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
#e .e-cols-2{grid-template-columns:minmax(0,1fr) 280px}
}
@media (max-width:768px){
#e .e-cols-3,#e .e-cols-2,#e .e-cols-2l{grid-template-columns:minmax(0,1fr)}
}
/* ───────── module / card ───────── */
#e .e-mod{background:var(--card);border-radius:10px;padding:16px;min-width:0;box-shadow:0 4px 14px rgba(0,0,0,.25)}
#e .e-mod>header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
#e .e-mod h2{font-family:var(--display);font-weight:700;font-size:calc(25px + var(--fs-add,0px));line-height:1.15}
#e .e-mod h3{font-size:calc(16px + var(--fs-add,0px));font-weight:700}
#e .e-mod .e-sec{padding:12px 0 14px;border-top:1px solid var(--line)}
#e .e-mod .e-sec:first-of-type{border-top:0;padding-top:4px}
#e .e-mod footer{border-top:1px solid var(--line);margin:0 -16px -16px;padding:10px 16px;font-size:calc(12px + var(--fs-add,0px))}
/* ───────── buttons / controls ───────── */
#e .e-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 18px;border-radius:40px;border:1px solid var(--link);background:var(--link);color:var(--btn-on);font:600  calc(12px + var(--fs-add,0px))/30px var(--font);cursor:pointer;white-space:nowrap}
#e .e-btn:hover{background:var(--link-hi);border-color:var(--link-hi);color:var(--btn-on)}
#e .e-btn.e-out{background:transparent;color:var(--link)}
#e .e-btn.e-out:hover{background:var(--hl);color:var(--link-hi)}
#e .e-btn.e-grey{background:var(--div);border-color:var(--ctl);color:var(--head)}
#e .e-btn.e-grey:hover{background:var(--line);border-color:var(--ctl);color:var(--head)}
#e .e-btn.e-ghost{background:none;border-color:transparent;color:var(--link);padding:0 8px}
#e .e-btn.e-sm{height:26px;line-height:24px;padding:0 12px;font-size:calc(11px + var(--fs-add,0px))}
#e .e-btn[disabled]{background:#b5b7b7;border-color:#b5b7b7;color:#fff;cursor:not-allowed}
#e .e-btn.e-plus{background:var(--plus);border-color:var(--plus);color:#000}
#e .e-btn.e-ghost:hover { text-decoration: underline; }
#e .e-sel{height:32px;padding:0 30px 0 14px;border:1px solid var(--ctl);border-radius:40px;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%233772df' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center;appearance:none;font:400  calc(13px + var(--fs-add,0px)) var(--font);color:var(--head);cursor:pointer}
#e .e-field{height:34px;padding:0 10px;border:1px solid var(--ctl);border-radius:6px;background:var(--card);font:400  calc(14px + var(--fs-add,0px)) var(--font);color:var(--head);min-width:0}
#e .e-field:focus{outline:0;border-color:var(--head)}
#e .e-seg{display:inline-flex;border:1px solid var(--ctl);border-radius:40px;padding:2px;gap:2px}
#e .e-seg button{border:0;background:none;height:26px;padding:0 14px;border-radius:40px;font:500  calc(13px + var(--fs-add,0px)) var(--font);color:var(--head);cursor:pointer}
#e .e-seg button.e-on{background:#111;color:#fff;font-weight:700}
:root[data-theme="dark"] #e .e-seg button.e-on{background:#fff;color:#111}
#e .e-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
#e .e-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:10px}
#e .e-tabs a{flex:1;text-align:center;padding:10px 6px 9px;font-size:calc(13px + var(--fs-add,0px));font-weight:700;color:var(--faint);border-bottom:2px solid transparent;margin-bottom:-1px}
#e .e-tabs a.e-on{color:var(--head);border-color:var(--head)}
#e .e-badge{display:inline-block;font-size:calc(11px + var(--fs-add,0px));font-weight:540;padding:1px 7px 0px 7px;border-radius:3px;background:var(--div);color:var(--head);text-transform:uppercase;}
#e .e-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c,var(--faint));margin-right:5px}
/* ───────── lists, feed items ───────── */
#e .e-list{list-style:none;margin:0;padding:0}
#e .e-list li{padding:8px 0;border-top:1px dotted var(--ctl);display:flex;gap:10px;align-items:center;font-size:calc(13px + var(--fs-add,0px))}
#e .e-list li:first-child{border-top:0}
#e .e-list .e-ph{flex:0 0 28px;height:28px;border-radius:50%;background:var(--div)}
#e .e-list small{color:var(--mute);display:block;font-size:calc(11px + var(--fs-add,0px))}
#e .e-item{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--line)}
#e .e-item:first-of-type{border-top:0}
#e .e-item .e-img{aspect-ratio:16/10;background:var(--div);border-radius:6px}
#e .e-item h3{font-size:calc(16px + var(--fs-add,0px));line-height:1.25}
#e .e-item p{margin:3px 0 0;color:var(--mute);font-size:calc(14px + var(--fs-add,0px))}
#e .e-item .e-meta{font-size:calc(11px + var(--fs-add,0px));color:var(--faint);margin-top:6px;text-transform:uppercase;letter-spacing:.3px}
#e .e-hero{display:block;aspect-ratio:16/8;background:var(--div);border-radius:8px;margin-bottom:10px}
/* ───────── stat leaders ───────── */
#e .e-leaders{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));border:1px solid var(--line)}
#e .e-leaders>div{padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 -1px -1px 0}
#e .e-leaders .e-k{font-size:calc(12px + var(--fs-add,0px));font-weight:700;color:var(--head)}
#e .e-leaders .e-v{font-size:calc(28px + var(--fs-add,0px));font-weight:700;line-height:1.2;color:var(--head);font-variant-numeric:tabular-nums}
#e .e-leaders .e-s{font-size:calc(11px + var(--fs-add,0px));color:var(--mute)}
#e .e-leaders .e-hl{background:var(--hl)}
/* ───────── tables ───────── */
#e .e-tw{overflow-x:auto;margin:0 -16px;padding:0 16px}
#e table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
#e caption{text-align:left;font-size:calc(16px + var(--fs-add,0px));font-weight:700;color:var(--head);padding:0 0 8px}
#e thead th{font-size:calc(11px + var(--fs-add,0px));font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--mute);text-align:right;padding:8px 10px 6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}
#e thead th a{color:inherit;text-decoration:underline}
#e thead th:first-child,#e tbody td:first-child{text-align:left}
#e tbody td{padding:9px 10px 8px;text-align:right;font-size:calc(13px + var(--fs-add,0px));color:var(--text);border-bottom:1px solid var(--div);white-space:nowrap}
#e tbody tr:nth-child(even){background:var(--zebra)}
#e tbody tr.e-grp td{background:var(--card);font-weight:700;font-size:calc(11px + var(--fs-add,0px));letter-spacing:.3px;text-transform:uppercase;color:var(--head);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left}
#e th.e-hl,#e td.e-hl{background:var(--hl)!important}
#e td.e-pos{color:var(--pos)}
#e td.e-neg{color:var(--neg)}
#e tbody td:first-child{color:var(--head);font-weight:500}
#e .e-tx td:last-child,#e .e-tx th:last-child{text-align:left;white-space:normal;width:70%}
#e .e-tx td:first-child{width:30%}
/* ───────── misc ───────── */
#e .e-empty{border:1px dashed var(--ctl);border-radius:6px;padding:22px;text-align:center;color:var(--faint);font-size:calc(13px + var(--fs-add,0px))}
#e .e-gl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 18px;font-size:calc(13px + var(--fs-add,0px));color:var(--mute)}
#e .e-gl b{color:var(--head)}
#e .e-ad{background:var(--div);border-radius:6px;min-height:250px;display:grid;place-items:center;color:var(--faint);font-size:calc(11px + var(--fs-add,0px));letter-spacing:.5px;text-transform:uppercase}
#e .e-foot{background:var(--nav);color:#bbb;padding:22px 0 26px;font-size:calc(12px + var(--fs-add,0px))}
#e .e-foot .e-wrap{display:flex;gap:18px 28px;flex-wrap:wrap;justify-content:space-between}
#e .e-foot a{color:#ddd}
#e .e-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
/* theme toggle button */
#e .e-themebtn{position:fixed;right:max(12px,env(safe-area-inset-right,0px));bottom:max(12px,env(safe-area-inset-bottom,0px));z-index:50}
#e .e-ul:hover { text-decoration: underline; }
/* ───────── 14 · EXTRAS (new, reusable) ───────── */
/* Alert / notice:  <div class="e-alert e-info|ok|warn|bad">Text</div> */
#e .e-alert{border:1px solid var(--line);border-left:4px solid var(--c,var(--link));border-radius:6px;background:var(--card);padding:10px 14px;font-size:calc(14px + var(--fs-add,0px));color:var(--text)}
#e .e-alert.e-info{--c:var(--link)}
#e .e-alert.e-ok{--c:var(--pos)}
#e .e-alert.e-warn{--c:var(--plus)}
#e .e-alert.e-bad{--c:var(--neg)}
#e .e-alert b{color:var(--head)}
/* Form row:  <label class="e-fr"><span>Label</span><input class="e-field"></label>  (.fr.inline = label left) */
#e .e-fr{display:grid;gap:4px;font-size:calc(12px + var(--fs-add,0px));font-weight:700;color:var(--head)}
#e .e-fr small{font-weight:400;color:var(--mute);font-size:calc(11px + var(--fs-add,0px))}
#e .e-fr.e-inline{grid-auto-flow:column;align-items:center;justify-content:start;gap:10px}
#e .e-chk{display:inline-flex;align-items:center;gap:8px;font-size:calc(13px + var(--fs-add,0px));color:var(--head);cursor:pointer}
#e .e-chk input{width:16px;height:16px;accent-color:var(--head);margin:0}
#e .e-switch{position:relative;width:40px;height:22px;border-radius:22px;background:var(--ctl);border:0;cursor:pointer;padding:0;transition:background .15s}
#e .e-switch::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
#e .e-switch.e-on,#e .e-switch[aria-checked="true"]{background:#48494a}
#e .e-switch.e-on::after,#e .e-switch[aria-checked="true"]::after{transform:translateX(18px)}
/* Round icon button:  <button class="e-ibtn" aria-label="…"><svg/></button>   (.ibtn.out = outlined) */
#e .e-ibtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--ctl);background:var(--card);color:var(--mute);display:inline-grid;place-items:center;cursor:pointer;padding:0;font:600 18px var(--font)}
#e .e-ibtn:hover{background:var(--hl);color:var(--link);border-color:var(--link)}
#e .e-ibtn.e-sm{width:32px;height:32px;font-size:15px}
#e .e-ibtn.e-plus{border:2px solid var(--link);color:var(--link);background:transparent;font-size:26px}
/* sheet close button: bare (no circle/border/padding) and small */
#e .e-sheet>header .e-ibtn{width:auto;height:auto;border:0;border-radius:0;background:none;padding:0;font-size:20px;line-height:1}
#e .e-sheet>header .e-ibtn:hover{background:none;color:var(--text)}
#e .e-sheet>header .e-ibtn .material-symbols-outlined{font-size:20px}
/* Filter chips:  <button class="e-chip e-on">All</button> */
#e .e-chip{height:28px;padding:0 12px;border:1px solid var(--ctl);border-radius:8px;background:var(--card);color:var(--head);font:600  calc(12px + var(--fs-add,0px)) var(--font);cursor:pointer}
#e .e-chip.e-on{background:#48494a;border-color:#48494a;color:#fff}
#e .e-chip.e-sm{height:24px;padding:0 9px;border-radius:6px;font-size:calc(11px + var(--fs-add,0px))}
/* Solid colour badges (type colours):  <span class="e-badge e-solid e-goal|e-high|e-low|e-diff|e-total">Goal</span>
   Colours are the --c-* tokens; --c can also be set inline for any other hue. */
#e .e-badge.e-solid{background:color-mix(in srgb,var(--c,var(--head)) 88%,transparent);color:#fff;letter-spacing:.3px}
#e .e-badge.e-goal{--c:var(--c-goal)}
#e .e-badge.e-high{--c:var(--c-high)}
#e .e-badge.e-low{--c:var(--c-low)}
#e .e-badge.e-diff{--c:var(--c-diff)}
#e .e-badge.e-total{--c:var(--c-total)}
/* Progress / bar:  <div class="e-bar" style="--v:60%"><i></i></div> */
#e .e-bar{height:8px;border-radius:8px;background:var(--div);overflow:hidden}
#e .e-bar>i{display:block;height:100%;width:var(--v,0%);background:var(--head);border-radius:8px}
#e .e-bar.e-pos>i{background:var(--pos)}
#e .e-bar.e-neg>i{background:var(--neg)}
/* Modal (desktop) / bottom sheet (mobile):
   <div class="e-scrim e-on"></div><div class="e-sheet e-on"><header><h3>Title</h3><button class="e-ibtn e-sm">×</button></header><div class="e-body">…</div><footer><button class="e-btn e-out">Cancel</button><button class="e-btn">Save</button></footer></div>
   Toggle visibility by adding/removing .on on both. */
#e .e-scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .2s;z-index:2000}
#e .e-scrim.e-on{opacity:1;pointer-events:auto}
#e .e-sheet{position:fixed;z-index:2001;left:50%;top:50%;transform:translate(-50%,-46%);width:min(520px,calc(100% - 32px));max-height:80vh;display:flex;flex-direction:column;background:var(--card);border-radius:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
#e .e-sheet.e-on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}
#e .e-sheet>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
#e .e-sheet>.e-body{padding:16px 16px 16px 16px;overflow:auto;font-size:calc(15px + var(--fs-add,0px)) !important;line-height:1.7}   /* 14px on desktop; mobile adds 1px via --fs-add = 15px */
#e .e-sheet h4{font-size:18px;margin-bottom:-12px;}
#e .e-ul:hover { text-decoration: underline; }

/* Sheet footer (optional): <footer> after .e-body, for action buttons. Stays visible while the body scrolls.
   Wide variant (optional): add class e-wide to .e-sheet (desktop only; on mobile it is already full width). */
#e .e-sheet>footer{flex:none;display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}
#e .e-sheet.e-wide{width:min(860px,calc(100% - 32px))}
@media (max-width:768px){#e .e-sheet{left:0;right:0;top:auto;bottom:0;width:auto;transform:translateY(24px);border-radius:16px 16px 0 0;max-height:88vh;max-height:calc(100dvh - 88px)}
#e .e-sheet.e-on{transform:none}
#e .e-sheet>footer .e-btn{flex:1}
}
/* Toast:  <div class="e-toast">Saved</div>  (position fixed bottom, one at a time) */
#e .e-toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--head);color:var(--card);font-size:calc(13px + var(--fs-add,0px));font-weight:600;padding:9px 16px;border-radius:40px;z-index:200;box-shadow:0 4px 14px rgba(0,0,0,.25)}
/* Utilities */
#e .e-mt0{margin-top:0}
#e .e-mt8{margin-top:8px}
#e .e-mt12{margin-top:12px}
#e .e-mt16{margin-top:16px}
#e .e-mb0{margin-bottom:0}
#e .e-mb8{margin-bottom:8px}
#e .e-mb12{margin-bottom:12px}
#e .e-mb16{margin-bottom:16px}
#e .e-gap8{gap:8px}
#e .e-gap12{gap:12px}
#e .e-gap16{gap:16px}
#e .e-tr{text-align:right}
#e .e-tc{text-align:center}
#e .e-mute{color:var(--mute)}
#e .e-faint{color:var(--faint)}
#e .e-head{color:var(--head)}
#e .e-up{text-transform:uppercase;letter-spacing:.3px}
#e .e-w6{font-weight:600}
#e .e-w7{font-weight:700}
#e .e-fs11{font-size:calc(11px + var(--fs-add,0px))}
#e .e-fs12{font-size:calc(12px + var(--fs-add,0px))}
#e .e-fs13{font-size:calc(13px + var(--fs-add,0px))}
#e .e-fs16{font-size:calc(16px + var(--fs-add,0px))}
#e .e-hide-m{display:initial}
@media (max-width:768px){#e .e-hide-m{display:none!important}
}
#e .e-show-m{display:none!important}
@media (max-width:768px){#e .e-show-m{display:initial!important}
}
#e .e-stack{display:grid;gap:12px}
#e .e-hr{border:0;border-top:1px solid var(--line);margin:12px 0}
/* ───────── 15 · YOUR COMPONENTS ───────── */
/* Stepper (grey square buttons):  <div class="e-step"><button type="button" aria-label="−">−</button><input type="number" value="15"><button type="button" aria-label="+">+</button></div>
   Small segmented switch:  <div class="e-seg e-sm"><button class="e-on">≥</button><button>≤</button></div> */
#e .e-step{display:inline-flex;align-items:center;gap:4px}
#e .e-step button,#e .e-step input{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media (max-width:768px){#e .e-step input{font-size:16px}}
#e .e-step button{width:26px;height:26px;border:1px solid var(--ctl);border-radius:4px;background:var(--div);color:var(--head);font:600 calc(16px + var(--fs-add,0px))/1 var(--font);cursor:pointer;padding:0}
#e .e-step button:hover{background:var(--line)}
#e .e-step input{width:56px;height:26px;border:1px solid var(--ctl);border-radius:4px;background:var(--card);padding:0;text-align:center;font:600 calc(13px + var(--fs-add,0px)) var(--font);color:var(--head);-moz-appearance:textfield;appearance:textfield}
#e .e-step input::-webkit-inner-spin-button,#e .e-step input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#e .e-seg.e-sm{padding:1px}
#e .e-seg.e-sm button{height:24px;padding:0 10px;font-size:calc(12px + var(--fs-add,0px))}

/* add new rules below — use var(--…) tokens only */
/* ───────── cards (title + text + footer button) ─────────
   <div class="e-cards"><article class="e-card"><h3>Title</h3><div class="e-txt">Text</div><div class="e-meta">Date</div><div class="e-act"><a class="e-btn" href="#">Button</a></div></article></div> */
#e .e-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
#e .e-card{background:var(--card);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0}
#e .e-card h3{font-size:calc(18px + var(--fs-add,0px));line-height:1.25}
#e .e-card .e-txt{font-size:calc(15px + var(--fs-add,0px));line-height:1.5;color:var(--text);flex:1}
#e .e-card .e-txt u{text-decoration:none;color:var(--link);font-weight:600}
#e .e-card .e-meta{font-size:calc(13px + var(--fs-add,0px));color:var(--mute);border-top:1px solid var(--line);padding-top:10px}
#e .e-card .e-meta b{color:var(--head);font-weight:600}
#e .e-card .e-act{display:flex}
#e .e-card .e-ico{display:inline-block;margin-right:6px}
#e .e-card .e-ico img{height:21px;vertical-align:middle}
@media (max-width:768px){#e .e-cards{grid-template-columns:minmax(0,1fr)}
}
/* Watermark:  <div class="e-wm" aria-hidden="true">SITE.com</div>  — faint embossed wordmark (logo font comes from stylesheet-v4) */
#e .e-wm{text-align:center;font-family:"magistral black",sans-serif;font-size:22px;line-height:1;letter-spacing:.5px;color:color-mix(in srgb,var(--head) 13%,transparent);text-shadow:0 1px 0 rgba(255,255,255,.85);margin:24px 0 8px;user-select:none;pointer-events:none}
:root[data-theme="dark"] #e .e-wm{color:rgba(255,255,255,.08);text-shadow:0 -1px 0 rgba(0,0,0,.6)}
@media (max-width:768px){#e .e-wm{font-size:18px;margin:18px 0 4px}}
/* ───────── page frame ───────── */
#e .e-pagehead{display:flex;align-items:flex-start;gap:12px}
#e .e-pagehead h1{font-family:var(--display);font-weight:700;font-size:calc(25px + var(--fs-add,0px));line-height:1.15;flex:1;min-width:0}
#e .e-ibtn.e-bare,#e .e-pagehead .e-ibtn{flex:none;width:auto;height:auto;border:0;border-radius:0;background:none;padding:0;color:var(--faint);color:color-mix(in srgb,var(--mute) 70%,var(--card))}
#e .e-ibtn.e-bare:hover,#e .e-pagehead .e-ibtn:hover{background:none;color:var(--text)}
/* e-bare = icon only: no circle, no border, no padding. Page-header buttons are bare by default. */
#e .e-intro{margin:8px 0 0;color:var(--mute);font-size:calc(15px + var(--fs-add,0px))}
#e .e-page{margin-top:16px;padding-bottom:30px;display:grid;gap:16px}


#e{background:transparent;max-width:var(--content-width,1280px);width:96%;margin:0 auto;padding:calc(var(--header-height,42px) + 18px) 0 60px}

/* Mobile: +1px on all font sizes of the e-setup */
@media (max-width:768px){#e{--fs-add:1px;width:100%;max-width:none}}
/* Mobile: bigger page-header icon (info) */
@media (max-width:768px){#e .e-pagehead .e-ibtn .material-symbols-outlined{font-size:30px}}
/* Icon buttons: no grey tap-highlight box on touch; the icon itself flashes darker while pressed */
#e .e-ibtn{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#e .e-ibtn.e-bare:active,#e .e-pagehead .e-ibtn:active,#e .e-sheet>header .e-ibtn:active{background:none;color:var(--head);transition:none}
/* Header icon group (module title row, right side): <div class="e-hbtns"><button class="e-ibtn e-bare e-mob">…</button>…</div>
   .e-mob = button is shown on mobile only. Badge on a button: <span class="e-ibadge" id="…"></span> (hidden while empty).
   On mobile the group sits 6px higher than the title baseline. */
#e .e-hbtns{display:flex;align-items:center;gap:14px;margin-left:auto}
#e .e-hbtns .e-ibtn{height:32px;position:relative}
#e .e-hbtns .e-mob{display:none}
#e .e-ibadge{position:absolute;top:-6px;right:-9px;min-width:16px;padding:1px 4px;border-radius:3px;font:600 10px/1.3 var(--font);text-align:center;background:var(--hl);color:var(--link);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--link) 26%,var(--card))}
#e .e-ibadge:empty{display:none}
@media (max-width:768px){
#e .e-hbtns{position:relative;top:-6px}
#e .e-hbtns .e-mob{display:inline-grid}
}
/* Bet tracker (seuranta_v2.php + seuranta-live_v2.php): tabs, filters, control bar, summary tiles, results table, pager.
   Markup: .e-mod.tk-widget > header, .e-tabs.tk-tabs, .tk-filters, .tk-bar (.tk-ctl, .e-seg, .tk-stake), .tk-tiles, .tk-sc > .tk-tbl, .tk-pager */
#e .tk-tabs{max-width:340px;margin-bottom:14px}
#e .tk-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
#e .tk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:14px}
#e .tk-ctl{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--mute)}
#e .tk-stake{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 14px;border:1px solid var(--ctl);border-radius:40px;background:var(--card)}
#e .tk-stake:focus-within{border-color:var(--link)}
#e .tk-stake input{width:52px;border:0;outline:0;background:none;padding:0;text-align:right;font:600 calc(13px + var(--fs-add,0px)) var(--font);color:var(--head);-moz-appearance:textfield}
#e .tk-stake input::-webkit-outer-spin-button,#e .tk-stake input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
#e .tk-stake i{font-style:normal;font-weight:600;color:var(--mute);font-size:calc(13px + var(--fs-add,0px))}
/* summary tiles */
#e .tk-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);margin-bottom:14px}
#e .tk-tiles>div{padding:10px 14px;border-right:1px solid var(--line)}
#e .tk-tiles>div:last-child{border-right:0}
#e .tk-tiles b{display:block;font-size:calc(22px + var(--fs-add,0px));color:var(--head);line-height:1.15;font-variant-numeric:tabular-nums}
#e .tk-tiles span{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--mute);font-weight:700}
#e .tk-tiles b.tk-p{color:var(--pos)}#e .tk-tiles b.tk-n{color:var(--neg)}
/* table */
#e .tk-sc{overflow-x:auto}
#e .tk-tbl{width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
#e .tk-tbl th{background:var(--zebra);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 10px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--mute);text-align:left;white-space:nowrap;cursor:pointer;user-select:none;-webkit-user-select:none}
#e .tk-tbl th:hover{color:var(--link)}
#e .tk-tbl th i{font-style:normal;margin-left:3px;font-size:9px;color:var(--link)}
#e .tk-tbl td{padding:9px 10px;border-bottom:1px solid #ccc;text-align:left;font-size:calc(13px + var(--fs-add,0px));color:var(--head);white-space:nowrap;background:var(--card)}
#e .tk-tbl tbody tr:nth-child(odd) td{background:color-mix(in srgb,var(--zebra) 50%,var(--card))}
#e .tk-tbl .tk-c{text-align:center}
#e .tk-tbl .tk-d{color:var(--text)}
#e .tk-tbl .tk-b{font-weight:700}
#e .tk-tbl .tk-ds{display:none}
#e .tk-res{display:inline-block;min-width:60px;border-radius:3px;padding:2px 6px;font-weight:700;text-align:center;background:var(--zebra);color:var(--head)}
#e .tk-res.tk-p{color:var(--pos);background:color-mix(in srgb,var(--pos) 14%,var(--card))}
#e .tk-res.tk-n{color:var(--neg);background:color-mix(in srgb,var(--neg) 12%,var(--card))}
#e .tk-empty{padding:24px 0;text-align:center;color:var(--mute)}
#e .tk-pager{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:calc(13px + var(--fs-add,0px));color:var(--mute);font-variant-numeric:tabular-nums}
#e .tk-pager .e-btn{line-height:1;gap:4px}
#e .tk-ar{font-size:16px;line-height:1;position:relative;top:-1px}
#e .tk-note{display:none}
@media (max-width:768px){
#e .e-mod.tk-widget{padding-left:8px;padding-right:8px}
#e .tk-tabs{max-width:none}
#e .tk-dt{display:none!important}
#e .tk-bar{gap:10px 20px}
#e .tk-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
#e .tk-tiles>div{padding:8px 12px;border-bottom:1px solid var(--line)}
#e .tk-tiles>div:nth-child(2n){border-right:0}
#e .tk-tiles>div:nth-child(n+3){border-bottom:0}
#e .tk-tiles b{font-size:calc(19px + var(--fs-add,0px))}
#e .tk-tbl th,#e .tk-tbl td{padding:9px 5px}
#e .tk-tbl th:first-child,#e .tk-tbl td:first-child{padding-left:8px}
#e .tk-tbl .tk-df{display:none}#e .tk-tbl .tk-ds{display:inline}
#e .tk-tbl .tk-t{max-width:62px;overflow:hidden;text-overflow:ellipsis}
#e .tk-tbl td.tk-m{max-width:150px}
#e .tk-tbl td.tk-b.tk-t{max-width:88px}
#e .tk-res{min-width:48px;padding:2px 4px}
#e .tk-note{display:block;margin:10px 0 0;font-size:calc(12px + var(--fs-add,0px));color:var(--mute)}
}
/* Mobile bottom sheet: slides up from the bottom edge, no fade (the dark overlay still fades) */
@media (max-width:768px){
#e .e-sheet{transform:translateY(100%);transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity 0s linear .35s}
#e .e-sheet.e-on{transform:none;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity 0s}
#e .e-scrim{transition:opacity .35s ease}
/* Grab bar on top of the bottom sheet (the drag-to-close handle; the dragging itself is in layout/page JS) */
#e .e-sheet::before{content:"";flex:none;width:40px;height:4px;border-radius:2px;background:var(--ctl);margin:8px auto -6px}
}
/* Dark theme: the page behind #e must be dark too (body/html are painted by the site stylesheet) */
:root[data-theme="dark"]{color-scheme:dark;background:#171a2e}
:root[data-theme="dark"] body{background:#171a2e}

/* ───────── player table (fpl_v2.php) ─────────
   Module title as <h1>:  <div class="e-mod"><header><h1>Title</h1><div class="e-hbtns">…</div></header>
   Scrolling tab row:     <div class="e-tabs e-scroll"><a class="e-on">Buy<small>8</small></a>…</div>
   Pill search field:     <input class="e-field e-pill">
   Player table:          <div class="e-tw"><table class="e-ptbl"><thead><tr><th>#</th><th>Player</th>…</tr></thead><tbody>…</tbody></table></div>
     col 1 = rank, col 2 = player (.e-pl), numbers right-aligned, add .e-tl on a th/td to left-align it.
     Sortable header: <th class="e-hl"><button type="button" class="e-sort">xP<i>▼</i></button></th>
     Player cell:     <div class="e-pl"><span class="e-ph" style="--c:#d4271f"><svg/><img></span><span class="e-pn"><b>Name</b><small>BOU · MID</small></span></div>
     Recommendation:  <span class="e-rec e-buy">Buy</span> · <span class="e-rec">Keep</span> · <span class="e-rec e-sell">Sell</span>   (coloured text, no background)
     Fixtures:        <span class="e-fxs"><span class="e-fx" style="--h:73">BHA<small>H · 5.3</small></span>…</span>   (--h = hue of the xP figure: 5 red … 135 green)
     Value:           <span class="e-val"><i>★</i>4.5</span>
   Pager:             <div class="e-pager"><button class="e-btn e-sm e-grey">‹ Prev</button><span>Page 1 of 62</span><button class="e-btn e-sm e-grey">Next ›</button></div> */
#e .e-mod>header h1{font-family:var(--display);font-weight:700;font-size:calc(25px + var(--fs-add,0px));line-height:1.15;flex:1;min-width:0}
#e .e-badge.e-gw{background:var(--hl);color:var(--link);font-weight:700;letter-spacing:.3px;white-space:nowrap}
#e .e-rec{font-size:calc(12px + var(--fs-add,0px));font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text)}
#e .e-rec.e-buy{color:var(--pos)}
#e .e-rec.e-sell{color:var(--neg)}
#e .e-tabs.e-scroll{overflow-x:auto;scrollbar-width:none}
#e .e-tabs.e-scroll::-webkit-scrollbar{display:none}
#e .e-tabs.e-scroll a{flex:1 0 auto;white-space:nowrap;padding:10px 12px 9px}
#e .e-tabs a small{font-weight:600;color:var(--faint);margin-left:3px}
#e .e-tabs a.e-on small{color:var(--mute)}
#e .e-field.e-pill{height:32px;padding:0 14px;border-radius:40px;font-size:calc(13px + var(--fs-add,0px))}
#e .e-tl{text-align:left}
#e .e-ptbl thead th{background:var(--zebra)}
#e .e-ptbl tbody td{background:var(--card);padding:7px 10px;vertical-align:middle}
#e .e-ptbl tbody tr:nth-child(even) td{background:var(--zebra)}
#e .e-ptbl :is(th,td):first-child{width:34px;min-width:34px;max-width:34px;padding-left:8px;padding-right:4px;text-align:center}
#e .e-ptbl tbody td:first-child{color:var(--faint);font-weight:700}
#e .e-sort{background:none;border:0;margin:0;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;white-space:nowrap}
#e .e-sort:hover{color:var(--link)}
#e .e-sort i{font-style:normal;font-size:9px;margin-left:3px;color:var(--link)}
#e .e-ptbl th.e-hl .e-sort{color:var(--head)}
#e .e-pl{display:flex;align-items:center;gap:10px;min-width:0;text-align:left}
#e .e-pn{min-width:0}
#e .e-pn b{display:block;line-height:1.15;color:var(--head);font-weight:700;overflow:hidden;text-overflow:ellipsis}
#e .e-pn small{display:block;color:var(--mute);font-size:calc(11px + var(--fs-add,0px));line-height:1.2}
#e .e-ph{position:relative;flex:none;width:46px;height:46px;border-radius:50%;background:transparent;display:grid;place-items:end center;overflow:hidden}
#e .e-ph svg{width:38px;height:38px;fill:var(--faint);opacity:.6}
/* face crop: the 110x140 photo is zoomed 2x around the face (eyes to chin) inside the circle */
#e .e-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 0;transform-origin:50% 0;transform:translateY(5px) scale(1.12)}
#e .e-fxs{display:flex;gap:12px}
#e .e-fx{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:34px;color:var(--head);font-size:calc(11px + var(--fs-add,0px));font-weight:700;line-height:1.15}
#e .e-fx small{font-size:calc(11px + var(--fs-add,0px));font-weight:700;color:hsl(var(--h,0) 46% 42%)}
:root[data-theme="dark"] #e .e-fx small{color:hsl(var(--h,0) 55% 62%)}
#e .e-val{font-weight:700;color:var(--head);white-space:nowrap}
#e .e-val i{font-style:normal;color:var(--plus);margin-right:2px}
#e .e-pager{display:flex;align-items:center;gap:12px;margin:12px 0 2px;font-size:calc(13px + var(--fs-add,0px));color:var(--mute);font-variant-numeric:tabular-nums}
#e .e-pager .e-btn{line-height:1}
/* FPL page specifics */
#e .fp-q{min-width:210px}
#e .fp-empty{padding:24px 0;text-align:center;color:var(--mute)}
@media (max-width:768px){
#e .e-mod>header h1{font-size:calc(22px + var(--fs-add,0px))}
#e .e-tabs.e-scroll a{flex:none;padding:10px 11px 9px}
#e .e-mod.fp-widget{padding-left:8px;padding-right:8px}
#e .fp-widget .e-tw{margin:0 -8px;padding:0}
#e .fp-q{flex:1 1 140px;min-width:0}
#e .e-ptbl{min-width:660px}
#e .e-ptbl :is(th,td):nth-child(-n+2){position:sticky;z-index:2}
#e .e-ptbl :is(th,td):first-child{left:0}
#e .e-ptbl :is(th,td):nth-child(2){left:34px;min-width:140px;max-width:140px;box-shadow:6px 0 6px -6px rgba(0,0,0,.28)}
}