:root{
  --bg:#121210;
  --surface:#1b1a17;
  --surface-2:#242220;
  --line:#38352c;
  --line-soft:#2a2823;
  --text:#ece6d6;
  --muted:#9c9587;
  --muted-2:#716b5e;
  --accent:#e8b923;
  --accent-hover:#f5cf4e;
  --accent-dim:#8a6d1c;
  --accent-2:#c0392b;
  --accent-3:#5b8a72;
  --accent-rgb:232,185,35;
  --accent-3-rgb:91,138,114;
  --on-accent:#141310;
  --header-grad-1:#17160f;
  --header-grad-2:#121210;
  --plate-grad-1:#262420;
  --plate-grad-2:#16150f;
  --plate-active-grad-1:#33290f;
  --plate-active-grad-2:#1c1710;
  --shadow-soft:rgba(0,0,0,0.35);
  --shadow-med:rgba(0,0,0,0.45);
  --shadow-strong:rgba(0,0,0,0.5);
  --radius:2px;
}
html[data-theme="light"]{
  --bg:#ffffff;
  --surface:#f2f9fc;
  --surface-2:#e6f2f8;
  --line:#c9e1ee;
  --line-soft:#dcebf3;
  --text:#132430;
  --muted:#5c7488;
  --muted-2:#8399a9;
  --accent:#1f9ade;
  --accent-hover:#0f7fbf;
  --accent-dim:#7dc6ea;
  --accent-2:#c94a5a;
  --accent-3:#2b9a89;
  --accent-rgb:31,154,222;
  --accent-3-rgb:43,154,137;
  --on-accent:#0d2530;
  --header-grad-1:#eaf6fc;
  --header-grad-2:#ffffff;
  --plate-grad-1:#eef8fc;
  --plate-grad-2:#ffffff;
  --plate-active-grad-1:#d6eefa;
  --plate-active-grad-2:#f3fafd;
  --shadow-soft:rgba(20,60,80,0.10);
  --shadow-med:rgba(20,60,80,0.14);
  --shadow-strong:rgba(20,60,80,0.18);
}
html[data-theme="royal"]{
  --bg:#170f26;
  --surface:#231937;
  --surface-2:#2d2049;
  --line:#4a3670;
  --line-soft:#392a58;
  --text:#f1eafc;
  --muted:#b9a6d9;
  --muted-2:#8d78af;
  --accent:#9b5de5;
  --accent-hover:#b47eec;
  --accent-dim:#6b3fa0;
  --accent-2:#e35d8a;
  --accent-3:#d4af37;
  --accent-rgb:155,93,229;
  --accent-3-rgb:212,175,55;
  --on-accent:#ffffff;
  --header-grad-1:#1c1330;
  --header-grad-2:#170f26;
  --plate-grad-1:#2c2049;
  --plate-grad-2:#190f28;
  --plate-active-grad-1:#40265c;
  --plate-active-grad-2:#241536;
  --shadow-soft:rgba(0,0,0,0.35);
  --shadow-med:rgba(0,0,0,0.45);
  --shadow-strong:rgba(0,0,0,0.5);
}
html[data-theme="red"]{
  --bg:#1f0e0e;
  --surface:#2b1414;
  --surface-2:#3a1a1a;
  --line:#5c2626;
  --line-soft:#452020;
  --text:#fbe9e7;
  --muted:#d9a8a4;
  --muted-2:#b98481;
  --accent:#e0384f;
  --accent-hover:#f2586c;
  --accent-dim:#8a1f2c;
  --accent-2:#f2a1b0;
  --accent-3:#d4af6a;
  --accent-rgb:224,56,79;
  --accent-3-rgb:212,175,106;
  --on-accent:#ffffff;
  --header-grad-1:#2a1212;
  --header-grad-2:#1f0e0e;
  --plate-grad-1:#3a1a1a;
  --plate-grad-2:#200f0f;
  --plate-active-grad-1:#5c1f28;
  --plate-active-grad-2:#2a1212;
  --shadow-soft:rgba(0,0,0,0.35);
  --shadow-med:rgba(0,0,0,0.45);
  --shadow-strong:rgba(0,0,0,0.5);
}
html[data-theme="pink"]{
  --bg:#1a1014;
  --surface:#241620;
  --surface-2:#301c2b;
  --line:#5c2f4a;
  --line-soft:#452438;
  --text:#fbe8f2;
  --muted:#d9a8c4;
  --muted-2:#b981a3;
  --accent:#ec4899;
  --accent-hover:#f472b6;
  --accent-dim:#9d1f63;
  --accent-2:#f9a8d4;
  --accent-3:#d4af6a;
  --accent-rgb:236,72,153;
  --accent-3-rgb:212,175,106;
  --on-accent:#ffffff;
  --header-grad-1:#241620;
  --header-grad-2:#1a1014;
  --plate-grad-1:#301c2b;
  --plate-grad-2:#1c1119;
  --plate-active-grad-1:#4a2440;
  --plate-active-grad-2:#241620;
  --shadow-soft:rgba(0,0,0,0.35);
  --shadow-med:rgba(0,0,0,0.45);
  --shadow-strong:rgba(0,0,0,0.5);
}
html[data-theme="green"]{
  --bg:#0e1712;
  --surface:#15211a;
  --surface-2:#1c2c22;
  --line:#2f4a39;
  --line-soft:#233829;
  --text:#e6f2ea;
  --muted:#a3c2ad;
  --muted-2:#7c9c87;
  --accent:#34c27a;
  --accent-hover:#5ad596;
  --accent-dim:#1f7a4b;
  --accent-2:#e2725b;
  --accent-3:#d4af6a;
  --accent-rgb:52,194,122;
  --accent-3-rgb:212,175,106;
  --on-accent:#0b1a12;
  --header-grad-1:#13201a;
  --header-grad-2:#0e1712;
  --plate-grad-1:#1c2c22;
  --plate-grad-2:#0f1913;
  --plate-active-grad-1:#1f4430;
  --plate-active-grad-2:#13201a;
  --shadow-soft:rgba(0,0,0,0.35);
  --shadow-med:rgba(0,0,0,0.45);
  --shadow-strong:rgba(0,0,0,0.5);
}
html[data-theme="blue"]{
  --bg:#0c1220;
  --surface:#131b2e;
  --surface-2:#1a243b;
  --line:#2c3b5c;
  --line-soft:#212d47;
  --text:#e6edfa;
  --muted:#a3b3d1;
  --muted-2:#7a8bab;
  --accent:#3b82f6;
  --accent-hover:#60a5fa;
  --accent-dim:#1e4fa3;
  --accent-2:#e2725b;
  --accent-3:#d4af6a;
  --accent-rgb:59,130,246;
  --accent-3-rgb:212,175,106;
  --on-accent:#ffffff;
  --header-grad-1:#111a2c;
  --header-grad-2:#0c1220;
  --plate-grad-1:#1a243b;
  --plate-grad-2:#0d1424;
  --plate-active-grad-1:#1c3666;
  --plate-active-grad-2:#111a2c;
  --shadow-soft:rgba(0,0,0,0.35);
  --shadow-med:rgba(0,0,0,0.45);
  --shadow-strong:rgba(0,0,0,0.5);
}
*{box-sizing:border-box;transition:background-color .2s ease, border-color .2s ease, color .2s ease;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:
    radial-gradient(ellipse at top left, rgba(var(--accent-rgb),0.05), transparent 45%),
    radial-gradient(ellipse at bottom right, rgba(var(--accent-3-rgb),0.06), transparent 50%),
    var(--bg);
  color:var(--text);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  transition:background-color .25s ease, color .25s ease;
}
::selection{background:var(--accent);color:var(--on-accent);}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-dim);}
a:hover{color:var(--accent-hover);border-bottom-color:var(--accent-hover);}
h1,h2,h3,h4{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.04em;margin:0;font-weight:600;}
.mono{font-family:'IBM Plex Mono',monospace;}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}

/* ---------- HEADER ---------- */
header.site{
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--header-grad-1),var(--header-grad-2) 90%);
  padding:36px 0 0 0;
  position:relative;
}
.site-title-row{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-bottom:22px;}
.site-title{font-size:clamp(32px,5vw,52px);line-height:0.95;color:var(--text);}
.site-title .amp{color:var(--accent);}
.site-tag{color:var(--muted);font-size:14px;letter-spacing:0.08em;text-transform:uppercase;margin-top:8px;font-family:'IBM Plex Mono',monospace;}
.version-badge{
  font-family:'IBM Plex Mono',monospace;
  border:1px solid var(--accent-dim);
  color:var(--accent);
  padding:6px 12px;
  font-size:13px;
  letter-spacing:0.05em;
  white-space:nowrap;
}
.header-right{display:flex;align-items:center;gap:10px;}
.theme-toggle{
  display:flex;align-items:center;gap:7px;
  background:var(--surface);border:1px solid var(--line-soft);color:var(--muted);
  padding:6px 12px;border-radius:20px;cursor:pointer;
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.04em;
  transition:all .2s ease;
}
.theme-toggle:hover{border-color:var(--accent-dim);color:var(--accent);}
.theme-toggle .theme-toggle-icon{flex:0 0 auto;display:block;font-size:13px;line-height:1;}
.account-menu{position:relative;}
.account-menu-btn{
  display:flex;align-items:center;gap:6px;
  background:var(--surface);border:1px solid var(--line-soft);color:var(--muted);
  padding:6px 12px;border-radius:20px;cursor:pointer;
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.04em;
  transition:all .2s ease;
}
.account-menu-btn:hover{border-color:var(--accent-dim);color:var(--accent);}
.account-menu-caret{font-size:9px;opacity:.7;}
.account-menu-dropdown{
  display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:150px;
  background:var(--surface);border:1px solid var(--line);border-radius:4px;
  box-shadow:0 10px 30px rgba(0,0,0,.35);overflow:hidden;z-index:60;
}
.account-menu.open .account-menu-dropdown{display:block;}
.account-menu-dropdown button{
  display:block;width:100%;text-align:left;background:transparent;border:none;
  color:var(--text);padding:10px 14px;font-size:13px;cursor:pointer;
  font-family:'IBM Plex Sans',sans-serif;
}
.account-menu-dropdown button:hover{background:var(--surface-2);color:var(--accent);}
.account-menu-dropdown button + button{border-top:1px solid var(--line-soft);}

.notif-bell{position:relative;}
.notif-bell-btn{
  position:relative; display:flex; align-items:center; justify-content:center;
  background:var(--surface); border:1px solid var(--line-soft); color:var(--muted);
  width:32px; height:32px; border-radius:50%; cursor:pointer; font-size:14px;
  transition:all .2s ease;
}
.notif-bell-btn:hover{border-color:var(--accent-dim); color:var(--accent);}
.notif-bell-count{
  position:absolute; top:-4px; right:-4px; min-width:16px; height:16px; padding:0 4px;
  background:var(--accent); color:var(--on-accent); border-radius:10px;
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:700; line-height:16px;
  text-align:center;
}
.notif-bell-dropdown{
  display:none; position:absolute; top:calc(100% + 6px); right:0; left:auto; width:300px; max-width:calc(100vw - 24px);
  background:var(--surface); border:1px solid var(--line); border-radius:4px;
  box-shadow:0 10px 30px rgba(0,0,0,.35); overflow:hidden; z-index:60;
}
.notif-bell.open .notif-bell-dropdown{display:block;}
.notif-bell-header{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 14px; border-bottom:1px solid var(--line-soft);
  font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
}
.notif-bell-header button{
  background:transparent; border:none; color:var(--accent); cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:none; letter-spacing:0; padding:0;
}
.notif-bell-header button:hover{text-decoration:underline;}
#notif-bell-list{max-height:320px; overflow-y:auto;}
.notif-bell-item{
  padding:10px 14px; font-size:12.5px; color:var(--muted); cursor:pointer;
  border-top:1px solid var(--line-soft); font-family:'IBM Plex Sans',sans-serif;
}
#notif-bell-list .notif-bell-item:first-child{border-top:none;}
.notif-bell-item:hover{background:var(--surface-2);}
.notif-bell-item.unread{color:var(--text); font-weight:600;}
.notif-bell-empty{padding:20px 14px; text-align:center; color:var(--muted-2); font-size:12.5px;}
.ticker{
  border-top:1px solid var(--line-soft);
  background:var(--surface);
  padding:10px 0;
  overflow:hidden;
}
.ticker .wrap{display:flex;gap:10px;align-items:baseline;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--muted);}
.ticker strong{color:var(--accent);font-weight:600;}
.bottom-strip{
  border-top:1px solid var(--line-soft);
  background:var(--surface);
  padding:14px 0;
}
.bottom-strip .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.bottom-strip .ticker-inline{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--muted);}
.bottom-strip .ticker-inline strong{color:var(--accent);font-weight:600;}
.bottom-strip .bottom-strip-meta{display:flex;align-items:center;gap:10px;flex:0 0 auto;}
@media (max-width:640px){
  .bottom-strip .wrap{flex-direction:column;align-items:flex-start;}
}

/* ---------- PLATE RACK NAV ---------- */
nav.rack{
  border-bottom:1px solid var(--line);
  background:var(--surface);
  position:sticky;top:0;z-index:50;
  box-shadow:0 6px 18px var(--shadow-soft);
}
.rack-inner{
  max-width:1080px;margin:0 auto;padding:14px 24px;
  display:flex;gap:10px;align-items:center;overflow-x:auto;
  scrollbar-width:thin;
}
nav.rack.rack-top .rack-inner{justify-content:center;}
.rack-inner::-webkit-scrollbar{height:5px;}
.rack-inner::-webkit-scrollbar-thumb{background:var(--line);}

/* ---------- GLANCE INLINE SEARCH (rack-top row) ---------- */
.glance-inline-search{
  display:none;
  margin-left:auto;
  flex:0 1 280px;
  min-width:140px;
}
.glance-inline-search.show{display:flex;}
.glance-inline-search #search{
  width:100%;
  background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text);
  font-family:'IBM Plex Mono',monospace;font-size:13px;padding:9px 12px;border-radius:2px;outline:none;
}
.glance-inline-search #search:focus{border-color:var(--accent-dim);}
.glance-inline-search #search::placeholder{color:var(--muted-2);}
@media (max-width:760px){
  .glance-inline-search{flex:1 1 100%;margin-left:0;order:10;width:100%;}
}

/* ---------- SEARCH ---------- */
.search-wrap{position:relative;border-top:1px solid var(--line-soft);}
.search-box{
  max-width:1080px;margin:0 auto;padding:10px 24px;
  display:flex;align-items:center;gap:10px;
}
.search-icon{color:var(--muted-2);flex:0 0 auto;}
#site-search{
  flex:1 1 auto;background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text);
  font-family:'IBM Plex Mono',monospace;font-size:13px;padding:9px 12px;border-radius:2px;outline:none;
  min-width:0;
}
#site-search:focus{border-color:var(--accent-dim);}
#site-search::placeholder{color:var(--muted-2);}
#search-clear{
  background:none;border:1px solid var(--line-soft);color:var(--muted);cursor:pointer;
  width:30px;height:30px;flex:0 0 auto;border-radius:2px;font-size:12px;display:none;
}
#search-clear:hover{color:var(--text);border-color:var(--accent-dim);}
#search-clear.show{display:block;}
#search-results{
  display:none;position:absolute;left:0;right:0;top:100%;
  background:var(--surface);border:1px solid var(--line);border-top:none;
  max-height:60vh;overflow-y:auto;z-index:60;
  box-shadow:0 14px 28px var(--shadow-med);
}
#search-results.show{display:block;}
.sr-item{
  display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-soft);
  color:var(--text);padding:11px 24px;cursor:pointer;font-family:'IBM Plex Sans',sans-serif;font-size:13.5px;
}
.sr-item:last-child{border-bottom:0;}
.sr-item:hover, .sr-item.sel{background:var(--surface-2);}
.sr-item .sr-tab{
  font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:0.07em;text-transform:uppercase;
  color:var(--accent);margin-right:8px;
}
.sr-item .sr-loc{color:var(--muted-2);font-size:11px;margin-left:4px;}
.sr-item .sr-snip{color:var(--muted);display:block;margin-top:3px;font-size:12.5px;}
.sr-item mark{background:rgba(var(--accent-rgb),0.35);color:var(--text);border-radius:2px;}
.sr-empty{padding:16px 24px;color:var(--muted-2);font-size:13px;font-family:'IBM Plex Mono',monospace;}
.search-jump-flash{outline:2px solid var(--accent);outline-offset:3px;transition:outline-color 1.6s ease;}
.search-jump-flash.fade{outline-color:transparent;}

.back-pill{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(0);
  background:var(--surface);border:1px solid var(--accent-dim);color:var(--text);
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;padding:10px 18px;
  border-radius:30px;cursor:pointer;z-index:70;display:flex;align-items:center;gap:8px;
  box-shadow:0 10px 26px var(--shadow-strong);opacity:0;pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
}
.back-pill.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.back-pill:hover{border-color:var(--accent);color:var(--accent);}
.back-pill .arrow{color:var(--accent);font-size:14px;}
.plate{
  flex:0 0 auto;
  font-family:'IBM Plex Mono',monospace;
  border:2px solid var(--line);
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--plate-grad-1), var(--plate-grad-2) 75%);
  color:var(--muted);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  cursor:pointer;
  transition:all .15s ease;
  text-align:center;
  line-height:1.1;
}
.plate .d{font-weight:600;font-size:12px;letter-spacing:0.03em;}
.plate .m{font-size:9px;opacity:0.75;margin-top:1px;}
.plate.sz-1{width:44px;height:44px;}
.plate.sz-2{width:50px;height:50px;}
.plate.sz-3{width:56px;height:56px;}
.plate.sz-4{width:64px;height:64px;}
.plate:hover{border-color:var(--accent-dim);color:var(--text);}
.plate.active{
  border-color:var(--accent);
  color:var(--accent);
  background:radial-gradient(circle at 35% 30%, var(--plate-active-grad-1), var(--plate-active-grad-2) 75%);
  box-shadow:0 0 0 3px rgba(var(--accent-rgb),0.12);
}
.plate.util{border-radius:6px;width:auto;padding:0 14px;height:44px;}
/* ---------- TOP NAV: SINGLE FLAT PILL ROW (MANUAL/LIVE SESH/TIME/WEIGHT/TRACK/BILLING/BOOKING/COACH) ---------- */
.nav-pill{display:flex; gap:6px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:3px; flex:0 0 auto;}
.nav-pill .plate{background:transparent; border:none; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.04em; text-transform:uppercase; padding:7px 16px; border-radius:16px; width:auto; height:auto; box-shadow:none;}
.nav-pill .plate:hover{border-color:transparent; color:var(--text); background:transparent; box-shadow:none;}
.nav-pill .plate.active{background:var(--accent); color:var(--on-accent); font-weight:600; box-shadow:none;}
.nav-pill .plate.locked{opacity:.4;}
.nav-pill .plate.locked:hover{opacity:.6; color:var(--muted);}
@media (max-width:640px){.nav-pill{flex-wrap:wrap;}.nav-pill .plate{flex:1 1 auto; text-align:center;}nav.rack.rack-top .rack-inner{flex-wrap:wrap; overflow-x:visible;}nav.rack.rack-top .nav-pill{flex:1 1 100%;}}

/* ---------- SORTABLE ADMIN TABLE HEADERS (Blog / Gallery / Members) ---------- */
th[data-sort]{cursor:pointer; user-select:none; white-space:nowrap;}
th[data-sort]:hover{color:var(--text);}
th[data-sort] .sort-arrow{display:inline-block; margin-left:4px; font-size:9px; opacity:.35;}
th[data-sort].sort-active .sort-arrow{opacity:1; color:var(--accent);}

/* ---------- MAIN ---------- */
main{padding:40px 0 90px;}
.tab-panel{display:none;animation:fade .25s ease;}
.tab-panel.active{display:block;}
@keyframes fade{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}

.day-head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:6px;}
.day-head h2{font-size:34px;color:var(--text);}
.day-sub{color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:13px;}
.day-focus{color:var(--accent);font-family:'IBM Plex Mono',monospace;font-size:13px;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--line-soft);}

.phase{margin-bottom:22px;padding:16px 18px;background:var(--surface);border:1px solid var(--line-soft);border-left:3px solid var(--line);}
.phase .ph-label{font-family:'IBM Plex Mono',monospace;color:var(--accent);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:6px;display:block;}
.phase p{margin:0;color:var(--text);font-size:14.5px;}
.phase.core{border-left-color:var(--accent-3);}
.phase .note{color:var(--muted);font-size:12.5px;margin-top:8px;font-style:italic;}

h3.perform-h{font-size:20px;margin:32px 0 14px;color:var(--text);border-top:1px solid var(--line-soft);padding-top:24px;}

table.block{width:100%;border-collapse:collapse;margin-bottom:16px;background:var(--surface);border:1px solid var(--line-soft);}
table.block caption{
  text-align:left;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.08em;
  color:var(--on-accent);background:var(--accent);padding:6px 12px;text-transform:uppercase;font-weight:600;caption-side:top;
}
table.block.accessory caption{background:var(--accent-3);color:var(--on-accent);}
table.block td{padding:10px 14px;border-top:1px solid var(--line-soft);font-size:14.5px;vertical-align:top;}
table.block td:last-child{font-family:'IBM Plex Mono',monospace;color:var(--muted);white-space:nowrap;text-align:right;font-size:13px;}
table.block a{border-bottom-color:var(--accent-dim);}

.callout{margin:16px 0;padding:14px 16px;border:1px solid var(--line-soft);background:var(--surface-2);font-size:14px;}
.callout.why{border-left:3px solid var(--accent-3);}
.callout.why .lbl{color:var(--accent-3);font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;display:block;margin-bottom:5px;}
.callout.force{border-left:3px solid var(--accent);}
.callout.force .lbl{color:var(--accent);font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;display:block;margin-bottom:5px;}
.callout.bracing{border-left:3px solid var(--accent-2);}
.callout.bracing .lbl{color:var(--accent-2);font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;display:block;margin-bottom:5px;}

.hold-strip{
  display:flex;align-items:center;gap:14px;
  margin:28px 0 6px;padding:16px 18px;
  border:1px solid var(--accent-dim);background:linear-gradient(90deg, rgba(var(--accent-rgb),0.08), transparent);
}
.hold-strip .star{color:var(--accent);font-size:22px;}
.hold-strip .lbl{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase;display:block;}
.hold-strip .name{font-family:'Oswald',sans-serif;font-size:18px;letter-spacing:0.03em;text-transform:uppercase;}

details.updated{margin-top:26px;border:1px solid var(--line-soft);}
details.updated summary{
  cursor:pointer;padding:10px 14px;font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);background:var(--surface);
  list-style:none;display:flex;align-items:center;gap:8px;
}
details.updated summary::before{content:'▸';color:var(--accent);transition:transform .15s;}
details.updated[open] summary::before{transform:rotate(90deg);}
details.updated summary::-webkit-details-marker{display:none;}
details.updated .body{padding:14px 18px;font-size:13.5px;color:var(--muted);background:var(--surface-2);border-top:1px solid var(--line-soft);}

/* ---------- Overview / reference tables ---------- */
.ref-table{width:100%;border-collapse:collapse;margin:18px 0 32px;}
.ref-table th{
  text-align:left;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--accent);border-bottom:1px solid var(--accent-dim);padding:8px 12px;
}
.ref-table td{padding:10px 12px;border-bottom:1px solid var(--line-soft);font-size:14px;vertical-align:top;}
.ref-table tr:hover td{background:var(--surface);}

.section-block{margin-bottom:52px;}
.section-block > h2{font-size:26px;margin-bottom:6px;color:var(--text);}
.section-block > .lede{color:var(--muted);font-size:14px;font-style:italic;margin-bottom:20px;max-width:70ch;}

.phase-list{counter-reset:phase;list-style:none;margin:0 0 28px;padding:0;display:grid;gap:10px;}
.phase-list li{
  counter-increment:phase;background:var(--surface);border:1px solid var(--line-soft);
  padding:12px 16px 12px 52px;position:relative;font-size:14.5px;
}
.phase-list li::before{
  content:counter(phase);position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border:1px solid var(--accent-dim);color:var(--accent);
  display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:13px;border-radius:50%;
}
.phase-list li b{color:var(--text);}

.drill-index{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;
  margin-top:14px;
}
.drill-index a{
  display:block;background:var(--surface);border:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  padding:8px 10px;font-size:12.5px;color:var(--text);border-radius:2px;
}
.drill-index a:hover{border-color:var(--accent-dim);color:var(--accent);}
.drill-index a.new{border-color:var(--accent-3);}

.badge{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;padding:2px 8px;border:1px solid currentColor;border-radius:20px;}
.badge.resolved{color:var(--accent-3);}
.badge.open{color:var(--accent-2);}
.badge.partial{color:var(--accent);}
.badge.light{color:var(--muted);}
.badge.strong{color:var(--accent);}

.func-card{border:1px solid var(--line-soft);background:var(--surface);margin-bottom:12px;}
.func-card summary{padding:14px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;list-style:none;}
.func-card summary::-webkit-details-marker{display:none;}
.func-card summary .fname{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:16px;letter-spacing:0.03em;}
.func-card summary::after{content:'+';color:var(--accent);font-size:20px;font-family:monospace;}
.func-card[open] summary::after{content:'–';}
.func-card .fbody{padding:0 16px 16px;}
.func-card .trained-by{color:var(--muted);font-size:13px;margin-bottom:10px;}
.func-card table{width:100%;border-collapse:collapse;font-size:13.5px;}
.func-card td{padding:6px 4px;border-top:1px solid var(--line-soft);}
.func-card td:last-child{text-align:right;color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:11px;}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:640px){.grid2{grid-template-columns:1fr;}}

/* Today's Program preview on Overview — shown at every width, so the
   day's Perform blocks are the first thing on the Manual tab whether on
   a phone or a computer. */
.mini-card{background:var(--surface);border:1px solid var(--line-soft);padding:14px 16px;font-size:14px;}
.mini-card h4{font-size:14px;color:var(--accent);margin-bottom:8px;}

.audit-status{font-weight:600;}

footer.site{border-top:1px solid var(--line);padding:26px 0;color:var(--muted-2);font-size:12px;font-family:'IBM Plex Mono',monospace;text-align:center;}

/* ---------- TIME TAB / TIMERS ---------- */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.timer-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start;}
@media (max-width:800px){.timer-grid{grid-template-columns:1fr;}}

.timer-card{
  background:var(--surface);border:1px solid var(--line-soft);padding:22px 22px 26px;
  text-align:center;position:relative;overflow:hidden;
}
.timer-card::before{
  content:'';position:absolute;inset:0 0 auto 0;height:3px;
  background:var(--line);transition:background .2s ease;
}
.timer-card[data-phase="prep"]::before{background:var(--accent);}
.timer-card[data-phase="work"]::before{background:var(--accent-2);}
.timer-card[data-phase="rest"]::before{background:var(--accent-3);}
.timer-card[data-phase="restSet"]::before{background:var(--accent-3);}
.timer-card[data-phase="cooldown"]::before{background:var(--accent-3);}
.timer-card[data-phase="done"]::before{background:var(--accent);}

.timer-meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;}
.timer-name{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.04em;font-size:16px;color:var(--text);}
.timer-total{font-size:12px;color:var(--muted);}

.timer-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:8px 8px;margin-bottom:18px;}
.timer-fields label{display:flex;flex-direction:column;gap:5px;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em;font-family:'IBM Plex Mono',monospace;line-height:1.25;}
.timer-fields input{
  background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text);
  font-family:'IBM Plex Mono',monospace;font-size:15px;padding:8px 6px;text-align:center;border-radius:2px;width:100%;
}
.timer-fields input:focus{outline:none;border-color:var(--accent-dim);}
.timer-fields input:disabled{opacity:0.45;}

.timer-phase{
  font-family:'IBM Plex Mono',monospace;letter-spacing:0.14em;font-size:12.5px;color:var(--muted);
  text-transform:uppercase;margin-bottom:6px;
}
.timer-clock{
  font-family:'Oswald',sans-serif;font-size:clamp(48px,12vw,72px);font-weight:600;line-height:1;
  color:var(--text);letter-spacing:0.02em;transition:color .2s ease;
}
.timer-round{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);margin-top:8px;}

.timer-progress{height:5px;background:var(--surface-2);border:1px solid var(--line-soft);margin:18px 0;overflow:hidden;}
.timer-progress-bar{height:100%;width:0%;background:var(--accent);transition:width .18s linear, background .2s ease;}
.timer-card[data-phase="work"] .timer-progress-bar{background:var(--accent-2);}
.timer-card[data-phase="rest"] .timer-progress-bar{background:var(--accent-3);}
.timer-card[data-phase="restSet"] .timer-progress-bar{background:var(--accent-3);}
.timer-card[data-phase="cooldown"] .timer-progress-bar{background:var(--accent-3);}

.timer-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.timer-controls button{
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:0.06em;text-transform:uppercase;
  padding:10px 20px;border:1px solid var(--line-soft);background:var(--surface-2);color:var(--text);
  cursor:pointer;border-radius:2px;transition:all .15s ease;min-width:92px;
}
.timer-controls button:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent);}
.timer-controls button:disabled{opacity:0.4;cursor:default;}
.timer-controls button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600;}
.timer-controls button.primary:hover:not(:disabled){color:var(--on-accent);border-color:var(--accent);}
.timer-spec{margin-top:14px;font-size:11.5px;color:var(--muted-2);letter-spacing:0.04em;}

.format-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;}
@media (max-width:820px){.format-grid{grid-template-columns:1fr;}}
.format-card{background:var(--surface);border:1px solid var(--line-soft);border-top:3px solid var(--line);padding:18px 18px 16px;display:flex;flex-direction:column;}
.format-card[data-fmt="tabata"]{border-top-color:var(--accent-2);}
.format-card[data-fmt="hiit"]{border-top-color:var(--accent);}
.format-card[data-fmt="emom"]{border-top-color:var(--accent-3);}
.format-tag{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.09em;color:var(--muted);margin-bottom:8px;}
.format-card h4{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:17px;margin:0 0 8px;color:var(--text);letter-spacing:0.02em;}
.format-card p{font-size:13px;color:var(--muted);margin:0 0 10px;line-height:1.55;}
.format-card .format-note{font-size:12px;color:var(--muted-2);font-style:italic;margin-bottom:14px;}
.format-setup{
  margin-top:auto;padding-top:12px;border-top:1px solid var(--line-soft);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.format-setup .spec{font-size:11px;font-family:'IBM Plex Mono',monospace;color:var(--muted);}
.format-load-btn{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.05em;text-transform:uppercase;
  background:none;border:1px solid var(--accent-dim);color:var(--accent);padding:7px 12px;border-radius:2px;
  cursor:pointer;white-space:nowrap;transition:all .15s ease;
}
.format-load-btn:hover{background:var(--accent);color:var(--on-accent);}
.format-load-flash{outline:2px solid var(--accent);outline-offset:3px;transition:outline-color 1.4s ease;}
.format-load-flash.fade{outline-color:transparent;}

/* ---------- WEIGHT TAB ---------- */
.weight-grid{display:grid;grid-template-columns:340px 1fr;gap:22px;align-items:start;}
@media (max-width:860px){.weight-grid{grid-template-columns:1fr;}}

.weight-card{background:var(--surface);border:1px solid var(--line-soft);padding:20px 20px 22px;}
.weight-card h3{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.03em;font-size:15px;color:var(--text);margin-bottom:14px;}

.unit-switch{display:inline-flex;border:1px solid var(--line-soft);border-radius:20px;overflow:hidden;margin-bottom:16px;}
.unit-switch button{
  background:var(--surface-2);border:0;color:var(--muted);padding:6px 16px;font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;letter-spacing:0.05em;cursor:pointer;transition:all .15s ease;
}
.unit-switch button.active{background:var(--accent);color:var(--on-accent);font-weight:600;}

.weight-form label{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;font-family:'IBM Plex Mono',monospace;margin-bottom:5px;margin-top:14px;}
.weight-form label:first-of-type{margin-top:0;}
.weight-form input,
.weight-form select{
  width:100%;background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text);
  font-family:'IBM Plex Mono',monospace;font-size:15px;padding:9px 10px;border-radius:2px;
}
.weight-form input:focus,
.weight-form select:focus{outline:none;border-color:var(--accent-dim);}
.weight-form-row{display:flex;gap:10px;}
.weight-form-row > div{flex:1;}
.weight-submit{
  /* Big-button experiment: this is the shared primary-CTA class for
     every member-facing "commit" action (Weight/Period/Nutrition's Log
     Day, Messages' Send) — same rationale as the sub-nav tiles. Revert:
     git checkout pre-atm-ui-experiment -- css/bells-n-barz.css */
  margin-top:16px;width:100%;background:var(--accent);border:1px solid var(--accent);color:var(--on-accent);
  font-family:'Oswald',sans-serif;font-size:16px;letter-spacing:0.03em;text-transform:uppercase;
  padding:16px;border-radius:8px;cursor:pointer;font-weight:600;
  transition:opacity .15s ease, transform .08s ease;
}
.weight-submit:hover{opacity:0.88;}
.weight-submit:active{transform:scale(0.97);}

/* Big-button experiment: the member's own "Check In Today" CTA on their
   Profile page — scoped to this one id rather than the shared .btn2
   class, which is also used throughout the desk-oriented Admin editors
   (Blog/Gallery/Shop/Billing) that this experiment isn't touching.
   Revert: git checkout pre-atm-ui-experiment -- css/bells-n-barz.css */
#usr-self-checkin-btn{
  font-family:'Oswald',sans-serif;font-size:16px;letter-spacing:0.03em;
  padding:16px 28px;border-radius:8px;transition:opacity .15s ease, transform .08s ease;
  margin-left:auto;
}
#usr-self-checkin-btn:active{transform:scale(0.97);}
.weight-hint{font-size:11.5px;color:var(--muted-2);margin-top:10px;line-height:1.5;}

.weight-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;}
@media (max-width:560px){.weight-stats{grid-template-columns:1fr 1fr;}}
.weight-stat{background:var(--surface);border:1px solid var(--line-soft);padding:12px 14px;text-align:center;}
.weight-stat .lbl{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:5px;}
.weight-stat .val{font-family:'Oswald',sans-serif;font-size:22px;color:var(--text);}
.weight-stat .val.down{color:var(--accent-3);}
.weight-stat .val.up{color:var(--accent-2);}

.weight-chart-card{background:var(--surface);border:1px solid var(--line-soft);padding:20px;}
.weight-chart-empty{padding:50px 20px;text-align:center;color:var(--muted-2);font-size:13px;}
.weight-chart-svg{width:100%;height:auto;display:block;}
.weight-chart-svg .grid-line{stroke:var(--line-soft);stroke-width:1;}
.weight-chart-svg .axis-label{fill:var(--muted-2);font-family:'IBM Plex Mono',monospace;font-size:10px;}
.weight-chart-svg .trend-line{fill:none;stroke:var(--accent-dim);stroke-width:1.6;stroke-dasharray:4 3;}
.weight-chart-svg .data-line{fill:none;stroke:var(--accent);stroke-width:2.2;}
.weight-chart-svg .data-dot{fill:var(--accent);stroke:var(--surface);stroke-width:1.5;}
.weight-chart-svg .data-dot:hover{fill:var(--accent-hover);}
.weight-chart-svg .target-line{fill:none;stroke:var(--accent-3);stroke-width:1.6;stroke-dasharray:2 4;}
.weight-chart-svg .target-label{fill:var(--accent-3);font-family:'IBM Plex Mono',monospace;font-size:10px;}
.weight-chart-legend{display:flex;gap:18px;margin-top:12px;font-size:11px;color:var(--muted);font-family:'IBM Plex Mono',monospace;}
.weight-chart-legend span{display:inline-flex;align-items:center;gap:6px;}
.weight-chart-legend .swatch{width:14px;height:2px;display:inline-block;}
.weight-chart-legend .swatch.solid{background:var(--accent);}
.weight-chart-legend .swatch.target{background:repeating-linear-gradient(90deg, var(--accent-3) 0 2px, transparent 2px 6px);}
.weight-chart-legend .swatch.dash{background:repeating-linear-gradient(90deg, var(--accent-dim) 0 4px, transparent 4px 7px);}

.weight-history{margin-top:22px;}
.weight-history-table{width:100%;border-collapse:collapse;}
.weight-history-table th{
  text-align:left;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.07em;text-transform:uppercase;
  color:var(--accent);border-bottom:1px solid var(--accent-dim);padding:8px 10px;
}
.weight-history-table td{padding:9px 10px;border-bottom:1px solid var(--line-soft);font-size:13.5px;}
.weight-history-table td.mono{font-family:'IBM Plex Mono',monospace;}
.weight-history-table .delta-up{color:var(--accent-2);}
.weight-history-table .delta-down{color:var(--accent-3);}
.weight-history-table .delta-flat{color:var(--muted);}
.weight-del-btn{
  background:none;border:1px solid var(--line-soft);color:var(--muted);width:26px;height:26px;border-radius:2px;
  cursor:pointer;font-size:12px;line-height:1;transition:all .15s ease;
}
.weight-del-btn:hover{border-color:var(--accent-2);color:var(--accent-2);}
.weight-clear-row{margin-top:14px;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;}
.weight-clear-btn{
  background:none;border:1px solid var(--line-soft);color:var(--muted-2);font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:0.05em;text-transform:uppercase;padding:7px 12px;border-radius:2px;cursor:pointer;
}
.weight-clear-btn:hover{border-color:var(--accent-2);color:var(--accent-2);}

/* ---------- MESSAGES ---------- */
.sched-scope .msg-thread{
  max-height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;
  padding:16px;background:var(--surface);border:1px solid var(--line-soft);margin-top:16px;
}
.sched-scope .msg-bubble{max-width:75%;padding:10px 12px;border-radius:4px;background:var(--surface-2);border:1px solid var(--line-soft);}
.sched-scope .msg-bubble.mine{align-self:flex-end;background:rgba(var(--accent-rgb),0.12);border-color:var(--accent-dim);}
.sched-scope .msg-meta{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted-2);margin-bottom:4px;}
.sched-scope .msg-body{font-size:14px;color:var(--text);white-space:pre-wrap;word-break:break-word;}
.sched-scope .msg-compose{display:flex;gap:10px;margin-top:12px;align-items:flex-end;flex-wrap:wrap;}
.sched-scope .msg-input{
  flex:1;min-width:200px;min-height:44px;max-height:140px;resize:vertical;padding:10px 12px;
  background:var(--surface);border:1px solid var(--line-soft);color:var(--text);font-size:14px;border-radius:2px;
}
.sched-scope .msg-staff-layout{display:grid;grid-template-columns:260px 1fr;gap:18px;margin-top:16px;}
.sched-scope .msg-thread-list{display:flex;flex-direction:column;gap:4px;}
.sched-scope .msg-thread-row{
  display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;
  background:var(--surface);border:1px solid var(--line-soft);border-radius:2px;cursor:pointer;font-size:13.5px;
}
.sched-scope .msg-thread-row:hover{border-color:var(--accent-dim);}
.sched-scope .msg-thread-row.active{border-color:var(--accent);background:var(--surface-2);}
.sched-scope .msg-thread-name{color:var(--text);}
.sched-scope .msg-needs-reply{
  font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--accent-2);border:1px solid var(--accent-2);border-radius:2px;padding:2px 6px;white-space:nowrap;
}
@media (max-width:700px){
  .sched-scope .msg-staff-layout{grid-template-columns:1fr;}
}

/* ---------- MOON TAB ---------- */
.sched-scope .moon-today-card{display:flex; align-items:center; gap:20px; background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:22px; margin-top:16px;}
.sched-scope .moon-today-icon{font-size:56px; line-height:1;}
.sched-scope .moon-today-name{font-family:'Oswald',sans-serif; font-size:20px; text-transform:uppercase; letter-spacing:.03em; color:var(--text);}
.sched-scope .moon-today-illum{font-size:13px; color:var(--muted); margin-top:4px;}
.sched-scope .moon-today-next{font-size:12px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; margin-top:8px;}
.sched-scope .moon-strip{display:flex; gap:10px; overflow-x:auto; margin-top:22px; padding-bottom:6px;}
.sched-scope .moon-day{flex:0 0 auto; width:58px; text-align:center; padding:10px 6px; border:1px solid var(--line-soft); border-radius:4px; background:var(--surface);}
.sched-scope .moon-day.today{border-color:var(--accent); background:rgba(var(--accent-rgb),.08);}
.sched-scope .moon-day .moon-day-icon{font-size:22px; line-height:1;}
.sched-scope .moon-day .moon-day-label{font-size:10.5px; font-family:'IBM Plex Mono',monospace; color:var(--muted-2); margin-top:6px;}
@media (max-width:640px){
  .sched-scope .moon-today-card{flex-direction:column; align-items:flex-start; text-align:left;}
}
.sched-scope .ekadashi-card{background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:22px; margin-top:16px; text-align:center;}
.sched-scope .ekadashi-label{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--accent);}
.sched-scope .ekadashi-status{font-family:'Oswald',sans-serif; font-size:18px; color:var(--text); margin-top:8px;}
.sched-scope .ekadashi-countdown{font-family:'IBM Plex Mono',monospace; font-size:22px; color:var(--accent); margin-top:6px;}
.sched-scope .ekadashi-note{font-size:11.5px; color:var(--muted-2); margin-top:12px; padding-top:12px; border-top:1px solid var(--line-soft); line-height:1.5; text-align:left;}
.sched-scope .ekadashi-hourglass{display:flex; justify-content:center; margin-bottom:10px;}
.sched-scope .ekadashi-hourglass svg{display:block; overflow:visible; transform-origin:50% 50%;}
.sched-scope .ekadashi-hourglass .eg-frame{fill:none; stroke:var(--muted-2); stroke-width:3; stroke-linejoin:round;}
.sched-scope .ekadashi-hourglass .eg-neck{fill:var(--muted-2);}
.sched-scope .ekadashi-hourglass .eg-sand-top,
.sched-scope .ekadashi-hourglass .eg-sand-bottom{fill:var(--accent);}
@keyframes ekadashi-hourglass-turn{
  0%{transform:rotate(0deg);}
  100%{transform:rotate(360deg);}
}
.sched-scope .ekadashi-hourglass.turning svg{
  animation:ekadashi-hourglass-turn 1.4s cubic-bezier(.65,0,.35,1);
}

/* ---------- INTERMITTENT FASTING TAB ---------- */
.sched-scope .fasting-protocol-switch{display:flex; gap:8px; flex-wrap:wrap; margin:16px 0;}
.sched-scope .fasting-protocol-switch button{padding:9px 18px; border-radius:20px; border:1px solid var(--line); background:var(--surface-2); color:var(--muted); cursor:pointer; font-size:13px; font-family:'IBM Plex Mono',monospace; letter-spacing:.03em; text-transform:uppercase;}
.sched-scope .fasting-protocol-switch button.active{background:var(--accent); border-color:var(--accent); color:var(--on-accent); font-weight:600;}
.sched-scope .fasting-custom-row{display:flex; gap:14px; flex-wrap:wrap; align-items:flex-end; margin-bottom:18px; background:var(--surface-2); border:1px solid var(--line); border-radius:4px; padding:14px;}
.sched-scope .fasting-custom-row label{font-size:10.5px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); display:block; margin-bottom:5px;}
.sched-scope .fasting-custom-row input{width:80px; background:var(--bg); border:1px solid var(--line-soft); color:var(--text); padding:8px 10px; border-radius:2px; font-size:13px; font-family:'IBM Plex Sans',sans-serif;}
.sched-scope .fasting-timer-card{background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:28px; text-align:center; margin-bottom:22px;}
.sched-scope .fasting-ring-wrap{position:relative; display:inline-block; margin:0 auto 14px;}
.sched-scope .fasting-ring{transform:rotate(-90deg);}
.sched-scope .fasting-ring-bg{fill:none; stroke:var(--line-soft); stroke-width:8;}
.sched-scope .fasting-ring-progress{fill:none; stroke:var(--accent); stroke-width:8; stroke-linecap:round; transition:stroke-dashoffset 1s linear;}
.sched-scope .fasting-ring-center{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 12px;}
.sched-scope .fasting-phase{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:14px; letter-spacing:.04em; color:var(--text);}
.sched-scope .fasting-countdown{font-family:'IBM Plex Mono',monospace; font-size:19px; color:var(--accent); margin-top:4px;}
.sched-scope .fasting-meta{font-size:12.5px; color:var(--muted); margin:16px 0 20px; max-width:360px; margin-left:auto; margin-right:auto;}
.sched-scope .fasting-action-btn{background:var(--accent); border:none; color:var(--on-accent); padding:12px 30px; border-radius:4px; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em; font-size:14px; cursor:pointer;}
.sched-scope .fasting-action-btn:hover{opacity:.9;}
.sched-scope .fasting-action-btn:disabled{opacity:.5; cursor:default;}
.sched-scope .fasting-action-btn.danger{background:transparent; border:1px solid #8a3a32; color:#e0736a;}
.sched-scope .fasting-alarm-row{display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; margin-top:16px; padding-top:16px; border-top:1px solid var(--line-soft);}
.sched-scope .fasting-sound-toggle,
.sched-scope .fasting-notif-btn{background:transparent; border:1px solid var(--line); color:var(--muted); padding:6px 13px; border-radius:20px; cursor:pointer; font-size:11.5px; font-family:'IBM Plex Mono',monospace; letter-spacing:.03em;}
.sched-scope .fasting-sound-toggle:hover,
.sched-scope .fasting-notif-btn:hover{border-color:var(--accent-dim); color:var(--text);}
.sched-scope .fasting-sound-toggle.muted{color:var(--muted-2);}
.sched-scope .fasting-notif-note{font-size:11px; color:var(--muted-2);}
.sched-scope .fasting-mode-switch, .sched-scope .recipe-switch{display:flex; gap:8px; margin:16px 0 22px; border-bottom:1px solid var(--line); padding-bottom:16px;}
.sched-scope .fasting-mode-switch button, .sched-scope .recipe-switch button{padding:9px 18px; border-radius:2px; border:1px solid var(--line); background:transparent; color:var(--muted); cursor:pointer; font-size:12.5px; font-family:'IBM Plex Mono',monospace; letter-spacing:.03em; text-transform:uppercase;}
.sched-scope .fasting-mode-switch button.active, .sched-scope .recipe-switch button.active{border-color:var(--accent); color:var(--accent); background:rgba(var(--accent-rgb),.08); font-weight:600;}
.sched-scope .fasting-522-days{display:flex; gap:6px; flex-wrap:wrap; margin:16px 0 10px;}
.sched-scope .fasting-522-days button{flex:1; min-width:44px; padding:10px 4px; border-radius:4px; border:1px solid var(--line); background:var(--surface-2); color:var(--muted); cursor:pointer; font-size:12px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase;}
.sched-scope .fasting-522-days button.active{background:var(--accent); border-color:var(--accent); color:var(--on-accent); font-weight:600;}
@media (max-width:480px){
  .sched-scope .fasting-ring-wrap svg{width:130px; height:130px;}
}

/* ---------- PERIOD TAB ---------- */
.period-flow-switch{display:flex;flex-wrap:wrap;border-radius:0;}
.period-flow-switch button{flex:1;white-space:nowrap;}

.symptom-chip-group{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px;}
.symptom-chip{
  background:var(--surface-2);border:1px solid var(--line-soft);color:var(--muted);padding:5px 11px;
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.03em;border-radius:14px;cursor:pointer;
  transition:all .15s ease;
}
.symptom-chip.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600;}
.symptom-chip:hover:not(.active){border-color:var(--accent-dim);color:var(--text);}

.period-predict-card{margin-top:16px;}
.period-predict-text{color:var(--text);font-size:14px;line-height:1.5;margin-bottom:10px;}

.bmi-section{margin-top:30px;padding-top:26px;border-top:1px solid var(--line-soft);}
.bmi-section-head{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.03em;font-size:15px;color:var(--text);margin-bottom:14px;}
.bmi-grid{display:grid;grid-template-columns:340px 1fr;gap:22px;align-items:start;}
@media (max-width:860px){.bmi-grid{grid-template-columns:1fr;}}
.bmi-field-row{display:flex;gap:10px;}
.bmi-field-row > div{flex:1;}
.bmi-note{font-size:11px;color:var(--muted-2);margin-top:4px;}
.bmi-result-card{text-align:center;}
.bmi-result-card h3{text-align:left;}
.bmi-placeholder{padding:30px 10px;text-align:center;color:var(--muted-2);font-size:13px;}
.bmi-value{font-family:'Oswald',sans-serif;font-size:56px;color:var(--accent);line-height:1;}
.bmi-category{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;color:var(--text);margin-top:8px;margin-bottom:22px;}
.bmi-category.cat-under{color:var(--accent-dim);}
.bmi-category.cat-normal{color:var(--accent-3);}
.bmi-category.cat-over{color:var(--accent);}
.bmi-category.cat-obese{color:var(--accent-2);}
.bmi-source{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted-2);margin-bottom:18px;}
.bmi-scale{margin-bottom:16px;}
.bmi-scale-track{position:relative;height:10px;border-radius:6px;overflow:visible;display:flex;}
.bmi-scale-seg{height:100%;}
.bmi-scale-seg.under{width:20%;background:var(--accent-dim);border-radius:6px 0 0 6px;}
.bmi-scale-seg.normal{width:30%;background:var(--accent-3);}
.bmi-scale-seg.over{width:25%;background:var(--accent);}
.bmi-scale-seg.obese{width:25%;background:var(--accent-2);border-radius:0 6px 6px 0;}
.bmi-scale-marker{
  position:absolute;top:-6px;width:2px;height:22px;background:var(--text);
  transform:translateX(-1px);transition:left .25s ease;
}
.bmi-scale-marker::after{
  content:'';position:absolute;top:-5px;left:50%;transform:translateX(-50%);
  border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:6px solid var(--text);
}
.bmi-scale-labels{display:flex;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);margin-top:6px;}
.bmi-scale-labels span{flex:1;text-align:center;}
.bmi-scale-labels span:first-child{text-align:left;}
.bmi-scale-labels span:last-child{text-align:right;}
#bodycomp-unit-switch{margin-top:-4px;}
.bodycomp-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-soft);}
.bodycomp-row:first-child{padding-top:0;}
.bodycomp-name{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.03em;font-size:14px;color:var(--text);}
.bodycomp-name > span{display:block;font-family:'IBM Plex Sans',sans-serif;text-transform:none;letter-spacing:0;font-size:12px;color:var(--muted-2);margin-top:3px;line-height:1.45;max-width:52ch;}
.bodycomp-val{text-align:right;flex-shrink:0;min-width:90px;}
.bodycomp-val b{display:block;font-family:'Oswald',sans-serif;font-weight:400;font-size:26px;color:var(--accent);line-height:1.1;}
.bodycomp-val i{display:block;font-style:normal;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);margin-top:3px;}
.bodycomp-val i.cat-normal{color:var(--accent-3);}
.bodycomp-val i.cat-over{color:var(--accent);}
.bodycomp-val i.cat-obese{color:var(--accent-2);}

/* ---------- TRACK TAB (Hepburn Progression) ---------- */
.track-program-status{font-size:12.5px;color:var(--muted);margin-top:14px;line-height:1.5;}
.track-program-status b{color:var(--text);}
.track-program-track{height:7px;background:var(--surface-2);border-radius:2px;overflow:hidden;margin-top:9px;border:1px solid var(--line-soft);}
.track-program-fill{height:100%;width:0;background:var(--accent);transition:width .25s ease;}
.track-program-fill.done{background:var(--accent-3);}
.track-program-fill.deload{background:var(--accent-2);}

.track-picker-row{display:flex;gap:8px;margin:22px 0 18px;align-items:center;}
.track-picker-label{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.track-exercise-select{
  flex:1;background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text);
  font-family:'IBM Plex Sans',sans-serif;font-size:14px;font-weight:600;padding:10px 10px;border-radius:2px;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%239c9587'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:28px;
}
.track-icon-btn{
  background:var(--surface-2);border:1px solid var(--line-soft);color:var(--muted);
  width:38px;height:38px;border-radius:2px;cursor:pointer;font-size:15px;flex-shrink:0;
}
.track-icon-btn:hover{color:var(--text);border-color:var(--accent-dim);}

.t-lift-name{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.03em;font-size:16px;color:var(--text);margin-bottom:16px;}
.t-weight-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;}
.t-weight-label{font-size:10.5px;color:var(--muted);letter-spacing:0.06em;text-transform:uppercase;font-family:'IBM Plex Mono',monospace;margin-bottom:5px;}
.t-weight-val-row{display:flex;align-items:center;gap:8px;}
.t-weight-edit{
  background:var(--surface-2);border:1px solid var(--line-soft);color:var(--accent);
  font-family:'IBM Plex Mono',monospace;font-size:22px;font-weight:600;width:88px;padding:6px 6px;border-radius:2px;text-align:right;
}
.t-target-val{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--muted);}

.t-ladder{margin-bottom:6px;}
.t-rung{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-soft);}
.t-rung:last-child{border-bottom:none;}
.t-rung-label{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muted);width:44px;flex-shrink:0;}
.t-rung-track{flex:1;height:8px;background:var(--surface-2);border-radius:2px;overflow:hidden;}
.t-rung-fill{height:100%;background:var(--accent-dim);}
.t-rung-fill.maxed{background:var(--accent-3);}
.t-rung-input{
  width:44px;background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text);
  font-family:'IBM Plex Mono',monospace;font-size:13px;text-align:center;padding:4px 2px;border-radius:2px;flex-shrink:0;
}
.t-rung-target{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);width:26px;flex-shrink:0;text-align:right;}

.t-status-line{font-size:12.5px;color:var(--muted);margin:16px 0 18px;line-height:1.5;}
.t-status-line b{color:var(--text);}
.t-actions{display:flex;gap:10px;}
button.t-primary{
  flex:1;background:var(--accent);color:var(--on-accent);border:none;font-weight:600;font-family:'IBM Plex Mono',monospace;
  font-size:13px;letter-spacing:0.03em;text-transform:uppercase;padding:12px 14px;border-radius:2px;cursor:pointer;
}
button.t-primary:hover{background:var(--accent-hover);}
button.t-ghost{
  background:none;border:1px solid var(--line-soft);color:var(--muted);font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;letter-spacing:0.03em;text-transform:uppercase;padding:12px 14px;border-radius:2px;cursor:pointer;
}
button.t-ghost:hover{color:var(--text);border-color:var(--accent-dim);}

/* Add / Edit exercise panel */
.t-panel-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:flex-end;justify-content:center;z-index:80;}
.t-panel-backdrop.open{display:flex;}
.t-panel{background:var(--surface);border:1px solid var(--line);width:100%;max-width:640px;padding:22px 20px 26px;max-height:88vh;overflow-y:auto;}
@media (min-width:680px){.t-panel-backdrop{align-items:center;}}
.t-panel h2{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.03em;font-size:16px;margin:0 0 16px;color:var(--text);}
.t-field{margin-bottom:14px;}
.t-field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--muted);letter-spacing:0.06em;text-transform:uppercase;margin-bottom:6px;}
.t-field select, .t-field input[type=text], .t-field input[type=number]{
  width:100%;background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text);
  font-family:'IBM Plex Sans',sans-serif;font-size:14px;padding:10px 10px;border-radius:2px;
}
.t-field select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%239c9587'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:28px;
}
.t-row2{display:flex;gap:10px;}
.t-row2 .t-field{flex:1;}
.t-panel-actions{display:flex;gap:10px;margin-top:18px;}

.t-toast{
  position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(8px);
  background:var(--surface-2);border:1px solid var(--line);color:var(--text);font-family:'IBM Plex Sans',sans-serif;font-size:13px;
  padding:10px 16px;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .2s, transform .2s;z-index:90;
}
.t-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---------- LIVE SESSION LOG TAB (member) ---------- */
/* .sesh-entries-empty and .sesh-del-btn are still used by the Live Session
   Log's history table below; the rest of the old flat Sesh form/day-chip/
   filter-row rules were removed along with that markup. */
.sesh-entries-empty{font-size:12px;color:var(--muted);padding:18px 0;text-align:center;background:var(--surface-2);border-radius:2px;}
.sesh-del-btn{background:none;border:1px solid var(--line-soft);color:var(--muted-2);font-size:15px;line-height:1;padding:4px 9px;border-radius:2px;cursor:pointer;}
.sesh-del-btn:hover{color:var(--accent-2);border-color:var(--accent-2);}

/* ---------- RESPONSIVE ---------- */
@media (max-width:600px){
  .site-title-row{flex-direction:column;align-items:flex-start;}
  .header-right{width:100%;justify-content:space-between;}
}
@media (max-width:760px){
  .wrap{padding:0 16px;}
  .rack-inner{padding:12px 16px;gap:8px;}
  .search-box{padding:8px 16px;}
  header.site{padding:24px 0 0;}
  .site-title{font-size:clamp(26px,8vw,40px);}
  main{padding:28px 0 70px;}
  .day-head h2{font-size:26px;}
  .day-head{gap:10px;}
  .phase{padding:13px 14px;}
  table.block td, .ref-table td{padding:8px 10px;font-size:13.5px;}
  .ref-table th{padding:7px 10px;}
  .drill-index{grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:6px;}
  .hold-strip{flex-wrap:wrap;padding:14px;}
  .section-block > h2{font-size:22px;}
  .func-card summary{padding:12px 14px;}
  .callout{padding:12px 14px;font-size:13.5px;}
  .back-pill{width:calc(100% - 32px);justify-content:center;bottom:16px;font-size:12px;padding:10px 14px;}
  .ticker .wrap{font-size:11.5px;}
}
@media (max-width:420px){
  .plate.sz-4{width:56px;height:56px;}
  .plate.sz-3{width:50px;height:50px;}
  .plate.sz-2{width:46px;height:46px;}
  .plate.sz-1{width:40px;height:40px;}
  .plate .d{font-size:11px;}
  .version-badge{font-size:11px;padding:5px 9px;}
}

  .glance-scope{
    --glbg:#0d0d0f;
    --glbg-card:#17171a;
    --glbg-card-hover:#1e1e21;
    --glgold:#c9a445;
    --glgold-bright:#e6c76a;
    --gltext:#ede8db;
    --gltext-muted:#8b8a86;
    --glborder:#2a2a2c;
  }.glance-scope * {box-sizing:border-box; margin:0; padding:0;}.glance-scope {scroll-behavior:smooth;}.glance-scope {
    background:var(--glbg);
    color:var(--gltext);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
    line-height:1.5;
    padding-bottom:80px;
  }.glance-scope /* Plate divider signature element */
  .plate-rule {
    display:flex; align-items:center; gap:8px;
    margin:0 auto; max-width:900px;
    padding:0 24px;
  }.glance-scope .plate-rule::before, .glance-scope .plate-rule::after {
    content:""; flex:1; height:1px; background:var(--glborder);
  }.glance-scope .plate-dot {
    width:6px; height:6px; border-radius:50%; background:var(--glgold);
    opacity:.6;
  }.glance-scope header {
    padding:64px 24px 40px;
    text-align:center;
    border-bottom:1px solid var(--glborder);
  }.glance-scope .eyebrow {
    color:var(--glgold);
    font-size:12px;
    letter-spacing:.28em;
    text-transform:uppercase;
    font-weight:700;
    margin-bottom:14px;
  }.glance-scope h1 {
    font-family:"Arial Black","Helvetica Neue",sans-serif;
    font-weight:900;
    font-size:clamp(32px,7vw,58px);
    letter-spacing:.01em;
    text-transform:uppercase;
    line-height:1.02;
  }.glance-scope h1 span {color:var(--glgold);}.glance-scope .sub {
    color:var(--gltext-muted);
    font-size:15px;
    margin-top:16px;
    max-width:520px;
    margin-left:auto; margin-right:auto;
  }.glance-scope .search-wrap {
    max-width:640px;
    margin:32px auto 0;
    padding:0 24px;
  }.glance-scope #search {
    width:100%;
    background:var(--glbg-card);
    border:1px solid var(--glborder);
    color:var(--gltext);
    font-size:15px;
    padding:14px 18px;
    border-radius:8px;
    outline:none;
    transition:border-color .15s ease;
  }.glance-scope #search:focus {border-color:var(--glgold);}.glance-scope #search::placeholder {color:var(--gltext-muted);}.glance-scope nav.jump {
    max-width:900px;
    margin:24px auto 0;
    padding:0 24px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    justify-content:center;
  }.glance-scope nav.jump a {
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--gltext-muted);
    border:1px solid var(--glborder);
    padding:7px 14px;
    border-radius:999px;
    text-decoration:none;
    transition:all .15s ease;
    white-space:nowrap;
  }.glance-scope nav.jump a:hover {
    color:var(--glgold-bright);
    border-color:var(--glgold);
  }.glance-scope main {
    max-width:900px;
    margin:0 auto;
    padding:48px 24px 0;
  }.glance-scope section.group {
    margin-bottom:52px;
    scroll-margin-top:24px;
  }.glance-scope section.group.hidden {display:none;}.glance-scope .group-head {
    display:flex;
    align-items:baseline;
    gap:14px;
    margin-bottom:6px;
  }.glance-scope .group-num {
    font-family:"Arial Black","Helvetica Neue",sans-serif;
    font-size:13px;
    color:var(--glgold);
    letter-spacing:.1em;
  }.glance-scope .group-title {
    font-family:"Arial Black","Helvetica Neue",sans-serif;
    font-weight:900;
    text-transform:uppercase;
    font-size:22px;
    letter-spacing:.02em;
  }.glance-scope .group-pattern {
    color:var(--gltext-muted);
    font-size:13px;
    margin-bottom:20px;
  }.glance-scope .subblock {margin-bottom:22px;}.glance-scope .subblock-label {
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--gltext-muted);
    margin-bottom:10px;
    font-weight:700;
  }.glance-scope .subblock-label.alsosee {color:#6b6a66; font-style:italic; letter-spacing:.06em;}.glance-scope .chip-row {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
  }.glance-scope a.chip {
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:var(--glbg-card);
    border:1px solid var(--glborder);
    color:var(--gltext);
    text-decoration:none;
    font-size:14px;
    padding:10px 14px;
    border-radius:8px;
    transition:all .15s ease;
  }.glance-scope a.chip:hover {
    background:var(--glbg-card-hover);
    border-color:var(--glgold);
    color:var(--glgold-bright);
    transform:translateY(-1px);
  }.glance-scope a.chip .play {
    color:var(--glgold);
    font-size:10px;
  }.glance-scope a.chip.category {
    opacity:.75;
    font-style:italic;
  }.glance-scope a.chip.category:hover {opacity:1;}.glance-scope #empty-state {
    display:none;
    text-align:center;
    color:var(--gltext-muted);
    padding:60px 24px;
    font-size:14px;
  }.glance-scope footer {
    max-width:900px;
    margin:40px auto 0;
    padding:32px 24px 0;
    text-align:center;
    color:var(--gltext-muted);
    font-size:12px;
  }.glance-scope footer .brand {
    color:var(--glgold);
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-size:11px;
    margin-bottom:6px;
  }

  @media (max-width:520px){.glance-scope header {padding:48px 20px 32px;}.glance-scope nav.jump {gap:6px;}.glance-scope nav.jump a {padding:6px 11px; font-size:11px;}
  }


/* ===== ADMIN / LOGSHEET / GLANCE ADD-ONS ===== */
.subtab-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.subtab-btn{background:var(--surface);border:1px solid var(--line-soft);color:var(--muted);
  padding:7px 14px;border-radius:20px;cursor:pointer;font-family:'IBM Plex Mono',monospace;
  font-size:12px;letter-spacing:.04em;}
.subtab-btn.active{color:var(--on-accent);background:var(--accent);border-color:var(--accent);}
.admin-day-select{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;}
.admin-notice{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--accent);
  padding:10px 14px;font-size:12.5px;color:var(--muted);margin-bottom:18px;border-radius:2px;}
.crud-block{border:1px solid var(--line);margin-bottom:16px;border-radius:2px;overflow:hidden;background:var(--surface);}
.crud-block-head{display:flex;align-items:center;justify-content:space-between;background:var(--surface-2);
  padding:8px 12px;border-bottom:1px solid var(--line);}
.crud-block-head input{background:transparent;border:none;color:var(--text);font-family:'Oswald',sans-serif;
  text-transform:uppercase;letter-spacing:.04em;font-size:14px;font-weight:600;width:60%;}
.crud-block-head input:focus{outline:1px solid var(--accent-dim);}
.crud-ex-row{display:grid;grid-template-columns:1.6fr .5fr .7fr .6fr .6fr .6fr .9fr 1.1fr auto;gap:6px;
  padding:8px 12px;border-top:1px solid var(--line-soft);align-items:center;}
.crud-ex-row input{background:var(--bg);border:1px solid var(--line-soft);color:var(--text);
  padding:6px 7px;font-size:12px;border-radius:2px;width:100%;font-family:'IBM Plex Sans',sans-serif;}
.crud-ex-row label{font-size:9px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:2px;}
.crud-col{display:flex;flex-direction:column;}
.crud-actions{padding:10px 12px;display:flex;gap:8px;}
.btn2{background:var(--surface-2);border:1px solid var(--line-soft);color:var(--muted);
  padding:7px 13px;border-radius:2px;font-size:12px;cursor:pointer;font-family:'IBM Plex Mono',monospace;}
.btn2:hover{color:var(--text);border-color:var(--accent-dim);}
.btn2.primary{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:600;}
.btn2.danger:hover{color:#e0736a;border-color:#8a3a32;}
.btn2.stub{border-style:dashed;opacity:.7;}
.btn2.stub:hover{color:var(--muted);border-color:var(--line-soft);cursor:help;}
.crud-remove{background:transparent;border:none;color:var(--accent-2);cursor:pointer;font-size:16px;line-height:1;padding:4px;}
.perform-render table.block{margin-bottom:14px;}
.logsheet-meta{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-bottom:16px;
  padding-bottom:14px;border-bottom:1px solid var(--line);}
.ls-field{display:flex;flex-direction:column;gap:3px;}
.ls-field label{font-size:10px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;}
.ls-field input{background:var(--surface);border:1px solid var(--line-soft);color:var(--text);
  border-radius:2px;padding:6px 8px;font-size:13px;width:140px;}
.ls-block{border:1px solid var(--line);border-radius:2px;overflow:hidden;margin-bottom:16px;}
.ls-block-head{background:var(--accent-dim);color:var(--on-accent);font-weight:700;font-size:12.5px;
  letter-spacing:.05em;text-transform:uppercase;padding:9px 14px;}
.ls-exercise{padding:12px 14px;border-top:1px solid var(--line);background:var(--surface);}
.ls-exercise:first-of-type{border-top:none;}
.ls-ex-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:4px;}
.ls-ex-name{font-weight:700;font-size:14.5px;flex:1 1 auto;min-width:0;}
.ls-ex-swapped{display:block;font-weight:400;font-size:11.5px;color:var(--muted);font-style:italic;}
.ls-ex-head .ff-alt{order:2;}
.ls-ex-head .ls-ex-presc{order:3;align-self:center;}
.ls-ex-presc{font-size:12px;color:var(--accent);font-style:italic;white-space:nowrap;}
.ls-ex-meta{font-size:11px;color:var(--muted);margin-bottom:9px;}
.ls-sets{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;}
.ls-set{display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line-soft);
  border-radius:2px;padding:6px 8px;}
.ls-set.done{border-color:var(--accent-3);background:rgba(var(--accent-3-rgb),.08);}
.ls-set input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-3);cursor:pointer;flex:0 0 auto;}
.ls-set-label{font-size:10px;color:var(--muted);width:16px;flex:0 0 auto;}
.ls-set input[type=text]{background:transparent;border:none;border-bottom:1px solid var(--line-soft);
  color:var(--text);font-size:12px;width:36px;text-align:center;padding:2px 0;}
.ls-set input[type=text]:focus{outline:none;border-color:var(--accent);}
.ls-slash{color:var(--muted);font-size:11px;}
.ls-notes{width:100%;min-height:60px;background:var(--surface);border:1px solid var(--line-soft);
  border-radius:2px;color:var(--text);padding:10px;font-size:13px;resize:vertical;font-family:inherit;margin-bottom:12px;}
.ls-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;align-items:center;}
.mls-save-status{font-size:11px;font-family:'IBM Plex Mono',monospace;letter-spacing:.03em;margin-left:auto;color:var(--muted);}
.mls-save-status.is-saving{color:var(--muted);}
.mls-save-status.is-saved{color:var(--accent);}
.mls-save-status.is-offline{color:#c99a2e;}
.cs-trainee-field input{border-color:var(--accent-dim);}
.cs-trainee-field label{color:var(--accent);font-weight:700;}
.cs-required-mark{color:var(--accent);}
.cs-trainee-hint{font-size:11px;color:var(--muted);margin:-8px 0 16px;}
.cs-save-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-family:'IBM Plex Mono',monospace;margin-right:2px;}
.cs-slot-switch{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;}
.cs-slot-btn{background:var(--surface);border:1px solid var(--line-soft);color:var(--muted);
  padding:9px 15px;border-radius:20px;font-size:12.5px;font-family:'IBM Plex Sans',sans-serif;
  cursor:pointer;display:flex;align-items:center;gap:7px;}
.cs-slot-btn.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600;}
.cs-slot-btn .cs-slot-num{font-family:'IBM Plex Mono',monospace;font-size:10px;opacity:.75;}
.cs-slot-btn.cs-slot-empty{font-style:italic;opacity:.75;}

/* ---------- LIVE SESSION: mode toggle (Day's Program vs Freeform) ---------- */
.cs-mode-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 18px;}
.cs-mode-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-family:'IBM Plex Mono',monospace;margin-right:2px;}
.cs-mode-btn{background:var(--surface);border:1px solid var(--line-soft);color:var(--muted);
  padding:8px 16px;border-radius:20px;font-size:12.5px;font-family:'IBM Plex Sans',sans-serif;cursor:pointer;}
.cs-mode-btn:hover{color:var(--text);border-color:var(--accent-dim);}
.cs-mode-btn.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600;}

/* ---------- LIVE SESSION: freeform exercise entry ---------- */
.cs-freeform-exercise{position:relative;}
.cs-freeform-ex-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.cs-freeform-name{flex:1 1 auto;background:transparent;border:none;border-bottom:1px solid var(--line-soft);
  color:var(--text);font-weight:700;font-size:14.5px;font-family:inherit;padding:4px 2px;outline:none;min-width:0;}
.cs-freeform-name:focus{border-color:var(--accent);}
.cs-freeform-name::placeholder{color:var(--muted-2);font-weight:400;font-style:italic;}
.cs-freeform-remove-ex{flex:0 0 auto;background:none;border:1px solid var(--line-soft);color:var(--muted);
  width:26px;height:26px;border-radius:2px;cursor:pointer;font-size:13px;line-height:1;}
.cs-freeform-remove-ex:hover{color:#e0736a;border-color:#8a3a32;}
.ls-set .cs-freeform-remove-set{flex:0 0 auto;background:none;border:none;color:var(--muted);
  cursor:pointer;font-size:15px;line-height:1;padding:0 2px;}
.ls-set .cs-freeform-remove-set:hover{color:#e0736a;}
.cs-freeform-add-set{margin-top:10px;padding:6px 13px;font-size:12px;}
.cs-freeform-add-ex{margin-top:2px;}
.cs-freeform-copy-wrap{position:relative;display:inline-block;margin-top:2px;margin-left:8px;}
.cs-freeform-copy-btn{padding:9px 14px;font-size:13px;}
.cs-freeform-copy-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;background:var(--surface);
  border:1px solid var(--line-soft);border-radius:4px;min-width:180px;box-shadow:0 4px 14px rgba(0,0,0,0.18);overflow:hidden;}
.cs-freeform-copy-item{display:block;width:100%;text-align:left;background:none;border:none;
  color:var(--text);font-family:inherit;font-size:13px;padding:9px 12px;cursor:pointer;}
.cs-freeform-copy-item:hover{background:var(--line-soft);}
.cs-freeform-copy-item + .cs-freeform-copy-item{border-top:1px solid var(--line-soft);}
.cs-freeform-presc{margin:-6px 0 8px;white-space:normal;}
.ff-alt{position:relative;flex:0 0 auto;width:30px;height:26px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line-soft);border-radius:2px;color:var(--accent);font-size:14px;cursor:pointer;}
.ff-alt:hover,.ff-alt:focus-within{border-color:var(--accent);}
.ff-alt select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px;}
.crud-name-line{display:flex;gap:6px;align-items:center;}
.crud-name-line input{flex:1 1 auto;min-width:0;}
.crud-name-line .ff-alt{height:auto;align-self:stretch;}
.cs-freeform-presc{margin:-6px 0 8px;white-space:normal;}
.ff-alt{position:relative;flex:0 0 auto;width:30px;height:26px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line-soft);border-radius:2px;color:var(--accent);font-size:14px;cursor:pointer;}
.ff-alt:hover,.ff-alt:focus-within{border-color:var(--accent);}
.ff-alt select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px;}
/* ===== SIDE-NAV LAYOUT (in-page nav moved to left of its own page) ===== */
.side-layout{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:start;}
.side-layout > .page-main{min-width:0;}
.side-nav{
  position:sticky; top:210px;
  display:flex; flex-direction:column; gap:6px;
  max-height:calc(100vh - 230px); overflow-y:auto;
}
/* Glance jump-nav, restyled vertical */
.glance-scope nav.jump.side-nav{
  flex-wrap:nowrap; justify-content:flex-start; padding:0; margin:0;
}
.glance-scope nav.jump.side-nav a{
  width:100%; text-align:left; border-radius:2px;
}
/* Admin / Logsheet day selector, restyled vertical */
.admin-day-select.side-nav, .subtab-bar.side-nav{
  flex-wrap:nowrap;
}
.admin-day-select.side-nav .subtab-btn,
.subtab-bar.side-nav .subtab-btn{
  width:100%; text-align:left; border-radius:2px;
}
/* Day-tab dropdown: hidden by default, swaps in for the button row on phone (builder + tracker) */
.day-tabs-dropdown{display:none;}
@media (max-width:820px){
  .side-layout{display:block;}
  .side-nav{
    position:static; flex-direction:row; flex-wrap:wrap;
    max-height:none; overflow:visible; margin-bottom:18px;
  }
  .glance-scope nav.jump.side-nav a,
  .admin-day-select.side-nav .subtab-btn,
  .subtab-bar.side-nav .subtab-btn{ width:auto; text-align:center; }
  /* Live Session's day-pill bar: on narrow screens, show below the log
     instead of above it, so a coach mid-session isn't scrolling past a
     row of pills to get to the sets they're logging. */
  .side-layout.stack-nav-below{display:flex; flex-direction:column;}
  .side-layout.stack-nav-below .side-nav{order:2; margin-bottom:0; margin-top:18px;}
  .side-layout.stack-nav-below .page-main{order:1;}
}
@media (max-width:640px){
  .admin-day-select.side-nav .subtab-btn,
  .subtab-bar.side-nav .subtab-btn{ display:none; }
  .admin-day-select.side-nav .day-tabs-dropdown,
  .subtab-bar.side-nav .day-tabs-dropdown{
    display:block; width:100%; padding:10px 12px;
    background:var(--surface-2); border:1px solid var(--line); color:var(--text);
    font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.04em;
    text-transform:uppercase; border-radius:2px;
  }
}

/* ===== OUTER SITE SHELL ===== */
body{margin:0;}
.site-page{display:none;}
.site-page.active{display:block;}
.outer-header{
  background:var(--surface-2, #171512); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:60;
}
.outer-header-inner{
  max-width:1240px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.outer-brand{
  font-family:'Oswald',sans-serif; font-weight:700; text-transform:uppercase;
  letter-spacing:.04em; font-size:16px; color:var(--text); white-space:nowrap;
}
.outer-brand .amp{color:var(--accent);}
.outer-nav{display:flex; gap:4px; flex-wrap:wrap;}
.outer-link{
  background:transparent; border:none; color:var(--muted);
  font-family:'IBM Plex Mono',monospace; font-size:12.5px; letter-spacing:.04em;
  text-transform:uppercase; padding:9px 14px; border-radius:20px; cursor:pointer;
}
.outer-link:hover{color:var(--text);}
.outer-link.active{color:var(--on-accent); background:var(--accent);}
.outer-nav-toggle{display:none; background:transparent; border:1px solid var(--line); color:var(--text); border-radius:6px; padding:6px 10px; font-size:16px;}
/* Member profile details: read-only until Edit Details (js/bells-n-barz-users.js).
   Prefixed with .users-scope .field to outrank the scope's own input styles. */
.users-scope .profile-locked .tab-pane .field input,
.users-scope .profile-locked .tab-pane .field textarea,
.users-scope .profile-locked .tab-pane .field select{
  background:transparent; border-color:transparent; padding-left:0; padding-right:0;
  color:var(--text); resize:none; cursor:default; opacity:1; box-shadow:none;
}
.users-scope .profile-locked .tab-pane .field select{appearance:none; -webkit-appearance:none;}
.users-scope .profile-locked .tab-pane .field input::placeholder,
.users-scope .profile-locked .tab-pane .field textarea::placeholder{color:var(--muted);}
.users-scope .profile-locked .tab-pane .field input[type="date"]::-webkit-calendar-picker-indicator{display:none;}
.users-scope .profile-locked .tab-pane .field{border-bottom:1px solid var(--line-soft, var(--line));}

/* Forgot password: the three ways back in (js/bells-n-barz-users.js) */
.fp-options{display:flex; flex-direction:column; gap:8px;}
.fp-option{
  display:flex; flex-direction:column; gap:3px; text-align:left; width:100%;
  background:transparent; border:1px solid var(--line); border-radius:2px;
  padding:12px 14px; cursor:pointer; color:var(--text); font:inherit;
}
.fp-option:hover{border-color:var(--accent-dim);}
.fp-option:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.fp-option:disabled{opacity:.6; cursor:wait;}
.fp-option-title{font-weight:600;}
.fp-option-desc{font-size:12.5px; color:var(--muted);}

/* Admin > Switchboard (js/bells-n-barz-features.js) */
.switchboard .sb-list{list-style:none; margin:0; padding:0; border:1px solid var(--line); border-radius:2px;}
.switchboard .sb-row{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px;}
.switchboard .sb-row + .sb-row{border-top:1px solid var(--line);}
.switchboard .sb-name{font-weight:600; color:var(--text); margin-bottom:4px;}
.switchboard .sb-desc{font-size:13px; color:var(--muted); line-height:1.5;}
.switchboard .sb-state{font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; padding:2px 7px; border-radius:10px; margin-left:6px; vertical-align:middle;}
.switchboard .sb-state.on{color:var(--accent); background:rgba(var(--accent-rgb),.12);}
.switchboard .sb-state.off{color:var(--muted); background:var(--surface-2);}
.switchboard .switch{position:relative; width:40px; height:22px; flex:0 0 auto;}
.switchboard .switch input{opacity:0; width:0; height:0;}
.switchboard .switch .slider{position:absolute; inset:0; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; cursor:pointer; transition:.2s;}
.switchboard .switch .slider::before{content:''; position:absolute; width:16px; height:16px; left:2px; top:2px; background:var(--muted); border-radius:50%; transition:.2s;}
.switchboard .switch input:checked + .slider{background:rgba(var(--accent-rgb),.25); border-color:var(--accent);}
.switchboard .switch input:checked + .slider::before{transform:translateX(18px); background:var(--accent);}
.switchboard .switch input:disabled + .slider{opacity:.5; cursor:not-allowed;}
.switchboard .switch input:focus-visible + .slider{outline:2px solid var(--accent); outline-offset:2px;}

/* USD/KES price switch (js/bells-n-barz-currency.js) */
.cur-switch{display:flex; border:1px solid var(--line); border-radius:20px; padding:2px; flex-shrink:0;}
.cur-switch button{
  background:transparent; border:none; color:var(--muted); cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.04em;
  padding:5px 10px; border-radius:16px;
}
.cur-switch button:hover{color:var(--text);}
.cur-switch button.active{color:var(--on-accent); background:var(--accent);}
/* Placement: right-hand end of a section heading, next to the Shop's
   Shop|Admin switch, or small and inline in a line of text. */
.day-head .cur-switch{margin-left:auto; align-self:center;}
.header-tools{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.cur-switch-inline{display:inline-flex; vertical-align:middle; margin-left:4px;}
.cur-switch-inline button{padding:2px 8px; font-size:10.5px;}
@media (max-width:760px){
  .outer-nav{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; background:var(--surface-2,#171512);
    border-bottom:1px solid var(--line); padding:8px 16px 14px; gap:2px;
  }
  .outer-nav.open{display:flex;}
  .outer-nav-toggle{display:block;}
  .outer-header-inner{position:relative;}
  .outer-link{padding:11px 10px; text-align:left; border-radius:6px;}
}

/* ---- HOME: Moon Phase / Ekadashi banner, above the welcome stub ----
   Reuses the .moon-today-card/.moon-strip/.ekadashi-card styling from
   the Gym app's Me > Moon tab (that section moved here entirely — see
   bnbLoadModule/me-section-switch comments), wrapped in .sched-scope
   since those rules are scoped to it. Pure client-side calculation, no
   login required, so it's fine to show on the public home page. */
.home-moon-banner{background:var(--surface); border-bottom:1px solid var(--line); padding:34px 0 30px;}
.home-moon-banner-head{margin-bottom:4px;}
.home-moon-banner-eyebrow{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--accent);}
.home-moon-banner-head h2{font-family:'Oswald',sans-serif; font-size:24px; margin:4px 0 0; text-transform:uppercase; letter-spacing:.02em; color:var(--text);}

/* Home / About / Contacts cards: one per destination, same look as the
   gym's section cards (icon, title, one-line description). .static is a
   "coming soon" card with nothing to open. */
.home-cards{padding:30px 0 36px;}
.home-card-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px; margin-top:16px;}
.home-card{position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:6px; width:100%; text-align:left;
  background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:20px 20px 22px; color:var(--text); font:inherit;
  cursor:pointer; transition:border-color .15s ease, background .15s ease;}
.home-card:hover, .home-card:focus-visible{border-color:var(--accent-dim); background:var(--surface-2);}
.home-card.static{cursor:default; opacity:.7;}
.home-card.static:hover{border-color:var(--line); background:var(--surface);}
.home-card-icon{font-size:28px; line-height:1; margin-bottom:4px;}
.home-card-title{font-family:'Oswald',sans-serif; font-size:18px; text-transform:uppercase; letter-spacing:.03em;}
.home-card-desc{font-size:13px; color:var(--muted); line-height:1.4; padding-right:18px;}
.home-card-arrow{position:absolute; top:18px; right:18px; font-size:18px; color:var(--muted-2);}
.home-card:hover .home-card-arrow{color:var(--accent);}
@media (max-width:640px){
  .home-card-grid{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px;}
  .home-card{padding:14px;}
  .home-card-title{font-size:16px;}
  .home-card-desc{font-size:12px; padding-right:0;}
  .home-card-arrow{display:none;}
}
.site-stub.site-stub-cards{max-width:1080px;}
.site-stub-cards > p{max-width:720px;}

.site-stub{padding:80px 24px 100px; max-width:720px;}
.site-stub-eyebrow{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--accent); margin-bottom:10px;}
.site-stub h1{font-family:'Oswald',sans-serif; font-size:34px; margin:0 0 14px; text-transform:uppercase; letter-spacing:.02em;}
.site-stub p{color:var(--muted); font-size:15px; line-height:1.6; margin-bottom:20px;}

/* ===== GYM APP LAYOUT: top utility bar + left day sidebar ===== */
.gym-layout{display:grid; grid-template-columns:190px 1fr; gap:0; max-width:1240px; margin:0 auto; align-items:start;}
nav.rack.rack-side{
  border-bottom:none; border-right:1px solid var(--line); background:var(--surface);
  position:sticky; top:191px; align-self:start; height:calc(100vh - 191px); overflow-y:auto;
  box-shadow:none;
}
nav.rack.rack-side .rack-inner{
  flex-direction:column; padding:24px 16px; gap:12px; align-items:center; overflow:visible;
}
nav.rack.rack-side .plate.util{width:100%;}
nav.rack.rack-top{position:sticky; top:62px; z-index:45;}
.gym-layout > main.wrap{max-width:none; padding-left:32px; padding-right:32px;}
/* Weekday plates (Mon–Sun) collapse into a single <select> on phone-width screens */
.weekday-plates{display:contents;}
.weekday-dropdown{display:none;}
@media (max-width:900px){
  .gym-layout{display:block;}
  nav.rack.rack-side{
    position:static; height:auto; border-right:none; border-bottom:1px solid var(--line);
  }
  nav.rack.rack-side .rack-inner{flex-direction:row; padding:12px 16px; overflow-x:auto;}
  nav.rack.rack-side .plate.util{width:auto;}
  .gym-layout > main.wrap{padding-left:24px; padding-right:24px;}
}
@media (max-width:640px){
  nav.rack.rack-side .weekday-plates{display:none;}
  nav.rack.rack-side .weekday-dropdown{
    display:block; flex:1 1 100%; width:100%; padding:10px 12px; margin:0;
    background:var(--surface-2); border:1px solid var(--line); color:var(--text);
    font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.04em;
    text-transform:uppercase; border-radius:2px;
  }
}

@media print{
  header.site,nav.rack,.subtab-bar,.ls-toolbar,#glance-empty,#admin-notice,.outer-header,nav.rack.rack-side{display:none !important;}
  .gym-layout{display:block !important;}
}


/* ===== BLOG APP (scoped) ===== */
.blog-scope {
  margin:0; background:var(--bg); color:var(--text);
  font-family:'IBM Plex Sans',sans-serif; line-height:1.55;
}.blog-scope .wrap {max-width:1080px; margin:0 auto; padding:0 24px;}.blog-scope h1, .blog-scope h2, .blog-scope h3 {font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.02em; margin:0;}.blog-scope a {color:var(--accent);}.blog-scope .mono {font-family:'IBM Plex Mono',monospace;}.blog-scope /* ---------- HEADER / MODE SWITCH ---------- */
header.site {
  border-bottom:1px solid var(--line); background:var(--surface); position:sticky; top:0; z-index:40;
}.blog-scope .header-inner {max-width:1080px; margin:0 auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}.blog-scope .brand-block .eyebrow {font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; color:var(--accent); text-transform:uppercase;}.blog-scope .brand-block h1 {font-size:22px;}.blog-scope .mode-switch {display:flex; gap:6px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:3px;}.blog-scope .mode-switch button {
  background:transparent; border:none; color:var(--muted); font-family:'IBM Plex Mono',monospace;
  font-size:12px; letter-spacing:.04em; text-transform:uppercase; padding:7px 16px; border-radius:16px; cursor:pointer;
}.blog-scope .mode-switch button.active {background:var(--accent); color:var(--on-accent); font-weight:600;}.blog-scope .view {display:none; padding:32px 0 90px;}.blog-scope .view.active {display:block;}.blog-scope /* ---------- BLOG: LIST ---------- */
.blog-toolbar {display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:24px;}.blog-scope .blog-toolbar input[type=text] {
  flex:1; min-width:200px; background:var(--surface); border:1px solid var(--line); color:var(--text);
  padding:10px 12px; border-radius:var(--radius); font-size:14px;
}.blog-scope .chip-filter {display:flex; gap:6px; flex-wrap:wrap;}.blog-scope .chip-filter button {
  background:var(--surface); border:1px solid var(--line); color:var(--muted);
  padding:7px 13px; border-radius:20px; font-size:12px; font-family:'IBM Plex Mono',monospace; cursor:pointer;
}.blog-scope .chip-filter button.active {background:var(--accent); color:var(--on-accent); border-color:var(--accent); font-weight:600;}.blog-scope .post-grid {display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px;}.blog-scope .megatron{position:relative; max-width:1080px; margin:0 auto 28px; height:340px; overflow:hidden; border-radius:var(--radius); border:1px solid var(--line); background:var(--surface);}.blog-scope .megatron-slide{position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity .5s ease; display:flex; align-items:flex-end;}.blog-scope .megatron-slide.active{opacity:1;}.blog-scope .megatron-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(0,0,0,.65), rgba(0,0,0,0) 55%);}.blog-scope .megatron-caption{position:relative; z-index:1; color:#fff; padding:22px 26px; font-family:'Oswald',sans-serif; font-size:20px; letter-spacing:.02em; text-shadow:0 1px 4px rgba(0,0,0,.5);}.blog-scope .megatron-arrow{position:absolute; top:50%; transform:translateY(-50%); z-index:2; background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.3); color:#fff; width:34px; height:34px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:16px; opacity:0; transition:opacity .2s ease;}.blog-scope .megatron:hover .megatron-arrow{opacity:1;}.blog-scope .megatron-arrow.prev{left:14px;}.blog-scope .megatron-arrow.next{right:14px;}.blog-scope .megatron-dots{position:absolute; z-index:2; bottom:14px; right:20px; display:flex; gap:6px;}.blog-scope .megatron-dot{width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.4); cursor:pointer; border:none; padding:0;}.blog-scope .megatron-dot.active{background:#fff;}.blog-scope .megatron-empty{display:flex; align-items:center; justify-content:center; height:100%; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; font-size:12.5px;}@media (max-width:640px){.blog-scope .megatron{height:220px;}.blog-scope .megatron-caption{font-size:15px; padding:16px 18px;}}.blog-scope .megatron-admin{margin:26px 0; padding-top:18px; border-top:1px solid var(--line);}.blog-scope .megatron-admin h3{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:14px; letter-spacing:.04em; color:var(--text); margin-bottom:4px;}.blog-scope .megatron-admin .sub{color:var(--muted-2); font-size:12px; font-family:'IBM Plex Mono',monospace; margin-bottom:14px;}.blog-scope .megatron-slide-row{display:flex; align-items:center; gap:12px; padding:10px; border:1px solid var(--line-soft); border-radius:2px; margin-bottom:8px; background:var(--surface);}.blog-scope .megatron-slide-row img{width:64px; height:44px; object-fit:cover; border-radius:2px; flex:0 0 auto; border:1px solid var(--line);}.blog-scope .megatron-slide-row .msr-cap{flex:1 1 auto; font-size:13px; color:var(--text); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}.blog-scope .megatron-slide-row .msr-actions{display:flex; gap:6px; flex:0 0 auto;}.blog-scope .megatron-slide-row .msr-actions button{background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:2px; width:26px; height:26px; cursor:pointer; font-size:12px;}.blog-scope .megatron-slide-row .msr-actions button:hover{color:var(--text); border-color:var(--accent-dim);}.blog-scope .megatron-add-row{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:12px;}.blog-scope .megatron-add-row select, .blog-scope .megatron-add-row input{background:var(--surface-2); border:1px solid var(--line); color:var(--text); padding:8px 10px; font-family:'IBM Plex Mono',monospace; font-size:12.5px; border-radius:2px;}.blog-scope .megatron-add-row select{min-width:180px;}.blog-scope .megatron-add-row input{flex:1 1 160px;}.blog-scope /* ---------- LIST LAYOUT (main + right sidebar) ---------- */
.list-layout {display:grid; grid-template-columns:1fr 300px; gap:32px; align-items:start;}.blog-scope .list-main {min-width:0;}.blog-scope .side-widget {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px 18px 8px; position:sticky; top:88px;
}.blog-scope .side-widget-head {display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px;}.blog-scope .side-widget-head h3 {font-size:14px; letter-spacing:.04em;}.blog-scope .sort-toggle {
  position:relative; display:flex; background:var(--surface-2); border:1px solid var(--line);
  border-radius:20px; padding:2px; width:150px;
}.blog-scope .sort-toggle button {
  flex:1; position:relative; z-index:2; background:transparent; border:none; cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.03em; text-transform:uppercase;
  padding:6px 4px; color:var(--muted); transition:color .2s;
}.blog-scope .sort-toggle button.active {color:var(--on-accent); font-weight:600;}.blog-scope .sort-thumb {
  position:absolute; top:2px; left:2px; width:calc(50% - 2px); height:calc(100% - 4px);
  background:var(--accent); border-radius:18px; transition:transform .2s ease; z-index:1;
}.blog-scope .sort-toggle[data-value="newest"] .sort-thumb {transform:translateX(100%);}.blog-scope .side-post-list {list-style:none; margin:0; padding:0;}.blog-scope .side-post-item {
  display:flex; gap:10px; align-items:flex-start; padding:11px 0; border-top:1px solid var(--line-soft);
  cursor:pointer;
}.blog-scope .side-post-item:first-child {border-top:none;}.blog-scope .side-post-item:hover .side-post-title {color:var(--accent);}.blog-scope .side-post-rank {font-family:'Oswald',sans-serif; font-size:20px; font-weight:700; color:var(--line); flex:0 0 auto; width:22px; line-height:1.1;}.blog-scope .side-post-body {min-width:0;}.blog-scope .side-post-title {font-size:13px; line-height:1.35; color:var(--text); margin-bottom:4px; display:block;}.blog-scope .side-post-meta {font-size:10.5px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; display:flex; gap:8px;}

@media (max-width:900px){.blog-scope .list-layout {display:block;}.blog-scope .side-widget {position:static; margin-top:28px;}
}.blog-scope .post-card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  cursor:pointer; transition:.15s; display:flex; flex-direction:column;
}.blog-scope .post-card:hover {border-color:var(--accent-dim); transform:translateY(-2px);}.blog-scope .post-card .cover {width:100%; height:150px; background:var(--surface-2) center/cover no-repeat; border-bottom:1px solid var(--line);}.blog-scope .post-card .cover.empty {display:flex; align-items:center; justify-content:center; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase;}.blog-scope .post-card .body {padding:16px; display:flex; flex-direction:column; gap:8px; flex:1;}.blog-scope .post-card .cat {font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.06em; color:var(--accent); text-transform:uppercase;}.blog-scope .post-card h3 {font-size:17px; line-height:1.3;}.blog-scope .post-card .excerpt {color:var(--muted); font-size:13px; flex:1;}.blog-scope .post-card .meta {font-size:11.5px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; display:flex; justify-content:space-between; border-top:1px solid var(--line-soft); padding-top:8px;}.blog-scope .read-more {
  align-self:flex-start; background:none; border:none; padding:0; margin-top:2px;
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.03em;
  color:var(--accent); cursor:pointer; display:inline-flex; align-items:center; gap:5px;
}.blog-scope .read-more .arrow {transition:transform .15s;}.blog-scope .post-card:hover .read-more .arrow {transform:translateX(3px);}.blog-scope .empty-msg {color:var(--muted); text-align:center; padding:60px 20px; font-size:14px;}.blog-scope /* ---------- BLOG: SINGLE POST ---------- */
.post-reader {max-width:720px; margin:0 auto;}.blog-scope .back-link {background:none; border:none; color:var(--accent); font-family:'IBM Plex Mono',monospace; font-size:13px; cursor:pointer; padding:0; margin-bottom:20px; display:inline-flex; align-items:center; gap:6px;}.blog-scope .post-reader .cover {width:100%; max-height:340px; object-fit:cover; border-radius:var(--radius); margin-bottom:22px; border:1px solid var(--line); display:block;}.blog-scope .post-reader .cat {font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; color:var(--accent); text-transform:uppercase; margin-bottom:8px;}.blog-scope .post-reader h1 {font-size:32px; line-height:1.2; margin-bottom:10px;}.blog-scope .post-reader .meta {color:var(--muted); font-size:13px; font-family:'IBM Plex Mono',monospace; margin-bottom:26px; padding-bottom:18px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;}.blog-scope .share-btn {font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--accent); background:transparent; border:1px solid var(--accent-dim); border-radius:20px; padding:6px 14px; cursor:pointer; white-space:nowrap; transition:background .15s ease;}.blog-scope .share-btn:hover {background:rgba(var(--accent-rgb),.08);}.blog-scope .post-body {font-size:15.5px; color:var(--text);}.blog-scope .post-body h2 {font-size:22px; text-transform:none; margin:28px 0 12px; font-family:'Oswald',sans-serif; font-weight:600;}.blog-scope .post-body h3 {font-size:18px; text-transform:none; margin:22px 0 10px; font-family:'Oswald',sans-serif; font-weight:600;}.blog-scope .post-body p {margin:0 0 16px;}.blog-scope .post-body ul, .blog-scope .post-body ol {margin:0 0 16px; padding-left:22px;}.blog-scope .post-body li {margin-bottom:6px;}.blog-scope .post-body strong {color:var(--text); font-weight:700;}.blog-scope .post-body a {text-decoration:underline;}.blog-scope .post-body img {max-width:100%; border-radius:var(--radius); margin:10px 0;}.blog-scope .post-tags {display:flex; gap:6px; flex-wrap:wrap; margin-top:30px; padding-top:20px; border-top:1px solid var(--line);}.blog-scope .tag-pill {font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted); background:var(--surface); border:1px solid var(--line); padding:4px 10px; border-radius:20px;}.blog-scope /* ---------- ADMIN ---------- */
.admin-notice {background:var(--surface-2); border:1px solid var(--line); border-left:3px solid var(--accent);
  padding:10px 14px; font-size:12.5px; color:var(--muted); margin-bottom:20px; border-radius:2px;}.blog-scope .admin-toolbar {display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px;}.blog-scope .btn2 {background:var(--surface-2); border:1px solid var(--line); color:var(--muted); padding:8px 15px;
  border-radius:2px; font-size:12.5px; cursor:pointer; font-family:'IBM Plex Mono',monospace;}.blog-scope .btn2:hover {color:var(--text); border-color:var(--accent-dim);}.blog-scope .btn2.primary {color:var(--on-accent); background:var(--accent); border-color:var(--accent); font-weight:600;}.blog-scope .btn2.danger:hover {color:#e0736a; border-color:#8a3a32;}.blog-scope .admin-table {width:100%; border-collapse:collapse; font-size:13.5px;}.blog-scope .admin-table th {text-align:left; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted-2); border-bottom:1px solid var(--line); padding:8px 10px;}.blog-scope .admin-table td {padding:10px; border-bottom:1px solid var(--line-soft); vertical-align:middle;}.blog-scope .admin-table tr:hover td {background:var(--surface);}.blog-scope .status-pill {font-family:'IBM Plex Mono',monospace; font-size:10.5px; padding:3px 9px; border-radius:20px; text-transform:uppercase;}.blog-scope .status-pill.published {background:rgba(var(--accent-3-rgb),.15); color:var(--accent-3); border:1px solid var(--accent-3);}.blog-scope .status-pill.draft {background:var(--surface-2); color:var(--muted); border:1px solid var(--line);}.blog-scope .row-actions {display:flex; gap:6px;}.blog-scope .row-actions button {background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:2px;
  padding:4px 9px; font-size:11.5px; cursor:pointer; font-family:'IBM Plex Mono',monospace;}.blog-scope .row-actions button:hover {color:var(--text); border-color:var(--accent-dim);}.blog-scope .row-actions button.del:hover {color:#e0736a; border-color:#8a3a32;}.blog-scope /* ---------- EDITOR PANEL (modal) ---------- */
.panel-backdrop {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:100;
  align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto;
}.blog-scope .panel-backdrop.show {display:flex;}.blog-scope .panel {
  background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:26px;
  max-width:720px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.5);
}.blog-scope .panel h2 {font-size:20px; margin-bottom:18px;}.blog-scope .field {margin-bottom:14px;}.blog-scope .field label {display:block; font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted-2); margin-bottom:5px;}.blog-scope .field input[type=text], .blog-scope .field input[type=date], .blog-scope .field textarea, .blog-scope .field select {
  width:100%; background:var(--bg); border:1px solid var(--line-soft); color:var(--text);
  padding:9px 11px; border-radius:2px; font-size:13.5px; font-family:'IBM Plex Sans',sans-serif;
}.blog-scope .field textarea {resize:vertical; font-family:'IBM Plex Mono',monospace; font-size:13px;}.blog-scope .field-row2 {display:grid; grid-template-columns:1fr 1fr; gap:12px;}.blog-scope .field-hint {font-size:11px; color:var(--muted-2); margin-top:4px;}.blog-scope .status-toggle {display:flex; gap:8px;}.blog-scope .status-toggle button {flex:1; padding:9px; border-radius:2px; border:1px solid var(--line); background:var(--bg); color:var(--muted); cursor:pointer; font-size:12.5px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase;}.blog-scope .status-toggle button.active {border-color:var(--accent); color:var(--accent); background:rgba(var(--accent-rgb),.08); font-weight:600;}.blog-scope .panel-actions {display:flex; gap:10px; justify-content:flex-end; margin-top:22px; padding-top:18px; border-top:1px solid var(--line);}.blog-scope footer.site {border-top:1px solid var(--line); padding:26px 0; text-align:center; color:var(--muted-2); font-size:12px; font-family:'IBM Plex Mono',monospace;}

@media (max-width:640px){.blog-scope .field-row2 {grid-template-columns:1fr;}.blog-scope .admin-table {display:block; overflow-x:auto;}
}


/* ===== GALLERY APP (scoped) ===== */
.gallery-scope {
  margin:0; background:var(--bg); color:var(--text);
  font-family:'IBM Plex Sans',sans-serif; line-height:1.55;
}.gallery-scope .wrap {max-width:1160px; margin:0 auto; padding:0 24px;}.gallery-scope h1, .gallery-scope h2, .gallery-scope h3 {font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.02em; margin:0;}.gallery-scope a {color:var(--accent);}.gallery-scope .mono {font-family:'IBM Plex Mono',monospace;}.gallery-scope /* ---------- HEADER / MODE SWITCH ---------- */
header.site {
  border-bottom:1px solid var(--line); background:var(--surface); position:sticky; top:0; z-index:40;
}.gallery-scope .header-inner {max-width:1160px; margin:0 auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}.gallery-scope .brand-block .eyebrow {font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; color:var(--accent); text-transform:uppercase;}.gallery-scope .brand-block h1 {font-size:22px;}.gallery-scope .mode-switch {display:flex; gap:6px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:3px;}.gallery-scope .mode-switch button {
  background:transparent; border:none; color:var(--muted); font-family:'IBM Plex Mono',monospace;
  font-size:12px; letter-spacing:.04em; text-transform:uppercase; padding:7px 16px; border-radius:16px; cursor:pointer;
}.gallery-scope .mode-switch button.active {background:var(--accent); color:var(--on-accent); font-weight:600;}.gallery-scope .view {display:none; padding:32px 0 90px;}.gallery-scope .view.active {display:block;}.gallery-scope /* ---------- GALLERY: TOOLBAR + FILTERS ---------- */
.gallery-toolbar {display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:24px;}.gallery-scope .chip-filter {display:flex; gap:6px; flex-wrap:wrap;}.gallery-scope .chip-filter button {
  background:var(--surface); border:1px solid var(--line); color:var(--muted);
  padding:7px 13px; border-radius:20px; font-size:12px; font-family:'IBM Plex Mono',monospace; cursor:pointer;
}.gallery-scope .chip-filter button.active {background:var(--accent); color:var(--on-accent); border-color:var(--accent); font-weight:600;}.gallery-scope .result-count {margin-left:auto; font-size:12px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace;}.gallery-scope /* ---------- GALLERY: GRID ---------- */
.gallery-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px;
}.gallery-scope .gallery-item {
  position:relative; border-radius:var(--radius); overflow:hidden; cursor:pointer;
  aspect-ratio:1/1; background:var(--surface); border:1px solid var(--line);
}.gallery-scope .gallery-item img {width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease;}.gallery-scope .gallery-item:hover img {transform:scale(1.06);}.gallery-scope .gallery-item .overlay {
  position:absolute; inset:auto 0 0 0; padding:10px 12px;
  background:linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,0));
  opacity:0; transition:opacity .2s;
}.gallery-scope .gallery-item:hover .overlay {opacity:1;}.gallery-scope .gallery-item .overlay .cap-title {color:#fff; font-size:12.5px; font-weight:600; line-height:1.3;}.gallery-scope .gallery-item .overlay .cap-cat {color:var(--accent); font-size:10px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em;}.gallery-scope .gallery-item .card-actions {position:absolute; top:8px; right:8px; z-index:2; display:flex; gap:6px; opacity:0; transition:opacity .2s;}.gallery-scope .gallery-item:hover .card-actions {opacity:1;}.gallery-scope .card-actions button {width:30px; height:30px; border-radius:50%; border:1px solid rgba(255,255,255,.25); background:rgba(0,0,0,.55); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:14px; backdrop-filter:blur(2px);}.gallery-scope .card-actions button:hover {background:rgba(0,0,0,.75);}.gallery-scope .card-actions button.like-btn.liked {color:var(--accent-2); border-color:var(--accent-2);}.gallery-scope .overlay-meta {display:flex; align-items:center; gap:10px; margin-top:4px;}.gallery-scope .like-count {color:#e7e2d4; font-size:11px; font-family:'IBM Plex Mono',monospace; display:flex; align-items:center; gap:4px;}.gallery-scope .lightbox-actions {display:flex; align-items:center; justify-content:center; gap:10px; margin-top:16px;}.gallery-scope .lb-action-btn {display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); color:#fff; padding:9px 16px; border-radius:20px; cursor:pointer; font-size:12.5px; font-family:'IBM Plex Mono',monospace;}.gallery-scope .lb-action-btn:hover {background:rgba(255,255,255,.16);}.gallery-scope .lb-action-btn.liked {color:var(--accent-2); border-color:var(--accent-2); background:rgba(192,57,43,.12);}.gallery-scope .gal-toast {position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--surface); border:1px solid var(--accent-dim); color:var(--text); padding:10px 20px; border-radius:20px; font-size:13px; font-family:'IBM Plex Mono',monospace; z-index:300; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s;}.gallery-scope .gal-toast.show {opacity:1; transform:translateX(-50%) translateY(0);}.gallery-scope .gallery-item.featured::before {
  content:'★ FEATURED'; position:absolute; top:8px; left:8px; z-index:2;
  background:var(--accent); color:var(--on-accent); font-family:'IBM Plex Mono',monospace;
  font-size:9px; letter-spacing:.04em; padding:3px 8px; border-radius:20px; font-weight:700;
}.gallery-scope .empty-msg {color:var(--muted); text-align:center; padding:60px 20px; font-size:14px;}.gallery-scope /* ---------- LIGHTBOX ---------- */
.lightbox-backdrop {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.9); z-index:200;
  align-items:center; justify-content:center; padding:40px 16px;
}.gallery-scope .lightbox-backdrop.show {display:flex;}.gallery-scope .lightbox-inner {max-width:1000px; width:100%; text-align:center;}.gallery-scope .lightbox-img-wrap {max-height:74vh; overflow:auto; display:flex; align-items:flex-start; justify-content:center;}.gallery-scope .lightbox-img-wrap::-webkit-scrollbar {height:6px; width:6px;}.gallery-scope .lightbox-img-wrap::-webkit-scrollbar-thumb {background:rgba(255,255,255,.25); border-radius:4px;}.gallery-scope .lightbox-inner img {max-width:100%; max-height:74vh; object-fit:contain; border-radius:2px; box-shadow:0 20px 60px rgba(0,0,0,.6); transition:transform .15s ease; transform-origin:center top;}.gallery-scope .lightbox-zoom {display:flex; align-items:center; justify-content:center; gap:10px; margin-top:14px;}.gallery-scope .lb-zoom-btn {width:32px; height:32px; border-radius:50%; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.08); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:16px; line-height:1;}.gallery-scope .lb-zoom-btn:hover {background:rgba(255,255,255,.18);}.gallery-scope .lb-zoom-level {font-family:'IBM Plex Mono',monospace; font-size:12px; color:#c9c4b8; min-width:42px; text-align:center;}.gallery-scope .lightbox-cap {margin-top:16px; color:#fff;}.gallery-scope .lightbox-cap .cat {color:var(--accent); font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; margin-bottom:6px;}.gallery-scope .lightbox-cap h3 {font-size:18px; color:#fff; margin-bottom:4px;}.gallery-scope .lightbox-cap p {color:#c9c4b8; font-size:13px; max-width:600px; margin:0 auto;}.gallery-scope .lightbox-close, .gallery-scope .lightbox-nav {
  position:fixed; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); color:#fff;
  border-radius:50%; width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:18px; z-index:201;
}.gallery-scope .lightbox-close:hover, .gallery-scope .lightbox-nav:hover {background:rgba(255,255,255,.18);}.gallery-scope .lightbox-close {top:20px; right:20px;}.gallery-scope .lightbox-nav.prev {left:20px; top:50%; transform:translateY(-50%);}.gallery-scope .lightbox-nav.next {right:20px; top:50%; transform:translateY(-50%);}.gallery-scope .lightbox-counter {position:fixed; bottom:20px; left:50%; transform:translateX(-50%); color:#c9c4b8; font-family:'IBM Plex Mono',monospace; font-size:12px; z-index:201;}
@media (max-width:640px){.gallery-scope .lightbox-nav {width:38px; height:38px;}.gallery-scope .lightbox-nav.prev {left:8px;}.gallery-scope .lightbox-nav.next {right:8px;}
}.gallery-scope /* ---------- ADMIN ---------- */
.admin-notice {background:var(--surface-2); border:1px solid var(--line); border-left:3px solid var(--accent);
  padding:10px 14px; font-size:12.5px; color:var(--muted); margin-bottom:20px; border-radius:2px;}.gallery-scope .admin-toolbar {display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px;}.gallery-scope .btn2 {background:var(--surface-2); border:1px solid var(--line); color:var(--muted); padding:8px 15px;
  border-radius:2px; font-size:12.5px; cursor:pointer; font-family:'IBM Plex Mono',monospace;}.gallery-scope .btn2:hover {color:var(--text); border-color:var(--accent-dim);}.gallery-scope .btn2.primary {color:var(--on-accent); background:var(--accent); border-color:var(--accent); font-weight:600;}.gallery-scope .btn2.danger:hover {color:#e0736a; border-color:#8a3a32;}.gallery-scope .admin-grid-table {width:100%; border-collapse:collapse; font-size:13.5px;}.gallery-scope .admin-grid-table th {text-align:left; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted-2); border-bottom:1px solid var(--line); padding:8px 10px;}.gallery-scope .admin-grid-table td {padding:8px 10px; border-bottom:1px solid var(--line-soft); vertical-align:middle;}.gallery-scope .admin-grid-table tr:hover td {background:var(--surface);}.gallery-scope .thumb-cell {width:56px; height:56px; border-radius:2px; object-fit:cover; display:block; border:1px solid var(--line);}.gallery-scope .status-pill {font-family:'IBM Plex Mono',monospace; font-size:10.5px; padding:3px 9px; border-radius:20px; text-transform:uppercase;}.gallery-scope .status-pill.featured {background:rgba(var(--accent-rgb),.15); color:var(--accent); border:1px solid var(--accent-dim);}.gallery-scope .row-actions {display:flex; gap:6px;}.gallery-scope .row-actions button {background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:2px;
  padding:4px 9px; font-size:11.5px; cursor:pointer; font-family:'IBM Plex Mono',monospace;}.gallery-scope .row-actions button:hover {color:var(--text); border-color:var(--accent-dim);}.gallery-scope .row-actions button.del:hover {color:#e0736a; border-color:#8a3a32;}.gallery-scope /* ---------- EDITOR PANEL (modal) ---------- */
.panel-backdrop {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:100;
  align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto;
}.gallery-scope .panel-backdrop.show {display:flex;}.gallery-scope .panel {
  background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:26px;
  max-width:620px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.5);
}.gallery-scope .panel h2 {font-size:20px; margin-bottom:18px;}.gallery-scope .field {margin-bottom:14px;}.gallery-scope .field label {display:block; font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted-2); margin-bottom:5px;}.gallery-scope .field input[type=text], .gallery-scope .field input[type=date], .gallery-scope .field textarea {
  width:100%; background:var(--bg); border:1px solid var(--line-soft); color:var(--text);
  padding:9px 11px; border-radius:2px; font-size:13.5px; font-family:'IBM Plex Sans',sans-serif;
}.gallery-scope .field textarea {resize:vertical;}.gallery-scope .field-row2 {display:grid; grid-template-columns:1fr 1fr; gap:12px;}.gallery-scope .field-hint {font-size:11px; color:var(--muted-2); margin-top:4px;}.gallery-scope .source-toggle {display:flex; gap:8px; margin-bottom:10px;}.gallery-scope .source-toggle button {flex:1; padding:8px; border-radius:2px; border:1px solid var(--line); background:var(--bg); color:var(--muted); cursor:pointer; font-size:12px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase;}.gallery-scope .source-toggle button.active {border-color:var(--accent); color:var(--accent); background:rgba(var(--accent-rgb),.08); font-weight:600;}.gallery-scope .upload-drop {
  border:1.5px dashed var(--line); border-radius:2px; padding:22px; text-align:center;
  color:var(--muted); font-size:12.5px; cursor:pointer; background:var(--bg);
}.gallery-scope .upload-drop:hover {border-color:var(--accent-dim); color:var(--text);}.gallery-scope .preview-wrap {margin-top:10px; text-align:center;}.gallery-scope .preview-wrap img {max-width:100%; max-height:180px; border-radius:2px; border:1px solid var(--line);}.gallery-scope .featured-toggle {display:flex; align-items:center; gap:10px;}.gallery-scope .switch {position:relative; width:40px; height:22px; flex:0 0 auto;}.gallery-scope .switch input {opacity:0; width:0; height:0;}.gallery-scope .switch .slider {position:absolute; inset:0; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; cursor:pointer; transition:.2s;}.gallery-scope .switch .slider::before {content:''; position:absolute; width:16px; height:16px; left:2px; top:2px; background:var(--muted); border-radius:50%; transition:.2s;}.gallery-scope .switch input:checked + .slider {background:rgba(var(--accent-rgb),.25); border-color:var(--accent);}.gallery-scope .switch input:checked + .slider::before {transform:translateX(18px); background:var(--accent);}.gallery-scope .panel-actions {display:flex; gap:10px; justify-content:flex-end; margin-top:22px; padding-top:18px; border-top:1px solid var(--line);}.gallery-scope footer.site {border-top:1px solid var(--line); padding:26px 0; text-align:center; color:var(--muted-2); font-size:12px; font-family:'IBM Plex Mono',monospace;}

@media (max-width:640px){.gallery-scope .field-row2 {grid-template-columns:1fr;}.gallery-scope .admin-grid-table {display:block; overflow-x:auto;}
}


/* ===== SHOP MODULE (scoped) ===== */
.shop-scope .wrap{max-width:1160px; margin:0 auto; padding:0 24px;}
.shop-scope h1, .shop-scope h2, .shop-scope h3{font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.02em; margin:0;}
.shop-scope .header-inner{max-width:1160px; margin:0 auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.shop-scope .brand-block .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; color:var(--accent); text-transform:uppercase;}
.shop-scope .brand-block h1{font-size:22px;}
.shop-scope .mode-switch{display:flex; gap:6px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:3px;}
.shop-scope .mode-switch button{background:transparent; border:none; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.03em; text-transform:uppercase; padding:8px 16px; border-radius:16px; cursor:pointer;}
.shop-scope .mode-switch button.active{background:var(--accent); color:var(--on-accent); font-weight:600;}
.shop-scope .view{display:none; padding:32px 0 90px;}
.shop-scope .view.active{display:block;}
.shop-scope .admin-notice{background:var(--surface-2); border:1px solid var(--line); border-left:3px solid var(--accent); padding:10px 14px; font-size:12.5px; color:var(--muted); margin-bottom:20px; border-radius:2px;}
.shop-scope .field{margin-bottom:14px;}
.shop-scope .field label{display:block; font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.04em; color:var(--muted-2); margin-bottom:6px;}
.shop-scope .field input, .shop-scope .field select, .shop-scope .field textarea{width:100%; background:var(--bg); border:1px solid var(--line); color:var(--text); padding:9px 11px; border-radius:2px; font-family:inherit; font-size:13.5px;}
.shop-scope .field select{font-family:'IBM Plex Sans',sans-serif;}
.shop-scope .field textarea{resize:vertical;}
.shop-scope .field-hint{font-size:11px; color:var(--muted-2); margin-top:4px;}
.shop-scope .field-row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
/* Shop's three pop-ups (order, session package, product) — same overlay
   as Blog/Gallery/Members; without it they rendered inline under the footer. */
.shop-scope .panel-backdrop{display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:100; align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto;}
.shop-scope .panel-backdrop.show{display:flex;}
.shop-scope .panel{background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:26px; max-width:720px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.5);}
.shop-scope .panel h2{font-size:20px; margin-bottom:18px;}
.shop-scope .panel-actions{display:flex; gap:10px; justify-content:flex-end; margin-top:22px; padding-top:18px; border-top:1px solid var(--line);}
.shop-scope .admin-toolbar{display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap;}
.shop-scope .admin-grid-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.shop-scope .admin-grid-table th{text-align:left; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); border-bottom:1px solid var(--line); padding:8px 10px;}
.shop-scope .admin-grid-table td{padding:8px 10px; border-bottom:1px solid var(--line-soft); vertical-align:middle;}
.shop-scope .admin-grid-table tr:hover td{background:var(--surface);}
.shop-scope .row-actions{display:flex; gap:6px;}
.shop-scope .row-actions button{background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:2px; padding:5px 10px; font-size:11.5px; cursor:pointer;}
.shop-scope .row-actions button:hover{color:var(--text); border-color:var(--muted);}
.shop-scope .status-pill{font-family:'IBM Plex Mono',monospace; font-size:10px; padding:2px 9px; border-radius:20px; text-transform:uppercase; letter-spacing:.04em; background:var(--surface-2); border:1px solid var(--line);}
.shop-scope .status-pill.active{color:var(--accent-3); border-color:var(--accent-3);}
.shop-scope .status-pill.hidden{color:var(--muted-2);}
footer.shop-footer{border-top:1px solid var(--line); padding:26px 0; text-align:center; color:var(--muted-2); font-size:12px; font-family:'IBM Plex Mono',monospace;}

/* ---- Public catalog ---- */
.shop-scope .shop-type-tabs{display:flex; gap:8px; margin-bottom:26px; flex-wrap:wrap;}
.shop-scope .shop-type-tabs button{font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; padding:8px 16px; border-radius:20px; border:1px solid var(--line); color:var(--muted); background:var(--surface-2); cursor:pointer;}
.shop-scope .shop-type-tabs button.active{background:var(--accent); color:var(--on-accent); border-color:var(--accent); font-weight:700;}
.shop-scope .shop-section-label{font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text); margin:28px 0 12px; padding-bottom:6px; border-bottom:1px solid var(--line);}
.shop-scope .shop-grid{display:flex; gap:16px; flex-wrap:wrap;}
.shop-scope .shop-card{width:232px; background:var(--surface); border:1px solid var(--line); border-radius:10px; overflow:hidden; display:flex; flex-direction:column;}
.shop-scope .shop-card-img{height:140px; background:linear-gradient(135deg, var(--surface-2), var(--bg)); display:flex; align-items:center; justify-content:center; color:var(--accent); font-size:32px; opacity:.6;}
.shop-scope .shop-card-body{padding:14px 15px 16px; display:flex; flex-direction:column; flex:1;}
.shop-scope .shop-card-name{font-size:14px; font-weight:600; color:var(--text); margin-bottom:3px;}
.shop-scope .shop-card-desc{font-size:11.5px; color:var(--muted); margin-bottom:12px; line-height:1.4; flex:1;}
.shop-scope .shop-card-foot{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:10px;}
.shop-scope .shop-price{font-size:15px; font-weight:700; color:var(--text);}
.shop-scope .shop-stock{font-size:10.5px; color:var(--muted-2);}
.shop-scope .shop-stock.low{color:var(--accent-2); font-weight:600;}
.shop-scope .shop-stock.out{color:var(--accent-2); font-weight:600;}
.shop-scope .shop-buy-btn{display:block; width:100%; font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:600; letter-spacing:.02em; text-transform:uppercase; padding:9px 0; border-radius:6px; border:none; text-align:center; cursor:pointer;}
.shop-scope .shop-buy-btn.checkout{background:var(--text); color:var(--bg);}
.shop-scope .shop-buy-btn.invoice{background:transparent; color:var(--text); border:1.5px solid var(--accent);}
.shop-scope .shop-buy-btn:disabled{opacity:.55; cursor:default;}
.shop-scope .shop-pkg-card{width:100%; background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:18px 20px; display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; gap:16px; flex-wrap:wrap;}
.shop-scope .shop-pkg-left{display:flex; align-items:center; gap:16px;}
.shop-scope .shop-pkg-badge{width:48px; height:48px; border-radius:50%; background:var(--text); color:var(--bg); display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:700; flex:0 0 auto;}
.shop-scope .shop-pkg-name{font-size:15px; font-weight:600; color:var(--text);}
.shop-scope .shop-pkg-desc{font-size:12px; color:var(--muted); margin-top:2px;}
.shop-scope .shop-pkg-right{text-align:right; flex:0 0 auto;}
.shop-scope .shop-pkg-price{font-size:17px; font-weight:700; color:var(--text);}
.shop-scope .shop-empty{color:var(--muted); text-align:center; padding:60px 20px; font-size:14px;}
@media (max-width:640px){.shop-scope .field-row2{grid-template-columns:1fr;}.shop-scope .admin-grid-table{display:block; overflow-x:auto;}.shop-scope .shop-card{width:100%;}.shop-scope .mode-switch{flex-wrap:wrap; width:100%;}.shop-scope .mode-switch button{flex:1 1 auto; text-align:center;}}


/* ===== USERS MODULE (scoped) ===== */
.users-scope body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:'IBM Plex Sans',sans-serif; line-height:1.55;
}.users-scope .wrap{max-width:1160px; margin:0 auto; padding:0 24px;}.users-scope h1, .users-scope h2, .users-scope h3{font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.02em; margin:0;}.users-scope a{color:var(--accent);}.users-scope .mono{font-family:'IBM Plex Mono',monospace;}.users-scope /* ---------- HEADER / MODE SWITCH ---------- */
header.site{
  border-bottom:1px solid var(--line); background:var(--surface); position:sticky; top:0; z-index:40;
}.users-scope .header-inner{max-width:1160px; margin:0 auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}.users-scope .brand-block .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; color:var(--accent); text-transform:uppercase;}.users-scope .brand-block h1{font-size:22px;}.users-scope .mode-switch{display:flex; gap:6px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:3px;}.users-scope .mode-switch button{
  background:transparent; border:none; color:var(--muted); font-family:'IBM Plex Mono',monospace;
  font-size:12px; letter-spacing:.04em; text-transform:uppercase; padding:7px 16px; border-radius:16px; cursor:pointer;
}.users-scope .mode-switch button.active{background:var(--accent); color:var(--on-accent); font-weight:600;}.users-scope .view{display:none; padding:32px 0 90px;}.users-scope .view.active{display:block;}.users-scope .admin-notice{background:var(--surface-2); border:1px solid var(--line); border-left:3px solid var(--accent);
  padding:10px 14px; font-size:12.5px; color:var(--muted); margin-bottom:20px; border-radius:2px;}.users-scope .btn2{background:var(--surface-2); border:1px solid var(--line); color:var(--muted); padding:8px 15px;
  border-radius:2px; font-size:12.5px; cursor:pointer; font-family:'IBM Plex Mono',monospace;}.users-scope .btn2:hover{color:var(--text); border-color:var(--accent-dim);}.users-scope .btn2.primary{color:var(--on-accent); background:var(--accent); border-color:var(--accent); font-weight:600;}.users-scope .btn2.danger:hover{color:#e0736a; border-color:#8a3a32;}.users-scope .btn2.small{padding:5px 11px; font-size:11.5px;}.users-scope /* ---------- MY PROFILE VIEW ---------- */
.profile-card{background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:26px; max-width:720px; margin:0 auto;}.users-scope .profile-header{display:flex; align-items:center; gap:16px; margin-bottom:22px; padding-bottom:20px; border-bottom:1px solid var(--line);}.users-scope .avatar-lg{width:64px; height:64px; border-radius:50%; object-fit:cover; border:1px solid var(--line);}.users-scope .profile-header .who h2{font-size:19px;}.users-scope .profile-header .who .sub{font-size:12.5px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; margin-top:2px;}.users-scope .readonly-strip{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px;}.users-scope .ro-pill{background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:6px 13px; font-size:11.5px; font-family:'IBM Plex Mono',monospace; color:var(--muted);}.users-scope .ro-pill b{color:var(--text);}.users-scope .coach-pill{padding:4px 10px 4px 13px;}.users-scope .coach-pill select{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:3px 8px; margin-left:6px; cursor:pointer;}.users-scope .points-block{background:var(--surface-2); border:1px solid var(--line); border-radius:4px; padding:14px 18px; margin-bottom:22px;}.users-scope .points-head{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;}.users-scope .points-balance{font-family:'Oswald',sans-serif; font-size:24px; color:var(--accent);}.users-scope .points-balance .lbl{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted-2); text-transform:uppercase;}.users-scope .points-history{margin-top:10px;}.users-scope .points-row{display:flex; justify-content:space-between; font-size:12px; font-family:'IBM Plex Mono',monospace; color:var(--muted); padding:4px 0; border-bottom:1px solid var(--line-soft);}.users-scope .points-row:last-child{border-bottom:none;}.users-scope .points-row .pos{color:var(--accent-3);}.users-scope .points-row .neg{color:#e0736a;}.users-scope .status-pill{font-family:'IBM Plex Mono',monospace; font-size:10.5px; padding:3px 9px; border-radius:20px; text-transform:uppercase;}.users-scope .status-pill.active{background:rgba(var(--accent-3-rgb),.18); color:var(--accent-3); border:1px solid var(--accent-3);}.users-scope .status-pill.hold{background:rgba(232,185,35,.15); color:var(--accent); border:1px solid var(--accent-dim);}.users-scope .status-pill.overdue, .users-scope .status-pill.suspended{background:rgba(192,57,43,.15); color:#e0736a; border:1px solid #8a3a32;}.users-scope .status-pill.pending{background:var(--surface-2); color:var(--muted); border:1px solid var(--line);}.users-scope .status-pill.featured{background:rgba(var(--accent-rgb),.15); color:var(--accent); border:1px solid var(--accent-dim);}.users-scope /* ---------- ACTIVITY / CHECK-INS ---------- */
.stat-block{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:22px;}.users-scope .stat-card,.sched-scope .stat-card{background:var(--surface-2); border:1px solid var(--line); border-radius:4px; padding:14px 18px; min-width:130px;}.users-scope .stat-card .num,.sched-scope .stat-card .num{font-family:'Oswald',sans-serif; font-size:26px; color:var(--accent); line-height:1;}.users-scope .stat-card .lbl,.sched-scope .stat-card .lbl{font-size:10.5px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); margin-top:4px;}.users-scope .checkin-btn-row{display:flex; align-items:center; gap:12px; margin-bottom:22px;}.users-scope .profile-accordion{border:1px solid var(--line); border-radius:4px; background:var(--surface-2); overflow:hidden;}.users-scope .profile-accordion summary{list-style:none; cursor:pointer; padding:14px 18px; font-family:'IBM Plex Mono',monospace; font-size:12.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--text); display:flex; align-items:center; justify-content:space-between; user-select:none;}.users-scope .profile-accordion summary::-webkit-details-marker{display:none;}.users-scope .profile-accordion summary::after{content:'▾'; font-size:11px; color:var(--muted); transition:transform .15s ease;}.users-scope .profile-accordion[open] summary::after{transform:rotate(180deg);}.users-scope .profile-accordion summary:hover{color:var(--accent);}.users-scope .profile-accordion summary:hover::after{color:var(--accent);}.users-scope .profile-accordion .accordion-body{padding:20px 18px 6px; border-top:1px solid var(--line);}.users-scope .days-since{font-family:'IBM Plex Mono',monospace; font-size:11.5px; padding:2px 8px; border-radius:20px;}.users-scope .days-since.fresh{color:var(--accent-3);}.users-scope .days-since.ok{color:var(--muted);}.users-scope .days-since.stale{color:#e0736a; font-weight:600;}.users-scope .visit-cell{display:flex; flex-direction:column; gap:2px; line-height:1.3;}.users-scope .activity-list{list-style:none; margin:0; padding:0; max-height:220px; overflow-y:auto; border:1px solid var(--line-soft); border-radius:2px;}.users-scope .activity-list li{padding:8px 12px; border-bottom:1px solid var(--line-soft); font-size:12.5px; font-family:'IBM Plex Mono',monospace; color:var(--muted); display:flex; justify-content:space-between;}.users-scope .activity-list li:last-child{border-bottom:none;}.users-scope .activity-list .empty-row{color:var(--muted-2); text-align:center; padding:16px;}.users-scope .activity-summary{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px;}.users-scope /* ---------- ASSESSMENT LOG ---------- */
.assessment-list{display:flex; flex-direction:column; gap:10px; max-height:340px; overflow-y:auto;}.users-scope .assessment-card{background:var(--bg); border:1px solid var(--line-soft); border-radius:2px; padding:12px 14px;}.users-scope .assessment-card .a-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px;}.users-scope .assessment-type{font-family:'IBM Plex Mono',monospace; font-size:10.5px; padding:2px 9px; border-radius:20px; text-transform:uppercase; letter-spacing:.04em;}.users-scope .assessment-type.initial{background:rgba(var(--accent-rgb),.15); color:var(--accent); border:1px solid var(--accent-dim);}.users-scope .assessment-type.reassessment{background:rgba(var(--accent-3-rgb),.15); color:var(--accent-3); border:1px solid var(--accent-3);}.users-scope .assessment-card .a-date{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--muted-2);}.users-scope .assessment-card .a-row{font-size:12.5px; color:var(--muted); margin-top:3px;}.users-scope .assessment-card .a-row b{color:var(--text); font-weight:600;}.users-scope .a-flags{display:flex; gap:6px; flex-wrap:wrap; margin-top:6px;}.users-scope .a-flag{font-family:'IBM Plex Mono',monospace; font-size:10px; padding:2px 8px; border-radius:20px; background:var(--surface-2); border:1px solid var(--line); color:var(--muted);}.users-scope .a-flag.warn{color:#e0736a; border-color:#8a3a32;}.users-scope .nested-backdrop{z-index:150;}.users-scope .field{margin-bottom:14px;}.users-scope .field label{display:block; font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted-2); margin-bottom:5px;}.users-scope .field input[type=text], .users-scope .field input[type=date], .users-scope .field input[type=email], .users-scope .field input[type=tel], .users-scope .field input[type=number], .users-scope .field input[type=password], .users-scope .field select, .users-scope .field textarea{
  width:100%; background:var(--bg); border:1px solid var(--line-soft); color:var(--text);
  padding:9px 11px; border-radius:2px; font-size:13.5px; font-family:'IBM Plex Sans',sans-serif;
}.users-scope .field select{font-family:'IBM Plex Sans',sans-serif;}.users-scope .field textarea{resize:vertical;}.users-scope .field-hint{font-size:11px; color:var(--muted-2); margin-top:4px;}.users-scope .field-row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}.users-scope .field-row3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px;}
.users-scope .pw-wrap{position:relative;}
.users-scope .pw-wrap input.pw-input{padding-right:40px;}
.users-scope .pw-toggle{position:absolute; right:4px; top:0; bottom:0; display:flex; align-items:center; justify-content:center; width:32px; background:none; border:none; padding:0; margin:0; cursor:pointer; color:var(--muted-2);}
.users-scope .pw-toggle:hover{color:var(--text);}
.users-scope .pw-toggle svg{display:block;}
.users-scope .fieldset-label{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--accent); margin:22px 0 12px; padding-top:18px; border-top:1px solid var(--line);}.users-scope .fieldset-label:first-child{margin-top:0; padding-top:0; border-top:none;}.users-scope .save-row{display:flex; justify-content:flex-end; gap:10px; margin-top:20px; padding-top:18px; border-top:1px solid var(--line);}.users-scope /* ---------- ADMIN: USERS TABLE ---------- */
.admin-toolbar{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; align-items:center;}.users-scope .search-input{background:var(--surface); border:1px solid var(--line); color:var(--text); padding:8px 13px;
  border-radius:20px; font-size:12.5px; font-family:'IBM Plex Sans',sans-serif; min-width:200px;}.users-scope .role-filter{display:flex; gap:6px; flex-wrap:wrap;}.users-scope .role-filter button{background:var(--surface); border:1px solid var(--line); color:var(--muted);
  padding:7px 13px; border-radius:20px; font-size:12px; font-family:'IBM Plex Mono',monospace; cursor:pointer;}.users-scope .role-filter button.active{background:var(--accent); color:var(--on-accent); border-color:var(--accent); font-weight:600;}.users-scope .role-checks{display:flex; gap:14px; flex-wrap:wrap; padding:9px 0;}.users-scope .role-check{display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--muted); cursor:pointer;}.users-scope .role-check input{accent-color:var(--accent); width:15px; height:15px; cursor:pointer;}.users-scope .role-check span{color:var(--text);}.users-scope .role-pills{display:flex; gap:4px; flex-wrap:wrap;}.users-scope .role-pill.primary{background:rgba(var(--accent-rgb),.15); color:var(--accent); border:1px solid var(--accent-dim); font-weight:600;}.users-scope .result-count{margin-left:auto; font-size:12px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace;}.users-scope .admin-grid-table{width:100%; border-collapse:collapse; font-size:13.5px;}.users-scope .admin-grid-table th{text-align:left; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted-2); border-bottom:1px solid var(--line); padding:8px 10px;}.users-scope .admin-grid-table td{padding:8px 10px; border-bottom:1px solid var(--line-soft); vertical-align:middle;}.users-scope .admin-grid-table tr:hover td{background:var(--surface);}.users-scope .who-cell{display:flex; align-items:center; gap:10px;}.users-scope .avatar-sm{width:32px; height:32px; border-radius:50%; object-fit:cover; border:1px solid var(--line); flex:0 0 auto;}.users-scope .who-cell .name{font-weight:600;}.users-scope .who-cell .email{font-size:11.5px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace;}.users-scope .flag-dot{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px;}.users-scope .flag-dot.green{background:var(--accent-3);}.users-scope .flag-dot.yellow{background:var(--accent);}.users-scope .flag-dot.red{background:var(--accent-2);}.users-scope .row-actions{display:flex; gap:6px;}.users-scope .row-actions button{background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:2px;
  padding:4px 9px; font-size:11.5px; cursor:pointer; font-family:'IBM Plex Mono',monospace;}.users-scope .row-actions button:hover{color:var(--text); border-color:var(--accent-dim);}.users-scope .row-actions button.del:hover{color:#e0736a; border-color:#8a3a32;}.users-scope .balance-neg{color:#e0736a;}.users-scope /* ---------- EDITOR PANEL (modal, .users-scope tabbed) ---------- */
.panel-backdrop{
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:100;
  align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto;
}.users-scope .panel-backdrop.show{display:flex;}.users-scope .panel{
  background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:26px;
  max-width:660px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.5);
}.users-scope .panel h2{font-size:20px; margin-bottom:6px;}.users-scope .panel .panel-sub{font-size:12px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; margin-bottom:18px;}.users-scope .tab-bar{display:flex; gap:4px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:3px; margin-bottom:20px; flex-wrap:wrap;}.users-scope .tab-bar button{flex:1; min-width:110px; background:transparent; border:none; color:var(--muted); font-family:'IBM Plex Mono',monospace;
  font-size:11px; letter-spacing:.03em; text-transform:uppercase; padding:8px 10px; border-radius:16px; cursor:pointer;}.users-scope .tab-bar button.active{background:var(--accent); color:var(--on-accent); font-weight:600;}.users-scope .tab-pane{display:none;}.users-scope .tab-pane.active{display:block;}.users-scope .notes-box{background:var(--bg); border:1px solid var(--line-soft); border-radius:2px; padding:10px 12px; font-size:12.5px; color:var(--muted);}.users-scope .switch{position:relative; width:40px; height:22px; flex:0 0 auto;}.users-scope .switch input{opacity:0; width:0; height:0;}.users-scope .switch .slider{position:absolute; inset:0; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; cursor:pointer; transition:.2s;}.users-scope .switch .slider::before{content:''; position:absolute; width:16px; height:16px; left:2px; top:2px; background:var(--muted); border-radius:50%; transition:.2s;}.users-scope .switch input:checked + .slider{background:rgba(var(--accent-rgb),.25); border-color:var(--accent);}.users-scope .switch input:checked + .slider::before{transform:translateX(18px); background:var(--accent);}.users-scope .toggle-row{display:flex; align-items:center; gap:10px;}.users-scope .panel-actions{display:flex; gap:10px; justify-content:flex-end; margin-top:22px; padding-top:18px; border-top:1px solid var(--line);}.users-scope /* ---------- TOAST ---------- */
.u-toast{
  position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--surface); border:1px solid var(--accent-dim); color:var(--text);
  padding:10px 20px; border-radius:20px; font-size:13px; font-family:'IBM Plex Mono',monospace;
  z-index:300; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s;
}.users-scope .u-toast.show{opacity:1; transform:translateX(-50%) translateY(0);}.users-scope .empty-msg{color:var(--muted); text-align:center; padding:60px 20px; font-size:14px;}.users-scope footer.site{border-top:1px solid var(--line); padding:26px 0; text-align:center; color:var(--muted-2); font-size:12px; font-family:'IBM Plex Mono',monospace;}

.users-scope .layout-toggle{display:flex; gap:6px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:3px;}
.users-scope .layout-toggle button{background:transparent; border:none; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.03em; text-transform:uppercase; padding:6px 14px; border-radius:16px; cursor:pointer;}
.users-scope .layout-toggle button.active{background:var(--accent); color:var(--on-accent); font-weight:600;}
.users-scope .admin-layout{display:none;}
.users-scope .admin-layout.active{display:block;}
.users-scope .member-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px;}
.users-scope .member-card{position:relative; border-radius:var(--radius); overflow:hidden; background:var(--surface); border:1px solid var(--line); padding:16px; display:flex; gap:12px; align-items:flex-start;}
.users-scope .member-avatar{width:46px; height:46px; border-radius:50%; flex:0 0 auto; object-fit:cover; border:1px solid var(--line);}
.users-scope .member-body{min-width:0; flex:1 1 auto;}
.users-scope .member-name{color:var(--text); font-size:14.5px; font-weight:600; line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.users-scope .member-email{color:var(--muted); font-size:12px; font-family:'IBM Plex Mono',monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.users-scope .member-meta{display:flex; gap:6px; flex-wrap:wrap; margin-top:9px;}
.users-scope .plan-pill{font-family:'IBM Plex Mono',monospace; font-size:10.5px; padding:3px 9px; border-radius:20px; text-transform:uppercase; background:var(--surface-2); color:var(--muted); border:1px solid var(--line);}
.users-scope .role-pill{font-family:'IBM Plex Mono',monospace; font-size:10.5px; padding:3px 9px; border-radius:20px; text-transform:uppercase; background:var(--surface-2); color:var(--accent); border:1px solid var(--accent-dim);}
.users-scope .member-joined{color:var(--muted-2); font-size:11px; font-family:'IBM Plex Mono',monospace; margin-top:8px;}
.users-scope .member-card .card-actions{display:flex; flex-direction:column; gap:6px; flex:0 0 auto;}
.users-scope .member-card .card-actions button{width:28px; height:28px; border-radius:50%; border:1px solid var(--line); background:var(--surface-2); color:var(--muted); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:12px;}
.users-scope .member-card .card-actions button:hover{color:var(--text); border-color:var(--accent-dim);}
.users-scope .member-card .card-actions button.del:hover{color:#e0736a; border-color:#8a3a32;}

@media (max-width:640px){.users-scope .field-row2, .users-scope .field-row3{grid-template-columns:1fr;}.users-scope .admin-grid-table{display:block; overflow-x:auto;}.users-scope .profile-card{padding:20px;}.users-scope .mode-switch{flex-wrap:wrap; width:100%;}.users-scope .mode-switch button{flex:1 1 auto; text-align:center;}
}

/* ================= SCHEDULE ================= */
.sched-scope .view-switch{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px;}
.sched-scope .view-switch button{padding:8px 16px; border-radius:20px; border:1px solid var(--line); background:var(--surface-2); color:var(--muted); cursor:pointer; font-size:12px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.04em;}
.sched-scope .view-switch button.active{border-color:var(--accent); color:var(--accent); background:rgba(var(--accent-rgb),.1); font-weight:600;}
.sched-scope .identity-row{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid var(--line);}
.sched-scope .identity-row label{font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); margin-right:6px;}
.sched-scope .identity-row select{background:var(--surface-2); border:1px solid var(--line); color:var(--text); padding:7px 10px; border-radius:2px; font-size:12.5px; font-family:'IBM Plex Sans',sans-serif;}
.sched-scope .sched-sub{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:20px;}
.coach-section{display:none;}
.coach-section.active{display:block;}
.member-section{display:none;}
.member-section.active{display:block;}
.me-section{display:none;}
.me-section.active{display:block;}
/* Me's own tile row (me-section-switch) replaces the outer Member tile
   row (member-section-switch) while Me is open, at every width — see
   the me-content-mode toggle in switchTab(). */
#tab-member.me-content-mode #member-section-switch{display:none;}
.admin-section{display:none;}
.admin-section.active{display:block;}
.sched-scope .sched-sub button{padding:7px 14px; border-radius:2px; border:1px solid var(--line); background:transparent; color:var(--muted); cursor:pointer; font-size:11.5px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.04em;}
.sched-scope .sched-sub button.active{border-color:var(--accent-dim); color:var(--accent); background:rgba(var(--accent-rgb),.08); font-weight:600;}
/* The Member/Admin page sub-tabs reuse .plate purely so they auto-wire into
   the existing generic click/highlight mechanism (plates.forEach) — but
   .plate's own look is the circular exercise-plate badge used elsewhere,
   which is the wrong metaphor here. Fully override it back to a flat tab. */
.sched-scope .sched-sub .plate{
  border-radius:2px; background:transparent; display:inline-flex; flex-direction:row;
  width:auto; height:auto; padding:7px 14px; border:1px solid var(--line); color:var(--muted);
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; box-shadow:none;
  line-height:normal;
}
.sched-scope .sched-sub .plate:hover{border-color:var(--muted); color:var(--text); background:transparent;}
.sched-scope .sched-sub .plate.active{border-color:var(--accent-dim); color:var(--accent); background:rgba(var(--accent-rgb),.08); font-weight:600;}

/* ---- BIG-BUTTON MEMBER/ME/COACH/ADMIN NAV (experiment) ----
   Member's own switch, the Me tracker switch nested under it, Coach's
   sub-nav (trainers use Live Session/Roster from the gym floor on a
   phone as often as at a desk), and now Admin's sub-nav too — Billing/
   Users/Sessions/Reports land as tiles on mobile the same way.
   Overrides the flat-tab look above via ID specificity. Revert:
   git checkout pre-atm-ui-experiment -- css/bells-n-barz.css
   "bells n barz (main file).html" */
#member-section-switch,
#me-section-switch,
#coach-section-switch,
#admin-section-switch{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(130px, 1fr));
  gap:12px;
  margin-bottom:22px;
}
#member-section-switch .plate,
#me-section-switch button,
#coach-section-switch button,
#admin-section-switch .plate{
  min-height:84px;
  padding:16px 10px;
  border-radius:8px;
  border:2px solid var(--line);
  background:var(--surface);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-family:'Oswald',sans-serif;
  font-size:15px;
  letter-spacing:0.02em;
  color:var(--text);
  transition:transform .08s ease, border-color .15s ease, background .15s ease;
}
#member-section-switch .plate:hover,
#me-section-switch button:hover,
#coach-section-switch button:hover,
#admin-section-switch .plate:hover{
  border-color:var(--accent-dim);
  background:var(--surface-2);
  color:var(--text);
}
#member-section-switch .plate:active,
#me-section-switch button:active,
#coach-section-switch button:active,
#admin-section-switch .plate:active{
  transform:scale(0.96);
}
#member-section-switch .plate.active,
#me-section-switch button.active,
#coach-section-switch button.active,
#admin-section-switch .plate.active{
  border-color:var(--accent);
  background:rgba(var(--accent-rgb),.14);
  color:var(--accent);
  font-weight:600;
}

/* ---- TABLET/POS-STYLE PROTOTYPE (Member/Me/Coach/Admin nav) ----
   Icon-above-label tiles with a lifted, tactile shadow — the natural
   next step on top of the big-button work above (Square/Toast-style
   self-order kiosk, not stark ATM). ::before content per data attribute
   keeps this pure-CSS, no HTML changes, matching the rest of this
   experiment. Revert: git checkout pre-atm-ui-experiment --
   css/bells-n-barz.css */
#member-section-switch .plate,
#me-section-switch button,
#coach-section-switch button,
#admin-section-switch .plate{
  flex-direction:column;
  gap:6px;
  box-shadow:0 2px 6px rgba(0,0,0,.25);
  transition:transform .08s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
#member-section-switch .plate::before,
#me-section-switch button::before,
#coach-section-switch button::before,
#admin-section-switch .plate::before{
  font-size:26px;
  line-height:1;
}
#member-section-switch [data-tab="session"]::before{content:"🏋️";}
#member-section-switch [data-tab="me"]::before{content:"👤";}
#member-section-switch [data-tab="accountability"]::before{content:"👥";}
#member-section-switch [data-tab="messages"]::before{content:"💬";}
#member-section-switch [data-tab="schedule"]::before{content:"📅";}
#me-section-switch [data-me-section="weight"]::before{content:"⚖️";}
#me-section-switch [data-me-section="bp"]::before{content:"🩺";}
#me-section-switch [data-me-section="steps"]::before{content:"👟";}
#me-section-switch [data-me-section="period"]::before{content:"🩸";}
#me-section-switch [data-me-section="track"]::before{content:"📈";}
#me-section-switch [data-me-section="nutrition"]::before{content:"🍎";}
#me-section-switch [data-me-section="moon"]::before{content:"🌙";}
#me-section-switch [data-me-section="fasting"]::before{content:"⏳";}
#me-section-switch [data-me-section="mealplan"]::before{content:"🥗";}
#me-section-switch [data-me-section="recipes"]::before{content:"🥣";}
#coach-section-switch [data-coach-section="dashboard"]::before{content:"📊";}
#coach-section-switch [data-coach-section="program"]::before{content:"📋";}
#coach-section-switch [data-coach-section="roster"]::before{content:"🗓️";}
#coach-section-switch [data-coach-section="session"]::before{content:"🏋️";}
#coach-section-switch [data-coach-section="workouts"]::before{content:"🔖";}
#coach-section-switch [data-coach-section="messages"]::before{content:"💬";}
#coach-section-switch [data-coach-section="mealplans"]::before{content:"🥗";}
#admin-section-switch [data-tab="billing"]::before{content:"💳";}
#admin-section-switch [data-tab="users"]::before{content:"👥";}
#admin-section-switch [data-tab="sessions"]::before{content:"🗓️";}
#admin-section-switch [data-tab="reports"]::before{content:"📊";}
#admin-section-switch [data-tab="content"]::before{content:"📝";}
#member-section-switch .plate:hover,
#me-section-switch button:hover,
#coach-section-switch button:hover,
#admin-section-switch .plate:hover{
  box-shadow:0 4px 12px rgba(0,0,0,.3);
}
#member-section-switch .plate:active,
#me-section-switch button:active,
#coach-section-switch button:active,
#admin-section-switch .plate:active{
  box-shadow:0 1px 3px rgba(0,0,0,.2);
}

/* ---- Member tab lands on the card screen, not Live Session ----
   At every width, landing on Member (top-nav pill or a restored #member
   hash) shows only the section cards — no section pre-selected. Clicking
   a card fully replaces the cards with that section's content plus a
   Back button (toggled via JS: switchTab() adds/removes
   #tab-member.member-content-mode; see the plates click handler and
   #member-back-btn). The card look itself is under "Member landing
   cards" further down. */
.member-back-btn{
  display:none;
  width:100%; margin-bottom:14px; padding:14px;
  border-radius:8px; border:2px solid var(--line); background:var(--surface);
  color:var(--text); font-family:'Oswald',sans-serif; font-size:15px;
  text-align:left; cursor:pointer;
}
.member-back-btn:active{transform:scale(0.98);}
#tab-member:not(.member-content-mode) .member-section{display:none !important;}
#tab-member.member-content-mode #member-section-switch{display:none;}
#tab-member.member-content-mode .member-back-btn{display:block;}
@media (min-width:641px){
  .member-back-btn{width:auto; padding:8px 16px; font-size:14px; border-width:1px;}
}

/* ---- Coach and Admin land on their card screens too ----
   Same pattern as Member above, at every width. Coach uses its own
   sub-switcher (the "COACH SUB-SWITCHER" IIFE adds coach-content-mode;
   switchTab() clears it when the COACH pill is used). Admin uses the
   generic switchTab()/NESTED_TAB_PARENT mechanism like Member — see the
   `nestedParent === 'tab-admin'` branch. Back buttons share Member's look. */
.coach-back-btn, .admin-back-btn{
  display:none; width:100%; margin-bottom:14px; padding:14px;
  border-radius:8px; border:2px solid var(--line); background:var(--surface);
  color:var(--text); font-family:'Oswald',sans-serif; font-size:15px;
  text-align:left; cursor:pointer;
}
.coach-back-btn:active, .admin-back-btn:active{transform:scale(0.98);}
#tab-coach:not(.coach-content-mode) .coach-section{display:none !important;}
#tab-coach.coach-content-mode #coach-section-switch{display:none;}
#tab-coach.coach-content-mode .coach-back-btn{display:block;}
#tab-admin:not(.admin-content-mode) .admin-section{display:none !important;}
#tab-admin.admin-content-mode #admin-section-switch{display:none;}
#tab-admin.admin-content-mode .admin-back-btn{display:block;}
/* Me (inside Member) lands on its own cards; a tracker swaps them for
   "Back to Me", and Member's own Back hides meanwhile so there's only
   ever one. me-section-mode is set on #tab-member by the Me sub-switcher. */
.me-back-btn{
  display:none; width:100%; margin-bottom:14px; padding:14px;
  border-radius:8px; border:2px solid var(--line); background:var(--surface);
  color:var(--text); font-family:'Oswald',sans-serif; font-size:15px;
  text-align:left; cursor:pointer;
}
.me-back-btn:active{transform:scale(0.98);}
#tab-member:not(.me-section-mode) #tab-me .me-section{display:none !important;}
#tab-member.me-section-mode #me-section-switch{display:none;}
#tab-member.me-section-mode .me-back-btn{display:block;}
#tab-member.me-section-mode .member-back-btn{display:none;}
/* Tools: page cards (Timers / Challenges / Body / Calories), same idea —
   tools-page-mode on #tab-tools is set by showToolsPage() in the shell. */
.tools-back-btn, .shop-back-btn{
  display:none; width:100%; margin-bottom:14px; padding:14px;
  border-radius:8px; border:2px solid var(--line); background:var(--surface);
  color:var(--text); font-family:'Oswald',sans-serif; font-size:15px;
  text-align:left; cursor:pointer;
}
.tools-back-btn:active, .shop-back-btn:active{transform:scale(0.98);}
#tab-tools:not(.tools-page-mode) .tools-page{display:none !important;}
#tab-tools.tools-page-mode #tools-page-tabs{display:none;}
#tab-tools.tools-page-mode .tools-back-btn{display:block;}
@media (min-width:641px){
  .coach-back-btn, .admin-back-btn, .me-back-btn, .tools-back-btn, .shop-back-btn{width:auto; padding:8px 16px; font-size:14px; border-width:1px;}
}

.sched-scope .chip-filter{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:18px;}
.sched-scope .chip-filter button{padding:6px 13px; border-radius:20px; border:1px solid var(--line); background:var(--surface-2); color:var(--muted); cursor:pointer; font-size:11.5px; font-family:'IBM Plex Mono',monospace;}
.sched-scope .chip-filter button.active{background:var(--accent); color:var(--on-accent); border-color:var(--accent); font-weight:600;}
.sched-scope .day-group{margin-bottom:22px;}
.sched-scope .day-group h4{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:14px; letter-spacing:.04em; color:var(--text); border-bottom:1px solid var(--line); padding-bottom:8px; margin-bottom:12px;}
.sched-scope .sess-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px;}
.sched-scope .sess-card{background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:16px;}
.sched-scope .sess-card .sc-time{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--accent); text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px;}
.sched-scope .sess-card h5{font-size:16px; margin-bottom:4px;}
.sched-scope .sess-card .sc-meta{font-size:12px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; margin-bottom:10px;}
.sched-scope .cap-meter{height:5px; border-radius:4px; background:var(--surface-2); overflow:hidden; margin-bottom:10px;}
.sched-scope .cap-meter i{display:block; height:100%; background:var(--accent-3);}
.sched-scope .cap-meter i.full{background:#e0736a;}
.sched-scope .sc-actions{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.sched-scope .status-pill{font-family:'IBM Plex Mono',monospace; font-size:10.5px; padding:3px 9px; border-radius:20px; text-transform:uppercase;}
.sched-scope .balance-neg{color:#e0736a;}
.sched-scope .status-pill.confirmed, .sched-scope .status-pill.active, .sched-scope .status-pill.open, .sched-scope .status-pill.scheduled{background:rgba(var(--accent-3-rgb),.15); color:var(--accent-3); border:1px solid var(--accent-3);}
.sched-scope .status-pill.waitlisted, .sched-scope .status-pill.pending{background:rgba(232,185,35,.15); color:var(--accent); border:1px solid var(--accent-dim);}
.sched-scope .status-pill.cancelled, .sched-scope .status-pill.no-show, .sched-scope .status-pill.blocked, .sched-scope .status-pill.archived{background:rgba(192,57,43,.15); color:#e0736a; border:1px solid #8a3a32;}
.sched-scope .status-pill.booked{background:var(--surface-2); color:var(--muted); border:1px solid var(--line);}
.sched-scope .admin-table{width:100%; border-collapse:collapse; font-size:13.5px; margin-bottom:20px;}
.sched-scope .admin-table th{text-align:left; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); border-bottom:1px solid var(--line); padding:8px 10px;}
.sched-scope .admin-table td{padding:9px 10px; border-bottom:1px solid var(--line-soft); vertical-align:middle;}
.sched-scope .admin-table tr:hover td{background:var(--surface);}
.sched-scope .row-actions{display:flex; gap:6px; flex-wrap:wrap;}
.sched-scope .row-actions button{background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:2px; padding:4px 9px; font-size:11.5px; cursor:pointer; font-family:'IBM Plex Mono',monospace;}
.sched-scope .row-actions button:hover{color:var(--text); border-color:var(--accent-dim);}
.sched-scope .row-actions button.del:hover, .sched-scope .row-actions button.danger:hover{color:#e0736a; border-color:#8a3a32;}
.sched-scope .row-actions button.primary{color:var(--accent); border-color:var(--accent-dim);}
.sched-scope .empty-msg{color:var(--muted); text-align:center; padding:40px 20px; font-size:13.5px; border:1px dashed var(--line); border-radius:4px;}
.sched-scope .form-inline{display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:20px; background:var(--surface-2); border:1px solid var(--line); border-radius:4px; padding:16px;}
.sched-scope .form-inline .field{display:flex; flex-direction:column; gap:5px;}
.sched-scope .form-inline label{font-size:10.5px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2);}
.sched-scope .form-inline input, .sched-scope .form-inline select{background:var(--bg); border:1px solid var(--line-soft); color:var(--text); padding:8px 10px; border-radius:2px; font-size:12.5px; font-family:'IBM Plex Sans',sans-serif; min-width:130px;}
.sched-scope .panel-backdrop{display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:100; align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto;}
.sched-scope .panel-backdrop.show{display:flex;}
.sched-scope .panel{background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:26px; max-width:560px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.5);}
.sched-scope .panel h2{font-size:20px; margin-bottom:18px;}
.sched-scope .field{margin-bottom:14px;}
.sched-scope .field label{display:block; font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); margin-bottom:5px;}
.sched-scope .field input, .sched-scope .field select, .sched-scope .field textarea{width:100%; background:var(--bg); border:1px solid var(--line-soft); color:var(--text); padding:9px 11px; border-radius:2px; font-size:13.5px; font-family:'IBM Plex Sans',sans-serif;}
.sched-scope .field-row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.sched-scope .field-row3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px;}
.sched-scope .field-hint{font-size:11px; color:var(--muted-2); margin-top:4px;}
.sched-scope .sched-recurring-preview.bad{color:#e0736a;}
.sched-scope .cal-head{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:14px;}
.sched-scope .cal-head .btn2{padding:6px 12px;}
.sched-scope .cal-head .btn2[disabled]{opacity:.35; cursor:default;}
.sched-scope .cal-range{font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:15px; color:var(--text); min-width:130px; text-align:center;}
.sched-scope .cal-legend{margin-left:auto; display:flex; align-items:center; gap:6px; font-size:11px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace;}
.sched-scope .cal-key{display:inline-block; width:10px; height:10px; border-radius:2px; margin-left:8px; border:1px solid var(--line); border-left:3px solid var(--accent);}
.sched-scope .cal-key.cal-slot{border:1px dashed var(--muted-2);}
.sched-scope .cal-key.mine{background:rgba(var(--accent-3-rgb),.25); border:1px solid var(--accent-3);}
.sched-scope #sched-class-chips{margin-bottom:14px;}
.sched-scope .cal-grid{display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:6px;}
.sched-scope .cal-day{background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:6px; min-height:140px; display:flex; flex-direction:column; gap:6px; min-width:0;}
.sched-scope .cal-day.today{border-color:var(--accent-dim); box-shadow:inset 0 2px 0 var(--accent);}
.sched-scope .cal-day.past{opacity:.55;}
.sched-scope .cal-day-head{display:flex; justify-content:space-between; align-items:baseline; font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; color:var(--muted); padding:0 2px 4px; border-bottom:1px solid var(--line);}
.sched-scope .cal-day-head b{font-family:'Oswald',sans-serif; font-size:17px; color:var(--text); font-weight:500;}
.sched-scope .cal-day.today .cal-day-head b{color:var(--accent);}
.sched-scope .cal-none{color:var(--muted-2); font-size:12px; text-align:center; padding-top:10px;}
.sched-scope .cal-item{border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:3px; padding:6px 7px; background:var(--surface-2); font-size:12px; min-width:0; overflow-wrap:anywhere;}
.sched-scope .cal-item.cal-slot{border:1px dashed var(--muted-2); background:transparent;}
.sched-scope .cal-item.mine{border-color:var(--accent-3); background:rgba(var(--accent-3-rgb),.12);}
.sched-scope .cal-item.past{opacity:.6;}
.sched-scope .cal-time{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--accent); text-transform:uppercase;}
.sched-scope .cal-item.mine .cal-time{color:var(--accent-3);}
.sched-scope .cal-title{font-weight:600; color:var(--text); line-height:1.25; margin:2px 0;}
.sched-scope .cal-meta{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--muted-2);}
.sched-scope .cal-actions{display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-top:6px;}
.sched-scope .cal-actions .btn2{padding:4px 10px; font-size:11px;}
.sched-scope .cal-actions .status-pill{font-size:9.5px; padding:2px 7px;}
.sched-scope .cal-item.cal-slot.blocked{border-color:#8a3a32; opacity:.7;}
.sched-scope .cal-add{all:unset; cursor:pointer; margin-top:auto; text-align:center; padding:5px; border:1px dashed var(--line); border-radius:3px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; font-size:11px;}
.sched-scope .cal-add:hover{color:var(--accent); border-color:var(--accent-dim);}
.sched-scope .form-inline.cal-filter{margin-bottom:14px; background:none; border:0; padding:0;}
.sched-scope .form-inline.cal-filter .field{flex-direction:row; align-items:center; gap:10px; margin:0; width:auto;}
.sched-scope .form-inline.cal-filter label{margin:0;}
.sched-scope .form-inline.cal-filter select{width:auto;}
.sched-scope .cal-item.draggable{cursor:grab;}
.sched-scope .cal-item.dragging{opacity:.4;}
.sched-scope .cal-grid.drag-on .cal-day:not(.past){outline:1px dashed var(--line);}
.sched-scope .cal-grid.drag-on .cal-day.drop-ok{outline:2px dashed var(--accent); background:rgba(var(--accent-rgb),.06);}
.sched-scope .cal-item.drop-target{outline:1px dashed var(--accent-dim);}
.sched-scope .cal-item.drop-ok{outline:2px dashed var(--accent); background:rgba(var(--accent-rgb),.08);}
.sched-scope .cal-item.move-source{outline:2px solid var(--accent-3);}
.sched-scope .cal-move-banner{margin-bottom:12px; padding:10px 12px; border:1px solid var(--accent-dim); border-radius:4px; background:rgba(var(--accent-rgb),.08); font-size:13px; color:var(--text);}
.sched-scope .cal-tip{margin:-4px 0 10px;}
.sched-scope .cal-view{display:inline-flex; border:1px solid var(--line); border-radius:3px; overflow:hidden;}
.sched-scope .cal-view button{all:unset; cursor:pointer; padding:6px 12px; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);}
.sched-scope .cal-view button + button{border-left:1px solid var(--line);}
.sched-scope .cal-view button.active{color:var(--accent); background:rgba(var(--accent-rgb),.1); font-weight:600;}
.sched-scope .cal-view button:focus-visible{outline:2px solid var(--accent);}
.sched-scope .cal-month{border:1px solid var(--line); border-radius:4px; overflow:hidden;}
.sched-scope .cal-mhead{display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); background:var(--surface-2); border-bottom:1px solid var(--line);}
.sched-scope .cal-mhead span{padding:6px 8px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; color:var(--muted);}
.sched-scope .cal-mgrid{display:grid; grid-template-columns:repeat(7, minmax(0,1fr));}
.sched-scope .cal-mday{min-height:104px; padding:5px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--surface); cursor:pointer; display:flex; flex-direction:column; gap:3px; min-width:0;}
.sched-scope .cal-mday:nth-child(7n){border-right:0;}
.sched-scope .cal-mday:hover{background:var(--surface-2);}
.sched-scope .cal-mday:focus-visible{outline:2px solid var(--accent); outline-offset:-2px;}
.sched-scope .cal-mday.out{background:transparent; opacity:.45;}
.sched-scope .cal-mday.past{opacity:.55;}
.sched-scope .cal-mday.today{box-shadow:inset 0 2px 0 var(--accent);}
.sched-scope .cal-mday.drop-ok{outline:2px dashed var(--accent); outline-offset:-2px; background:rgba(var(--accent-rgb),.06);}
.sched-scope .cal-mnum{display:flex; justify-content:space-between; align-items:center; font-family:'Oswald',sans-serif; font-size:14px; color:var(--text);}
.sched-scope .cal-mday.today .cal-mnum{color:var(--accent);}
.sched-scope .cal-mcount{display:none; font-family:'IBM Plex Mono',monospace; font-size:10px; min-width:16px; height:16px; line-height:16px; text-align:center; border-radius:8px; background:rgba(var(--accent-rgb),.18); color:var(--accent);}
.sched-scope .cal-chip{font-size:11px; line-height:1.3; padding:2px 5px; border-radius:2px; border-left:3px solid var(--accent); background:var(--surface-2); color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.sched-scope .cal-chip b{font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:10px; color:var(--accent);}
.sched-scope .cal-chip.cal-slot{border-left:1px dashed var(--muted-2); background:transparent; color:var(--muted);}
.sched-scope .cal-chip.mine{border-left:3px solid var(--accent-3); background:rgba(var(--accent-3-rgb),.14); color:var(--text);}
.sched-scope .cal-chip.mine b{color:var(--accent-3);}
.sched-scope .cal-chip.wait{border-left-style:dotted;}
.sched-scope .cal-chip.full{opacity:.6;}
.sched-scope .cal-chip.blocked{border-left:3px solid #8a3a32; color:var(--muted-2);}
.sched-scope .cal-chip.past{opacity:.6;}
.sched-scope .cal-chip[draggable="true"]{cursor:grab;}
.sched-scope .cal-chip.drop-target{outline:1px dashed var(--accent-dim);}
.sched-scope .cal-chip.drop-ok{outline:2px dashed var(--accent);}
.sched-scope .cal-more{font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--muted-2); padding-left:4px;}
@media (max-width:640px){
  .sched-scope .cal-mday{min-height:52px; padding:4px 3px;}
  .sched-scope .cal-mhead span{padding:5px 3px; font-size:9.5px; text-align:center;}
  .sched-scope .cal-chip, .sched-scope .cal-more{display:none;}
  .sched-scope .cal-mnum{flex-direction:column; gap:3px; font-size:13px;}
  .sched-scope .cal-mcount{display:inline-block;}
}
.sched-scope .cal-day-head[data-cal-openday]{cursor:pointer;}
.sched-scope .cal-day-head[data-cal-openday]:hover b, .sched-scope .cal-day-head[data-cal-openday]:focus-visible b{color:var(--accent); text-decoration:underline;}
.sched-scope .cal-dayview{border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--surface);}
.sched-scope .cal-hour{display:grid; grid-template-columns:64px minmax(0,1fr); border-bottom:1px solid var(--line); min-height:44px;}
.sched-scope .cal-hour:last-child{border-bottom:0;}
.sched-scope .cal-hour.empty{min-height:34px;}
.sched-scope .cal-hour.gone{opacity:.55;}
.sched-scope .cal-hour.now{box-shadow:inset 3px 0 0 var(--accent);}
.sched-scope .cal-hour.now .cal-hour-label{color:var(--accent);}
.sched-scope .cal-hour.drop-ok{outline:2px dashed var(--accent); outline-offset:-2px; background:rgba(var(--accent-rgb),.06);}
.sched-scope .cal-hour-label{padding:8px 10px; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted-2); text-transform:uppercase; border-right:1px solid var(--line);}
.sched-scope .cal-hour-items{display:flex; flex-wrap:wrap; gap:6px; padding:5px 6px; align-items:flex-start;}
.sched-scope .cal-hour-items .cal-item{flex:0 1 220px;}
.sched-scope .cal-add.cal-add-hour{margin:0 0 0 auto; padding:3px 9px; opacity:0; transition:opacity .15s;}
.sched-scope .cal-hour:hover .cal-add-hour, .sched-scope .cal-add-hour:focus-visible{opacity:1;}
@media (hover:none){ .sched-scope .cal-add.cal-add-hour{opacity:.7;} }
@media (max-width:640px){
  .sched-scope .cal-hour{grid-template-columns:48px minmax(0,1fr);}
  .sched-scope .cal-hour-label{padding:8px 6px; font-size:10px;}
  .sched-scope .cal-hour-items .cal-item{flex:1 1 100%;}
}
.sched-scope .cal-list{display:flex; flex-direction:column; gap:12px;}
.sched-scope .cal-list-day{border:1px solid var(--line); border-radius:4px; background:var(--surface); overflow:hidden;}
.sched-scope .cal-list-day.today{border-color:var(--accent-dim); box-shadow:inset 3px 0 0 var(--accent);}
.sched-scope .cal-list-day.drop-ok{outline:2px dashed var(--accent); outline-offset:-2px;}
.sched-scope .cal-list-head{display:flex; align-items:baseline; gap:10px; padding:8px 12px; background:var(--surface-2); border-bottom:1px solid var(--line); cursor:pointer;}
.sched-scope .cal-list-head b{font-family:'Oswald',sans-serif; font-weight:500; text-transform:uppercase; letter-spacing:.04em; font-size:14px; color:var(--text);}
.sched-scope .cal-list-head span{font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; color:var(--accent);}
.sched-scope .cal-list-head:hover b, .sched-scope .cal-list-head:focus-visible b{color:var(--accent); text-decoration:underline;}
.sched-scope .cal-list-rows{display:flex; flex-direction:column;}
.sched-scope .cal-list-rows .cal-item{display:flex; flex-wrap:wrap; align-items:center; column-gap:14px; row-gap:4px; border:0; border-left:3px solid var(--accent); border-bottom:1px solid var(--line); border-radius:0; padding:9px 12px; background:transparent;}
.sched-scope .cal-list-rows .cal-item:last-child{border-bottom:0;}
.sched-scope .cal-list-rows .cal-item.cal-slot{border:0; border-left:3px dashed var(--muted-2); border-bottom:1px solid var(--line);}
.sched-scope .cal-list-rows .cal-item.mine{border-left:3px solid var(--accent-3); background:rgba(var(--accent-3-rgb),.08);}
.sched-scope .cal-list-rows .cal-item.blocked{border-left-color:#8a3a32;}
.sched-scope .cal-list-rows .cal-time{flex:0 0 112px; font-size:11px;}
.sched-scope .cal-list-rows .cal-title{flex:0 1 auto; margin:0; font-size:13.5px;}
.sched-scope .cal-list-rows .cal-actions{margin:0 0 0 auto;}
.sched-scope .cal-list-more{display:flex; justify-content:center; margin-top:14px;}
@media (max-width:640px){
  .sched-scope .cal-list-rows .cal-time{flex-basis:100%;}
  .sched-scope .cal-list-rows .cal-actions{margin-left:0; flex-basis:100%;}
}
.sched-scope .cal-tl{border:1px solid var(--line); border-radius:4px; background:var(--surface); overflow-x:auto; -webkit-overflow-scrolling:touch;}
.sched-scope .cal-tl-inner{min-width:calc(72px + var(--tl-hours) * 64px);}
.sched-scope .cal-tl-axis, .sched-scope .cal-tl-row{display:grid; grid-template-columns:72px minmax(0,1fr);}
.sched-scope .cal-tl-axis{background:var(--surface-2); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:2;}
.sched-scope .cal-tl-ticks{position:relative; height:26px;}
.sched-scope .cal-tl-ticks span{position:absolute; top:7px; transform:translateX(3px); font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--muted-2); white-space:nowrap;}
.sched-scope .cal-tl-label{position:sticky; left:0; z-index:1; background:inherit; display:flex; align-items:center; justify-content:space-between; gap:4px; padding:0 8px; border-right:1px solid var(--line); font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; color:var(--muted);}
.sched-scope .cal-tl-axis .cal-tl-label{background:var(--surface-2);}
.sched-scope .cal-tl-row{border-bottom:1px solid var(--line); background:var(--surface);}
.sched-scope .cal-tl-row:last-child{border-bottom:0;}
.sched-scope .cal-tl-row .cal-tl-label{background:var(--surface); cursor:pointer;}
.sched-scope .cal-tl-row .cal-tl-label b{font-family:'Oswald',sans-serif; font-size:15px; font-weight:500; color:var(--text);}
.sched-scope .cal-tl-row .cal-tl-label:hover b, .sched-scope .cal-tl-row .cal-tl-label:focus-visible b{color:var(--accent); text-decoration:underline;}
.sched-scope .cal-tl-row.today .cal-tl-label b{color:var(--accent);}
.sched-scope .cal-tl-row.today{box-shadow:inset 0 0 0 1px var(--accent-dim);}
.sched-scope .cal-tl-row.past{opacity:.55;}
.sched-scope .cal-tl-track{position:relative; min-height:38px;}
.sched-scope .cal-tl-track.drop-ok{background:rgba(var(--accent-rgb),.07); outline:2px dashed var(--accent); outline-offset:-2px;}
.sched-scope .cal-tl-grid{position:absolute; top:0; bottom:0; width:1px; background:var(--line); opacity:.6;}
.sched-scope .cal-tl-now{position:absolute; top:0; bottom:0; width:2px; background:var(--accent); z-index:1;}
.sched-scope .cal-tl-bar{position:absolute; height:24px; line-height:20px; box-sizing:border-box; cursor:pointer; z-index:1; padding:2px 4px; font-size:10.5px;}
.sched-scope .cal-tl-bar:hover, .sched-scope .cal-tl-bar:focus-visible{z-index:3; overflow:visible; width:auto !important; min-width:var(--bar-w, 0);}
.sched-scope .cal-tl-bar[draggable="true"]{cursor:grab;}
.sched-scope .cal-tl-bar:hover{filter:brightness(1.15);}
.sched-scope .cal-tl-bar.cal-slot{border:1px dashed var(--muted-2); background:var(--surface);}
.sched-scope .cal-tl-bar.cal-slot.mine{border:1px solid var(--accent-3); border-left-width:3px;}
.sched-scope .cal-year{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px;}
.sched-scope .cal-ymonth{border:1px solid var(--line); border-radius:4px; background:var(--surface); padding:8px 10px 10px;}
.sched-scope .cal-ymonth.this{border-color:var(--accent-dim); box-shadow:inset 0 2px 0 var(--accent);}
.sched-scope .cal-ymonth.past{opacity:.8;}
.sched-scope .cal-ymonth-name{all:unset; cursor:pointer; display:block; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:14px; color:var(--text); margin-bottom:6px;}
.sched-scope .cal-ymonth.this .cal-ymonth-name{color:var(--accent);}
.sched-scope .cal-ymonth-name:hover, .sched-scope .cal-ymonth-name:focus-visible{color:var(--accent); text-decoration:underline;}
.sched-scope .cal-ygrid{display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:2px;}
.sched-scope .cal-ywd{font-family:'IBM Plex Mono',monospace; font-size:9px; color:var(--muted-2); text-align:center; padding-bottom:2px;}
.sched-scope .cal-yday{position:relative; display:flex; align-items:center; justify-content:center; aspect-ratio:1; font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--muted); border-radius:2px; cursor:pointer; background:var(--surface-2);}
.sched-scope .cal-yday:hover, .sched-scope .cal-yday:focus-visible{outline:1px solid var(--accent); outline-offset:0;}
.sched-scope .cal-yday.l1{background:rgba(var(--accent-rgb),.18); color:var(--text);}
.sched-scope .cal-yday.l2{background:rgba(var(--accent-rgb),.32); color:var(--text);}
.sched-scope .cal-yday.l3{background:rgba(var(--accent-rgb),.5); color:var(--text);}
.sched-scope .cal-yday.l4{background:rgba(var(--accent-rgb),.72); color:var(--on-accent);}
.sched-scope .cal-yday.mine::after{content:''; position:absolute; right:2px; top:2px; width:5px; height:5px; border-radius:50%; background:var(--accent-3);}
.sched-scope .cal-yday.today{outline:2px solid var(--accent); outline-offset:-1px; font-weight:700;}
.sched-scope .cal-yday.gone{opacity:.5;}
.sched-scope .cal-yday.drop-ok{outline:2px dashed var(--accent);}
.sched-scope .cal-yleg{display:flex; align-items:center; justify-content:flex-end; gap:4px; margin-top:12px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--muted-2);}
.sched-scope .cal-yleg .cal-yday{width:14px; height:14px; aspect-ratio:auto; cursor:default;}
.sched-scope .cal-yleg span{margin:0 4px;}
@media (max-width:1100px){ .sched-scope .cal-year{grid-template-columns:repeat(3, minmax(0,1fr));} }
@media (max-width:760px){ .sched-scope .cal-year{grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px;} .sched-scope .cal-ymonth{padding:6px;} .sched-scope .cal-yday{font-size:9px;} }
.sched-scope .coach-avatar{flex:0 0 auto; width:var(--av); height:var(--av); border-radius:50%; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; background:var(--surface-2); border:1px solid var(--line); color:var(--accent); font-family:'Oswald',sans-serif; font-size:calc(var(--av) * .38);}
.sched-scope .coach-avatar img{width:100%; height:100%; object-fit:cover;}
.sched-scope .coach-pick{display:flex; gap:8px; overflow-x:auto; padding-bottom:6px; margin-bottom:16px;}
.sched-scope .coach-pick-card{all:unset; box-sizing:border-box; cursor:pointer; display:flex; align-items:center; gap:10px; min-width:170px; padding:8px 12px 8px 8px; border:1px solid var(--line); border-radius:4px; background:var(--surface);}
.sched-scope .coach-pick-card b{display:block; font-size:13px; color:var(--text);}
.sched-scope .coach-pick-card small{display:block; font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--muted-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:120px;}
.sched-scope .coach-pick-card:hover{border-color:var(--muted);}
.sched-scope .coach-pick-card:focus-visible{outline:2px solid var(--accent);}
.sched-scope .coach-pick-card.active{border-color:var(--accent); background:rgba(var(--accent-rgb),.08);}
.sched-scope .coach-profile{display:flex; gap:16px; align-items:flex-start; padding:16px; border:1px solid var(--line); border-radius:4px; background:var(--surface); margin-bottom:16px;}
.sched-scope .coach-profile-body{flex:1; min-width:0;}
.sched-scope .coach-profile h3{font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em; font-size:18px; margin:0 0 4px;}
.sched-scope .coach-tags{display:flex; flex-wrap:wrap; gap:6px; margin:8px 0;}
.sched-scope .coach-tags span{font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; padding:3px 8px; border-radius:20px; border:1px solid var(--accent-dim); color:var(--accent);}
.sched-scope .coach-bio{font-size:13.5px; line-height:1.55; margin:8px 0; white-space:pre-line; max-width:70ch;}
.sched-scope .coach-profile-edit{max-width:640px;}
.sched-scope .coach-profile-edit input, .sched-scope .coach-profile-edit textarea{width:100%; box-sizing:border-box;}
.sched-scope .slot-filters{display:flex; flex-wrap:wrap; gap:8px 16px; margin-bottom:14px;}
.sched-scope .slot-day{margin-bottom:14px;}
.sched-scope .slot-day h4{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:13.5px; letter-spacing:.04em; border-bottom:1px solid var(--line); padding-bottom:6px; margin-bottom:6px;}
.sched-scope .slot-row{display:flex; align-items:center; gap:12px; padding:7px 0; border-bottom:1px solid var(--line-soft, var(--line));}
.sched-scope .slot-row:last-child{border-bottom:0;}
.sched-scope .slot-time{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--accent); min-width:76px;}
.sched-scope .slot-dur{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted-2); min-width:52px;}
.sched-scope .slot-coach{all:unset; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--text);}
.sched-scope .slot-coach:hover{color:var(--accent); text-decoration:underline;}
.sched-scope .slot-row .btn2{margin-left:auto;}
.sched-scope .slot-row.full .slot-time{color:var(--muted);}
.sched-scope .slot-wait{margin-left:auto; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted-2); text-transform:uppercase;}
.sched-scope .slot-row.full .btn2{margin-left:0;}
.sched-scope .slot-request{display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:16px; padding:12px; border:1px dashed var(--line); border-radius:4px; font-size:13px; color:var(--muted);}
.sched-scope .check-row{display:flex; flex-wrap:wrap; gap:6px 14px;}
.sched-scope .check-row label{display:inline-flex; align-items:center; gap:5px; font-size:13px; text-transform:none; letter-spacing:0; font-family:'IBM Plex Sans',sans-serif; color:var(--text);}
.sched-scope .cal-note{font-size:11px; font-style:italic; color:var(--muted); margin-top:3px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;}
@media (max-width:640px){
  .sched-scope .coach-profile{flex-direction:column; align-items:center; text-align:center;}
  .sched-scope .coach-tags{justify-content:center;}
  .sched-scope .slot-row{flex-wrap:wrap; gap:6px 12px;}
}
.sched-scope .cal-link{all:unset; cursor:pointer; color:var(--muted); font-size:11px; font-family:'IBM Plex Mono',monospace; text-decoration:underline;}
@media (max-width:900px){
  .sched-scope .cal-grid{grid-template-columns:1fr; gap:8px;}
  .sched-scope .cal-day{min-height:0; flex-direction:row; flex-wrap:wrap; align-items:flex-start;}
  .sched-scope .cal-day.empty{display:none;}
  .sched-scope .cal-day-head{flex:0 0 100%; justify-content:flex-start; gap:8px;}
  .sched-scope .cal-item{flex:1 1 150px;}
  .sched-scope .cal-add{flex:0 0 auto; margin-top:0; padding:8px 12px;}
  .sched-scope .cal-legend{margin-left:0; flex:0 0 100%;}
}
.sched-scope .panel-actions{display:flex; gap:10px; justify-content:flex-end; margin-top:22px; padding-top:18px; border-top:1px solid var(--line);}
.sched-scope .roster-list{list-style:none; margin:0 0 10px; padding:0; border:1px solid var(--line-soft); border-radius:2px; max-height:220px; overflow-y:auto;}
.sched-scope .roster-list li{padding:8px 12px; border-bottom:1px solid var(--line-soft); font-size:12.5px; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;}
.sched-scope .roster-list li:last-child{border-bottom:none;}
.sched-scope .roster-list .empty-row{color:var(--muted-2); text-align:center; padding:14px; font-family:'IBM Plex Mono',monospace; font-size:12px;}
.sched-scope .section-sub-head{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin:26px 0 14px;}
.sched-scope .section-sub-head h3{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:15px; letter-spacing:.04em; color:var(--text);}
@media (max-width:640px){.sched-scope .field-row2, .sched-scope .field-row3{grid-template-columns:1fr;}.sched-scope .admin-table{display:block; overflow-x:auto;}.sched-scope .form-inline{flex-direction:column; align-items:stretch;}.sched-scope .form-inline .field{width:100%;}.sched-scope .form-inline input, .sched-scope .form-inline select{width:100%;}}

/* ---- Accountability tab: roster of group-member cards ---- */
.sched-scope #acc-feed-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px; margin-bottom:10px;}
.sched-scope .acc-card{background:var(--surface); border:1px solid var(--line-soft); padding:16px; display:flex; flex-direction:column; gap:10px;}
.sched-scope .acc-card.is-me{border-color:var(--accent);}
.sched-scope .acc-card-head{display:flex; align-items:center; gap:10px;}
.sched-scope .acc-avatar{width:36px; height:36px; border-radius:50%; object-fit:cover; background:var(--surface-2); flex-shrink:0;}
.sched-scope .acc-card-name{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:14px; letter-spacing:.02em; color:var(--text);}
.sched-scope .acc-streak{margin-left:auto; font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600; color:var(--accent); white-space:nowrap;}
.sched-scope .acc-today-label{font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:2px;}
.sched-scope .acc-today-blocks{list-style:none; margin:0; padding:0; font-size:12.5px; color:var(--text);}
.sched-scope .acc-today-blocks li{padding:4px 0; border-bottom:1px solid var(--line-soft);}
.sched-scope .acc-today-blocks li:last-child{border-bottom:none;}
.sched-scope .acc-rest-day{color:var(--muted); font-style:italic; font-size:12.5px;}
.sched-scope .acc-meta{font-size:11px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace;}
.sched-scope .acc-card-actions{margin-top:auto; padding-top:6px;}
.sched-scope #acc-search-input{width:100%; max-width:360px; background:var(--bg); border:1px solid var(--line-soft); color:var(--text); padding:9px 12px; border-radius:2px; font-size:13px; font-family:'IBM Plex Sans',sans-serif; margin-bottom:12px;}
.sched-scope #acc-search-results .roster-list{margin-bottom:0;}
.sched-scope #inbox-search-input{width:100%; max-width:360px; background:var(--bg); border:1px solid var(--line-soft); color:var(--text); padding:9px 12px; border-radius:2px; font-size:13px; font-family:'IBM Plex Sans',sans-serif; margin-bottom:12px;}
.sched-scope #inbox-search-results .roster-list{margin-bottom:0;}
.sched-scope #acc-pending-invites .admin-notice{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px;}

.gate-backdrop{display:none; position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:200; align-items:center; justify-content:center; padding:20px;}
.gate-backdrop.show{display:flex;}
.gate-panel{position:relative; background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:30px 28px; max-width:380px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.5); text-align:center;}
.gate-close{position:absolute; top:10px; right:10px; width:28px; height:28px; border:none; background:transparent; color:var(--muted); font-size:16px; cursor:pointer; border-radius:50%; line-height:1;}
.gate-close:hover{color:var(--text); background:var(--surface-2);}
.gate-panel h2{font-size:19px; margin:0 0 8px;}
.gate-panel p{font-size:12.5px; color:var(--muted); margin:0 0 22px;}
.gate-btn{display:block; width:100%; padding:12px 16px; margin-bottom:10px; border-radius:2px; font-size:13.5px; cursor:pointer; font-family:'IBM Plex Sans',sans-serif; border:1px solid var(--line-soft); background:var(--bg); color:var(--text); transition:.15s;}
.gate-btn:last-child{margin-bottom:0;}
.gate-btn:hover{border-color:var(--accent); color:var(--accent);}
.gate-btn.primary{background:var(--accent); color:var(--on-accent); border-color:var(--accent); font-weight:600;}
.gate-btn.primary:hover{opacity:.9; color:var(--on-accent);}
/* ---------- COACH RATINGS (sql/41) ---------- */
.sched-scope .rating-inline{margin:-4px 0 16px; font-size:13px;}
.sched-scope .rating-stars{color:var(--accent); letter-spacing:1px;}
.sched-scope .rate-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:14px;}
.sched-scope .rate-card{background:var(--surface); border:1px solid var(--line-soft); padding:16px; display:flex; flex-direction:column; gap:10px;}
.sched-scope .rate-card-head{display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px;}
.sched-scope .rate-row{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.sched-scope .rate-label, .sched-scope .rating-bar-label{font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2);}
.sched-scope .rate-star{background:none; border:none; padding:2px 3px; font-size:22px; line-height:1; color:var(--line); cursor:pointer; transition:color .1s;}
.sched-scope .rate-star.on{color:var(--accent);}
.sched-scope .rate-star:hover{color:var(--accent-dim);}
.sched-scope .rating-breakdown{display:flex; flex-direction:column; gap:6px;}
.sched-scope .rating-bar-row{display:grid; grid-template-columns:96px 1fr 30px; align-items:center; gap:8px;}
.sched-scope .rating-bar{height:6px; background:var(--surface-2); border-radius:3px; overflow:hidden;}
.sched-scope .rating-bar span{display:block; height:100%; background:var(--accent);}
.sched-scope .rating-bar-num{font-family:'IBM Plex Mono',monospace; font-size:12px; text-align:right;}
.sched-scope .rating-comments:empty{display:none;}
.sched-scope .rating-comment{border-top:1px solid var(--line-soft); padding-top:8px; font-size:13px;}
.sched-scope .rating-comment-hidden{opacity:.45; text-decoration:line-through;}
/* ---------- MEAL PLANS (sql/45) ---------- */
.sched-scope .mp-form{max-width:760px;}
.sched-scope .mp-section-head{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:15px; letter-spacing:.04em; color:var(--accent); margin:26px 0 10px; padding-top:14px; border-top:1px solid var(--line-soft);}
.sched-scope .mp-form .mp-section-head:first-child, .sched-scope .mp-answers .mp-section-head:first-child{margin-top:0; padding-top:0; border-top:none;}
.sched-scope .mp-section-note{margin:-4px 0 12px;}
.sched-scope .mp-q{margin-bottom:16px;}
.sched-scope .mp-q-label{display:block; font-size:13.5px; color:var(--text); margin-bottom:6px;}
.sched-scope .mp-q-hint{margin:-2px 0 6px;}
.sched-scope .mp-input{width:100%; background:var(--bg); border:1px solid var(--line-soft); color:var(--text); padding:9px 11px; border-radius:2px; font-size:13.5px; font-family:'IBM Plex Sans',sans-serif;}
.sched-scope .mp-input:focus{outline:none; border-color:var(--accent);}
.sched-scope .mp-num{max-width:160px;}
.sched-scope .mp-choices{display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center;}
.sched-scope .mp-choice{display:inline-flex; align-items:center; gap:6px; background:var(--surface-2); border:1px solid var(--line-soft); border-radius:20px; padding:6px 12px; font-size:13px; color:var(--muted); cursor:pointer;}
.sched-scope .mp-choice input{width:auto; margin:0; accent-color:var(--accent);}
.sched-scope .mp-choice:has(input:checked){border-color:var(--accent); color:var(--text);}
.sched-scope .mp-day-grid{display:grid; grid-template-columns:150px 90px 1fr; gap:8px; align-items:center; margin-bottom:16px;}
.sched-scope .mp-day-h{font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2);}
.sched-scope .mp-day-label{font-size:13px; color:var(--muted);}
@media (max-width:640px){
  .sched-scope .mp-day-grid{grid-template-columns:1fr 80px;}
  .sched-scope .mp-day-h{display:none;}
  .sched-scope .mp-day-label{grid-column:1 / -1; margin-top:6px;}
  .sched-scope .mp-day-grid [data-day-part="what"]{grid-column:1 / -1;}
}
.sched-scope .mp-actions{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:18px 0 6px;}
.sched-scope .mp-sub-head{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:15px; letter-spacing:.04em; color:var(--text); margin:26px 0 12px;}
.sched-scope .mp-targets{display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; margin-bottom:8px;}
.sched-scope .mp-targets > div{background:var(--surface); border:1px solid var(--line-soft); padding:12px; text-align:center;}
.sched-scope .mp-t-num{display:block; font-family:'Oswald',sans-serif; font-size:22px; color:var(--accent);}
.sched-scope .mp-t-lbl{font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; color:var(--muted-2);}
.sched-scope .mp-targets-empty{display:block; font-size:13px; color:var(--muted); background:var(--surface); border:1px dashed var(--line); padding:12px 14px;}
@media (max-width:640px){ .sched-scope .mp-targets{grid-template-columns:repeat(2, 1fr);} }
.sched-scope .mp-targets-src{margin:0 0 4px; font-size:12px;}
.sched-scope .mp-target-inputs{display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:0 12px;}
.sched-scope .mp-target-inputs .mp-num{max-width:none; width:100%;}
.sched-scope .mp-target-refs{display:flex; flex-direction:column; gap:6px; margin:0 0 6px;}
.sched-scope .mp-target-refs .mp-fill{padding:3px 10px; font-size:11px; margin-left:6px;}
.sched-scope .mp-foodlog-avg .mp-t-num .field-hint{font-size:13px; font-family:'IBM Plex Mono',monospace;}
@media (max-width:640px){ .sched-scope .mp-target-inputs{grid-template-columns:repeat(2, minmax(0, 1fr));} }
.sched-scope .mp-plan-block{background:var(--surface); border:1px solid var(--line-soft); padding:14px 16px; margin-top:12px;}
.sched-scope .mp-plan-block h4{font-size:13px; color:var(--accent); margin:0 0 8px; text-transform:uppercase; letter-spacing:.04em; font-family:'IBM Plex Mono',monospace;}
.sched-scope .mp-plan-block ul{margin:0; padding-left:18px;}
.sched-scope .mp-plan-block li{margin:3px 0; font-size:14px;}
.sched-scope .mp-plan-block p{margin:0; font-size:14px; line-height:1.55;}
.sched-scope .mp-grocery div{font-size:14px; margin:4px 0;}
.sched-scope .mp-details{margin-top:18px; border:1px solid var(--line-soft); background:var(--surface); padding:10px 14px;}
.sched-scope .mp-details summary{cursor:pointer; font-size:13.5px; color:var(--text);}
.sched-scope .mp-details[open] summary{margin-bottom:14px;}
.sched-scope .mp-scale .field-hint{margin:0;}
.sched-scope .mp-refer ul{margin:6px 0; padding-left:18px;}
.sched-scope .mp-a{margin-bottom:12px;}
.sched-scope .mp-a-q{font-size:12.5px; color:var(--muted);}
.sched-scope .mp-a-val{font-size:14px; color:var(--text); margin-top:2px; white-space:pre-wrap;}
.sched-scope .mp-empty{color:var(--muted-2); font-style:italic;}
.sched-scope .mp-coach-layout{display:grid; grid-template-columns:240px 1fr; gap:18px; align-items:start;}
@media (max-width:760px){ .sched-scope .mp-coach-layout{grid-template-columns:1fr;} }
.sched-scope .mp-client-list{display:flex; flex-direction:column; gap:6px;}
.sched-scope .mp-client{display:flex; justify-content:space-between; align-items:center; gap:8px; width:100%; text-align:left; background:var(--surface); border:1px solid var(--line-soft); color:var(--text); padding:10px 12px; font-size:13.5px; cursor:pointer; border-radius:2px;}
.sched-scope .mp-client.active{border-color:var(--accent);}
.sched-scope .mp-flag-dot{color:#e0736a;}
.sched-scope .mp-pill{font-family:'IBM Plex Mono',monospace; font-size:10px; text-transform:uppercase; padding:2px 7px; border-radius:20px; white-space:nowrap;}
.sched-scope .mp-pill.todo{background:rgba(var(--accent-rgb),.15); color:var(--accent); border:1px solid var(--accent-dim);}
.sched-scope .mp-pill.ok{background:var(--surface-2); color:var(--muted); border:1px solid var(--line);}
.sched-scope .mp-detail-head{display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:12px;}
.sched-scope .mp-detail-head h3{margin:0; font-size:18px;}
.sched-scope .mp-coach-tabs{margin-bottom:16px;}

/* ============================================================
   MEAL PLAN additions brought over from the Meal Plan Sandbox:
   How it works, Try a diet,
   My diets editor and display view, two-column coach layout.
   ============================================================ */
/* ---------- How it works page ---------- */
.mp-how-lede{font-size:15px; color:var(--muted); max-width:70ch; margin:0 0 22px;}
.mp-how-step{display:grid; grid-template-columns:44px 1fr; gap:14px; padding:18px 0; border-top:1px solid var(--line-soft);}
.mp-how-step h3{font-size:18px; margin:4px 0 8px;}
.mp-how-step p, .mp-how-step li{font-size:14.5px; line-height:1.6; max-width:70ch;}
.mp-how-step p{margin:0 0 10px;}
.mp-how-step ul{margin:0 0 10px; padding-left:20px;}
.mp-how-step a{color:var(--accent);}
.mp-how-num{width:36px; height:36px; border-radius:50%; border:1px solid var(--accent-dim); color:var(--accent); display:flex; align-items:center; justify-content:center; font-family:'Oswald',sans-serif; font-size:18px;}
.mp-your-numbers{border-left:3px solid var(--accent); margin-top:6px;}
.mp-plate{display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin:8px 0 4px;}
.mp-plate-key{list-style:none; padding:0; margin:0;}
.mp-plate-key li{display:flex; align-items:center; gap:8px; font-size:13.5px; margin:4px 0;}
.mp-plate-key .k{width:12px; height:12px; border-radius:2px; display:inline-block;}
.mp-plate-key .veg{background:rgba(var(--accent-3-rgb),.55);}
.mp-plate-key .pro{background:rgba(var(--accent-rgb),.6);}
.mp-plate-key .sta{background:rgba(var(--accent-rgb),.28);}
@media (max-width:640px){ .mp-how-step{grid-template-columns:1fr; gap:6px;} }

/* ---------- Diet reference sections ---------- */
.ka-private{border-left-color:#e0736a;}
.mp-ka-tab{border-style:dashed !important;}
.ka-section summary{font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.04em; font-size:16px;}
.ka-section h4{font-size:14px; color:var(--accent); margin:18px 0 8px; font-family:'IBM Plex Mono',monospace;}
.ka-section p, .ka-section li{font-size:14.5px; line-height:1.6; max-width:75ch;}
.ka-section ul, .ka-section ol{padding-left:20px;}
.ka-rule{padding:4px 0 10px; border-bottom:1px solid var(--line-soft); margin-bottom:10px;}
.ka-rule:last-child{border-bottom:none;}
.ka-rule h4{margin-top:8px;}
.ka-review, .ka-review-inline{background:rgba(var(--accent-3-rgb),.10); border:1px dashed var(--accent-3); color:var(--text); font-size:13px; line-height:1.55; padding:9px 12px; margin:10px 0; border-radius:2px;}
.ka-review b{color:var(--accent-3); font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.05em; margin-right:6px;}
.ka-review-inline{display:inline; padding:1px 6px; margin:0;}
.ka-table td{font-size:13px;}
.ka-small{font-size:13px !important; color:var(--muted); margin-top:8px;}

/* ---------- Coach view: less scrolling (wide screens only) ----------
   Two columns for the long tabs, and the client list + tab row stay in
   view so switching tabs never needs a scroll back up. Phones keep the
   single column. */
@media (min-width:900px){
  #coach-section-mealplans .mp-coach-layout{grid-template-columns:220px 1fr;}
  #coach-section-mealplans .mp-client-list{position:sticky; top:12px;}
  #coach-section-mealplans .mp-coach-tabs{position:sticky; top:0; z-index:5; background:var(--bg); padding:10px 0; margin:0 0 14px; border-bottom:1px solid var(--line-soft);}
  #coach-section-mealplans .mp-answers{columns:2; column-gap:28px;}
  #coach-section-mealplans .mp-answers .mp-a, #coach-section-mealplans .mp-answers .mp-day-table{break-inside:avoid;}
  #coach-section-mealplans .mp-answers .mp-section-head{break-after:avoid; margin-top:0; padding-top:12px; border-top:none;}
  #coach-section-mealplans .mp-answers .mp-a{margin-bottom:9px;}
  #coach-section-mealplans .mp-plan-grid{columns:2; column-gap:12px;}
  #coach-section-mealplans .mp-plan-grid .mp-plan-block{margin:0 0 12px; break-inside:avoid;}
  #coach-section-mealplans .mp-ai-top-actions{margin:0 0 14px;}
  #coach-section-mealplans .mp-editor-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 16px;}
  #coach-section-mealplans .mp-editor-grid .mp-wide{grid-column:1 / -1;}
  #coach-section-mealplans .mp-form{max-width:none;}
  #coach-section-mealplans .mp-q{margin-bottom:12px;}
  #coach-section-mealplans .mp-sub-head{margin:16px 0 10px;}
  #coach-section-mealplans .day-focus{margin-bottom:16px; padding-bottom:12px;}
}
@media (min-width:900px){
  #coach-section-mealplans .day-head h2{font-size:26px;}
  #coach-section-mealplans > .admin-notice{margin-bottom:14px; padding:8px 12px;}
  #coach-section-mealplans .mp-plan-block{padding:10px 12px;}
  #coach-section-mealplans .mp-plan-block h4{margin-bottom:5px;}
  #coach-section-mealplans .mp-plan-block li, #coach-section-mealplans .mp-plan-block p, #coach-section-mealplans .mp-grocery div{font-size:13.5px; line-height:1.45;}
  #coach-section-mealplans .mp-plan-block li{margin:1px 0;}
  #coach-section-mealplans .mp-targets > div{padding:8px;}
}

/* ---------- Try a diet ---------- */
.diet-cards{display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:14px;}
.diet-card{background:var(--surface); border:1px solid var(--line-soft); padding:16px; display:flex; flex-direction:column; gap:8px;}
.diet-card.trying{border-color:var(--accent);}
.diet-card-head{display:flex; justify-content:space-between; align-items:baseline; gap:8px; flex-wrap:wrap;}
.diet-card h3{font-size:19px;}
.diet-card p{margin:0; font-size:14px; color:var(--muted); line-height:1.5;}
.diet-card .btn2{align-self:flex-start; margin-top:auto;}
.diet-private{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:#e0736a; text-transform:uppercase;}
.diet-tags{display:flex; flex-wrap:wrap; gap:6px;}
.diet-tags span{font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; border:1px solid var(--line); color:var(--muted); padding:2px 7px; border-radius:20px;}
.diet-active{border-left-color:var(--accent);}
.diet-active .btn2{margin-left:8px; padding:4px 10px;}
.diet-back{margin-bottom:14px;}
.diet-trial-bar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--surface); border:1px solid var(--line-soft); padding:10px 14px; font-size:14px;}
.diet-trial-bar span{flex:1; min-width:220px;}
.diet-variant-intro{font-size:14px; color:var(--muted); margin:0 0 10px;}
.diet-week th[scope=row]{text-align:left; color:var(--text); font-family:'IBM Plex Sans',sans-serif; font-size:13px; text-transform:none; letter-spacing:0; white-space:nowrap;}
.diet-week td{font-size:13px;}
.diet-footnote{margin-bottom:6px;}

/* ---------- My diets (coach editor) ---------- */
.mp-coach-sections{margin-bottom:18px;}
.diet-edit-section{background:var(--surface); border:1px solid var(--line-soft); padding:14px 16px; margin-bottom:14px;}
.diet-edit-section > h3{font-size:16px; margin-bottom:12px;}
.diet-publish{margin-top:4px;}
.diet-week-edit{overflow-x:auto;}
.diet-week-edit td{padding:3px;}
.diet-cell{min-width:90px; padding:6px 8px !important; font-size:13px !important;}
.diet-row-del{padding:4px 8px;}
.diet-step-edit{border-top:1px solid var(--line-soft); padding:12px 0;}
.diet-step-head{display:flex; align-items:center; gap:8px; margin-bottom:8px;}
.diet-step-head .mp-input{flex:1;}
.diet-step-head .btn2{padding:5px 9px;}
.diet-step-opts{margin-top:8px;}
.diet-edit-bar{position:sticky; bottom:0; display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--bg); border-top:1px solid var(--line); padding:12px 0;}

.diet-owner-bar{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; background:rgba(var(--accent-rgb),.08); border:1px dashed var(--accent-dim); padding:8px 12px; margin-bottom:12px; font-size:13.5px;}
.diet-format-help{margin:-4px 0 10px; line-height:1.8;}
.diet-format-help code, .admin-notice code{font-family:'IBM Plex Mono',monospace; font-size:11.5px; background:var(--surface-2); border:1px solid var(--line-soft); padding:0 4px; border-radius:2px; color:var(--text);}
.diet-ref-body > summary{cursor:pointer; font-size:13px; color:var(--accent); margin:2px 0 8px;}
.diet-ref-split{display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start;}
.diet-ref-text{font-family:'IBM Plex Mono',monospace !important; font-size:12.5px !important; line-height:1.5;}
.diet-ref-preview{background:var(--bg); border:1px solid var(--line-soft); padding:8px 12px; max-height:420px; overflow:auto; font-size:13.5px;}
.diet-ref-preview p, .diet-ref-preview li{font-size:13.5px;}
@media (max-width:900px){ .diet-ref-split{grid-template-columns:1fr;} }
/* ---------- My diets: display view ---------- */
.diet-card-click{cursor:pointer; transition:border-color .15s;}
.diet-card-click:hover, .diet-card-click:focus-visible{border-color:var(--accent);}
.diet-card-open{margin-top:auto; font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase; color:var(--accent);}
.diet-view-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:8px;}
.diet-view-title{font-size:28px;}
.diet-view-actions{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.diet-view-summary{font-size:15px; color:var(--muted); max-width:75ch; margin:6px 0 10px;}


/* ---------- Meal Plan: Shopping list + weekly budget (sql/47) ---------- */
.shop-budget{display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px 20px; background:var(--surface); border:1px solid var(--line-soft); padding:12px 14px; margin-bottom:14px;}
.shop-budget-input{display:flex; flex-direction:column; gap:4px; font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2);}
.shop-budget-input .mp-input{width:140px; font-size:15px;}
#shop-totals{flex:1; min-width:220px;}
.shop-budget-line{font-size:14px; margin-bottom:6px;}
.shop-budget-line.over, .shop-over{color:#e0736a;}
.shop-bar{height:8px; background:var(--surface-2); border-radius:4px; overflow:hidden;}
.shop-bar span{display:block; height:100%; background:var(--accent);}
.shop-budget-line.over + .shop-bar span{background:#e0736a;}
.shop-sources{margin:0 0 10px;}
.shop-count{margin:0 0 8px;}
.shop-cat{margin-bottom:12px;}
.shop-cat h4{font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--accent); margin:0 0 6px;}
.shop-item{display:grid; grid-template-columns:minmax(0,1fr) 110px auto; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid var(--line-soft);}
.shop-check{display:flex; align-items:center; gap:10px; min-width:0; cursor:pointer; font-size:15px;}
.shop-check input{width:20px; height:20px; accent-color:var(--accent); flex-shrink:0;}
.shop-check span{overflow-wrap:anywhere;}
.shop-item.done .shop-check span{text-decoration:line-through; color:var(--muted);}
.shop-price{padding:6px 8px !important; text-align:right; font-variant-numeric:tabular-nums;}
.shop-del{padding:5px 9px;}
.shop-add{display:grid; grid-template-columns:minmax(0,1fr) 170px auto; gap:8px; margin:12px 0;}
@media (max-width:520px){ .shop-add{grid-template-columns:minmax(0,1fr) auto;} .shop-add select{grid-column:1 / -1; grid-row:2;} .shop-item{grid-template-columns:minmax(0,1fr) 90px auto;} }
.shop-coach-line{margin:-4px 0 10px;}

/* ---------- BODY COMPOSITION: HOW IT WORKS ---------- */
#bodycomp-page-tabs{margin-bottom:18px;}
.bc-eq{font-family:'IBM Plex Mono',monospace;font-size:13.5px;line-height:1.7;color:var(--text);background:var(--surface-2);border:1px solid var(--line-soft);border-radius:6px;padding:10px 14px;margin:0 0 12px;overflow-x:auto;}
.bc-yours{font-size:13.5px;color:var(--muted);border-left:2px solid var(--accent-dim);padding-left:12px;}
.bc-yours b{color:var(--accent);}
.bc-yours:empty{display:none;}

/* ============================================================
   REDESIGN — compact, unified (Oct 2026)
   One layer over everything above: shared spacing / type / radius
   tokens, a single slim Gym header bar, the day sidebar on the Manual
   only, and tighter cards, tiles, forms, tables and charts across
   every app (Home, Gym, Blog, Gallery, Shop, Users).
   Revert to the look before this:
   git checkout pre-redesign-2026-10-08 -- css js "bells n barz (main file).html"
   ============================================================ */
:root{
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px;
  --stack-gap:14px;                 /* space between stacked cards */
  --card-pad:14px 16px;
  --r-sm:4px; --r:6px;              /* inputs/buttons, cards */
  --fs-xs:11px; --fs-sm:12.5px; --fs:14px; --fs-md:15px; --fs-lg:18px; --fs-xl:22px;
  --content-max:1280px;
  --outer-h:48px;                   /* site nav height */
  --gymbar-h:50px;                  /* Gym tabs + search bar height */
  --side-w:168px;
}

/* ---------- Page width and gutters ---------- */
.wrap,
.blog-scope .wrap, .gallery-scope .wrap, .library-scope .wrap, .shop-scope .wrap, .users-scope .wrap{max-width:var(--content-max); padding:0 var(--sp-5);}
.blog-scope .header-inner, .gallery-scope .header-inner, .library-scope .header-inner, .shop-scope .header-inner, .users-scope .header-inner{
  max-width:var(--content-max); padding:var(--sp-2) var(--sp-5);
}
main{padding:var(--sp-5) 0 48px;}

/* ---------- Site nav (all pages) ---------- */
.outer-header-inner{max-width:var(--content-max); height:var(--outer-h); padding:0 var(--sp-5);}
.outer-link{padding:6px 12px; font-size:12px;}
.outer-brand{font-size:15px;}

/* ---------- App headers (Blog, Gallery, Shop, Users) ---------- */
/* every app header sticks just under the site nav, the same way */
.blog-scope header.site, .gallery-scope header.site, .library-scope header.site, .shop-scope header.site, .users-scope header.site{
  position:sticky; top:var(--outer-h); z-index:40; padding:0;
}
.blog-scope .brand-block h1, .gallery-scope .brand-block h1, .library-scope .brand-block h1, .shop-scope .brand-block h1, .users-scope .brand-block h1{font-size:var(--fs-xl);}
.blog-scope .view{padding:var(--sp-5) 0 48px;}
.shop-scope .view{padding:var(--sp-5) 0 48px;}
.blog-toolbar, .gallery-toolbar{margin-bottom:var(--sp-4);}
.megatron{max-width:none; height:260px; margin:0 0 var(--sp-5); border-radius:var(--r);}
.megatron-caption{padding:var(--sp-4) var(--sp-5); font-size:var(--fs-lg);}
.list-layout{gap:var(--sp-5);}
.blog-scope .side-widget{top:calc(var(--outer-h) + 64px); padding:var(--sp-3) var(--sp-4) var(--sp-1);}
.shop-scope .shop-type-tabs{margin-bottom:var(--sp-4);}
.shop-scope .shop-section-label{margin-top:var(--sp-5);}
footer.site, footer.shop-footer{padding:var(--sp-4);}
.gallery-scope .empty-msg, .shop-scope .shop-empty{padding:28px 20px;}
.profile-card{padding:var(--sp-5);}

/* ---------- Gym: one slim header bar ---------- */
#site-gym header.site{padding:0; background:var(--surface);}
#site-gym .site-title-row{align-items:center; padding-top:var(--sp-2); padding-bottom:var(--sp-2); gap:var(--sp-3); flex-wrap:nowrap;}
#site-gym .site-title{font-size:var(--fs-lg); line-height:1.2;}
#site-gym .site-tag{display:none;}
#site-gym.gym-manual-mode .site-tag{display:block; font-size:10.5px; margin-top:2px; letter-spacing:.06em;}
#site-gym .theme-toggle, #site-gym .account-menu-btn{padding:4px 10px; font-size:11px;}
#site-gym .notif-bell-btn{width:28px; height:28px; font-size:13px;}
nav.rack.rack-top{
  top:var(--outer-h); min-height:var(--gymbar-h); box-shadow:0 4px 12px var(--shadow-soft);
  display:flex; align-items:center; gap:var(--sp-3);
  padding:0 max(var(--sp-5), calc((100% - var(--content-max)) / 2 + var(--sp-5)));
}
nav.rack.rack-top .rack-inner{max-width:none; margin:0; padding:var(--sp-2) 0; flex:0 0 auto; justify-content:flex-start;}
nav.rack.rack-top .search-wrap{flex:1 1 auto; border-top:none; min-width:0;}
nav.rack.rack-top .search-box{max-width:none; padding:var(--sp-2) 0;}
#site-search{padding:6px 10px; border-radius:var(--r-sm); font-size:12.5px;}
.sr-item{padding:9px var(--sp-4);}
.nav-pill .plate{padding:5px 13px; font-size:11.5px;}
@media (max-width:760px){
  nav.rack.rack-top{flex-wrap:wrap; gap:0; padding:0 var(--sp-4);}
  nav.rack.rack-top .rack-inner{flex:1 1 100%;}
  nav.rack.rack-top .search-wrap{flex:1 1 100%;}
  nav.rack.rack-top .search-box{padding-top:0;}
}

/* ---------- Gym: day sidebar on the Manual only ---------- */
.gym-layout{grid-template-columns:var(--side-w) 1fr; max-width:var(--content-max);}
#site-gym:not(.gym-manual-mode) nav.rack.rack-side{display:none;}
#site-gym:not(.gym-manual-mode) .gym-layout{grid-template-columns:1fr;}
@media (min-width:901px){
  nav.rack.rack-side{
    top:calc(var(--outer-h) + var(--gymbar-h));
    height:calc(100vh - var(--outer-h) - var(--gymbar-h));
  }
}
nav.rack.rack-side .rack-inner{padding:var(--sp-4) var(--sp-3); gap:var(--sp-2);}
nav.rack.rack-side .plate.util{height:36px;}
/* main.wrap: .wrap's side padding would otherwise wipe main's top/bottom
   padding; same 20px gutter as the header bar so all edges line up */
main.wrap{padding-top:var(--sp-5); padding-bottom:48px;}
.gym-layout > main.wrap{margin:0; width:100%; padding-left:var(--sp-5); padding-right:var(--sp-5);}
#site-gym.gym-manual-mode .gym-layout > main.wrap{padding-left:var(--sp-6);}
.side-nav{top:calc(var(--outer-h) + var(--gymbar-h) + var(--sp-4)); max-height:calc(100vh - var(--outer-h) - var(--gymbar-h) - 32px);}
.side-layout{grid-template-columns:180px 1fr; gap:var(--sp-5);}
@media (max-width:900px){
  .gym-layout > main.wrap, #site-gym.gym-manual-mode .gym-layout > main.wrap{padding-left:var(--sp-4); padding-right:var(--sp-4);}
  nav.rack.rack-side .rack-inner{padding:var(--sp-2) var(--sp-4);}
}

/* ---------- Page headings ---------- */
.day-head{gap:var(--sp-3); margin-bottom:2px;}
.day-head h2{font-size:var(--fs-xl);}
.day-sub{font-size:12px;}
.day-focus{font-size:12px; margin-bottom:var(--sp-4); padding-bottom:var(--sp-3);}
.section-block{margin-bottom:32px;}
.section-block h2{font-size:var(--fs-xl);}
.lede{font-size:var(--fs);}
h3.perform-h{font-size:var(--fs-lg); margin:var(--sp-5) 0 var(--sp-3); padding-top:var(--sp-4);}
h3.sub-h{font-size:var(--fs-md); color:var(--accent); margin:var(--sp-5) 0 var(--sp-2);}
.divider-block{margin-top:var(--sp-5); border-top:1px solid var(--line); padding-top:var(--sp-4);}
.sched-scope .section-sub-head{margin:var(--sp-5) 0 var(--sp-3);}
.sched-scope .mp-section-head, .sched-scope .mp-sub-head{margin-top:var(--sp-5);}

/* ---------- Cards (one look everywhere) ---------- */
.weight-card, .weight-chart-card, .t-panel, .profile-card,
.sched-scope .acc-card, .sched-scope .fasting-timer-card, .sched-scope .moon-today-card, .sched-scope .ekadashi-card,
.blog-scope .side-widget{
  border-radius:var(--r);
}
.weight-card, .weight-chart-card{padding:var(--card-pad);}
.t-panel{padding:var(--sp-4);}
.weight-card h3, .weight-chart-card h3{font-size:14px; margin-bottom:var(--sp-3);}
.weight-grid, .bmi-grid{gap:var(--stack-gap);}
/* Right-hand column beside a log form: cards stack with one even gap, and
   hidden ones (stats before any data) leave no space, so the first visible
   card always lines up with the top of the form. */
.side-col{display:flex; flex-direction:column; gap:var(--stack-gap); min-width:0;}
.side-col > *{margin-top:0 !important; margin-bottom:0;}
.sched-scope #acc-feed-grid{gap:var(--sp-3);}
.sched-scope .acc-card{padding:var(--sp-3) var(--sp-4); gap:var(--sp-2);}
.bmi-section{margin-top:var(--sp-5); padding-top:var(--sp-4);}
.bmi-section-head{margin-bottom:var(--sp-3);}
.bmi-placeholder{padding:var(--sp-5) var(--sp-3);}
.bmi-value{font-size:44px;}
.bmi-category{margin-bottom:var(--sp-4);}
.weight-chart-empty{padding:28px 16px;}
.weight-chart-svg{display:block; width:100%; height:auto;}
.phase{margin-bottom:var(--sp-3); padding:var(--sp-3) var(--sp-4); border-radius:var(--r-sm);}
.callout{margin:var(--sp-3) 0; padding:var(--sp-3) var(--sp-4); border-radius:var(--r-sm);}
.hold-strip{margin:var(--sp-5) 0 var(--sp-1); padding:var(--sp-3) var(--sp-4); border-radius:var(--r-sm);}
details.updated{margin-top:var(--sp-4); border-radius:var(--r-sm); overflow:hidden;}
details.updated .body{padding:var(--sp-3) var(--sp-4);}
.ref-table{margin:var(--sp-3) 0 var(--sp-6);}
.phase-list{margin-bottom:var(--sp-5);}
.sched-scope .fasting-timer-card{padding:var(--sp-5);}
.sched-scope .fasting-action-btn{padding:10px 24px;}

/* ---------- Home ---------- */
.home-moon-banner{padding:var(--sp-5) 0;}
.home-moon-banner-head h2{font-size:var(--fs-lg);}
.sched-scope .ekadashi-card{padding:var(--sp-4); margin-top:var(--sp-3);}
.sched-scope .ekadashi-hourglass svg{width:48px; height:77px;}
.site-stub{padding:40px var(--sp-5) 48px;}

/* ---------- Section tiles (Member / Me / Coach / Admin) ----------
   Desktop: one compact row of icon + label buttons. Phones keep the
   big tap-friendly tile grid from the rules above. */
@media (min-width:641px){
  #member-section-switch, #me-section-switch, #coach-section-switch, #admin-section-switch{
    grid-template-columns:repeat(auto-fit, minmax(118px, 1fr)); gap:var(--sp-2); margin-bottom:var(--sp-4);
  }
  #member-section-switch .plate, #me-section-switch button, #coach-section-switch button, #admin-section-switch .plate{
    min-height:42px; padding:var(--sp-2) var(--sp-3); flex-direction:row; gap:var(--sp-2);
    font-size:14px; border-width:1px; border-radius:var(--r); box-shadow:none;
  }
  #member-section-switch .plate::before, #me-section-switch button::before,
  #coach-section-switch button::before, #admin-section-switch .plate::before{font-size:17px;}
}

/* ---------- Tabs, buttons, pills ---------- */
.sched-scope .sched-sub{gap:var(--sp-1); margin-bottom:var(--sp-4);}
.sched-scope .sched-sub button, .sched-scope .sched-sub .plate{padding:6px 12px; border-radius:var(--r-sm);}
.sched-scope .view-switch{margin-bottom:var(--sp-3);}
.sched-scope .view-switch button{padding:6px 14px;}
.sched-scope .row-actions button{border-radius:var(--r-sm);}
.unit-switch{margin-bottom:var(--sp-3);}
.unit-switch button{padding:5px 14px;}
.weight-submit{margin-top:var(--sp-3); border-radius:var(--r-sm);}
.admin-day-select.side-nav .subtab-btn, .subtab-bar.side-nav .subtab-btn,
.glance-scope nav.jump.side-nav a{border-radius:var(--r-sm);}

/* ---------- Forms ---------- */
.weight-form label{margin-top:var(--sp-3);}
.weight-form input, .weight-form select{padding:7px 10px; font-size:14px; border-radius:var(--r-sm);}
.sched-scope .field{margin-bottom:var(--sp-3);}
.sched-scope .field input, .sched-scope .field select, .sched-scope .field textarea,
.sched-scope .form-inline input, .sched-scope .form-inline select,
.sched-scope .identity-row select{padding:7px 10px; border-radius:var(--r-sm);}
.sched-scope .form-inline{padding:var(--sp-3); gap:var(--sp-2); margin-bottom:var(--sp-4); border-radius:var(--r);}
.sched-scope .identity-row{margin-bottom:var(--sp-4); padding-bottom:var(--sp-3);}

/* ---------- Stat cards: side by side everywhere ----------
   (the original .stat-block rule only reached the Users page, so the
   Coach dashboard stacked each stat as a full-width row) */
.stat-block{display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:var(--sp-2); margin-bottom:var(--sp-4);}
.users-scope .stat-card, .sched-scope .stat-card{padding:var(--sp-3) var(--sp-4); border-radius:var(--r); min-width:0;}

/* ---------- Tables ---------- */
table.block td{padding:7px 12px; font-size:14px;}
.sched-scope .admin-table{margin-bottom:var(--sp-4);}
.sched-scope .admin-table th{padding:6px 10px;}
.sched-scope .admin-table td{padding:7px 10px;}

/* ---------- Empty states, panels, modals ---------- */
.sched-scope .empty-msg{padding:var(--sp-5) var(--sp-4); border-radius:var(--r);}
.sched-scope .panel-backdrop{padding:24px 16px;}
.sched-scope .panel{padding:var(--sp-5); border-radius:var(--r);}
.sched-scope .panel h2{font-size:var(--fs-lg); margin-bottom:var(--sp-3);}
.sched-scope .panel-actions{margin-top:var(--sp-4); padding-top:var(--sp-3);}
.gate-panel{padding:var(--sp-5);}

/* ---------- Phones: Gym header in two short rows ---------- */
@media (max-width:640px){
  #site-gym header.site{padding:0;}
  #site-gym .site-title-row{flex-direction:row; align-items:center; justify-content:space-between; text-align:left; flex-wrap:nowrap; padding:var(--sp-2) var(--sp-4);}
  #site-gym .site-title{font-size:16px;}
  #site-gym.gym-manual-mode .site-tag{display:none;}
  #site-gym .header-right{width:auto; gap:6px;}
  #site-gym .theme-toggle-label{display:none;}
  nav.rack.rack-top .rack-inner{padding:6px 0;}
  .nav-pill{flex-wrap:nowrap; width:100%;}
  .nav-pill .plate{flex:1 1 0; padding:5px 2px; font-size:10.5px; letter-spacing:.02em;}
  .day-head h2{font-size:20px;}
  /* Manual day row: wraps instead of side-scrolling; day picker gets its own line */
  nav.rack.rack-side .rack-inner{flex-wrap:wrap; overflow-x:visible; gap:6px;}
  nav.rack.rack-side .plate.util{height:32px; padding:0 12px; font-size:12px; flex:1 1 auto;}
  nav.rack.rack-side .weekday-dropdown{order:-1; padding:7px 10px;}
}

/* ---------- TOOLS (free, no account needed) ---------- */
.tools-switches{display:flex; gap:var(--sp-2); flex-wrap:wrap;}
.tools-hint{text-transform:none; letter-spacing:0; color:var(--muted-2);}
.tools-save p{font-size:13.5px; color:var(--muted); margin:0 0 var(--sp-3);}
.tools-save .weight-clear-btn{margin-right:var(--sp-2);}
details.tools-how{margin-top:var(--stack-gap);}
details.tools-how .body{background:var(--surface);}
details.tools-how .mp-how-step{padding:var(--sp-3) 0;}

/* ---------- MEMBER PREVIEW (signed-out visitors) ---------- */
.member-preview-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:var(--sp-3); margin-bottom:var(--sp-5);}
.member-preview-card{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r); padding:var(--card-pad);}
.member-preview-card .ico{font-size:22px; line-height:1; display:block; margin-bottom:var(--sp-2);}
.member-preview-card h3{font-size:15px; margin-bottom:var(--sp-1);}
.member-preview-card p{font-size:13.5px; color:var(--muted); margin:0; line-height:1.5;}
.member-preview-actions{display:flex; gap:var(--sp-2); flex-wrap:wrap; align-items:center;}
.member-preview-actions .weight-submit{width:auto; margin-top:0; padding-left:28px; padding-right:28px;}
/* the MEMBER pill stays fully lit while a guest is on the preview page */
.nav-pill .plate.locked.active{opacity:1;}

/* ---------------- Me > Blood Pressure / Steps ---------------- */
#tab-bp .weight-form > label, #tab-bp .bmi-field-row + .bmi-field-row{margin-top:var(--sp-3);}
.chart-head-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-2);}
.chart-head-row h3{margin:0;}
.range-switch{margin:0;}
.range-switch button{padding:4px 10px;font-size:10.5px;}
.history-title{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.03em;font-size:15px;color:var(--text);margin-bottom:12px;}
.bp-normal{color:var(--accent-3);}
.bp-elevated{color:var(--accent);}
.bp-stage1{color:#e08a2c;}
.bp-stage2{color:var(--accent-2);}
.bp-crisis{color:#ff4d4d;font-weight:600;}
.weight-stat .val.bp-cat{font-size:18px;}
.weight-stat .val.bp-normal{color:var(--accent-3);}
.weight-stat .val.bp-elevated{color:var(--accent);}
.weight-stat .val.bp-stage1{color:#e08a2c;}
.weight-stat .val.bp-stage2{color:var(--accent-2);}
.weight-stat .val.bp-crisis{color:#ff4d4d;}
.bp-scale{width:100%;border-collapse:collapse;margin-top:var(--sp-4);font-size:12px;}
.bp-scale td{padding:4px 0;border-bottom:1px solid var(--line-soft);color:var(--text);}
.bp-scale td.mono{font-family:'IBM Plex Mono',monospace;color:var(--muted);text-align:right;font-size:11px;}
.bp-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:8px;}
.bp-scale .bp-dot.bp-normal{color:var(--accent-3);}
.bp-note{font-size:11.5px;color:var(--muted-2);margin-top:2px;}
.weight-history-table .muted{color:var(--muted-2);font-size:12px;}
.weight-chart-svg .bp-sys-line{fill:none;stroke:var(--accent-2);stroke-width:2.2;}
.weight-chart-svg .bp-sys-dot{fill:var(--accent-2);stroke:var(--surface);stroke-width:1.5;}
.weight-chart-svg .bp-span{stroke:var(--muted-2);stroke-width:1;opacity:.45;}
.weight-chart-svg .step-bar{fill:var(--accent-dim);}
.weight-chart-svg .step-bar.hit{fill:var(--accent);}
.weight-chart-svg .step-bar:hover{fill:var(--accent-hover);}
.weight-chart-legend{flex-wrap:wrap;}
.weight-chart-legend .swatch.bar{height:10px;width:10px;background:var(--accent);}
#steps-chart-svg .target-label{paint-order:stroke;stroke:var(--surface);stroke-width:3px;}
.vitals-summary{font-size:13px;color:var(--muted);margin-bottom:var(--sp-3);line-height:1.6;}
.vitals-summary b{color:var(--text);font-family:'IBM Plex Mono',monospace;font-weight:600;}
.vitals-summary .muted{color:var(--muted-2);font-size:12px;}
.coach-steps-chart .target-label{paint-order:stroke;stroke:var(--surface);stroke-width:3px;}

/* ---------------- Coach Dashboard: client grid + client page ---------------- */
.cp-grid-clients{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-6);}
.cp-client{display:flex;flex-direction:column;gap:var(--sp-3);text-align:left;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-sm);color:var(--text);cursor:pointer;font:inherit;transition:border-color .15s ease,background .15s ease;}
.cp-client:hover{border-color:var(--accent-dim);background:rgba(var(--accent-rgb),.05);}
.cp-client.self{border-color:var(--accent-dim);}
.cp-avatar{flex:none;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--accent-rgb),.12);color:var(--accent);font-family:'Oswald',sans-serif;font-size:15px;letter-spacing:.03em;}
.cp-client.self .cp-avatar{background:var(--accent);color:#1a1a1a;}
.cp-client-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.cp-name{font-family:'Oswald',sans-serif;font-size:16px;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cp-sub{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;}
.cp-client-head{display:flex;align-items:center;gap:var(--sp-3);}
.cp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--r-sm);overflow:hidden;}
.cp-stat{display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:var(--surface-2);min-width:0;}
.cp-stat-val{font-family:'Oswald',sans-serif;font-size:20px;line-height:1.1;color:var(--text);white-space:nowrap;}
.cp-stat-lbl{font-family:'IBM Plex Mono',monospace;font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-2);}
.cp-stat-extra{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--muted);}
.cp-stat-val.bp-normal{color:var(--accent-3);}
.cp-stat-val.bp-elevated{color:var(--accent);}
.cp-stat-val.bp-stage1{color:#e08a2c;}
.cp-stat-val.bp-stage2{color:var(--accent-2);}
.cp-stat-val.bp-crisis{color:#ff4d4d;}
.cp-go{color:var(--muted-2);font-size:22px;line-height:1;}
.cp-client:hover .cp-go{color:var(--accent);}
.cp-page-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4);}
.cp-page-head h3{margin:0;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:20px;}
.cp-page-head .unit-switch{margin:0 0 0 auto;}
.cp-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:var(--sp-6);align-items:stretch;}
@media (max-width:900px){.cp-chart-grid{grid-template-columns:minmax(0,1fr);}}
.cp-card{padding:var(--sp-4) 20px;min-width:0;}
.cp-card h3{margin-bottom:var(--sp-2);}
.cp-card .admin-table{width:100%;}
.cp-card.empty{padding:var(--sp-3) 20px;}
.cp-card.empty .weight-chart-empty{padding:var(--sp-2) 0;text-align:left;}
.cp-card-field{margin:0 0 var(--sp-2);max-width:260px;}
#coach-dashboard-body{scroll-margin-top:calc(var(--outer-h) + var(--gymbar-h) + 16px);}
.cp-empty-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-6);align-items:start;}

/* ---------------- RECIPES (Me sub-tab) ---------------- */
.recipe-panel{display:none;}
.recipe-panel.active{display:block;}
.sched-scope .recipe-switch{flex-wrap:wrap;}
.smoothie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;}
.smoothie-group ul, .smoothie-recipe ul{list-style:none;margin:0;padding:0;}
.smoothie-group li, .smoothie-recipe li{padding:6px 0;border-bottom:1px solid var(--line-soft);font-size:14px;color:var(--text);}
.smoothie-group li:last-child, .smoothie-recipe li:last-child{border-bottom:0;}
.smoothie-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:8px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:12px;}
.smoothie-steps{margin-top:12px;font-size:13.5px;color:var(--muted);line-height:1.5;}

/* ---------------- Member / Me / Coach / Admin / Tools landing cards ----------------
   Each section switch is only ever visible on its landing screen
   (content mode hides it), so it's always drawn as cards: icon, title
   and a one-line description, left-aligned. Comes after the shared
   tile and compact-desktop rules above so it wins at every width. */
#member-section-switch, #coach-section-switch, #me-section-switch, #tools-page-tabs, #admin-section-switch{grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:var(--sp-3); margin-bottom:var(--sp-4);}
#member-section-switch .plate, #coach-section-switch button, #me-section-switch button, #tools-page-tabs button, #admin-section-switch .plate{
  min-height:0; padding:var(--sp-4); flex-direction:column; align-items:flex-start; justify-content:flex-start;
  gap:6px; text-align:left; border-width:1px; border-radius:var(--r); box-shadow:none;
}
#member-section-switch .plate::before, #coach-section-switch button::before, #me-section-switch button::before, #tools-page-tabs button::before, #admin-section-switch .plate::before{font-size:28px; margin-bottom:4px;}
#member-section-switch .plate.active, #coach-section-switch button.active, #me-section-switch button.active, #tools-page-tabs button.active, #admin-section-switch .plate.active{border-color:var(--line); background:var(--surface); color:var(--text); font-weight:normal;}
#member-section-switch .plate:hover, #coach-section-switch button:hover, #me-section-switch button:hover, #tools-page-tabs button:hover, #admin-section-switch .plate:hover{border-color:var(--accent-dim); background:var(--surface-2);}
#member-section-switch .plate-title, #coach-section-switch .plate-title, #me-section-switch .plate-title, #tools-page-tabs .plate-title, #admin-section-switch .plate-title{font-family:'Oswald',sans-serif; font-size:18px; text-transform:uppercase; letter-spacing:.03em; color:var(--text);}
#member-section-switch .plate-desc, #coach-section-switch .plate-desc, #me-section-switch .plate-desc, #tools-page-tabs .plate-desc, #admin-section-switch .plate-desc{font-family:'IBM Plex Sans',sans-serif; font-size:13px; text-transform:none; letter-spacing:0; color:var(--muted); line-height:1.4;}
@media (max-width:640px){
  #member-section-switch, #coach-section-switch, #me-section-switch, #tools-page-tabs, #admin-section-switch{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:var(--sp-2);}
  #member-section-switch .plate, #coach-section-switch button, #me-section-switch button, #tools-page-tabs button, #admin-section-switch .plate{padding:var(--sp-3);}
  #member-section-switch .plate-title, #coach-section-switch .plate-title, #me-section-switch .plate-title, #tools-page-tabs .plate-title, #admin-section-switch .plate-title{font-size:16px;}
  #member-section-switch .plate-desc, #coach-section-switch .plate-desc, #me-section-switch .plate-desc, #tools-page-tabs .plate-desc, #admin-section-switch .plate-desc{font-size:12px;}
}
/* Tools page cards: not part of the shared tile rules above, so they get
   the card base (border, surface, icon) here. */
#tools-page-tabs{display:grid;}
#tools-page-tabs button{display:flex; background:var(--surface); border:1px solid var(--line); color:var(--text); cursor:pointer; font-family:inherit; transition:border-color .15s ease, background .15s ease;}
#tools-page-tabs button::before{line-height:1;}
#tools-page-tabs [data-tools-page="timers"]::before{content:"⏱️";}
#tools-page-tabs [data-tools-page="challenges"]::before{content:"🎵";}
#tools-page-tabs [data-tools-page="body"]::before{content:"📏";}
#tools-page-tabs [data-tools-page="calories"]::before{content:"🔥";}

/* ---------------- Sticky footer ----------------
   Each site page fills at least the window below the site nav, and its
   footer is pushed to the bottom when the content is short (on long
   pages it simply follows the content). Blog/Gallery/Shop/Members keep
   their footer inside a *-scope wrapper, so that wrapper stretches too.
   Children get width:100% because a flex item with margin:0 auto would
   otherwise shrink to its content instead of filling its max-width.
   The body is the column (not a calc) so the header's border and the
   staging banner's padding-bottom are accounted for automatically. */
body{display:flex; flex-direction:column; min-height:100vh; box-sizing:border-box;}
body > *{flex-shrink:0;}
.site-page.active{display:flex; flex-direction:column; flex:1 0 auto;}
#site-blog > .blog-scope, #site-gallery > .gallery-scope, #site-library > .library-scope, #site-shop > .shop-scope, #site-users > .users-scope{
  flex:1 0 auto; display:flex; flex-direction:column;
}
.site-page.active > *, #site-blog > .blog-scope > *, #site-gallery > .gallery-scope > *, #site-library > .library-scope > *, #site-shop > .shop-scope > *, #site-users > .users-scope > *{
  width:100%; box-sizing:border-box;
}
.site-page.active > footer, .blog-scope > footer, .gallery-scope > footer, .library-scope > footer, .shop-scope > footer, #site-users > .users-scope > footer{margin-top:auto;}

/* ---------------- Blog / Gallery / Shop / Members cards ----------------
   Replace the category pills: icon, name and a post/photo count.
   Clicking still just filters the grid below (renderCategoryChips in
   js/bells-n-barz-blog.js and js/bells-n-barz-gallery.js). */
.blog-scope .chip-filter.cat-cards, .gallery-scope .chip-filter.cat-cards, .shop-scope .chip-filter.cat-cards, .users-scope .chip-filter.cat-cards{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:10px; flex:1 1 100%; width:100%;
}
.chip-filter.cat-cards .cat-card{
  display:flex; flex-direction:column; align-items:flex-start; gap:4px; text-align:left;
  padding:12px 14px; border-radius:6px; border:1px solid var(--line); background:var(--surface);
  color:var(--text); font:inherit; cursor:pointer; transition:border-color .15s ease, background .15s ease;
}
.chip-filter.cat-cards .cat-card:hover{border-color:var(--accent-dim); background:var(--surface-2);}
.chip-filter.cat-cards .cat-card.active{border-color:var(--accent); background:rgba(var(--accent-rgb),.12); font-weight:normal; color:var(--text);}
.cat-card-icon{font-size:22px; line-height:1; margin-bottom:2px;}
.cat-card-name{font-family:'Oswald',sans-serif; font-size:14px; text-transform:uppercase; letter-spacing:.03em; line-height:1.2;}
.cat-card-count{font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:normal; text-transform:none; letter-spacing:0; color:var(--muted-2);}
.chip-filter.cat-cards .cat-card.active .cat-card-count{color:var(--accent);}
.chip-filter.cat-cards .cat-card.empty:not(.active){opacity:.5;}
@media (max-width:640px){
  .blog-scope .chip-filter.cat-cards, .gallery-scope .chip-filter.cat-cards, .shop-scope .chip-filter.cat-cards, .users-scope .chip-filter.cat-cards{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px;}
}
/* Members: Log In / My Profile / Sign Up cards, with a one-line description. */
.users-scope .chip-filter.cat-cards.usr-mode-cards{grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); margin:24px 0 8px;}
.cat-card-desc{font-size:12.5px; color:var(--muted); line-height:1.4; text-transform:none; letter-spacing:0; font-weight:normal;}
/* Shop Admin: Products / Orders cards, wider like the Members ones. */
#shop-admin-subtabs.cat-cards{grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));}
#blog-admin-subtabs.cat-cards{grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); margin-bottom:20px;}
.blog-scope #blog-admin-hero-panel .megatron-admin{margin-top:0; padding-top:0; border-top:0;}
/* Shop landing: category cards only until one is picked (.shop-browse). */
#shop-view-shop:not(.shop-browse) #shop-catalog-body, #shop-view-shop:not(.shop-browse) #shop-empty-msg{display:none !important;}
#shop-view-shop.shop-browse #shop-type-tabs{display:none;}
#shop-view-shop.shop-browse .shop-back-btn{display:block; margin-top:4px;}
/* On the landing screen no card is "current" — drop the last pick's highlight. */
#shop-view-shop:not(.shop-browse) #shop-type-tabs .cat-card.active{border-color:var(--line); background:var(--surface);}
#shop-view-shop:not(.shop-browse) #shop-type-tabs .cat-card.active .cat-card-count{color:var(--muted-2);}
/* Unread count on the INBOX nav button (js/bells-n-barz-shell.js). */
#nav-inbox-btn{display:inline-flex; flex-direction:row; align-items:center; gap:6px; white-space:nowrap;}
#nav-inbox-btn .nav-badge{
  display:inline-block; min-width:16px; height:16px; padding:0 5px;
  background:var(--accent-2); color:#fff; border-radius:10px;
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:700; line-height:16px; text-align:center; letter-spacing:0;
}
#nav-inbox-btn .nav-badge[hidden]{display:none;}
#nav-inbox-btn.active .nav-badge{background:var(--on-accent); color:var(--accent);}
/* Typing indicator under a message thread (window.bnbTyping in the shell). */
.msg-typing{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--muted); padding:6px 2px 0; min-height:22px;}
.msg-typing[hidden]{display:block; visibility:hidden;}
.msg-typing .dots span{display:inline-block; width:4px; height:4px; margin-left:3px; border-radius:50%; background:currentColor; animation:msg-typing-dot 1.2s infinite ease-in-out;}
.msg-typing .dots span:nth-child(2){animation-delay:.15s;}
.msg-typing .dots span:nth-child(3){animation-delay:.3s;}
@keyframes msg-typing-dot{0%,60%,100%{opacity:.25; transform:translateY(0);} 30%{opacity:1; transform:translateY(-3px);}}
@media (prefers-reduced-motion: reduce){ .msg-typing .dots span{animation:none; opacity:.7;} }
/* Read receipt under your last message ("Sent" / "Seen 10:05"). */
.msg-receipt{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--muted-2); text-align:right; padding:4px 2px 0;}
.msg-receipt.seen{color:var(--accent);}
/* Live message alerts: pop-up + bell-menu settings (shell, LIVE MESSAGE ALERTS). */
.msg-alert{
  position:fixed; right:16px; bottom:24px; z-index:120; max-width:min(360px, calc(100vw - 32px));
  display:flex; align-items:center; gap:10px; padding:12px 14px; text-align:left;
  background:var(--surface); color:var(--text); border:1px solid var(--accent-dim); border-radius:8px;
  box-shadow:0 12px 30px var(--shadow-strong, rgba(0,0,0,.4)); font:inherit; cursor:pointer;
  opacity:0; transform:translateY(12px); pointer-events:none; transition:opacity .2s ease, transform .2s ease;
}
.msg-alert.show{opacity:1; transform:translateY(0); pointer-events:auto;}
.msg-alert-icon{font-size:20px; line-height:1;}
.msg-alert-text{flex:1; font-size:13.5px; line-height:1.35;}
.msg-alert-go{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--accent); white-space:nowrap;}
.notif-bell-settings{border-top:1px solid var(--line); padding:10px 14px; display:flex; flex-direction:column; gap:8px; font-size:12.5px;}
.notif-bell-settings label{display:flex; align-items:center; gap:8px; color:var(--text); cursor:pointer;}
.notif-bell-settings button{align-self:flex-start; background:transparent; border:1px solid var(--line); color:var(--text); border-radius:4px; padding:5px 10px; font:inherit; font-size:12px; cursor:pointer;}
.notif-bell-settings button:hover{border-color:var(--accent-dim);}
.notif-desktop-hint{color:var(--muted); font-size:11.5px; line-height:1.4;}
@media (prefers-reduced-motion: reduce){ .msg-alert{transition:none;} }
/* Message reactions (window.bnbReactions in the shell). */
.sched-scope .msg-bubble{position:relative;}
.msg-react-btn{position:absolute; top:4px; right:6px; background:transparent; border:0; color:var(--muted-2); font-size:14px; line-height:1; padding:2px 4px; border-radius:4px; cursor:pointer; opacity:0; transition:opacity .15s ease;}
.msg-bubble:hover .msg-react-btn, .msg-react-btn:focus-visible{opacity:1;}
@media (hover:none){ .msg-react-btn{opacity:.6;} }
.msg-react-btn:hover{color:var(--text); background:var(--surface);}
.msg-react-picker{display:flex; gap:2px; flex-wrap:wrap; margin-top:8px; padding:4px; background:var(--surface); border:1px solid var(--line); border-radius:20px; width:max-content; max-width:100%;}
.msg-react-option{background:transparent; border:0; font-size:18px; line-height:1; padding:4px 6px; border-radius:50%; cursor:pointer; transition:transform .1s ease;}
.msg-react-option:hover, .msg-react-option:focus-visible{transform:scale(1.25); background:var(--surface-2);}
.msg-reactions{display:flex; gap:4px; flex-wrap:wrap;}
.msg-reactions:not(:empty){margin-top:6px;}
.msg-react-chip{display:inline-flex; align-items:center; gap:3px; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:1px 7px; font-size:13px; line-height:1.4; cursor:pointer; color:var(--text);}
.msg-react-chip .n{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted);}
.msg-react-chip.mine{border-color:var(--accent); background:rgba(var(--accent-rgb),.14);}
.msg-react-chip.mine .n{color:var(--accent);}
.sched-scope .msg-bubble .msg-meta{padding-right:22px;}
/* Inbox group chats (js/bells-n-barz-inbox.js). */
.inbox-top{display:flex; gap:16px; align-items:flex-end; margin-bottom:16px;}
.inbox-top-search{flex:1; min-width:0;}
.inbox-top > .btn2{white-space:nowrap;}
@media (max-width:640px){ .inbox-top{flex-direction:column; align-items:stretch;} }
.msg-thread-sub{display:block; font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--muted-2); text-transform:none; letter-spacing:0;}
.msg-system{align-self:center; max-width:90%; text-align:center; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted-2); padding:2px 8px;}
.grp-header{display:flex; gap:12px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; padding-bottom:10px; margin-bottom:10px; border-bottom:1px solid var(--line-soft);}
.grp-header-main{min-width:0; flex:1;}
.grp-title{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:16px; letter-spacing:.03em; margin:0;}
.grp-members{font-size:12px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px;}
.grp-actions{display:flex; gap:6px; flex-wrap:wrap;}
.grp-rename{display:flex; gap:6px; flex-wrap:wrap;}
.grp-rename input{flex:1; min-width:140px;}
.grp-form{display:flex; flex-direction:column; gap:8px;}
.grp-form h3{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:16px; margin:0 0 4px;}
.grp-label{font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted);}
.grp-picked{display:flex; flex-wrap:wrap; gap:6px; min-height:24px;}
.grp-chip{display:inline-flex; align-items:center; gap:4px; background:rgba(var(--accent-rgb),.12); border:1px solid var(--accent-dim); border-radius:12px; padding:2px 4px 2px 10px; font-size:12.5px;}
.grp-chip button{background:transparent; border:0; color:var(--muted); font-size:15px; line-height:1; cursor:pointer; padding:0 4px;}
.grp-form-actions{display:flex; gap:8px; justify-content:flex-end; margin-top:6px;}
/* Message attachments (window.bnbAttach in the shell). */
.msg-compose{position:relative;}
.msg-attach-btn{align-self:stretch; background:var(--surface-2); border:1px solid var(--line); color:var(--text); border-radius:4px; padding:0 12px; font-size:18px; cursor:pointer;}
.msg-attach-btn:hover{border-color:var(--accent-dim);}
.msg-attach-btn:disabled{opacity:.5; cursor:wait;}
.msg-pending{display:flex; align-items:center; gap:8px; margin:8px 0 0; padding:6px 10px; background:var(--surface-2); border:1px solid var(--line); border-radius:6px; font-size:13px; max-width:100%;}
.msg-pending[hidden]{display:none;}
.msg-pending-name{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.msg-pending-size{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted);}
.msg-pending-clear{background:transparent; border:0; color:var(--muted); font-size:18px; line-height:1; cursor:pointer; padding:0 4px;}
.msg-att{margin-top:6px;}
.msg-att-img{display:block;}
.msg-att-img img{display:block; max-width:min(280px, 100%); max-height:320px; border-radius:6px; border:1px solid var(--line-soft); background:var(--surface);}
.msg-att-file{display:flex; align-items:center; gap:10px; padding:8px 10px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--text); text-decoration:none; max-width:280px;}
.msg-att-file:hover{border-color:var(--accent-dim);}
.msg-att-icon{font-size:22px; line-height:1;}
.msg-att-meta{display:flex; flex-direction:column; min-width:0;}
.msg-att-name{font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.msg-att-size{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--accent);}
.msg-att-loading, .msg-att-missing{font-size:12.5px; color:var(--muted);}

/* ---------- COACH: Workouts to Try ---------- */
.cw-form{border:1px solid var(--line-soft);border-radius:4px;padding:14px;margin-top:18px;background:var(--surface);}
.cw-form-head{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:13px;letter-spacing:.05em;color:var(--muted);margin-bottom:10px;}
.cw-form textarea{width:100%;box-sizing:border-box;font-family:inherit;}
/* Exercises / sets / time / rest summaries (workoutStats): under each Program
   Builder block, the day's total, and a one-line version on the
   client's day views. */
.crud-block-stats{padding:0 12px 10px;}
.admin-day-stats:empty{display:none;}
.admin-day-stats{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:2px;padding:10px 12px;margin-bottom:12px;background:var(--surface);}
.admin-day-stats-head{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:13px;color:var(--accent);}
.admin-day-stats .cw-stats{margin-top:6px;}
.day-stats-line{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);margin:0 0 10px;padding:6px 10px;border:1px solid var(--line-soft);border-radius:3px;display:inline-block;}
/* Blocks inside a Workouts to Try version: header where a block starts,
   the "+ Insert block here" line between rows, A1/A2 labels; the same
   headings and labels in Freeform and on the cards. */
.crud-sub-head{display:flex;align-items:center;gap:8px;padding:6px 12px;border-top:1px solid var(--line);background:rgba(var(--accent-rgb),.08);}
.crud-sub-head input{flex:1 1 auto;min-width:0;background:transparent;border:1px solid transparent;color:var(--accent);font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600;padding:3px 6px;border-radius:2px;}
.crud-sub-head input:hover, .crud-sub-head input:focus{border-color:var(--line-soft);background:var(--bg);}
.crud-insert-block{display:flex;align-items:center;gap:8px;padding:0 12px;min-height:14px;}
.crud-insert-block > button:only-child{width:100%;background:transparent;border:none;border-top:1px dashed transparent;color:transparent;font-family:'IBM Plex Mono',monospace;font-size:11px;cursor:pointer;padding:2px 0;}
.crud-insert-block:hover > button:only-child, .crud-insert-block > button:only-child:focus-visible{border-top-color:var(--accent-dim);color:var(--accent);}
@media (hover:none){ .crud-insert-block > button:only-child{color:var(--muted-2);border-top-color:var(--line-soft);} }
.crud-insert-block.open{padding:8px 12px;flex-wrap:wrap;background:var(--surface-2);font-size:12.5px;color:var(--muted);}
.crud-insert-block.open input{background:var(--bg);border:1px solid var(--line-soft);color:var(--text);padding:5px 8px;border-radius:2px;font-size:12.5px;min-width:0;}
.crud-ex-label{display:inline-flex;align-items:center;justify-content:center;min-width:26px;padding:1px 5px;margin-right:6px;border-radius:3px;background:rgba(var(--accent-rgb),.15);color:var(--accent);font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;flex:0 0 auto;}
.ff-group-head{padding:6px 12px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:12.5px;color:var(--accent);border-top:1px solid var(--line);background:rgba(var(--accent-rgb),.06);}
.cw-ex li.cw-ex-block{list-style:none;margin:8px 0 2px -18px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:12.5px;color:var(--accent);}
/* Program Builder block linked to a saved workout (blockWorkoutLink). */
.crud-src{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;border-bottom:1px solid var(--line-soft);font-size:12.5px;color:var(--muted);background:rgba(var(--accent-rgb),.05);}
.crud-src b{color:var(--text);}
.crud-src .btn2{padding:4px 10px;font-size:11.5px;}
.crud-src-none{justify-content:flex-end;background:transparent;}
.cw-paste{margin:0 0 14px;border:1px dashed var(--line);border-radius:4px;padding:8px 12px;}
.cw-paste summary{cursor:pointer;font-size:13px;color:var(--muted);}
.cw-paste[open] summary{margin-bottom:8px;}
.cw-paste textarea{width:100%;box-sizing:border-box;font-family:inherit;}
.cw-paste-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;}
.cw-paste-row .field-hint{margin:0;}
.cw-draft-stat{margin-bottom:6px;}
.cw-draft-stat-name{font-weight:700;color:var(--accent);font-size:13px;margin-top:6px;}
.cw-form .crud-block-head input{width:70%;}
.cw-list{display:grid;gap:14px;}
.cw-card{border:1px solid var(--line-soft);border-radius:4px;padding:14px;background:var(--surface);min-width:0;}
.cw-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;}
.cw-title{font-weight:700;font-size:16px;}
.cw-date{font-size:12px;color:var(--muted);}
.cw-card-btns{display:flex;gap:6px;flex:0 0 auto;}
.cw-variant{border-top:1px solid var(--line-soft);padding-top:10px;margin-top:10px;}
.cw-variant-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-weight:700;color:var(--accent);}
.cw-try{padding:6px 12px;font-size:12px;}
.cw-variant-btns{display:flex;gap:6px;align-items:center;}
.cw-ex{margin:8px 0 0;padding-left:18px;font-size:13.5px;}
.cw-ex li{margin:3px 0;}
.cw-ex span{color:var(--muted);}
.cw-variant-btns{flex-wrap:wrap;}
.cw-send-day{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;border:1px dashed var(--line);border-radius:4px;font-size:13px;color:var(--muted);}
.cw-send-day select{padding:5px 8px;}
.cw-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line-soft);}
.cw-stat{display:flex;flex-direction:column;gap:2px;min-width:0;}
.cw-stat-label{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-2);}
.cw-stat-val{font-weight:700;font-size:14px;overflow-wrap:anywhere;}
@media (max-width:480px){ .cw-stats{grid-template-columns:repeat(2,minmax(0,1fr));} }
.admin-incoming{border:1px solid var(--accent);border-radius:4px;padding:12px 14px;margin:0 0 20px;background:var(--surface);}
.admin-incoming-text{font-size:13.5px;margin-bottom:8px;}
.admin-incoming-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.admin-incoming-row select{min-width:140px;max-width:100%;}
.admin-load-workout{max-width:260px;background:var(--bg);border:1px solid var(--line-soft);color:var(--text);
  font-family:inherit;font-size:13px;padding:8px 10px;border-radius:2px;cursor:pointer;}
#coach-section-program .crud-actions{flex-wrap:wrap;}
/* Phones: exercise name across the top, the other fields two to a row,
   ✕ at the end — instead of nine squeezed columns. */
@media (max-width:640px){
  .crud-ex-row{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .crud-ex-row .crud-col-name, .crud-ex-row .crud-col-del{grid-column:1 / -1;}
  .crud-ex-row .crud-col-del{align-items:flex-end;}
  .crud-ex-row .crud-col-del label{display:none;}
}

/* ---------------- Library (js/bells-n-barz-library.js) ----------------
   Same frame as the Gallery: sticky header with a Shelf | Admin switch,
   a grid of book covers, a detail panel and a staff editor. */
.library-scope{background:var(--bg); color:var(--text); font-family:'IBM Plex Sans',sans-serif; line-height:1.55;}
.library-scope .wrap{margin:0 auto;}
.library-scope h1, .library-scope h2, .library-scope h3{font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.02em; margin:0;}
.library-scope header.site{border-bottom:1px solid var(--line); background:var(--surface);}
.library-scope .header-inner{margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.library-scope .brand-block .eyebrow{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; color:var(--accent); text-transform:uppercase;}
.library-scope .mode-switch{display:flex; gap:6px; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:3px;}
.library-scope .mode-switch button{background:transparent; border:none; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.04em; text-transform:uppercase; padding:7px 16px; border-radius:16px; cursor:pointer;}
.library-scope .mode-switch button.active{background:var(--accent); color:var(--on-accent); font-weight:600;}
.library-scope .view{display:none; padding:var(--sp-5) 0 48px;}
.library-scope .view.active{display:block;}
.library-scope .result-count{font-size:12px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; white-space:nowrap;}
.library-scope .empty-msg{color:var(--muted); text-align:center; padding:28px 20px; font-size:14px;}
.library-scope footer.site{border-top:1px solid var(--line); text-align:center; color:var(--muted-2); font-size:12px; font-family:'IBM Plex Mono',monospace;}

.lib-intro{display:flex; gap:16px; align-items:flex-end; justify-content:space-between; margin-bottom:var(--sp-4);}
.lib-intro p{margin:0; max-width:640px; color:var(--muted);}
.lib-shelf{display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:22px 18px;}
.lib-book{display:flex; flex-direction:column; gap:6px; text-align:left; background:none; border:none; padding:0; color:var(--text); font:inherit; cursor:pointer;}
.lib-cover{aspect-ratio:2/3; width:100%; border-radius:3px; overflow:hidden; background:var(--surface); border:1px solid var(--line); box-shadow:0 6px 18px rgba(0,0,0,.25); transition:transform .2s ease, box-shadow .2s ease;}
.lib-cover img{width:100%; height:100%; object-fit:cover; display:block;}
.lib-book:hover .lib-cover, .lib-book:focus-visible .lib-cover{transform:translateY(-4px); box-shadow:0 12px 26px rgba(0,0,0,.35);}
.lib-cover-plain{height:100%; display:flex; flex-direction:column; justify-content:space-between; gap:8px; padding:14px 12px; box-sizing:border-box;
  background:linear-gradient(160deg, var(--surface-2), var(--surface)); border-left:6px solid var(--accent);}
.lib-cover-title{font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:15px; line-height:1.2; letter-spacing:.02em; overflow:hidden; display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical;}
.lib-cover-author{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--accent);}
.lib-book-title{font-weight:600; font-size:13.5px; line-height:1.3;}
.lib-book-author{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--muted-2);}

.library-scope .panel-backdrop{display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:100; align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto;}
.library-scope .panel-backdrop.show{display:flex;}
.library-scope .panel{position:relative; background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:26px; max-width:620px; width:100%; box-sizing:border-box; box-shadow:0 20px 60px rgba(0,0,0,.5);}
.library-scope .panel h2{font-size:20px; margin-bottom:18px;}
.lib-detail h2{font-size:22px; margin:0 0 4px; padding-right:30px;}
.lib-detail h3{font-size:14px; color:var(--accent); margin:22px 0 8px;}
.lib-detail-close{position:absolute; top:14px; right:14px; width:32px; height:32px; border-radius:50%; border:1px solid var(--line); background:var(--surface-2); color:var(--muted); cursor:pointer; font-size:14px;}
.lib-detail-close:hover{color:var(--text);}
.lib-detail-head{display:grid; grid-template-columns:120px 1fr; gap:18px; align-items:start;}
.lib-detail-head .lib-cover{transform:none !important;}
.lib-detail-author{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--muted-2); margin-bottom:14px;}
.lib-buy{display:inline-block; text-decoration:none;}
.lib-why{margin:0; color:var(--text);}
.lib-takeaways{margin:0; padding-left:20px;}
.lib-takeaways li{margin:0 0 8px;}
.lib-takeaways li::marker{color:var(--accent);}
.lib-quote{margin:22px 0 0; padding:12px 16px; border-left:3px solid var(--accent); background:var(--surface-2); font-family:'Oswald',sans-serif; font-size:17px; letter-spacing:.01em;}
.lib-quote cite{display:block; margin-top:6px; font-family:'IBM Plex Mono',monospace; font-style:normal; font-size:11.5px; color:var(--muted-2);}
.lib-quote cite::before{content:'— ';}

.library-scope .admin-notice{background:var(--surface-2); border:1px solid var(--line); border-left:3px solid var(--accent); padding:10px 14px; font-size:12.5px; color:var(--muted); margin-bottom:20px; border-radius:2px;}
.library-scope .admin-notice.lib-error{border-left-color:#c0392b; color:var(--text);}
.library-scope .admin-toolbar{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px;}
.library-scope .btn2{background:var(--surface-2); border:1px solid var(--line); color:var(--muted); padding:8px 15px; border-radius:2px; font-size:12.5px; cursor:pointer; font-family:'IBM Plex Mono',monospace;}
.library-scope .btn2:hover{color:var(--text); border-color:var(--accent-dim);}
.library-scope .btn2.primary{color:var(--on-accent); background:var(--accent); border-color:var(--accent); font-weight:600;}
.library-scope .btn2:disabled{opacity:.6; cursor:default;}
.library-scope .admin-grid-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.library-scope .admin-grid-table th{text-align:left; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); border-bottom:1px solid var(--line); padding:8px 10px;}
.library-scope .admin-grid-table td{padding:8px 10px; border-bottom:1px solid var(--line-soft); vertical-align:middle;}
.lib-admin-empty{color:var(--muted); text-align:center; padding:30px !important;}
.lib-admin-author{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--muted-2);}
.lib-thumb{width:44px;}
.lib-thumb .lib-cover-plain{padding:4px; border-left-width:3px;}
.lib-thumb .lib-cover-title{font-size:6px; -webkit-line-clamp:4;}
.lib-thumb .lib-cover-author{display:none;}
.lib-thumb > *{border-radius:2px; overflow:hidden; aspect-ratio:2/3; border:1px solid var(--line);}
.lib-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.library-scope .status-pill{font-family:'IBM Plex Mono',monospace; font-size:10.5px; padding:3px 9px; border-radius:20px; text-transform:uppercase; border:1px solid var(--line); color:var(--muted-2); white-space:nowrap;}
.library-scope .status-pill.on{background:rgba(var(--accent-rgb),.15); color:var(--accent); border-color:var(--accent-dim);}
.library-scope .row-actions{display:flex; gap:6px; flex-wrap:wrap;}
.library-scope .row-actions button{background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:2px; padding:4px 9px; font-size:11.5px; cursor:pointer; font-family:'IBM Plex Mono',monospace;}
.library-scope .row-actions button:hover:not(:disabled){color:var(--text); border-color:var(--accent-dim);}
.library-scope .row-actions button:disabled{opacity:.35; cursor:default;}
.library-scope .row-actions button.del:hover{color:#e0736a; border-color:#8a3a32;}

.library-scope .field{margin-bottom:14px;}
.library-scope .field label{display:block; font-size:11px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-2); margin-bottom:5px;}
.library-scope .field .featured-toggle label{margin:0;}
.library-scope .field input[type=text], .library-scope .field textarea{width:100%; box-sizing:border-box; background:var(--bg); border:1px solid var(--line-soft); color:var(--text); padding:9px 11px; border-radius:2px; font-size:13.5px; font-family:'IBM Plex Sans',sans-serif;}
.library-scope .field textarea{resize:vertical;}
.library-scope .field-row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.library-scope .field-hint{font-size:11px; color:var(--muted-2); margin-top:4px;}
.lib-cover-row{display:flex; gap:8px;}
.lib-cover-row input{flex:1; min-width:0;}
.library-scope .preview-wrap{margin-top:10px;}
.library-scope .preview-wrap img{max-height:160px; border-radius:2px; border:1px solid var(--line);}
.library-scope .featured-toggle{display:flex; align-items:center; gap:10px;}
.library-scope .switch{position:relative; width:40px; height:22px; flex:0 0 auto;}
.library-scope .switch input{opacity:0; width:0; height:0;}
.library-scope .switch .slider{position:absolute; inset:0; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; cursor:pointer; transition:.2s;}
.library-scope .switch .slider::before{content:''; position:absolute; width:16px; height:16px; left:2px; top:2px; background:var(--muted); border-radius:50%; transition:.2s;}
.library-scope .switch input:checked + .slider{background:rgba(var(--accent-rgb),.25); border-color:var(--accent);}
.library-scope .switch input:checked + .slider::before{transform:translateX(18px); background:var(--accent);}
.library-scope .panel-actions{display:flex; gap:10px; justify-content:flex-end; margin-top:22px; padding-top:18px; border-top:1px solid var(--line);}
.library-scope .gal-toast{position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--surface); border:1px solid var(--accent-dim); color:var(--text); padding:10px 20px; border-radius:20px; font-size:13px; font-family:'IBM Plex Mono',monospace; z-index:300; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s;}
.library-scope .gal-toast.show{opacity:1; transform:translateX(-50%) translateY(0);}
#site-library > .library-scope > .gal-toast{width:auto; max-width:calc(100% - 32px);}

.lib-lookup{padding-bottom:14px; border-bottom:1px solid var(--line);}
.lib-lookup-results{display:flex; flex-direction:column; gap:6px; margin-top:8px; max-height:300px; overflow-y:auto;}
.lib-lookup-results:empty{display:none;}
.lib-lookup-item{display:grid; grid-template-columns:44px 1fr; gap:12px; align-items:center; text-align:left; padding:6px 8px; border:1px solid var(--line); border-radius:3px; background:var(--bg); color:var(--text); font:inherit; cursor:pointer;}
.lib-lookup-item:hover, .lib-lookup-item:focus-visible{border-color:var(--accent); background:rgba(var(--accent-rgb),.08);}
.lib-lookup-title{font-weight:600; font-size:13px; line-height:1.3;}
.lib-lookup-src{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--muted-2); margin-top:2px;}
.lib-lookup-msg{font-size:12.5px; color:var(--muted); padding:6px 2px;}

@media (max-width:640px){
  .lib-intro{flex-direction:column; align-items:flex-start;}
  .lib-shelf{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px 14px;}
  .lib-detail-head{grid-template-columns:90px 1fr; gap:14px;}
  .library-scope .panel{padding:20px 16px;}
  .library-scope .field-row2{grid-template-columns:1fr;}
  .library-scope .admin-grid-table{display:block; overflow-x:auto;}
}

/* ---------- Meal Plan: upload a filled questionnaire PDF (from the sandbox) ---------- */
.sched-scope .mp-import{background:var(--surface-2); border:1px dashed var(--line); padding:14px; margin-bottom:20px; border-radius:var(--radius); display:grid; gap:10px;}
.sched-scope .mp-import-text{font-size:12.5px; color:var(--muted);}
.sched-scope .mp-import-text b{color:var(--text);}
.sched-scope .mp-import-btn{justify-self:start;}
.sched-scope .mp-import-status{font-size:12.5px; color:var(--muted);}
.sched-scope .mp-import-status:empty{display:none;}
.sched-scope .mp-import-status b{color:var(--text);}
.sched-scope .mp-import-status.ok{color:var(--text); border-left:3px solid var(--accent-3); padding-left:10px;}
.sched-scope .mp-import-status.warn{color:#e0736a;}
.sched-scope .mp-q.mp-imported{border-left:3px solid var(--accent-3); padding-left:10px;}
.sched-scope .mp-day-grid .mp-input.mp-imported{box-shadow:inset 3px 0 0 var(--accent-3);}

/* ---------- Download as PDF: a clean, light copy of a plan for printing ---------- */
#mp-print{display:none;}
@media print{
  @page{margin:14mm;}
  body.mp-printing{background:#fff !important; color:#111;}
  body.mp-printing > :not(#mp-print){display:none !important;}
  body.mp-printing #mp-print{display:block; font:10.5pt/1.45 'IBM Plex Sans',Arial,sans-serif; color:#111;}
  #mp-print .pp-head{border-bottom:2px solid #111; padding-bottom:8px; margin-bottom:12px;}
  #mp-print .pp-brand{font:600 9pt 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.08em; color:#8a6d1c;}
  #mp-print h1{font:600 20pt 'Oswald',Arial,sans-serif; margin:2px 0; text-transform:uppercase; letter-spacing:.02em;}
  #mp-print .pp-sub{color:#555;}
  #mp-print .pp-note{border:1px solid #c9a227; background:#fdf6dd; padding:8px 10px; margin-bottom:12px;}
  #mp-print .pp-targets{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:14px;}
  #mp-print .pp-targets div{border:1px solid #bbb; padding:6px; text-align:center;}
  #mp-print .pp-targets b{display:block; font:600 15pt 'Oswald',Arial,sans-serif;}
  #mp-print .pp-targets span{font-size:8.5pt; text-transform:uppercase; color:#555;}
  #mp-print .pp-block{break-inside:avoid; margin-bottom:12px;}
  #mp-print h2{font:600 11.5pt 'Oswald',Arial,sans-serif; text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid #ccc; padding-bottom:2px; margin:0 0 5px;}
  #mp-print ul{margin:0; padding-left:18px;}
  #mp-print li{margin:2px 0;}
  #mp-print p{margin:3px 0;}
  #mp-print .pp-foot{margin-top:16px; font-size:8.5pt; color:#777;}
}

/* ---------- Meal Plan: Suggested plan, collapsible blocks (from the sandbox) ---------- */
.sched-scope .mp-ai-note{border-left-color:var(--accent-3);}
.sched-scope .mp-ai-note .btn2{margin-left:8px; padding:4px 10px;}
.sched-scope .mp-rationale{border-left:3px solid var(--accent-3);}
.sched-scope .mp-fold-bar{display:flex; justify-content:flex-end; margin:4px 0 8px;}
.sched-scope .mp-fold-bar .btn2{padding:5px 10px; font-size:11px;}
.sched-scope details.mp-fold{padding:0; overflow:hidden; min-width:0;}
.sched-scope details.mp-fold > summary{display:flex; align-items:baseline; gap:12px; padding:10px 14px; cursor:pointer; list-style:none; min-width:0;}
.sched-scope details.mp-fold > summary::-webkit-details-marker{display:none;}
.sched-scope details.mp-fold > summary::before{content:"▸"; color:var(--accent); font-size:12px; transition:transform .15s;}
.sched-scope details.mp-fold[open] > summary::before{transform:rotate(90deg);}
.sched-scope .mp-fold-title{font-size:13px; color:var(--accent); text-transform:uppercase; letter-spacing:.04em; font-family:'IBM Plex Mono',monospace; white-space:nowrap;}
.sched-scope .mp-count{display:inline-block; min-width:18px; padding:0 5px; margin-left:4px; border-radius:9px; background:rgba(var(--accent-rgb),.15); color:var(--accent); font-size:11px; text-align:center;}
.sched-scope .mp-fold-preview{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:13px;}
.sched-scope details.mp-fold[open] .mp-fold-preview{visibility:hidden;}
.sched-scope details.mp-fold > :not(summary){margin:0 14px 12px 36px;}
.sched-scope details.mp-fold ul{padding-left:18px;}
/* Let long one-line previews truncate instead of widening the layout. */
.sched-scope .mp-client-detail, .sched-scope .mp-plan-grid{min-width:0;}
@media (min-width:900px){ #coach-section-mealplans .mp-ai-note{padding:8px 12px; margin-bottom:12px;} }

/* Blog editor: cover upload, formatting buttons, preview (js/bells-n-barz-blog.js) */
.blog-scope [hidden]{display:none !important;}
.blog-scope .blog-cover-row{display:flex; gap:8px;}
.blog-scope .blog-cover-row input{flex:1; min-width:0;}
.blog-scope .blog-cover-preview{display:block; margin-top:8px; max-width:100%; max-height:160px; object-fit:cover; border:1px solid var(--line); border-radius:var(--radius);}
.blog-scope .blog-md-bar{display:flex; justify-content:space-between; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:6px;}
.blog-scope .blog-md-tools{display:flex; gap:4px; flex-wrap:wrap;}
.blog-scope .blog-md-tools button{min-width:36px; min-height:34px; padding:5px 9px; border:1px solid var(--line); border-radius:2px; background:var(--bg); color:var(--muted); cursor:pointer; font-size:12.5px;}
.blog-scope .blog-md-tools button:hover{color:var(--text); border-color:var(--accent-dim);}
.blog-scope .blog-md-tools button:disabled{opacity:.6; cursor:wait;}
.blog-scope .blog-md-mode{flex:0 0 auto;}
.blog-scope .blog-md-mode button{padding:6px 12px;}
.blog-scope .blog-md-preview{min-height:220px; max-height:60vh; overflow-y:auto; padding:14px 16px; background:var(--bg); border:1px solid var(--line-soft); border-radius:2px;}
.blog-scope .post-body blockquote{margin:0 0 16px; padding:6px 16px; border-left:3px solid var(--accent); color:var(--muted); font-style:italic;}
.blog-scope .post-body hr{border:none; border-top:1px solid var(--line); margin:26px 0;}

/* Admin > Content (js/bells-n-barz-content.js) */
.content-portal .ct-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:14px; margin-bottom:28px;}
.content-portal .ct-card{display:flex; flex-direction:column; gap:10px; padding:18px; background:var(--surface); border:1px solid var(--line); border-radius:8px;}
.content-portal .ct-card-head{display:flex; align-items:center; gap:10px;}
.content-portal .ct-card-head h3{margin:0; font-size:17px;}
.content-portal .ct-card-icon{font-size:22px; line-height:1;}
.content-portal .ct-card-stats{display:flex; flex-wrap:wrap; gap:6px;}
.content-portal .ct-stat{font-size:12.5px; color:var(--muted); background:var(--surface-2); border-radius:12px; padding:3px 10px;}
.content-portal .ct-stat b{color:var(--text);}
.content-portal .ct-stat.warn{color:var(--accent); background:rgba(var(--accent-rgb),.12);}
.content-portal .ct-card-desc{margin:0; font-size:13px; color:var(--muted); line-height:1.5; flex:1;}
.content-portal .ct-card-actions{display:flex; gap:8px; flex-wrap:wrap;}
.content-portal .btn2{background:var(--surface-2); border:1px solid var(--line); color:var(--text); padding:9px 14px; min-height:40px; border-radius:2px; font-size:13px; cursor:pointer;}
.content-portal .btn2:hover{border-color:var(--accent-dim);}
.content-portal .btn2.primary{color:var(--on-accent); background:var(--accent); border-color:var(--accent); font-weight:600;}
.content-portal .ct-subhead{font-size:16px; margin:0 0 10px;}
.content-portal .ct-empty{color:var(--muted); font-size:13.5px;}
.content-portal .ct-drafts{list-style:none; margin:0 0 28px; padding:0; border:1px solid var(--line); border-radius:2px;}
.content-portal .ct-drafts li{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px;}
.content-portal .ct-drafts li + li{border-top:1px solid var(--line);}
.content-portal .ct-draft-text{display:flex; flex-direction:column; gap:3px; min-width:0;}
.content-portal .ct-draft-meta{font-size:12.5px; color:var(--muted);}
.content-portal .ct-gap{color:var(--accent);}
.content-portal .ct-help{border:1px solid var(--line); border-radius:2px; padding:12px 16px; background:var(--surface);}
.content-portal .ct-help summary{cursor:pointer; font-weight:600;}
.content-portal .ct-help ol{margin:12px 0 4px; padding-left:22px; line-height:1.7; font-size:13.5px; color:var(--muted);}
.content-portal .ct-help b{color:var(--text);}
