/* Burleigh Health Hub — site styles (split from index.html) */
:root{
  --canvas:#FAF8F3;--ink:#222;--muted:#6B6B6B;--line:#DAD4C7;
  --sage:#6F7A5E;--olive:#4A5240;--terracotta:#B5653E;--ochre:#C9A24B;
  --surface:#fff;--surface-2:#F1EDE4;--sand-tint:#EFEBE1;--sage-tint:#E4E7DE;--terra-tint:#F3E5DD;--ochre-tint:#F5EEDA;
  --good:#5C7A52;--warn:#B98A2E;--crit:#B5493E;
  --shadow:0 1px 2px rgba(34,34,34,.05),0 8px 24px rgba(34,34,34,.06);
  --fh:"EB Garamond",Georgia,serif;--fb:"Open Sans",Arial,sans-serif;--r:14px;
}
*{box-sizing:border-box}
body{background:var(--canvas);color:var(--ink);font-family:var(--fb);line-height:1.6;margin:0}
/* Organisation branding — scoped to the member (staff) area only, so it never
   affects public bookings, practitioner areas, or other organisations. */
.org-banner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-radius:var(--r);padding:16px 18px;margin-bottom:14px;background:var(--brand-primary,var(--olive));color:var(--brand-on-primary,#fff)}
.org-banner .ob-logo{height:52px;max-width:180px;object-fit:contain;background:#fff;border-radius:8px;padding:4px}
.org-banner .ob-text{flex:1;min-width:180px}
.org-banner .ob-org{font-family:var(--fh);font-weight:600;font-size:1.25rem;line-height:1.2}
.org-banner .ob-welcome{font-size:.95rem;opacity:.95;margin-top:2px}
.org-poweredby{font-size:.75rem;color:var(--muted);text-align:center;margin:14px 0 4px;letter-spacing:.02em}
#member-app.org-branded .btn:not(.ghost):not(.sage){background:var(--brand-primary);color:var(--brand-on-primary);border-color:var(--brand-primary)}
#member-app.org-branded .btn.sage{background:var(--brand-secondary);color:var(--brand-on-secondary);border-color:var(--brand-secondary)}
#member-app.org-branded .pill.ok{background:var(--brand-secondary);color:var(--brand-on-secondary)}
/* Member-logged activities */
.act-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.act-tiles{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:10px 0 12px}
.act-row{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;border-top:1px solid var(--line);padding:8px 0}
.act-main{flex:1;min-width:160px}
.act-pts{font-family:var(--fh);font-weight:600;color:var(--olive);white-space:nowrap}
.act-pts span{font-family:var(--fb);font-weight:400;font-size:.8rem;color:var(--muted)}
.act-acts{display:flex;gap:6px}.act-acts .btn{padding:4px 12px}
.act-filters{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.act-quick{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 0}
.act-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:520px){.act-2col{grid-template-columns:1fr}}
.leavemodal .box.act-modal{max-width:460px;text-align:left;max-height:92vh;overflow:auto}
.act-modal input,.act-modal select{font-size:16px}
.act-done-ic{width:48px;height:48px;border-radius:50%;background:var(--sage-tint);color:var(--olive);display:inline-flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700}
.act-done-pts{font-family:var(--fh);font-size:1.5rem;color:var(--olive);margin-top:6px}
.act-feel{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.act-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:4px 16px}
.act-check{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-weight:400;margin-top:18px}.act-check input{width:auto}
.act-addrow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.act-addrow input{flex:1;min-width:180px}.act-addrow select{width:auto}
.act-review{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding:10px 0}
.act-bars{width:100%;border-collapse:collapse;table-layout:fixed;background:none}
.act-bars th{background:none;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:400;font-size:.88rem;padding:5px 8px 5px 0;width:42%;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.act-bars td{padding:5px 0;border:0}.act-bars td.num{text-align:right;padding-left:8px;font-size:.88rem;width:3em;color:var(--ink)}
.act-bar{display:block;height:10px;background:var(--sage);border-radius:0 4px 4px 0;min-width:2px}
/* Ayurvedic Balance Journey */
.ab-kicker{color:var(--terracotta);font-weight:700;letter-spacing:.05em;font-size:.72rem}
.ab-card h3,.ab-invite h3,.ab-sv h3,.ab-result h3{color:var(--olive);margin:.15em 0 .4em}
.ab-h{color:var(--olive);font-size:1.1rem;margin:0 0 .5em}
.ab-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.ab-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ab-mini{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ab-grid{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:18px;align-items:center;margin-top:6px}
@media (max-width:640px){.ab-grid{grid-template-columns:1fr}}
.ab-side{min-width:0}
.ab-tern-wrap{max-width:340px;margin:0 auto}
.ab-tern{width:100%;height:auto;display:block}
.ab-tlab{font:600 11px var(--fb);letter-spacing:.08em;fill:#222}
.ab-leg{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;font-size:.8rem;color:var(--ink);margin-top:2px}
.ab-leg span{display:inline-flex;align-items:center;gap:6px}
.ab-m{display:inline-block;width:12px;height:12px;border-radius:50%}
.ab-m-base{border:2.5px solid #222;background:#fff}.ab-m-now{background:#222}
.ab-score{display:flex;align-items:baseline;gap:6px;position:relative;flex-wrap:wrap}
.ab-score-n{font-family:var(--fh);font-size:2.6rem;color:var(--olive);line-height:1}
.ab-score-of{color:var(--muted)}
.ab-info{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:italic 700 .8rem Georgia,serif;cursor:pointer;align-self:center}
.ab-info-text{flex-basis:100%;background:var(--sand-tint);border-radius:8px;padding:8px 10px;margin:6px 0 0;color:var(--ink)}
.ab-move{display:inline-block;margin:8px 0 4px;padding:5px 11px;border-radius:999px;font-size:.84rem;font-weight:600;background:var(--sand-tint);color:var(--ink)}
.ab-move-toward{background:var(--sage-tint);color:var(--olive)}.ab-move-toward::before{content:"↗ "}
.ab-move-steady::before{content:"→ "}.ab-move-away::before{content:"↘ "}
.ab-spark{width:120px;height:34px;display:block;margin-top:4px}
.ab-due{color:var(--muted);margin:8px 0 6px}
.ab-bars{margin:8px 0}
.ab-bar-row{display:grid;grid-template-columns:70px 1fr 42px;gap:8px;align-items:center;margin:6px 0}
.ab-bar-name{display:inline-flex;align-items:center;gap:6px;font-size:.88rem}.ab-bar-name i,.ab-chart-leg i,.ab-tip i{display:inline-block;width:10px;height:10px;border-radius:50%}
.ab-bar-track{position:relative;height:12px;background:#EFEBE1;border-radius:0 6px 6px 0}
.ab-bar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:0 6px 6px 0}
.ab-bar-ref{position:absolute;top:-3px;bottom:-3px;width:3px;margin-left:-1.5px;background:#222;border-radius:2px;z-index:1}
.ab-bar-val{font-size:.88rem;text-align:right;font-variant-numeric:tabular-nums}
.ab-type{font-family:var(--fh);font-size:1.4rem;color:var(--olive);margin:0}
.ab-note{background:var(--sage-tint);border-radius:10px;padding:10px 12px;margin:12px 0}
.ab-dcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:12px}
.ab-dcard{border:1px solid var(--line);border-top:4px solid;border-radius:10px;padding:10px 12px;background:var(--surface)}
.ab-dcard .small{color:var(--muted)}.ab-dcard p{margin:.4em 0 0}
.ab-dnum{font-family:var(--fh);font-size:1.5rem;color:var(--ink)}
.ab-drow{display:flex;justify-content:space-between;font-size:.88rem;margin-top:4px}
.ab-ddiff{font-weight:700;margin-top:4px}
.ab-steps{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 4px;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.ab-steps span+span::before{content:"→ ";color:var(--line)}
.ab-sv{max-width:640px}
.ab-prog{height:6px;background:#EFEBE1;border-radius:6px;overflow:hidden;margin-bottom:10px}.ab-prog span{display:block;height:100%;background:var(--sage)}
.ab-q{font-size:1.25rem}
.ab-opts{display:grid;gap:8px;margin-top:10px}
.ab-opt{text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font:inherit;color:var(--ink);cursor:pointer;min-height:48px}
.ab-opt:hover{border-color:var(--sage)}.ab-opt.on{border-color:var(--olive);background:var(--sage-tint);box-shadow:inset 0 0 0 1px var(--olive)}
.ab-unsure{background:transparent;color:var(--muted);border-style:dashed}
.ab-nav{display:flex;justify-content:space-between;gap:8px;margin-top:14px}
.leavemodal .box.ab-modal{max-width:620px;text-align:left;max-height:92vh;overflow:auto;padding:16px}
.ab-preview-tag{background:var(--ochre-tint);border-radius:8px;padding:6px 10px;font-size:.82rem;margin-bottom:8px}
.ab-support{border:1px solid var(--ochre);background:var(--ochre-tint);border-radius:10px;padding:10px 12px;margin:10px 0}.ab-support p{margin:.3em 0}
.ab-support.urgent{border-color:var(--terracotta);background:var(--terra-tint)}.ab-support.soft{border-color:var(--line);background:var(--sand-tint)}
.ab-chart{position:relative}.ab-chart-svg{width:100%;height:auto;display:block;touch-action:pan-y}
.ab-ax{font:11px var(--fb);fill:#6B6B6B}.ab-el{font:600 12px var(--fb);fill:#222}
.ab-tip{position:absolute;top:6px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:6px 9px;font-size:.8rem;pointer-events:none;min-width:120px}
.ab-tip div{display:flex;align-items:center;gap:6px}
.ab-chart-leg{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;margin:0 0 4px}.ab-chart-leg span{display:inline-flex;align-items:center;gap:6px}
.ab-dash{width:18px!important;height:0!important;border-top:2px dashed #6B6B6B;border-radius:0!important}
.ab-table{margin-top:6px}.ab-table summary{cursor:pointer;font-size:.84rem;color:var(--muted)}
.ab-weeks{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.84rem;margin-top:6px}
.ab-support-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:560px){.ab-support-grid{grid-template-columns:1fr}}
.ab-ups{list-style:none;padding:0;margin:6px 0}.ab-ups li{padding:3px 0}.ab-ups li span{color:var(--olive);font-weight:700}
.ab-journey-line{font-family:var(--fh);font-size:1.4rem;color:var(--olive);margin:6px 0 2px}.ab-journey-line span[aria-hidden]{color:var(--muted);font-size:1rem}
.ab-insight{background:var(--sage-tint);border-radius:10px;padding:10px 12px;margin-top:12px}.ab-insight p{margin:.3em 0}
.ab-sugs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.ab-sug{border:1px solid var(--line);border-left:4px solid var(--sage);border-radius:10px;padding:10px 12px;background:var(--surface)}
.ab-sug p{margin:.3em 0 .5em}.ab-sug .btn{padding:6px 14px}
.ab-sug-nourish{border-left-color:var(--ochre)}.ab-sug-move{border-left-color:var(--terracotta)}.ab-sug-breathe{border-left-color:var(--sage)}.ab-sug-restore{border-left-color:var(--olive)}.ab-sug-rhythm{border-left-color:#8A7B63}
.ab-tl{list-style:none;padding:0 0 0 18px;margin:0;border-left:2px solid var(--line)}
.ab-tl li{position:relative;padding:0 0 14px 6px}.ab-tl li::before{content:"";position:absolute;left:-26px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--sage)}
.ab-tl .btn{padding:3px 10px;margin-top:4px}.ab-tl-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ab-refl{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.ab-refl p{margin:.2em 0 0}
.ab-answers{padding-left:18px}.ab-answers li{margin:4px 0}
.aba-q{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0;background:var(--surface)}
.aba-qhead{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.aba-qhead .btn{padding:3px 9px}
.aba-opts input{min-width:0}.aba-draftbar{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;background:var(--ochre-tint);border-radius:8px;padding:8px 10px;margin:8px 0}
.aba-read li.off{opacity:.55}.aba-read ul{margin:.2em 0 .6em}
.aba-tpl{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0;background:var(--surface)}


.wrap{max-width:840px;margin:0 auto;padding:0 22px}
h1,h2,h3{font-family:var(--fh);font-weight:600;line-height:1.2;margin:0}
a{color:var(--sage)}
header.site{position:sticky;top:0;z-index:20;background:var(--canvas);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:840px;margin:0 auto;padding:12px 22px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;cursor:pointer}
.brand .mark{width:32px;height:32px;border:1.5px solid var(--olive);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--fh);color:var(--olive);font-size:.85rem}
.brand .logo-img{height:90px;width:auto;max-width:220px;object-fit:contain;display:block}
@media (max-width:980px){ .brand .logo-img{height:78px} }
.brand b{font-family:var(--fh);font-weight:600;font-size:1.1rem}
nav a{color:var(--muted);font-size:.86rem;font-weight:600;padding:8px 10px;border-radius:8px;cursor:pointer}
nav a:hover{color:var(--ink);background:var(--surface-2);text-decoration:none}
nav a.on{color:var(--olive);background:var(--sage-tint)}
nav a.cta{background:var(--terracotta);color:#fff}
nav{display:flex;flex-wrap:wrap;gap:2px;align-items:center;justify-content:flex-end}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:9px;color:var(--olive);font-size:1.35rem;line-height:1;padding:5px 13px;cursor:pointer}
@media (max-width:760px){
  /* Comfortable tap targets on the tap-dense member Food Diary. */
  #fooddiary-app .btn, #fooddiary-app .chip{min-height:40px;display:inline-flex;align-items:center;justify-content:center}
  #fooddiary-app input, #fooddiary-app textarea, #fooddiary-app select{min-height:42px}
  #fooddiary-app textarea{min-height:64px}
  .bar{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px}
  .brand{justify-content:flex-start}
  .brand .logo-img{height:58px}
  .nav-toggle{display:inline-flex;align-items:center}
  nav{display:none;flex-direction:column;align-items:stretch;width:100%;order:3;gap:3px;margin-top:2px}
  nav.open{display:flex}
  nav a{white-space:normal;flex:none;padding:13px 14px;border-radius:10px;font-size:1rem}
  nav a.cta{text-align:center}
}
.navgroup{position:relative;display:flex;align-items:center}
.navtop{color:var(--muted);font-size:.86rem;font-weight:600;padding:8px 10px;border-radius:8px;cursor:pointer;background:none;border:0;font-family:inherit;display:inline-flex;align-items:center;gap:5px}
.navtop:hover{color:var(--ink);background:var(--surface-2)}
.navgroup.active .navtop{color:var(--olive);background:var(--sage-tint)}
.navtop .caret{font-size:.68rem;transition:transform .15s}
.navmenu{display:none;position:absolute;top:100%;left:0;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);min-width:190px;padding:6px;z-index:60;margin-top:4px}
.navmenu a{display:block;padding:9px 12px;border-radius:8px;white-space:nowrap;font-size:.9rem}
.navgroup:hover .navmenu,.navgroup.open .navmenu{display:block}
.navgroup:hover .caret,.navgroup.open .caret{transform:rotate(180deg)}
@media (max-width:760px){
  .navgroup{display:block;width:100%}
  .navtop{width:100%;justify-content:space-between;padding:13px 14px;border-radius:10px;font-size:1rem}
  .navmenu{position:static;box-shadow:none;border:0;border-radius:0;padding:0 0 4px 12px;min-width:0;margin:0}
  .navgroup:hover .navmenu{display:none}
  .navgroup.open .navmenu{display:block}
  .navmenu a{font-size:.98rem;padding:11px 12px}
}
.leavemodal{position:fixed;inset:0;background:rgba(30,28,22,.45);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}
.leavemodal .box{background:var(--surface,#fff);border-radius:16px;max-width:390px;width:100%;padding:24px;box-shadow:var(--shadow)}
.leavemodal h3{color:var(--olive);margin:0 0 .35em}
.leavemodal p{color:var(--muted);margin:0}
.leavemodal .row{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.leavemodal .row .btn{flex:1;min-width:130px}
.hero{background:linear-gradient(160deg,var(--olive),var(--sage));color:#F4F1E8;padding:44px 0;border-bottom:3px solid var(--ochre)}
.hero .eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;font-weight:600;color:#EDE7D6}
.hero h1{color:#FBFAF5;font-size:2.2rem;margin:.15em 0 .1em;max-width:16ch}
.hero p{color:#F1EEE4;max-width:46ch;margin:0}
.hero .btns{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
main{padding:22px 0 70px}
.page{display:none}.page.on{display:block}
.section h2{font-size:1.5rem;color:var(--olive)}
.rule{width:48px;height:3px;background:var(--terracotta);border-radius:3px;margin:5px 0 14px}
.status{font-size:.82rem;padding:9px 13px;border-radius:10px;margin:14px 0;border:1px solid var(--line);background:var(--surface)}
.status.ok{border-left:4px solid var(--sage);background:var(--sage-tint)}
.status.warn{border-left:4px solid var(--ochre);background:var(--ochre-tint)}
.status.err{border-left:4px solid var(--terracotta);background:var(--terra-tint)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow);margin-bottom:16px}
.card.cl{border-top:4px solid var(--sage)}
label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 0 6px}
label:first-child{margin-top:0}
select,input{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);color:var(--ink);font-family:var(--fb);font-size:.94rem}
.btn{background:var(--terracotta);color:#fff;border:0;border-radius:10px;padding:11px 18px;font-weight:700;cursor:pointer;font-family:var(--fb);text-decoration:none;display:inline-block}
.btn.sage{background:var(--sage)}.btn.olive{background:var(--olive)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}
.who{color:var(--sage);font-weight:600;font-size:.92rem;margin-top:6px}
.days{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px}
.days button{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:7px 11px;font-size:.82rem;color:var(--ink);cursor:pointer}
.days button.on{background:var(--sage);color:#fff;border-color:var(--sage)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin-top:8px}
.slot{background:var(--sage-tint);border:1px solid var(--sage);color:var(--olive);border-radius:9px;padding:10px 4px;font-weight:700;font-size:.9rem;text-align:center;cursor:pointer;font-variant-numeric:tabular-nums}
.slot:hover{background:var(--sage);color:#fff}
.meta{color:var(--terracotta);font-weight:700;font-size:.92rem;margin:.2em 0 .5em}
.foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.price{font-family:var(--fh);font-size:1.3rem;color:var(--olive);font-weight:600}
.soon{color:var(--muted);font-size:.9rem;font-style:italic}
.empty{color:var(--muted);font-size:.92rem}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.small{font-size:.85rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:6px 0 16px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
.tile .k{font-family:var(--fh);font-size:1.8rem;color:var(--terracotta);font-weight:600;line-height:1}
.tile .l{font-size:.76rem;color:var(--muted);margin-top:4px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:16px}
table{border-collapse:collapse;width:100%;font-size:.9rem;background:var(--surface)}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}
th{background:var(--surface-2);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
tr:last-child td{border-bottom:0}
td.num{text-align:right;font-variant-numeric:tabular-nums}
.pill{display:inline-block;border-radius:999px;padding:2px 9px;font-size:.68rem;font-weight:700}
.pill.low{background:var(--terra-tint);color:var(--terracotta)}.pill.ok{background:var(--sage-tint);color:var(--sage)}
.subtabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.subtabs button{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:8px 14px;font-weight:600;font-size:.86rem;cursor:pointer;color:var(--ink)}
.subtabs button.on{background:var(--olive);color:#fff;border-color:var(--olive)}
.note{font-size:.82rem;color:var(--muted);background:var(--sage-tint);border-left:3px solid var(--sage);padding:9px 12px;border-radius:8px;margin:8px 0 16px}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--olive);color:#fff;padding:12px 20px;border-radius:12px;box-shadow:var(--shadow);font-weight:600;font-size:.92rem;z-index:60;opacity:0;transition:opacity .2s;max-width:90vw;text-align:center}
.toast.show{opacity:1}.toast.bad{background:var(--crit)}
footer.site{background:var(--olive);color:#EDEADD;padding:26px 0;margin-top:20px;font-size:.82rem}
footer.site a{color:#EDEADD}
/* ---- Wellbeing app (Practices) ---- */
.wb-wrap{max-width:980px;margin:0 auto;padding:18px 18px 96px}
.wb-hi{font-family:var(--fh);font-size:1.6rem;color:var(--olive);margin:.1em 0}
.wb-sub{color:var(--muted);margin:.1em 0 8px}
.wb-h{font-family:var(--fh);color:var(--ink);font-size:1.08rem;margin:22px 0 10px;display:flex;align-items:center;justify-content:space-between}
.wb-h a{font-size:.82rem;color:var(--sage);font-weight:600;cursor:pointer}
.feelgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:11px}
.feel{border:0;border-radius:16px;padding:15px 13px;cursor:pointer;font-family:var(--fh);font-weight:600;color:#37372b;text-align:left;min-height:76px;display:flex;align-items:flex-end;box-shadow:var(--shadow);transition:transform .15s}
.feel:hover{transform:translateY(-2px)}
.rail{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.ccard{flex:0 0 208px;scroll-snap-align:start;border-radius:15px;overflow:hidden;background:var(--canvas);cursor:pointer;border:1px solid var(--line);transition:transform .15s,box-shadow .15s}
.ccard:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.ccard .cover{height:120px;background-size:cover;background-position:center;position:relative;display:flex;align-items:flex-end;justify-content:space-between;padding:9px}
.ccard .cbadge{font-size:.7rem;background:rgba(30,30,20,.42);color:#fff;padding:2px 9px;border-radius:999px}
.ccard .cdur{font-size:.7rem;background:rgba(30,30,20,.42);color:#fff;padding:2px 8px;border-radius:999px}
.ccard .cbody{padding:10px 12px 13px}
.ccard .ctitle{font-family:var(--fh);font-weight:600;color:var(--ink);font-size:.97rem;line-height:1.22}
.ccard .cmeta{color:var(--muted);font-size:.78rem;margin-top:3px}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:15px}
.grid-cards .ccard{flex:none}
.wb-filters{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 14px}
.chip{border:1px solid var(--line);background:var(--canvas);border-radius:999px;padding:6px 13px;font-size:.85rem;cursor:pointer;color:var(--muted);white-space:nowrap}
.chip.on{background:var(--sage-tint);color:var(--olive);border-color:var(--sage);font-weight:600}
.player{max-width:520px;margin:0 auto;padding:6px 18px 96px;text-align:center}
.player .pcover{width:100%;max-width:330px;aspect-ratio:1;margin:8px auto 18px;border-radius:24px;background-size:cover;background-position:center;box-shadow:var(--shadow)}
.player .ptitle{font-family:var(--fh);font-size:1.55rem;color:var(--olive);margin:.1em 0;line-height:1.15}
.player .pfac{color:var(--muted);margin:.1em 0 .2em}
.player .pchips{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:.5em 0}
.player .pchip{background:var(--sage-tint);color:var(--olive);border-radius:999px;padding:3px 11px;font-size:.78rem}
.player .pdesc{color:var(--muted);font-size:.9rem;max-width:44ch;margin:.4em auto 0}
.pbar{height:6px;background:var(--surface-2);border-radius:999px;margin:18px 0 6px;cursor:pointer;position:relative}
.pbar>div{height:100%;background:var(--sage);border-radius:999px;width:0}
.ptimes{display:flex;justify-content:space-between;color:var(--muted);font-size:.78rem}
.pctrls{display:flex;align-items:center;justify-content:center;gap:20px;margin:16px 0 4px}
.pbtn{border:0;background:none;cursor:pointer;color:var(--olive);font-size:1.35rem;line-height:1}
.pplay{width:68px;height:68px;border-radius:50%;background:var(--olive);color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;border:0;cursor:pointer;box-shadow:var(--shadow)}
.psecondary{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:10px}
.psecondary button{border:0;background:none;cursor:pointer;color:var(--muted);font-size:.76rem;display:flex;flex-direction:column;align-items:center;gap:3px}
.psecondary button .ic{font-size:1.15rem}
.psecondary button.act{color:var(--terracotta)}
.breathe-ring{width:210px;height:210px;margin:26px auto;border-radius:50%;background:radial-gradient(circle at 50% 45%,var(--sage-tint),var(--sage));display:flex;align-items:center;justify-content:center;color:var(--olive);font-family:var(--fh);font-size:1.15rem;box-shadow:var(--shadow);transition:transform 1s linear}
.wb-bottom{display:none}
@media (max-width:760px){
  .wb-wrap,.player{padding-bottom:82px}
  .feelgrid{grid-template-columns:repeat(2,1fr)}
  .wb-bottom{display:flex;position:fixed;left:0;right:0;bottom:0;background:var(--canvas);border-top:1px solid var(--line);z-index:40;justify-content:space-around;padding:6px 0 9px}
  .wb-bottom button{border:0;background:none;color:var(--muted);font-size:.66rem;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;flex:1}
  .wb-bottom button.on{color:var(--olive)}
  .wb-bottom .ic{font-size:1.15rem}
}
.ci-single,.ci-rating{display:flex;gap:8px;flex-wrap:wrap}
.ci-opt{border:1px solid var(--line);background:var(--canvas);color:var(--ink);border-radius:999px;padding:7px 15px;cursor:pointer;font-family:var(--fb);font-size:.9rem}
.ci-opt.on{background:var(--sage);border-color:var(--sage);color:#fff}
.ci-multi{display:flex;flex-direction:column;gap:6px}
.ci-check{display:flex;align-items:center;gap:8px;font-size:.92rem;text-transform:none;letter-spacing:0;font-weight:400}
.ci-check input{width:auto}
/* breathing visuals */
.bv{position:relative;width:230px;height:230px;margin:14px auto 6px;display:flex;align-items:center;justify-content:center}
.bv-word{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--olive);font-family:var(--fh);font-size:1.05rem;letter-spacing:.03em;pointer-events:none;text-align:center}
.bv-scale{transform:scale(.85);will-change:transform,opacity}
.bv-circle{width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 50% 38%,var(--sage-tint),var(--sage));box-shadow:0 10px 34px rgba(122,132,113,.35)}
.bv-orb{width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 50% 42%,#ffffffcc,var(--sage) 58%,var(--olive));box-shadow:0 0 46px 10px rgba(122,132,113,.45)}
.bv-bars{display:flex;gap:9px;align-items:flex-end;height:150px}
.bv-bars i{display:block;width:15px;height:100%;border-radius:9px;background:linear-gradient(var(--sage-tint),var(--olive))}
.bv-square{width:150px;height:150px;border-radius:22px;background:linear-gradient(140deg,var(--sage-tint),var(--sage));box-shadow:0 10px 30px rgba(122,132,113,.3)}
.bv-track{position:absolute;width:180px;height:180px;border-radius:50%;border:2px dashed var(--line)}
.bv-orbit{position:absolute;width:180px;height:180px;transform:rotate(0deg);will-change:transform}
.bv-dot{position:absolute;top:-10px;left:50%;margin-left:-10px;width:20px;height:20px;border-radius:50%;background:var(--terracotta);box-shadow:0 0 18px var(--terracotta)}
.bv-pick{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:2px 0 4px}
.bv-pick button{border:1px solid var(--line);background:var(--canvas);color:var(--ink);border-radius:999px;padding:6px 13px;cursor:pointer;font-family:var(--fb);font-size:.85rem}
.bv-pick button.on{background:var(--olive);border-color:var(--olive);color:#fff}
/* search + ambience mixer */
.wb-search{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--canvas);color:var(--ink);font-family:var(--fb);font-size:.95rem;margin:8px 0 4px}
.amb-sheet{position:fixed;left:0;right:0;bottom:60px;max-width:640px;margin:0 auto;background:var(--canvas);border:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:0 -10px 34px rgba(0,0,0,.16);padding:14px 16px 18px;z-index:60}
.amb-sheet h4{margin:0 0 .1em;color:var(--olive)}
.amb-list{display:flex;flex-direction:column;gap:8px;margin:.6em 0;max-height:38vh;overflow:auto}
.amb-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;padding:9px 12px}
.amb-item button{border:1px solid var(--line);background:var(--canvas);color:var(--ink);border-radius:999px;padding:6px 14px;cursor:pointer;font-family:var(--fb);font-size:.85rem}
.amb-item button.on{background:var(--sage);border-color:var(--sage);color:#fff}
.amb-vol{display:flex;align-items:center;gap:10px;margin-top:6px}
.amb-vol input{flex:1}
.amb-fab{display:none;position:fixed;right:20px;bottom:20px;z-index:55;background:var(--olive);color:#fff;border:0;border-radius:999px;padding:12px 20px;font-family:var(--fb);font-size:.92rem;cursor:pointer;box-shadow:0 10px 28px rgba(0,0,0,.22)}
@media (min-width:761px){ .amb-fab.show{display:inline-flex;align-items:center;gap:6px} }
/* wellbeing race */
.race-hero{background:linear-gradient(135deg,var(--olive),var(--sage));color:#F4F1E8;border-radius:14px;padding:16px 18px}
.race-stats{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px}
.race-stats .n{font-family:var(--fh);font-size:1.5rem;line-height:1}
.race-stats .l{font-size:.72rem;opacity:.85;text-transform:uppercase;letter-spacing:.08em}
.race-track{display:flex;flex-direction:column;margin:.4em 0}
.race-step{display:flex;align-items:flex-start;gap:10px;padding:10px 0 10px 16px;border-left:3px solid var(--line);position:relative}
.race-step .dot{position:absolute;left:-9px;top:12px;width:15px;height:15px;border-radius:50%;background:var(--line)}
.race-step.reached{border-left-color:var(--sage)}
.race-step.reached .dot{background:var(--sage)}
.race-step.current .dot{background:var(--terracotta);box-shadow:0 0 0 4px var(--terra-tint)}
.race-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;margin:.3em 0}
.race-row.me{background:var(--sage-tint);border-color:var(--sage)}
.race-row .rk{font-family:var(--fh);color:var(--olive);min-width:26px;text-align:center}
.race-row .pt{margin-left:auto;font-weight:700;color:var(--olive)}
.community-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.community-btn{display:flex;align-items:center;gap:12px;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--canvas);color:var(--ink);text-decoration:none;font-weight:600;transition:transform .12s,box-shadow .12s}
.community-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12);text-decoration:none}
.community-btn .ico{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex:0 0 auto}
.community-btn .ig{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF)}
.community-btn .wa{background:#25D366}
@media (max-width:520px){ .community-grid{grid-template-columns:1fr} }
/* ---- Wellbeing Race characters ---- */
.char{display:inline-block;border-radius:50%;overflow:hidden;background:var(--sand-tint);flex:0 0 auto;line-height:0}
.char svg,.char img{display:block;width:100%;height:100%}
.char-idle{animation:charFloat 3.4s ease-in-out infinite;transform-origin:50% 60%}
@keyframes charFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:12px;margin:.6em 0}
.char-tile{border:1px solid var(--line);border-radius:14px;padding:10px 8px 8px;background:var(--canvas);cursor:pointer;text-align:center;transition:transform .12s,box-shadow .12s,border-color .12s;position:relative}
.char-tile:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.08)}
.char-tile.on{border-color:var(--sage);box-shadow:0 0 0 2px var(--sage)}
.char-tile.locked{opacity:.6;cursor:default}
.char-tile.locked:hover{transform:none;box-shadow:none}
.char-tile .nm{font-size:.76rem;margin-top:6px;color:var(--ink);font-family:var(--fb);line-height:1.15}
.char-lock{position:absolute;top:6px;right:8px;font-size:.9rem}
.char-req{font-size:.66rem;color:var(--muted);margin-top:3px;line-height:1.1}
.char-viewer{display:flex;align-items:center;gap:8px;justify-content:center;margin:.4em 0}
.char-viewer .nav{border:1px solid var(--line);background:var(--canvas);border-radius:50%;width:40px;height:40px;font-size:1.2rem;cursor:pointer;flex:0 0 auto;color:var(--olive)}
.char-stage{text-align:center;min-width:0;flex:1}
.char-stage .big{margin:0 auto}
.char-stage .nm{font-family:var(--fh);color:var(--olive);font-size:1.15rem;margin-top:8px}
.char-stage .ds{color:var(--muted);font-size:.85rem;margin-top:2px;min-height:2.4em}
.course{margin:.4em 0}
.lane{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid var(--line)}
.lane:first-child{border-top:0}
.lane .track{position:relative;flex:1;height:8px;border-radius:999px;background:var(--sand-tint);min-width:64px}
.lane .fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,var(--sage),var(--olive))}
.lane .runner{position:absolute;top:50%;transform:translate(-50%,-50%);transition:left .7s ease}
.lane .who{min-width:70px;font-size:.8rem;color:var(--ink)}
.lane .pts{font-weight:700;color:var(--olive);min-width:42px;text-align:right;font-size:.85rem}
.lane.me{background:var(--sage-tint);border-radius:10px;padding-left:8px;padding-right:8px}
.char-pop{animation:charPop .8s ease}
@keyframes charPop{0%{transform:scale(1)}30%{transform:scale(1.18) rotate(-6deg)}60%{transform:scale(1.06) rotate(4deg)}100%{transform:scale(1)}}
.pts-fly{position:fixed;z-index:120;font-family:var(--fh);color:var(--sage);font-size:1.25rem;pointer-events:none;animation:ptsFly 1.5s ease forwards}
@keyframes ptsFly{0%{opacity:0;transform:translateY(8px)}20%{opacity:1}100%{opacity:0;transform:translateY(-34px)}}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:119;overflow:hidden}
.confetti i{position:absolute;top:-12px;width:8px;height:12px;border-radius:2px;animation:confFall linear forwards}
@keyframes confFall{to{transform:translateY(106vh) rotate(560deg)}}
@media (prefers-reduced-motion:reduce){ .char-idle,.char-pop,.pts-fly{animation:none} .confetti{display:none} }
/* ---- Homepage audience pathways ---- */
.pathways{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pathway{background:var(--canvas);border:1px solid var(--line);border-radius:16px;padding:24px 20px;text-align:center;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center}
.pathway .pw-ico{width:52px;height:52px;border-radius:14px;background:var(--sage-tint);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.pathway h3{color:var(--olive);margin:.1em 0 .25em;font-size:1.15rem}
.pathway p{color:var(--muted);font-size:.92rem;margin:0 0 16px;flex:1}
.pathway .btn{width:100%}
@media (max-width:720px){ .pathways{grid-template-columns:1fr} }
/* ---------- Open Day ---------- */
.od-hero{background:var(--sage-tint);border:1px solid var(--line);border-radius:16px;padding:26px 22px;margin:0 0 18px}
.od-hero h1{color:var(--olive);font-size:clamp(1.6rem,4vw,2.3rem);margin:0 0 .2em}
.od-hero .od-meta{color:var(--olive);font-weight:600;margin:.1em 0 .6em}
.od-hero .od-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.od-band{margin:22px 0}
.od-band h2,.od-sched h2{color:var(--olive);font-size:1.3rem;margin:0 0 4px}
/* Moving sponsor banner */
.od-marquee{overflow:hidden;position:relative;width:100%;padding:10px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.od-track{display:flex;width:max-content;align-items:center;gap:46px;animation:odscroll var(--od-dur,40s) linear infinite}
.od-marquee:hover .od-track{animation-play-state:paused}
.od-track a,.od-track span.od-logo{flex:none;display:inline-flex;align-items:center;justify-content:center}
.od-track img{height:70px;width:auto;max-width:200px;object-fit:contain;display:block;transition:transform .15s}
.od-track a:hover img{transform:scale(1.05)}
@keyframes odscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){ .od-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto} }
@media (max-width:760px){ .od-track img{height:52px;max-width:150px} .od-track{gap:30px} }
/* Schedule */
.od-filters{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.od-scard{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px;margin:0 0 10px;display:flex;gap:14px;align-items:flex-start}
.od-scard .od-time{flex:none;min-width:88px;font-weight:700;color:var(--olive);font-size:.9rem;line-height:1.35}
.od-scard .od-body{flex:1;min-width:0}
.od-scard h3{color:var(--olive);font-size:1.08rem;margin:0 0 2px}
.od-scard .od-fac{color:var(--muted);font-size:.9rem;margin:0}
.od-scard .od-tags{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 0;align-items:center}
.od-pill{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:2px 8px;border-radius:999px;background:var(--sage-tint);color:var(--olive)}
.od-pill.full{background:#f3d9d2;color:var(--terracotta)}
.od-pill.limited{background:#f6eccf;color:var(--ochre)}
.od-pill.cancelled{background:#eee;color:#888}
.od-scard.cancelled{opacity:.7}
.od-scard.cancelled h3{text-decoration:line-through}
.od-facimg{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none}
@media (max-width:600px){ .od-scard{flex-direction:column;gap:6px} .od-scard .od-time{min-width:0} }
/* ---------- Google review CTA (BHH-styled, no Google logo fabricated) ---------- */
.btn-review{display:inline-flex;align-items:center;gap:9px;background:var(--olive);color:#fff;border:0;border-radius:12px;padding:14px 24px;font-family:var(--fh);font-weight:600;font-size:1.02rem;line-height:1;cursor:pointer;text-decoration:none;box-shadow:var(--shadow);transition:transform .12s ease,background .15s ease,box-shadow .15s ease;min-height:48px}
.btn-review:hover{background:#3b4234;transform:translateY(-1px);text-decoration:none;color:#fff}
.btn-review:focus-visible{outline:3px solid var(--ochre);outline-offset:2px}
.btn-review .rv-star{color:var(--ochre);font-size:1.15rem;line-height:1}
@media (max-width:600px){ .btn-review{width:100%;justify-content:center} }
/* ---------- Newsletter subscription band (above the footer) ---------- */
.nlcta{background:var(--sage-tint);border-top:1px solid var(--line)}
.nlcta .nlcta-card{max-width:640px;margin:0 auto;padding:34px 22px;text-align:center}
.nlcta h2{color:var(--olive);font-size:clamp(1.3rem,3vw,1.7rem);margin:0 0 .3em}
.nlcta .nlcta-lead{color:var(--ink);opacity:.85;max-width:56ch;margin:0 auto .9em}
.nlcta-form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.nlcta-in{flex:1 1 190px;min-width:0;max-width:260px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);color:var(--ink);font-family:var(--fb);font-size:.96rem}
.nlcta-in:focus-visible{outline:2px solid var(--olive);outline-offset:1px}
.nlcta-btn{flex:0 0 auto;min-height:48px;padding:12px 22px}
.nlcta-consent{color:var(--muted);font-size:.8rem;max-width:52ch;margin:.9em auto 0}
.nlcta-msg{margin:.7em auto 0;max-width:52ch;font-size:.92rem}
.nlcta-msg.ok{color:var(--olive);font-weight:600}
.nlcta-msg.warn{color:var(--terracotta)}
@media (max-width:560px){ .nlcta-form{flex-direction:column;align-items:stretch} .nlcta-in{max-width:none;flex:1 1 auto} .nlcta-btn{width:100%} }
/* ---------- Admin grouped navigation ---------- */
.staff-shell{display:flex;gap:18px;align-items:flex-start}
.staff-nav{flex:0 0 236px;order:0;display:flex;flex-direction:column;gap:7px;position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto}
/* The staff menu is a <nav>, so it inherited the site header's centred, wrapping nav layout. Keep its groups full width. */
.staff-nav{align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}
.staff-body-wrap{flex:1 1 auto;min-width:0}
.navdash{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--olive);color:#fff;border:0;border-radius:11px;padding:12px 14px;font-family:var(--fh);font-weight:600;font-size:.98rem;cursor:pointer}
.navdash.on{box-shadow:0 0 0 2px var(--ochre)}
.navdash svg{flex:none}
.navgrp{border:1px solid var(--line);border-radius:11px;background:var(--surface);overflow:hidden}
.navgrp.active{border-color:var(--olive)}
.navgrp-head{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;padding:11px 13px;font-family:var(--fh);font-weight:600;font-size:.92rem;color:var(--ink);cursor:pointer}
.navgrp-head:hover{background:var(--surface-2)}
.navgrp.active .navgrp-head{color:var(--olive)}
.navgrp-ic{display:inline-flex;color:var(--olive);flex:none}
.navgrp-lbl{flex:1;min-width:0}
.navgrp-chev{transition:transform .18s ease;color:var(--muted);font-size:.72rem;flex:none}
.navgrp.open .navgrp-chev{transform:rotate(90deg)}
.navgrp-body{display:flex;flex-direction:column;gap:2px;padding:2px 8px 8px}
.navgrp-body[hidden]{display:none}
.navitem{text-align:left;background:none;border:0;border-radius:8px;padding:9px 12px 9px 36px;font-size:.9rem;color:var(--ink);cursor:pointer;font-family:inherit}
.navitem:hover{background:var(--sage-tint)}
.navitem.on{background:var(--sage-tint);color:var(--olive);font-weight:600}
.navsign{margin-top:4px;background:none;border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--muted);cursor:pointer;font-weight:600;font-family:inherit}
.navsign:hover{color:var(--ink);background:var(--surface-2)}
@media (max-width:820px){ .staff-shell{flex-direction:column} .staff-nav{position:static;flex:1 1 auto;width:100%;max-height:none;overflow:visible} .staff-body-wrap{width:100%} }
/* ---------- Newsletter builder: templates, block chooser, controls ---------- */
.nlt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:12px}
.nlt-card{display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;cursor:pointer;font-family:inherit;transition:border-color .12s,transform .12s}
.nlt-card:hover{border-color:var(--olive);transform:translateY(-1px)}
.nlt-thumb{display:block;height:86px;background:var(--canvas);border:1px solid var(--line);border-radius:8px;overflow:hidden;padding:4px}
.nlt-name{font-family:var(--fh);font-weight:600;color:var(--olive);font-size:.95rem}
.nlt-desc{color:var(--muted);font-size:.78rem;line-height:1.4}
.nlbk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.nlbk{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;gap:3px}
.nlbk:hover{border-color:var(--olive);background:var(--sage-tint)}
.nlbk b{color:var(--olive);font-size:.9rem}
.nlbk span{color:var(--muted);font-size:.76rem;line-height:1.35}
.nl-seg{display:inline-flex;flex-wrap:wrap;gap:4px;border:1px solid var(--line);border-radius:9px;padding:3px;background:var(--surface)}
.nl-seg button{background:none;border:0;border-radius:6px;padding:6px 12px;font-size:.85rem;font-weight:600;color:var(--ink);cursor:pointer;font-family:inherit}
.nl-seg button.on{background:var(--olive);color:#fff}
.nlcols{display:grid;grid-template-columns:1fr;gap:0}
@media (min-width:620px){ .nlcols{grid-template-columns:1fr 1fr;gap:10px} .nlcols .nlcol{margin-top:8px} }

/* ---------- Health Measurements (19-health-measurements.js) ---------- */
.hm-card{border-top-color:var(--sage)}
.hm-eyebrow{color:var(--sage);font-weight:700;letter-spacing:.04em}
.hm-tiles{margin:10px 0 14px}
.hm-tiles .hm-k{font-size:1.5rem;color:var(--olive)}
.hm-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.hm-2col input{width:100%;min-height:46px;font-size:16px}
.hm-unit{text-transform:none;font-weight:400;letter-spacing:0}
.hm-sub{color:var(--olive);margin:16px 0 0;font-size:1rem}
.hm-ratio{display:flex;justify-content:space-between;align-items:center;background:var(--sage-tint);border-radius:10px;padding:10px 14px;margin-top:12px}
.hm-ratio b{font-size:1.3rem;color:var(--olive)}
.hm-msg{color:var(--crit);margin-top:10px}
.hm-chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.hm-chips .chip{min-height:38px}
.hm-period{margin:4px 0 8px;color:var(--muted)}
.hm-sums{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.hm-sum{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--canvas)}
.hm-sum-l{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.hm-sum-v{font-family:var(--fh);font-size:1.45rem;color:var(--olive);font-weight:600;margin:2px 0}
.hm-sum-d{color:var(--muted)}
.hm-sum-c{color:var(--ink);margin-top:2px}
.hm-hist table{width:100%;border-collapse:collapse}
.hm-hist th,.hm-hist td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);font-size:.9rem;vertical-align:middle}
.hm-hist th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.hm-act{white-space:nowrap;text-align:right}
.hm-hist td{white-space:nowrap}
.hm-hist td:first-child{white-space:normal;min-width:120px}
.hm-act .btn{padding:6px 12px;margin-left:4px}
.hm-del{color:var(--terracotta)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* Phones and small tablets: each history row becomes a card, no sideways scrolling. */
@media (max-width:760px){
  .hm-hist thead{display:none}
  .hm-hist table,.hm-hist tbody,.hm-hist tr,.hm-hist td{display:block;width:100%}
  .hm-hist tr{border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:0 0 10px;background:var(--surface)}
  .hm-hist td{border:0;padding:3px 0;display:flex;justify-content:space-between;gap:10px}
  .hm-hist td[data-l]::before{content:attr(data-l);color:var(--muted);font-size:.8rem}
  .hm-hist td:first-child{border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:4px}
  .hm-hist td:first-child::before{content:none}
  .hm-act{justify-content:flex-end!important;padding-top:8px!important}
  .hm-act .btn{flex:1;min-height:42px;margin:0 0 0 6px}
  .hm-act .btn:first-child{margin-left:0}
}
@media (max-width:420px){ .hm-2col{grid-template-columns:1fr} }
@media (max-width:600px){ #hm-chartbox .ab-ax{font-size:20px} #hm-chartbox circle{r:6} #hm-chartbox path{stroke-width:3} }

/* ---------- Role-based navigation (20-access.js) ---------- */
.navgroup[hidden]{display:none!important}
@media (min-width:761px){ #nav-account .navmenu{left:auto;right:0} }

/* ---------- Workflows (21-workflows.js) ---------- */
.wf-head{display:flex;gap:12px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin:0 0 10px}
.wf-views{display:flex;gap:6px}
.wf-views .chip{min-height:40px;padding:8px 16px}
.wf-filters{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;padding:12px 14px}
.wf-f{flex:1 1 150px;min-width:140px}
.wf-f label{margin:0 0 4px}
.wf-f select,.wf-f input{width:100%;min-height:42px}
.wf-q{flex:2 1 220px}
.wf-hint{color:var(--muted);margin:4px 0 8px}
.wf-board{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 12px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.wf-col{flex:0 0 272px;background:var(--sand-tint);border-radius:12px;display:flex;flex-direction:column;max-height:78vh;scroll-snap-align:start;border:2px solid transparent}
.wf-col.over{border-color:var(--sage);background:var(--sage-tint)}
.wf-col-h{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-weight:700;color:var(--olive);border-top:4px solid var(--sage);border-radius:12px 12px 0 0;font-size:.92rem}
.wf-kind-won .wf-col-h{border-top-color:var(--good)} .wf-kind-lost .wf-col-h{border-top-color:var(--muted)}
.wf-count{background:var(--surface);border-radius:999px;padding:1px 9px;font-size:.8rem;color:var(--muted)}
.wf-col-body{padding:4px 8px 10px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.wf-empty{color:var(--muted);text-align:center;margin:10px 0}
.wf-card{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--line);border-radius:10px;padding:10px 11px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.wf-card:focus-visible,.wf-row:focus-visible{outline:3px solid var(--ochre);outline-offset:2px}
.wf-card.dragging{opacity:.5}
.wf-card-top{display:flex;justify-content:space-between;gap:6px;align-items:flex-start}
.wf-title{color:var(--ink);font-size:.95rem;line-height:1.25}
.wf-sub{color:var(--ink);margin-top:2px}
.wf-meta{color:var(--muted);margin-top:3px}
.wf-next{margin-top:6px;font-size:.88rem}
.wf-due{margin-top:4px;font-size:.84rem;font-weight:600}
.wf-foot{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--muted);margin-top:6px}
.wf-move{display:block;margin-top:8px}
.wf-move select{width:100%;min-height:38px;font-size:.85rem;padding:6px 8px}
/* Due states: symbol + words on the card, colour only as extra help */
.wf-due-overdue{border-left-color:var(--crit)} .wf-due-overdue .wf-due{color:var(--crit)}
.wf-due-today{border-left-color:var(--terracotta)} .wf-due-today .wf-due{color:var(--terracotta)}
.wf-due-soon{border-left-color:var(--ochre)} .wf-due-soon .wf-due{color:#8a6a1c}
.wf-due-done{border-left-color:var(--good)} .wf-due-done .wf-due{color:var(--good)}
.wf-due-normal .wf-due,.wf-due-none .wf-due{color:var(--muted)}
.wf-pri{font-size:.72rem;font-weight:700;border-radius:999px;padding:1px 8px;white-space:nowrap;background:var(--sand-tint);color:var(--ink)}
.wf-pri-urgent{background:#F6DEDA;color:#8E2F24} .wf-pri-high{background:var(--terra-tint);color:#8A4523} .wf-pri-low{background:var(--sage-tint);color:var(--olive)}
.wf-list td[data-l="Name"]{min-width:150px;white-space:normal}
.wf-row{cursor:pointer} .wf-row:hover{background:var(--sand-tint)}
.wf-sort{background:none;border:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;padding:0}
.wf-tl{list-style:none;margin:0;padding:0}
.wf-tl-day{font-weight:700;color:var(--olive);margin:12px 0 4px;font-family:var(--fh);font-size:1.05rem}
.wf-tl-i{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.wf-tl-when{color:var(--muted)}
.wf-link{background:none;border:0;padding:0;color:var(--olive);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.wf-modal .box.wf-detail{max-width:760px;width:100%;text-align:left;max-height:92vh;overflow:auto;padding:18px}
.wf-stagebar{background:var(--sage-tint);border-radius:12px;padding:10px 12px;margin:10px 0}
.wf-row2{display:flex;gap:8px;flex-wrap:wrap} .wf-row2 select{flex:1 1 180px;min-height:42px} .wf-row2 input{flex:2 1 200px;min-height:42px}
.wf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px} .wf-span2{grid-column:span 2}
.wf-grid input,.wf-grid select,.wf-grid textarea{width:100%;min-height:42px}
.wf-tasks{list-style:none;margin:6px 0;padding:0}
.wf-task{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:start;padding:8px 0;border-top:1px solid var(--line)}
.wf-task.done b{text-decoration:line-through;color:var(--muted)}
.wf-tick{width:32px;height:32px;border-radius:8px;border:2px solid var(--sage);background:var(--surface);color:var(--good);font-weight:700;cursor:pointer}
.wf-task.done .wf-tick{background:var(--sage-tint)}
.wf-mini{padding:5px 10px!important;font-size:.82rem}
.wf-addtask{margin:6px 0 4px} .wf-addtask summary,.wf-detail details summary{cursor:pointer;color:var(--olive);font-weight:600;padding:6px 0}
.wf-links{margin:4px 0;padding-left:18px}
.wf-results{display:flex;flex-direction:column;gap:4px;margin-top:4px;max-height:200px;overflow:auto}
.wf-result{text-align:left;background:var(--canvas);border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer;font:inherit}
.wf-result:hover{border-color:var(--sage)}
.wf-stage-row{display:grid;grid-template-columns:80px 1.2fr 1fr 1.4fr 70px auto;gap:8px;align-items:end;padding:8px 0;border-top:1px solid var(--line)}
.wf-stage-row input,.wf-stage-row select{width:100%;min-height:40px}
.wf-stage-row input[type=color]{padding:2px;height:40px}
.wf-ord,.wf-stage-btns{display:flex;gap:4px}
.wf-archived{opacity:.6}
.wf-check{display:flex;gap:8px;align-items:center;text-transform:none;letter-spacing:0;font-weight:400;font-size:.95rem;color:var(--ink)}
.wf-check input{width:auto;min-height:0}
.wf-dash .wf-dtile{text-align:left;cursor:pointer;font:inherit}
.wf-dash .wf-dtile:hover{border-color:var(--sage)}
.wf-dash .wf-alert{border-left:5px solid var(--crit)}
/* iPad portrait and phones: stages stack vertically (no sideways board), forms go single column */
@media (max-width:900px){
  .wf-board{flex-direction:column;overflow-x:visible}
  .wf-col{flex:1 1 auto;max-height:none}
  .wf-col-body{overflow:visible}
  .wf-stage-row{grid-template-columns:1fr 1fr;align-items:start}
  .wf-ord{grid-column:1/-1}
}
@media (max-width:600px){
  .wf-grid{grid-template-columns:1fr} .wf-span2{grid-column:auto}
  .wf-tl-i{grid-template-columns:1fr;gap:2px}
  .wf-stage-row{grid-template-columns:1fr}
  .wf-f{flex:1 1 45%;min-width:0}
  .wf-head .btn.olive{width:100%}
}
.wf-sortbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 8px}.wf-sortbar label{margin:0}.wf-sortbar select{min-height:40px;width:auto}
@media (max-width:900px){ .wf-col-body:has(> .wf-empty){display:none} .wf-col-h{border-radius:12px} }

/* ---------- Membership (22-membership.js) ---------- */
.ms-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.ms-plan{border-top:4px solid var(--sage);display:flex;flex-direction:column}
.ms-plan .ms-choose{margin-top:auto;align-self:flex-start;min-height:44px}
.ms-price{font-family:var(--fh);font-size:2rem;color:var(--olive);font-weight:600;line-height:1.1;margin:4px 0 2px}
.ms-price span{font-family:var(--fb);font-size:.85rem;color:var(--muted);font-weight:400;margin-left:6px}
.ms-inc{margin:6px 0;padding-left:18px;font-size:.9rem}
.ms-inc li{margin:2px 0}
.ms-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-left:4px solid var(--sage)}
.ms-spin{width:34px;height:34px;border-radius:50%;border:4px solid var(--sage-tint);border-top-color:var(--olive);animation:msspin 1s linear infinite;margin:10px 0}
@keyframes msspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){ .ms-spin{animation:none} }

/* ===== Marketing Workspace (28-marketing.js) ===== */
.mk{max-width:1040px}
.mk-top{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.mk-eyebrow,.mk-kicker{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--terracotta)}
.mk-h{font-family:var(--fh);font-size:2rem;color:var(--olive);margin:.1em 0 0;line-height:1.1}
.mk-h3{font-family:var(--fh);font-size:1.35rem;color:var(--olive);margin:.15em 0 .2em;line-height:1.2}
.mk-h4{font-family:var(--fh);font-size:1.05rem;color:var(--olive);margin:18px 0 8px}
.mk-sub,.mk-muted{color:var(--muted)}
.mk-weeknav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.mk-weeknav select{max-width:260px;min-height:42px}
.mk-weeknav .btn.ghost{padding:9px 14px}
.mk-tabs button,.mk-etabs button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 16px;font-weight:600;cursor:pointer;color:var(--ink);font-family:var(--fb)}
.mk-tabs button.on,.mk-etabs button.on{background:var(--olive);border-color:var(--olive);color:#fff}
.mk-plan{background:linear-gradient(135deg,var(--sand-tint),#fff 70%);border-top:4px solid var(--terracotta)}
.mk-plan-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.mk-theme{font-family:var(--fh);font-size:1.9rem;color:var(--olive);margin:.1em 0 .3em;line-height:1.15}
.mk-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;margin-top:6px}
.mk-span2{grid-column:1/-1}
.mk-lbl{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.mk-code{margin-top:14px;padding-top:10px;border-top:1px dashed var(--line)}
.mk-linkrow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0}
.mk-mini{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:3px 9px;font-size:.8rem;cursor:pointer;color:var(--ink);font-family:var(--fb)}
.mk-mini:disabled{opacity:.4;cursor:default}
.mk-tag{display:inline-block;border-radius:999px;padding:1px 9px;font-size:.72rem;font-weight:600;background:var(--surface-2);color:var(--muted)}
.mk-tag.ok{background:var(--sage-tint);color:var(--good)}
.mk-tag.bad{background:var(--terra-tint);color:var(--crit)}
.mk-pill{display:inline-block;border:1.5px solid;border-radius:999px;padding:1px 9px;font-size:.72rem;font-weight:700;letter-spacing:.02em;vertical-align:middle;background:#fff}
.mk-genbtns{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.mk-genbtns .btn:disabled{opacity:.5;cursor:not-allowed}
.btn.sage{background:var(--sage)}
.mk-small{padding:7px 13px;font-size:.88rem}
.mk-row{display:flex;gap:8px;align-items:center}
.mk-wrap{flex-wrap:wrap}
.mk-col{display:flex;flex-direction:column;gap:6px}
.mk-pair{display:flex;gap:8px;align-items:flex-start;margin:6px 0}
.mk-pair>input,.mk-pair>textarea{flex:1;min-width:0}
.mk-chips{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0}
.mk-x{border:0;background:transparent;color:var(--muted);font-size:1.2rem;cursor:pointer;padding:2px 6px;line-height:1}
.mk-cbrow{display:flex !important;align-items:center;gap:8px;text-transform:none !important;letter-spacing:0 !important;font-weight:400 !important;font-size:.92rem !important;color:var(--ink) !important;margin:6px 0 !important}
.mk-cbrow input{width:auto;min-height:0}
/* checklist */
.mk-check{border-top:4px solid var(--ochre)}
.mk-check-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px}
.mk-prog{min-width:200px}
.mk-prog-n{font-size:.95rem;margin-bottom:5px}
.mk-bar{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden}
.mk-bar span{display:block;height:100%;background:var(--sage);border-radius:99px;transition:width .3s}
.mk-tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.mk-task{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.mk-task.done{background:var(--sand-tint)}
.mk-task.done .mk-task-t{text-decoration:line-through;color:var(--muted)}
.mk-tick{margin:0;position:relative;flex:0 0 auto;cursor:pointer}
.mk-tick input{position:absolute;opacity:0;width:30px;height:30px;margin:0;cursor:pointer}
.mk-tick span{display:block;width:30px;height:30px;border:2px solid var(--stone,#A8A395);border-radius:9px;background:#fff}
.mk-tick input:checked+span{background:var(--terracotta);border-color:var(--terracotta)}
.mk-tick input:checked+span::after{content:"";position:absolute;left:10px;top:5px;width:8px;height:15px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}
.mk-tick input:focus-visible+span{outline:3px solid var(--sage);outline-offset:2px}
.mk-tick.auto{cursor:help}
.mk-tick.auto span{border-style:dashed}
.mk-tick.auto input{cursor:help}
.mk-task-main{flex:1;min-width:0}
.mk-task-t{font-weight:600;font-size:1rem}
.mk-task-m{font-size:.8rem;color:var(--muted);margin-top:2px}
.mk-task-m .late{color:var(--crit);font-weight:600}
.mk-open{border:1.5px solid var(--sage);color:var(--olive);background:transparent;border-radius:999px;padding:8px 16px;font-weight:700;letter-spacing:.06em;font-size:.8rem;cursor:pointer;white-space:nowrap;font-family:var(--fb)}
.mk-open:hover{background:var(--sage-tint)}
.mk-cheer{margin-top:10px;color:var(--olive);font-family:var(--fh);font-size:1.1rem}
.mk-tedit{display:flex;flex-direction:column;gap:8px}
.mk-terow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:8px}
.mk-terow>input:not([type=checkbox]){flex:2 1 220px;min-width:0}
.mk-terow>select{flex:1 1 150px;min-width:0}
.mk-terow>input[type=date]{flex:0 1 150px}
.mk-ord{display:flex;flex-direction:column;gap:2px}
/* chapters and items */
.mk-chapter{scroll-margin-top:80px}
.mk-flash{box-shadow:0 0 0 3px var(--ochre)}
.mk-ch-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:8px}
.mk-item{display:flex;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:8px;cursor:pointer;background:var(--surface)}
.mk-item:hover,.mk-item:focus-visible{border-color:var(--sage);outline:none;box-shadow:0 0 0 2px var(--sage-tint)}
.mk-item-main{flex:1;min-width:0}
.mk-item-t{font-weight:700;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mk-item-p{font-size:.9rem;margin-top:4px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.mk-item-media{display:flex;gap:4px;flex:0 0 auto}
/* sheets */
.mk-modal{align-items:flex-start;overflow:auto}
.mk-modal .box.mk-sheet{max-width:560px;text-align:left;margin:4vh auto;max-height:none}
.mk-modal .box.mk-sheet.wide{max-width:780px}
.mk-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.mk-sheet-head h3{margin:0}
.mk-sheet textarea,.mk-sheet input:not([type=checkbox]),.mk-sheet select{width:100%;box-sizing:border-box}
.mk-sheet textarea{font-family:var(--fb);font-size:15px;line-height:1.5;border:1px solid var(--line);border-radius:10px;padding:10px}
.mk-fs{border:0;padding:0;margin:0;min-width:0}
.mk-note{background:var(--ochre-tint);border-radius:10px;padding:10px 12px;font-size:.9rem;margin:10px 0}
.mk-note ul{margin:4px 0 0;padding-left:18px}
.mk-flags{background:var(--terra-tint);border-radius:12px;padding:10px 14px;margin-top:14px}
.mk-flags ul{margin:4px 0 6px;padding-left:18px;font-size:.9rem}
.mk-slide{display:flex;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px;margin:6px 0}
.mk-slide-n{width:28px;height:28px;border-radius:50%;background:var(--olive);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 auto}
.mk-mediapick{margin-top:12px}
.mk-mthumbs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.mk-mth{position:relative}
.mk-mth .mk-x{position:absolute;top:-8px;right:-8px;background:#fff;border-radius:50%;box-shadow:var(--shadow)}
.mk-addmedia{width:72px;height:72px;border:2px dashed var(--line);border-radius:10px;background:transparent;cursor:pointer;color:var(--muted);font-family:var(--fb)}
.mk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:10px}
.mk-gcell{display:flex;flex-direction:column;gap:4px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:8px;background:var(--surface);font-size:.8rem;cursor:pointer;text-align:left;font-family:var(--fb);color:var(--ink);min-width:0}
.mk-gcell>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.mk-gcell img,.mk-gcell video{width:100% !important;height:120px !important}
.mk-gprev{border:0;padding:0;background:transparent;cursor:pointer;width:100%}
.mk-mdet img,.mk-mdet video{max-width:100%;max-height:50vh;border-radius:12px;display:block;margin:0 auto}
/* previews */
.mk-pv{margin:12px 0}
.mk-pv-lbl{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.mk-ig,.mk-fb{max-width:380px;border:1px solid #dbdbdb;border-radius:10px;background:#fff;overflow:hidden;font-family:-apple-system,Segoe UI,Arial,sans-serif;font-size:14px;color:#111}
.mk-ig-h{display:flex;align-items:center;gap:8px;padding:10px}
.mk-av{width:32px;height:32px;border-radius:50%;background:var(--olive);color:#fff;font-size:.65rem;display:flex;align-items:center;justify-content:center;font-weight:700}
.mk-ig-m img,.mk-ig-m video,.mk-noimg{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;background:var(--surface-2)}
.mk-noimg{display:flex;align-items:center;justify-content:center;color:var(--muted)}
.mk-ig-c,.mk-fb-t{padding:10px;line-height:1.45;white-space:normal}
.mk-ig-tags{color:#00376b;margin-top:6px}
.mk-car{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}
.mk-car-s{flex:0 0 100%;scroll-snap-align:start;position:relative}
.mk-car-t{position:absolute;left:0;right:0;bottom:0;padding:18px;background:linear-gradient(transparent,rgba(34,34,34,.7));color:#fff;font-family:Georgia,serif;font-size:1.15rem;line-height:1.3}
.mk-car-n{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.55);color:#fff;border-radius:99px;padding:1px 8px;font-size:.75rem}
.mk-em{max-width:520px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;font-family:Arial,sans-serif}
.mk-em img{max-width:100%;border-radius:8px}
.mk-em h3{font-family:Georgia,serif;color:var(--olive)}
.mk-em-btn{display:inline-block;background:var(--terracotta);color:#fff;border-radius:8px;padding:10px 18px;font-weight:700}
.mk-wa{background:#ECE5DD;border-radius:12px;padding:14px;max-width:380px}
.mk-wa-b{background:#DCF8C6;border-radius:10px;padding:8px 10px;margin:6px 0 6px auto;max-width:85%;font-family:Arial,sans-serif;font-size:14px;box-shadow:0 1px 1px rgba(0,0,0,.08)}
/* publish */
.mk-status-line{margin:6px 0 10px}
.mk-job{border:1px solid var(--line);border-radius:12px;padding:10px;margin:8px 0}
.mk-pubform{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.mk-pubform input{flex:1 1 200px}
.mk-export{margin-top:16px;padding-top:10px;border-top:1px dashed var(--line)}
/* copy prompt */
.mk-steps{display:flex;flex-direction:column;gap:14px}
.mk-prompt{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:10px}
.mk-prompt pre{white-space:pre-wrap;font-size:.8rem;max-height:220px;overflow:auto;margin:8px 0 0;font-family:ui-monospace,Menlo,monospace}
/* calendar */
.mk-cal{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mk-cal-h,.mk-cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mk-cal-h div{background:var(--surface-2);font-size:.75rem;font-weight:700;padding:6px;text-align:center;color:var(--muted)}
.mk-cal-d{min-height:96px;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px;min-width:0}
.mk-cal-d:nth-child(7n+1){border-left:0}
.mk-cal-d.out{background:#FBFAF6;color:var(--muted)}
.mk-cal-d.wk{background:var(--sand-tint)}
.mk-cal-d.today .mk-cal-n{background:var(--terracotta);color:#fff;border-radius:99px;padding:0 6px}
.mk-cal-d.drop{outline:2px dashed var(--sage);outline-offset:-3px}
.mk-cal-n{font-size:.75rem;font-weight:700;align-self:flex-start}
.mk-cal-chip{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--muted);background:#fff;border-radius:6px;padding:3px 5px;font-size:.72rem;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--fb);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.mk-cal-chip .t{font-weight:700}
.mk-cal-chip .c{background:var(--surface-2);border-radius:4px;padding:0 3px;margin-right:2px;font-size:.65rem}
.mk-cal-chip.st-scheduled{border-left-color:var(--sage)}
.mk-cal-chip.st-approved{border-left-color:var(--olive)}
.mk-cal-chip.st-published{border-left-color:var(--good);opacity:.8}
.mk-cal-chip.st-failed{border-left-color:var(--crit)}
.mk-cal-chip.st-publishing{border-left-color:var(--sage);font-style:italic}
.mk-cal-chip.st-cancelled{border-left-color:var(--muted);text-decoration:line-through;opacity:.6}
.mk-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
/* results */
.mk-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.mk-tile{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface)}
.mk-tile-n{font-family:var(--fh);font-size:2rem;color:var(--olive);line-height:1}
.mk-tile-l{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sage);margin-top:6px}
.mk-tile-s{font-size:.8rem;color:var(--muted);margin-top:2px}
.mk-na{font-size:1rem;color:var(--muted);font-family:var(--fb)}
.mk-src{font-size:.78rem;color:var(--muted);margin:6px 0 4px}
.mk-na-box{background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:.88rem;margin:6px 0}
.mk-conn{margin:8px 0}
@media (max-width:700px){
  .mk-h{font-size:1.6rem}
  .mk-plan-grid{grid-template-columns:1fr}
  .mk-task{padding:10px;gap:10px;flex-wrap:wrap}
  .mk-task-main{flex-basis:calc(100% - 50px)}
  .mk-open{margin-left:44px}
  .mk-modal{padding:0}
  .mk-modal .box.mk-sheet,.mk-modal .box.mk-sheet.wide{margin:0;border-radius:0;min-height:100vh;padding:16px}
  .mk-cal-d{min-height:70px;padding:2px}
  .mk-cal-chip{font-size:.62rem;padding:2px 3px}
  .mk-cal-chip .c{display:none}
  .mk-item{flex-wrap:wrap}
  .mk-weeknav{width:100%}
  .mk-weeknav select{flex:1}
}
.mk-weeknav select{width:auto;flex:0 1 260px}
.mk label.btn,.mk-modal label.btn{text-transform:none;letter-spacing:0;font-size:1rem;margin:0;color:#fff;display:inline-block}
.mk-modal label.btn.ghost,.mk label.btn.ghost{color:var(--ink)}
.mk textarea{width:100%;box-sizing:border-box;font-family:var(--fb);font-size:15px;line-height:1.5;border:1px solid var(--line);border-radius:10px;padding:10px}
.mk input:not([type=checkbox]):not([type=file]){box-sizing:border-box}
/* client payments */
table.cp-sum th{text-align:left;font-weight:600;color:var(--muted);width:40%;white-space:nowrap;padding-right:12px}
table.cp-sum td,table.cp-sum th{padding:6px 8px;border-bottom:1px solid var(--line)}
.cp-filters label{margin-top:0}
.cp-filters select,.cp-filters input{min-width:140px}
#cps-cancel,#cps-refund,#se-prep,#se-cxl,#se-rfd{font-family:var(--fb);font-size:.94rem;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);color:var(--ink)}
table.acc-matrix td,table.acc-matrix th{vertical-align:middle}
.pill.neu{background:var(--sand);color:var(--ink)}
/* ---------- Free 7-Day Journey ---------- */
.jt-promo{display:grid;grid-template-columns:1fr;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;border-top:4px solid var(--sage)}
.jt-promo.has-img{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
.jt-promo-img{width:100%;height:100%;min-height:220px;object-fit:cover;display:block}
.jt-promo-body{padding:28px 30px}
.jt-promo-body h2{color:var(--olive);margin:.15em 0 .4em;font-family:var(--fh)}
.jt-promo-body p{margin:0 0 .7em}
.jt-promo-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.jt-eyebrow{display:inline-block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sage);font-weight:700}
.jt-note{color:var(--muted);margin:.8em 0 0}
.jt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.jt-grid>.card{margin:0}
.jt-days{padding-left:1.1em;margin:.6em 0}.jt-days li{margin:.25em 0}
.jt-promise{background:var(--sage-tint);border-left:4px solid var(--sage);border-radius:10px;padding:10px 14px;margin:12px 0}
.jt-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.jt-check{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;font-weight:400;margin:12px 0 0;line-height:1.45}
.jt-check input{width:auto;margin-top:3px;flex:none}
.jt-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.jt-head-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.jt-count{text-align:center;background:var(--sage-tint);border-radius:14px;padding:8px 14px;min-width:84px}
.jt-count b{display:block;font-family:var(--fh);font-size:1.5rem;color:var(--olive);line-height:1.1}.jt-count span{font-size:.78rem;color:var(--muted)}
.jt-bar{height:8px;background:var(--sand-tint);border-radius:999px;margin-top:12px;overflow:hidden}.jt-bar span{display:block;height:100%;background:var(--sage);border-radius:999px}
.jt-pause{border-left:4px solid var(--ochre)}
.jt-day{padding:16px 18px}.jt-day.today{border-left:4px solid var(--sage)}.jt-day.locked{background:var(--surface-2);box-shadow:none}
.jt-day-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.jt-dnum{font-family:var(--fh);font-size:1.15rem;color:var(--olive);font-weight:600}
.jt-item{border-top:1px solid var(--line);padding:12px 0 4px}.jt-item:first-of-type{border-top:0;padding-top:4px}
.jt-item-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px}
.jt-ic{color:var(--sage);width:1.2em;text-align:center}
.jt-item p{margin:0 0 .5em}.jt-item .btn{margin-top:4px}
.jt-item textarea{width:100%}
.jt-locked .jt-lock-list{display:flex;flex-wrap:wrap;gap:8px}
.jt-lock{border:1px dashed var(--line);background:var(--canvas);border-radius:999px;padding:7px 14px;font-size:.88rem;color:var(--muted);cursor:pointer;font-family:inherit}
.jt-lock:hover,.jt-lock:focus-visible{border-color:var(--sage);color:var(--olive)}
.jt-foot{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:16px 0 8px}
.jt-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:6px 0 12px}
.jt-stats div{background:var(--sand-tint);border-radius:12px;padding:10px;text-align:center}
.jt-stats b{display:block;font-family:var(--fh);font-size:1.5rem;color:var(--olive)}.jt-stats span{font-size:.78rem;color:var(--muted)}
.jt-cmp td,.jt-cmp th{text-align:center}.jt-cmp td:first-child,.jt-cmp th:first-child{text-align:left}
.jt-offer{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-left:4px solid var(--sage)}
.jt-terms ul{margin:.4em 0;padding-left:1.1em}.jt-terms li{margin:.25em 0;font-size:.92rem}
.jt-prac-banner{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--sage-tint);border-radius:12px;padding:10px 14px;margin:0 0 12px;font-size:.9rem;color:var(--olive)}
.jt-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.jt-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.jt-filters>div{flex:1 1 150px}
.jt-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.jt-ev{padding-left:1.1em;max-height:220px;overflow:auto}
.jt-funnel .jt-frow{display:grid;grid-template-columns:minmax(120px,1.2fr) 2fr 48px;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.jt-fbar{height:10px;background:var(--sand-tint);border-radius:999px;overflow:hidden}.jt-fbar i{display:block;height:100%;background:var(--sage)}
.jt-funnel b{text-align:right}
@media (max-width:860px){ .jt-promo.has-img,.jt-grid{grid-template-columns:1fr} .jt-promo-img{min-height:180px;max-height:240px} .jt-promo-body{padding:22px 20px} }
@media (max-width:520px){ .jt-two{grid-template-columns:1fr} .jt-stats{grid-template-columns:1fr 1fr 1fr;gap:6px} .jt-promo-btns .btn{flex:1 1 100%} .jt-head-top h2{font-size:1.3rem} }
.jt-promo-wrap{margin-top:18px}
/* Staff menu: scrolls on its own (mouse wheel, trackpad, touch) without moving the page; groups never get squashed */
.staff-nav{max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding-right:2px;scrollbar-width:thin}
.staff-nav>*{flex-shrink:0}
.staff-nav::-webkit-scrollbar{width:6px}.staff-nav::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
.navitem.on{box-shadow:inset 3px 0 0 var(--olive)}
@media (max-width:820px){ .staff-nav{max-height:none;overflow:visible} }

/* ===== Batch A: newsletters and What's On ===== */
/* The member page shows the newsletter in the same layout as the Admin preview, in a frame sized to its content. */
.nl-frame{width:100%;border:0;display:block;min-height:200px;background:transparent}
.nl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.nl-card{cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;margin:0}
.nl-card:focus-visible{outline:3px solid var(--sage);outline-offset:2px}
/* Cover images are shown whole (never cropped): letterboxed on sand if their shape differs. */
.nl-card-img{align-self:stretch;background:var(--sand-tint);border-radius:10px;overflow:hidden;margin:0 0 10px;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}
.nl-card-img img{width:100%;height:100%;object-fit:contain;display:block}
.wo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.wo-card{margin:0}
.wo-img{background:var(--sand-tint);border-radius:8px;margin-bottom:8px;overflow:hidden}
.wo-img img{display:block;width:100%;height:auto;max-height:260px;object-fit:contain;margin:0 auto}
.nl-undo{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--olive);color:#fff;padding:10px 12px 10px 16px;border-radius:12px;display:flex;gap:12px;align-items:center;z-index:300;box-shadow:0 6px 20px rgba(0,0,0,.18);max-width:calc(100vw - 32px)}
.nl-undo .btn{color:#fff;border-color:rgba(255,255,255,.6);padding:4px 12px;background:transparent}
.leavemodal.nl-pvm{padding:12px}
.leavemodal .box.nl-pvm-box{max-width:none;width:100%;height:100%;display:flex;flex-direction:column;padding:0;text-align:left;overflow:hidden}
.nl-pvm-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line)}
.nl-pvm-bar .btn{padding:5px 12px}
.nl-pvm-bar .btn.on{background:var(--olive);color:#fff;border-color:var(--olive)}
.nl-pvm-stage{flex:1;overflow:auto;background:var(--surface-2);padding:16px}
.nl-pvm-page{max-width:100%;margin:0 auto;background:var(--canvas);border-radius:12px;padding:6px 18px 18px;transition:width .2s}
/* ===== Tidy-up package 1: Contacts, email alerts, class series ===== */
.ct-actions{display:flex;gap:8px;flex-wrap:wrap}
.ct-filters{display:grid;grid-template-columns:minmax(200px,2fr) repeat(2,minmax(140px,1fr)) auto;gap:8px;align-items:center}
.ct-filters input,.ct-filters select{margin:0}
.ct-arc{display:flex;gap:6px;align-items:center;white-space:nowrap;font-size:.9rem}.ct-arc input{width:auto;margin:0}
tr.clickrow{cursor:pointer}tr.clickrow:hover td,tr.clickrow:focus td{background:var(--sand-tint)}tr.clickrow:focus{outline:2px solid var(--sage);outline-offset:-2px}
.leavemodal .box.ct-modal{max-width:640px;text-align:left;max-height:92vh;overflow:auto}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:12px}.ct-grid .ct-wide{grid-column:1/-1}
.ct-grid label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:3px}.ct-grid input,.ct-grid select,.ct-grid textarea{width:100%;margin:0}
.ct-modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.ct-dup{background:var(--ochre-tint);border:1px solid var(--ochre);border-radius:12px;padding:12px;color:var(--ink);font-size:.9rem}
.ct-dup-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);margin-top:8px}
.ct-dup-btns{display:flex;gap:6px;flex-wrap:wrap}.ct-dup .btn{padding:5px 12px}
.btn.danger{background:var(--terracotta);color:#fff}.btn.ghost.danger{background:transparent;color:var(--terracotta);border-color:var(--terracotta)}
#ct-alerts summary{cursor:pointer;list-style-position:outside}
.ct-al-src{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0}.ct-al-src label{display:flex;gap:6px;align-items:center;font-size:.9rem}.ct-al-src input{width:auto;margin:0}
.pill.cancelled{background:var(--terra-tint);color:var(--terracotta)}
.cs-scope{display:grid;gap:8px;margin:12px 0}.cs-scope label{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer}
.cs-scope input{width:auto;margin:3px 0 0}.cs-scope label.on{border-color:var(--sage);background:var(--sage-tint)}
.cs-summary{background:var(--sand-tint);border-radius:12px;padding:12px;font-size:.92rem}.cs-summary ul{margin:.4em 0 0 1.1em;padding:0}
@media (max-width:820px){ .ct-filters{grid-template-columns:1fr 1fr}.ct-filters input{grid-column:1/-1} .ct-grid{grid-template-columns:1fr} .ct-table th:nth-child(5),.ct-table td:nth-child(5),.ct-table th:nth-child(6),.ct-table td:nth-child(6){display:none} }

/* Batch C: tick-box rows read as sentences, not headings */
.lg-types label, #ls-svcs label, .lg-agree label, .leavemodal label[style*="display:flex"]{text-transform:none;letter-spacing:0}

/* Batch E1: Analytics */
.an-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.an-tile{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--canvas)}
.an-l{font-size:.85rem;color:var(--muted);margin-bottom:4px}
.an-v{font-family:var(--fh);font-size:1.6rem;line-height:1.15;color:var(--ink)}
.an-v.an-muted{font-size:1.05rem}
.an-muted{color:var(--muted)}
.an-note{margin-top:4px}
.an-chg{display:inline-block;font-size:.8rem;margin-top:2px;color:var(--muted)}
.an-chg.up{color:var(--sage)}
.an-chg.down{color:var(--terracotta)}
.an-health{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.an-health .card{margin:0}
.an-bar{height:10px;border-radius:6px;background:var(--line);overflow:hidden}
.an-bar span{display:block;height:100%;background:var(--sage)}
.an-bar span.warn{background:var(--ochre,#C9A24B)}
.an-spark{display:flex;align-items:flex-end;gap:2px;height:80px;padding:4px 0;border-bottom:1px solid var(--line)}
.an-spark span{flex:1;background:var(--sage);border-radius:2px 2px 0 0;min-width:2px}
.an-bar span.bad{background:var(--terracotta)}
.pill.an-bad{background:#F3E5DD;color:#8a3b1c}
.an-summary[data-summary="problem"]{border-top-color:var(--terracotta)}
.an-summary[data-summary="warn"]{border-top-color:var(--ochre,#C9A24B)}
/* E2 dashboards */
.an-areas{display:flex;gap:6px;flex-wrap:wrap}
.an-grain{display:inline-flex;gap:6px}
.an-areas .chip,.an-grain .chip{min-height:38px}
.an-trends{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-bottom:12px}
.an-trends .card{margin:0;min-width:0}
.an-trend .an-v{margin-bottom:2px}
.an-trend .ab-chart{margin-top:8px}
.an-heat{background:color-mix(in srgb, var(--sage) calc(var(--h) * 0.7%), transparent)}
.an-grid-tbl th[scope=row]{text-align:left;font-weight:600;white-space:nowrap}
@media (max-width:520px){ .an-trends{grid-template-columns:1fr} }
@media (max-width:520px){ .an-grid{grid-template-columns:1fr 1fr} .an-health{grid-template-columns:1fr} .an-v{font-size:1.3rem} }

/* Rewards & Engagement (staff) */
.leavemodal .box.rw-modal{max-width:520px;text-align:left;max-height:92vh;overflow:auto}
.rw-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}
.rw-two{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.rw-three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 12px}
.rw-settings .rw-h{color:var(--olive);font-size:1rem;margin:18px 0 4px;padding-top:12px;border-top:1px solid var(--line)}
.rw-settings .rw-h:first-of-type{border-top:0;padding-top:0;margin-top:0}
label.rw-chk{display:flex;gap:8px;align-items:center;margin:.45em 0;text-transform:none;letter-spacing:0;font-size:.92rem;font-weight:400;color:var(--ink)}
label.rw-chk input{width:auto;margin:0}
@media (max-width:520px){ .rw-two,.rw-three{grid-template-columns:1fr} }

/* My Rewards (member) */
.rwm-grid{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center}
.rwm-jar{width:100%;max-width:150px;height:auto;display:block}
.rwm-count{font-family:var(--fh);color:var(--ink);margin:.2em 0 0}
.rwm-big{font-size:2rem;color:var(--olive)}
.rwm-dots{display:flex;flex-wrap:wrap;gap:2px;margin:.2em 0 .4em;font-size:1.05rem;line-height:1.2}
.rwm-dot{width:1.4em;text-align:center;color:var(--stone,#A8A395)}
.rwm-next{margin:.2em 0 .6em}
.rwm-prog-l{display:flex;justify-content:space-between;gap:8px;font-size:.88rem;margin-bottom:4px}
.rwm-bar{height:12px;border-radius:7px;background:var(--sand,#E5E0D6);overflow:hidden}
.rwm-bar span{display:block;height:100%;background:var(--sage);border-radius:7px;transition:width .9s ease}
.rwm-ready{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--terra-tint,#F3E5DD);border:1px solid var(--terracotta)}
.rwm-drop{animation:rwmDrop 1.1s cubic-bezier(.3,1.4,.6,1) both}
@keyframes rwmDrop{0%{transform:translateY(-150px);opacity:0}60%{opacity:1}100%{opacity:1}}
.rwm-drop{transform-box:fill-box}
.rwm-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--olive);color:#fff;padding:12px 18px;border-radius:12px;box-shadow:var(--shadow);z-index:9999;font-size:.95rem;max-width:calc(100vw - 32px);animation:rwmIn .35s ease both}
.rwm-toast.out{animation:rwmOut .5s ease both}
@keyframes rwmIn{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes rwmOut{to{opacity:0;transform:translate(-50%,12px)}}
.leavemodal .box.rwm-cele-box{max-width:380px;text-align:center}
.rwm-cele-cookie{width:84px;height:84px;animation:rwmPop .7s cubic-bezier(.3,1.5,.6,1) both}
.rwm-cele-jar{width:130px;margin:0 auto;animation:rwmPop .8s cubic-bezier(.3,1.4,.6,1) both}
.rwm-cele.full .box{animation:rwmGlow 2.4s ease 1}
@keyframes rwmPop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes rwmGlow{0%{box-shadow:0 0 0 0 rgba(201,162,75,.0)}35%{box-shadow:0 0 0 14px rgba(201,162,75,.25)}100%{box-shadow:var(--shadow)}}
.leavemodal .box.rwm-detail{max-width:560px;text-align:left;max-height:92vh;overflow:auto}
.rwm-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rwm-tile{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:var(--canvas)}
.rwm-tv{font-family:var(--fh);font-size:1.4rem;color:var(--ink)}
.rwm-h4{color:var(--olive);margin:14px 0 6px;font-size:1rem}
.rwm-claim{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.rwm-claim .pill{white-space:nowrap}
.rwm-how{margin-top:12px}.rwm-how summary{cursor:pointer;font-size:.88rem;color:var(--muted)}
@media (max-width:520px){ .rwm-grid{grid-template-columns:96px 1fr;gap:10px} .rwm-tiles{grid-template-columns:repeat(2,1fr)} .rwm-big{font-size:1.6rem} }
@media (prefers-reduced-motion: reduce){ .rwm-drop,.rwm-cele-cookie,.rwm-cele-jar,.rwm-toast,.rwm-cele.full .box{animation:none} .rwm-bar span{transition:none} }

.rwx-prev{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.rwx-prev img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.rwx-priv{background:var(--sand-tint,#F3F0EA);border-radius:10px;padding:8px 10px}

.rw-badge{display:inline-block;min-width:1.4em;padding:0 .35em;border-radius:999px;background:var(--terracotta);color:#fff;font-size:.75rem;line-height:1.4em;text-align:center;margin-left:4px}
.rw-thumbs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.rw-thumbs img{width:110px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--line);display:block}
.slot.on{background:var(--olive);color:#fff;border-color:var(--olive)}

/* Reward booking box */
.rwb .rwb-sum{display:flex;flex-direction:column;gap:2px;background:var(--canvas);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:6px}
.rwb .rwb-sum b{color:var(--olive);font-size:1rem}.rwb .rwb-sum span{font-size:.88rem;color:var(--muted)}
.rwb .rwb-sum .rwb-free{color:var(--olive);font-weight:700;margin-top:2px}
.rwb-step{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
.rwb-week{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.rwb-week #rwb-range{font-size:.88rem;color:var(--ink);text-align:center;flex:1}
.rwb-nav{flex:none;width:auto;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;color:var(--ink);cursor:pointer;font-family:var(--fb)}
.rwb-nav:disabled{opacity:.4;cursor:default}
.rwb-days{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.rwb-day{display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px 2px;cursor:pointer;color:var(--ink);font-family:var(--fb);min-width:0}
.rwb-day span{font-size:.72rem;color:var(--muted)}.rwb-day b{font-size:1.05rem;line-height:1.2}
.rwb-day.on{background:var(--sage);border-color:var(--sage);color:#fff}.rwb-day.on span{color:#fff}
.rwb-day.none{opacity:.45;cursor:default}
.rwb .rwb-go{width:100%;margin-top:10px}
.rwb-foot{display:flex;justify-content:flex-end;margin-top:14px}.rwb-foot .btn{flex:none;min-width:120px}
@media (max-width:420px){ .rwb-days{grid-template-columns:repeat(3,1fr)} }

/* Steady loading: the footer waits for the first page, and each page holds the screen's height while its content loads,
   so nothing below jumps down as cards and lists arrive. */
body.booting footer.site,body.booting #newsletter-cta{display:none}
.page.on{min-height:calc(100vh - 80px)}
@supports (height:100svh){ .page.on{min-height:calc(100svh - 80px)} }
/* Staff area: keep each screen's top edge fixed while it loads (stops the first card's spacing nudging the screen) */
#staff-body{display:flow-root;min-height:60vh}

/* Practitioner directory: portrait photos, framed on the face */
#practitioners-app .ccard[data-pubprac]{flex:none}
#practitioners-app .ccard[data-pubprac] .cover{height:auto;aspect-ratio:4/5;padding:0}
/* Image picker (Staff) */
.si-pick{margin-top:10px}.si-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:4px 0}
.si-prev{width:110px;height:110px;border-radius:12px;border:1px solid var(--line);background:var(--canvas);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}
.si-prev span{font-size:.8rem;color:var(--muted)}.si-prev img{width:100%;height:100%}
.si-prev.si-photo img{object-fit:cover;object-position:50% 20%}.si-prev.si-logo{background:#fff}.si-prev.si-logo img{object-fit:contain;padding:8px}
.si-side{display:flex;flex-direction:column;gap:6px;min-width:0}.si-btns{display:flex;gap:6px;flex-wrap:wrap}.si-btns .btn{padding:4px 12px;font-size:.85rem}
.si-kind{display:flex;gap:12px;flex-wrap:wrap}.si-kind label{display:flex;gap:6px;align-items:center;text-transform:none;letter-spacing:0;font-weight:400;font-size:.88rem;margin:0}.si-kind input{width:auto}
/* Class cards: facilitator photo or logo */
.cls-has-img{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:start}.cls-has-img>*:not(.si-cls){grid-column:2}
.si-cls{grid-row:1 / span 3;grid-column:1}.si-cls img{display:block}
.si-cls-photo img{width:72px;height:72px;border-radius:50%;object-fit:cover;object-position:50% 20%}
.si-cls-logo img{width:88px;height:72px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px}
@media (max-width:480px){ .si-cls-photo img{width:56px;height:56px} .si-cls-logo img{width:68px;height:56px} }
/* Brand Partners page */
.bp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:18px;margin-top:18px}
.bp-card{display:flex;flex-direction:column;padding:0;overflow:hidden}
.bp-img{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:var(--sage-tint);overflow:hidden}
.bp-img img{width:100%;height:100%}.bp-photo img{object-fit:cover;object-position:50% 22%}.bp-logo{background:#fff;border-bottom:1px solid var(--line)}.bp-logo img{object-fit:contain;padding:22px}
.bp-img span{font-family:var(--fh);font-size:3rem;color:var(--olive)}
.bp-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:4px;flex:1}
.bp-body h2{font-size:1.3rem;color:var(--olive);margin:0}.bp-owner{margin:0;color:var(--muted);font-size:.92rem}.bp-tag{margin:.2em 0 0;font-style:italic;color:var(--ink)}
.bp-bio{margin-top:6px;line-height:1.65;font-size:.95rem}.bp-bio p{margin:0 0 .7em}
.bp-clip{max-height:9.6em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.bp-more,.bp-prac{background:none;border:0;padding:0;color:var(--sage);font-weight:600;cursor:pointer;font-family:var(--fb);font-size:.9rem;text-align:left}
.bp-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:auto;padding-top:10px}.bp-links a{color:var(--sage);font-weight:600;font-size:.9rem}

/* Staff: a session's bookings */
.cbk-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.cbk-head .btn{flex:none;padding:4px 12px}
.cbk-list{border-top:1px solid var(--line)}
.cbk-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.cbk-who{display:flex;flex-direction:column;min-width:0}.cbk-who span{font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}
.cbk-st{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.cbk-pay{font-size:.85rem}
.cbk-row .btn{flex:none;padding:4px 12px;font-size:.85rem}
@media (max-width:520px){ .cbk-row{grid-template-columns:1fr auto} .cbk-st{grid-column:1} .cbk-row .btn{grid-column:2;grid-row:1 / span 2;align-self:center} }

/* ---------- Batch G1: Qualifications & Compliance, Notification centre ---------- */
.pill.cmp-ok{background:var(--sage-tint);color:var(--olive)}
.pill.cmp-warn{background:var(--ochre-tint);color:#7A5F17}
.pill.cmp-act{background:#F6E2C9;color:#8A4A1F}
.pill.cmp-bad{background:var(--terra-tint);color:#9A4A27}
.pill.cmp-rev{background:#E6E3F0;color:#4B4470}
.pill.cmp-neu{background:var(--sand-tint);color:var(--muted)}
.cmp-line{color:var(--muted);margin-top:2px}
.cmp-reason{margin-top:4px;padding:6px 8px;border-left:3px solid var(--terracotta);background:var(--terra-tint);border-radius:6px;color:var(--ink)}
.cmp-hint{color:var(--olive);background:var(--sage-tint);border-radius:8px;padding:8px 10px;margin:10px 0 0}
.cmp-grid{display:flex;flex-wrap:wrap;gap:0 12px}
.cmp-tabs,.cmp-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.cmp-filters{display:flex;gap:12px;flex-wrap:wrap}
.cmp-filters>div{flex:1;min-width:200px}
.cmp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.cmp-cards .card{margin-bottom:0}
.cmp-item{border-left:4px solid var(--line)}
.cmp-item.cmp-b-ok{border-left-color:var(--sage)}.cmp-item.cmp-b-warn{border-left-color:var(--ochre)}
.cmp-item.cmp-b-act,.cmp-item.cmp-b-bad{border-left-color:var(--terracotta)}.cmp-item.cmp-b-rev{border-left-color:#7A72A8}
.cmp-cards+#cmp-form{margin-top:16px}
.cmp-rule{border-top:1px solid var(--line);padding:12px 0}
.cmp-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 12px}
.leavemodal .box.cmp-modal{max-width:640px;text-align:left;max-height:92vh;overflow:auto}
.leavemodal .box.cmp-modal p{color:var(--ink)}
.cmp-notif.unread{border-left:4px solid var(--terracotta)}
.navnotif{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-left:14px}
.notif-badge{background:var(--terracotta);color:#fff;border-radius:999px;font-size:.7rem;font-weight:700;padding:1px 7px;min-width:20px;text-align:center}
@media (max-width:640px){
  .cmp-filters>div{min-width:100%}
  /* My Qualifications & Compliance: one card per requirement on phones, so Upload / Renew is always in view */
  .tablewrap:has(.cmp-table){overflow:visible;border:0;background:none}
  .cmp-table,.cmp-table tbody,.cmp-table tr,.cmp-table td{display:block;width:100%}
  .cmp-table thead{display:none}
  .cmp-table tr{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:var(--surface)}
  .cmp-table td{border:0;padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:10px}
  .cmp-table td:first-child{display:block;padding-bottom:6px}
  .cmp-table td[data-l]:not(:first-child)::before{content:attr(data-l);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
}

/* ===== Event registration pages (Batch G3). Colours come from the event's branding profile. ===== */
#event-app,.ev-scope{--ev-primary:#4A5240;--ev-on-primary:#fff;--ev-accent:#B5653E;--ev-on-accent:#fff}
.ev-page{max-width:760px;margin:0 auto;padding:8px 0 30px;background:var(--ev-bg,transparent)}
.ev-brandbar{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:10px 0 4px}
.ev-logo{height:64px;width:auto;max-width:220px;object-fit:contain}
.ev-logo.ev-hub{height:56px}
.ev-x{color:var(--muted);font-size:1.3rem}
.ev-partner{text-align:center;color:var(--muted);font-size:.9rem;margin:0 0 10px}
.ev-hero{background:var(--ev-primary);color:var(--ev-on-primary);background-size:cover;background-position:center;border-radius:var(--r);padding:34px 26px;margin:6px 0 16px;text-align:center}
.ev-hero[style*="url"]{color:#fff}
.ev-hero h1{font-family:var(--fh);font-weight:500;font-size:2.2rem;line-height:1.15;margin:0 0 6px;color:inherit}
.ev-sub{margin:0 0 12px;font-size:1.05rem;opacity:.95}
.ev-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;font-weight:600;font-size:.95rem}
.ev-badge{display:inline-block;margin-top:12px;background:var(--ev-accent);color:var(--ev-on-accent);border-radius:999px;padding:3px 12px;font-size:.8rem;font-weight:700}
.ev-about p:last-child{margin-bottom:0}
.ev-sec{border-top:4px solid var(--ev-primary)}
.ev-sec h2{font-family:var(--fh);font-weight:500;font-size:1.35rem;color:var(--ev-primary);margin:0 0 10px;display:flex;align-items:center;gap:10px}
.ev-n{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--ev-primary);color:var(--ev-on-primary);font-family:var(--fb);font-size:.85rem;font-weight:700;flex:none}
.ev-h3{font-size:1rem;margin:16px 0 0;color:var(--ink)}
.ev-tickets{display:flex;flex-direction:column;gap:8px}
.ev-ticket{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0;text-transform:none;letter-spacing:0;font-weight:400;font-size:1rem;color:var(--ink);cursor:pointer}
.ev-ticket input{width:auto;accent-color:var(--ev-primary)}
.ev-ticket>span:nth-child(2){flex:1}
.ev-ticket:has(input:checked){border-color:var(--ev-primary);box-shadow:0 0 0 2px var(--ev-primary) inset}
.ev-price{font-weight:700;white-space:nowrap}
.ev-row{display:flex;gap:8px}.ev-row input{flex:1}
.ev-total{margin-top:12px;font-size:1.1rem}
.ev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 14px}
.ev-note{background:var(--sand-tint);border-radius:10px;padding:10px 12px}
.ev-q{border:0;border-top:1px solid var(--line);margin:0;padding:12px 0}
.ev-q legend{float:left;width:100%;font-weight:600;margin-bottom:6px}
.ev-help{clear:both;color:var(--muted);margin:0 0 6px}
.ev-yn{display:inline-flex;align-items:center;gap:6px;margin:0 18px 0 0;text-transform:none;letter-spacing:0;font-weight:400;font-size:1rem;color:var(--ink);cursor:pointer;min-height:36px}
.ev-yn input{width:auto;accent-color:var(--ev-primary);transform:scale(1.15)}
.ev-q .ev-yn{clear:both}
.ev-legal{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:12px 16px;background:var(--canvas);font-size:.95rem}
.ev-legal:focus{outline:2px solid var(--ev-primary)}
.ev-legal ul{padding-left:20px;margin:0 0 10px}
.ev-check{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;font-weight:600;font-size:1rem;color:var(--ink);margin-top:12px;cursor:pointer}
.ev-check input{width:auto;margin-top:5px;accent-color:var(--ev-primary);transform:scale(1.2)}
.ev-submit{background:var(--ev-accent);color:var(--ev-on-accent);width:100%;font-size:1.05rem;padding:14px 18px;margin-top:10px}
.ev-submit:disabled{opacity:.6;cursor:not-allowed}
.ev-foot{text-align:center;color:var(--muted)}
.ev-done h1,.ev-h1{font-family:var(--fh);font-weight:500;color:var(--ev-primary);font-size:1.8rem;margin:0 0 8px}
.ev-rows{border:1px solid var(--line);border-radius:10px;margin:12px 0}
.ev-rows div{display:flex;justify-content:space-between;gap:12px;padding:9px 14px;border-top:1px solid var(--line)}
.ev-rows div:first-child{border-top:0}
.ev-rows span{color:var(--muted)}.ev-rows b{text-align:right}
@media (max-width:560px){ .ev-hero{padding:26px 16px}.ev-hero h1{font-size:1.7rem}.ev-logo{height:50px}.ev-sec{padding:16px 14px} }
/* Staff: events admin */
.evx-swatch{display:inline-block;width:18px;height:18px;border-radius:5px;border:1px solid var(--line);vertical-align:middle}
.evx-q{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:start;border-top:1px solid var(--line);padding:8px 0}
.evx-flag{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--terracotta);margin-right:4px}
.evx-ans-yes{color:var(--terracotta);font-weight:700}
.evx textarea,#event-app textarea{width:100%;box-sizing:border-box;font-family:var(--fb);font-size:15px;line-height:1.5;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface)}
.evx .row>.btn,.evx-modal .row>.btn{flex:none;width:auto}

/* Social Planner: connected accounts */
.mk-conn-wide{display:block}
.mk-soc-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.mk-soc{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line,#e5e0d6);border-radius:12px;padding:8px 10px;background:#fff}
.mk-soc-av{width:38px;height:38px;border-radius:50%;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:var(--sand,#efe9dd);font-size:.75rem;font-weight:700;flex:none}
.mk-soc-av img{width:100%;height:100%;object-fit:cover}
.mk-soc-main{flex:1;min-width:180px}

/* Social Planner: planner views + campaigns */
.mk-plan-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.mk-plan-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 8px}
.mk-plan-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.mk-fsel{width:auto;max-width:100%;padding:6px 10px;font-size:.85rem}
.mk-cal-dh{display:flex;justify-content:space-between;align-items:center}
.mk-cal-add{border:0;background:transparent;color:var(--sage);font-weight:700;font-size:1rem;line-height:1;padding:0 4px;cursor:pointer;opacity:.55}
.mk-cal-d:hover .mk-cal-add,.mk-week-h .mk-cal-add{opacity:1}
.mk-cal-chip{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden;white-space:nowrap}
.mk-ctitle{overflow:hidden;text-overflow:ellipsis;min-width:0}
.mk-cthumb{width:18px;height:18px;border-radius:4px;object-fit:cover;flex:none}
.mk-cthumb-v{display:inline-flex;align-items:center;justify-content:center;background:#222;color:#fff;font-size:.55rem}
.mk-cdot{width:7px;height:7px;border-radius:50%;flex:none}
.mk-chip-nl{background:#F4EFE3;border-style:dashed}
.mk-chip-nl-key{border:1px dashed var(--line);border-radius:999px;padding:1px 8px}
.mk-cal-chip.st-draft,.mk-cal-chip.st-idea,.mk-cal-chip.st-needs_media{border-left-color:var(--muted);opacity:.85}
.mk-cal-chip.st-awaiting_approval{border-left-color:var(--warn)}
.mk-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.mk-week-col{border:1px solid var(--line);border-radius:10px;padding:6px;min-height:200px;display:flex;flex-direction:column;gap:4px;min-width:0;background:#fff}
.mk-week-col.today{border-color:var(--terracotta)}
.mk-week-col.drop,.mk-day-row.drop{outline:2px dashed var(--sage);outline-offset:-3px}
.mk-week-h{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}
.mk-week-col .mk-cal-chip{white-space:normal;flex-wrap:wrap}
.mk-week-empty{padding:6px 0}
.mk-day{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mk-day-row{display:flex;border-top:1px solid var(--line);min-height:44px}
.mk-day-row:first-child{border-top:0}
.mk-day-t{width:62px;flex:none;font-size:.75rem;color:var(--muted);padding:8px;text-align:right;background:var(--surface-2)}
.mk-day-c{flex:1;padding:6px;display:flex;flex-direction:column;gap:4px;min-width:0}
.mk-day-c .mk-cal-chip{white-space:normal}
.mk-day-add{align-self:flex-start;border:0;background:transparent;color:var(--sage);font-size:.75rem;cursor:pointer;opacity:.6;padding:2px 0}
.mk-day-row:hover .mk-day-add{opacity:1}
.mk-list-day{margin-bottom:12px}
.mk-list-dh{font-weight:700;font-size:.85rem;color:var(--olive);margin:8px 0 4px}
.mk-list-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px;margin-bottom:6px;background:#fff;cursor:pointer;flex-wrap:wrap}
.mk-list-th{flex:none}
.mk-noimg-s{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:8px;background:var(--surface-2);color:var(--muted)}
.mk-list-main{flex:1;min-width:180px}
.mk-list-act{display:flex;gap:6px}
.mk-qc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-top:12px}
.mk-qc{display:flex;flex-direction:column;gap:2px;text-align:left;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;cursor:pointer}
.mk-qc:hover{border-color:var(--sage)}
.mk-camps{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.mk-camp{display:flex;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;flex-wrap:wrap}
.mk-camp-bar{width:5px;border-radius:4px;flex:none}
.mk-camp-main{flex:1;min-width:200px}
.mk-camp-act{display:flex;gap:6px;align-items:flex-start}
.mk-swatches{display:flex;gap:8px;flex-wrap:wrap}
.mk-sw{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer}
.mk-sw.on{box-shadow:0 0 0 3px var(--olive)}
@media (max-width:820px){ .mk-week{grid-template-columns:1fr} .mk-week-col{min-height:0} .mk-cal-chip .mk-ctitle{display:none} .mk-cal-g .mk-cal-chip .t{display:none} .mk-cal-g .mk-cal-chip{padding:2px;gap:2px} .mk-cal-g .mk-cal-chip .c{font-size:.6rem;padding:0 2px} .mk-week-col .mk-cal-chip .mk-ctitle,.mk-day-c .mk-cal-chip .mk-ctitle{display:inline} }
/* ---------- Create Post (Phase 4) ---------- */
.cp-steps{display:flex;gap:6px;list-style:none;padding:0;margin:4px 0 14px;counter-reset:none}
.cp-steps li{flex:1;display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted);padding:6px 8px;border-radius:10px;background:var(--surface-2);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-steps li span{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);font-size:.72rem;flex:none}
.cp-steps li.on{background:var(--sage-tint);color:var(--olive);font-weight:600}
.cp-steps li.on span{background:var(--olive);color:#fff;border-color:var(--olive)}
.cp-steps li.done span{background:var(--sage);color:#fff;border-color:var(--sage)}
.cp-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.cp-nav #cp-msg{flex:1;text-align:center}
.cp-plats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cp-plat{display:flex;align-items:center;gap:10px;text-align:left;border:1.5px solid var(--line);border-radius:12px;padding:10px;background:#fff;cursor:pointer;font-family:var(--fb);color:var(--ink)}
.cp-plat.on{border-color:var(--olive);background:var(--sage-tint)}
.cp-formats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.cp-fmt{display:flex;flex-direction:column;gap:3px;text-align:left;border:1.5px solid var(--line);border-radius:12px;padding:10px;background:#fff;cursor:pointer;font-family:var(--fb);color:var(--ink)}
.cp-fmt.on{border-color:var(--olive);background:var(--sage-tint)}
.cp-fmt.off{opacity:.6}
.cp-tools{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}
.cp-tool{position:relative}
.cp-pop{position:absolute;z-index:5;top:calc(100% + 4px);left:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:grid;grid-template-columns:repeat(6,34px);gap:2px}
.cp-pop[hidden]{display:none}
.cp-pop-list{display:flex;flex-direction:column;grid-template-columns:none;min-width:240px;max-width:320px;max-height:260px;overflow:auto}
.cp-pop-list button{text-align:left;border:0;background:transparent;padding:7px 8px;border-radius:8px;cursor:pointer;font-family:var(--fb);font-size:.88rem;color:var(--ink)}
.cp-pop-list button:hover,.cp-e:hover{background:var(--surface-2)}
.cp-e{border:0;background:transparent;font-size:1.15rem;width:34px;height:34px;border-radius:8px;cursor:pointer}
.cp-ai-btn{border-color:var(--ochre);background:var(--ochre-tint)}
.cp-ai{border:1px solid var(--line);border-radius:12px;padding:10px;margin:6px 0;background:var(--canvas)}
.cp-aiopt{border:1px solid var(--line);border-radius:10px;padding:10px;margin-top:8px;background:#fff;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.cp-aitext{line-height:1.45}
.cp-split{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cp-count{display:inline-block;margin-right:10px;color:var(--muted)}
.cp-count.bad{color:var(--crit);font-weight:600}
.cp-media{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
.cp-mi{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.cp-mi img,.cp-mi video{width:96px;height:96px;object-fit:cover;border-radius:8px}
.cp-mi-act{display:flex;gap:3px;flex-wrap:wrap;max-width:110px}
.cp-pv-wrap{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:16px;align-items:start;margin-top:8px}
.cp-pv .mk-ig,.cp-pv .mk-fb{width:100%}
.cp-pv-ig.cp-reel .mk-ig-m img,.cp-pv-ig.cp-reel .mk-ig-m video,.cp-pv-ig.cp-reel .mk-noimg{aspect-ratio:9/16;max-height:520px}
.mk-fb .mk-ig-m img,.mk-fb .mk-ig-m video{aspect-ratio:auto;max-height:480px;object-fit:contain;background:#f0f2f5}
.cp-ig-icons{padding:8px 10px 0;font-size:1.05rem;letter-spacing:6px}
.cp-fb-icons{padding:8px 10px;border-top:1px solid #e4e6eb;color:#65676b;font-size:.85rem}
.cp-tag{color:#00376b}
.mk-fb .cp-tag,.cp-link{color:#385898}
.cp-link{text-decoration:underline}
.cp-checks .status{font-size:.88rem}
.cp-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cp-opt{display:flex !important;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;padding:10px;cursor:pointer;text-transform:none !important;letter-spacing:0 !important;font-weight:400 !important;font-size:.92rem !important;color:var(--ink) !important;margin:0 !important;background:#fff}
.cp-opt input{width:auto !important;min-height:0;margin-top:3px}
.cp-opt.on{border-color:var(--olive);background:var(--sage-tint)}
.cp-opt.off{opacity:.55;cursor:not-allowed}
.cp-summary{margin-top:12px}
.cp-sumt{width:100%;border-collapse:collapse;font-size:.92rem}
.cp-sumt td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.cp-sumt td:first-child{color:var(--muted);width:38%}
.cp-alt{margin-top:12px}
@media (max-width:820px){
  .cp-steps li{font-size:0;justify-content:center;padding:6px}
  .cp-steps li span{font-size:.72rem}
  .cp-steps li.on{font-size:.8rem;flex:2.4}
  .cp-plats,.cp-opts,.cp-split,.cp-pv-wrap{grid-template-columns:1fr}
  .cp-formats{grid-template-columns:1fr}
  .cp-pop-list{min-width:220px;max-width:80vw}
  .cp-nav{position:sticky;bottom:0;background:var(--surface);padding-bottom:8px}
}
/* ---------- Automatic publishing (Phase 5) ---------- */
.mk-pubsw{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.mk-due{padding-left:18px;margin:8px 0}
.mk-due li{margin:6px 0}
/* ---------- Social posts from events, classes and Open Days (Phase 6) ---------- */
.src-posts{margin-bottom:12px}
.src-list{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.src-row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--line)}
.cp-src{background:var(--sage-tint);border-radius:10px;padding:8px 10px;font-size:.88rem;margin:0 0 10px}
/* ---------- Plan with AI, Repeat, Bulk upload (Phase 7) ---------- */
.ap-days{display:flex;flex-wrap:wrap;gap:6px 14px;margin:4px 0}
.ap-day{display:flex !important;align-items:center;gap:6px;text-transform:none !important;letter-spacing:0 !important;font-weight:400 !important;font-size:.92rem !important;color:var(--ink) !important;margin:0 !important}
.ap-day input{width:auto !important;min-height:0}
.ap-post{border:1px solid var(--line);border-radius:12px;padding:10px;margin-top:8px;background:#fff}
.ap-post textarea{margin-top:6px}
.bu-t td{vertical-align:top}
.bu-t tr.bu-bad td{background:var(--terra-tint)}
.rp-d{display:block;margin:4px 0;max-width:220px}
.mk-rmfb{margin-top:6px;color:var(--crit)}
/* ---------- Post results (Phase 8) ---------- */
.rs-tabs{margin-bottom:12px}
.rs-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px 12px;margin-top:10px}
.rs-t th.num,.rs-t td.num{text-align:right;white-space:nowrap}
.rs-t tr.rs-gone td{color:var(--muted)}
@media (max-width:820px){ .rs-filters{grid-template-columns:1fr 1fr} }
/* ---------- New invoice (Finance) ---------- */
.ni-tot{display:flex;flex-direction:column;gap:6px;max-width:360px;margin-left:auto}
.ni-tot div{display:flex;justify-content:space-between;gap:12px}
.ni-tot .ni-grand{border-top:1px solid var(--line);padding-top:6px;font-size:1.1rem;color:var(--olive)}

/* ===================== App layer (47-app.js, 20261016a) ===================== */
/* Bottom navigation: phones only. Desktop keeps the top menu exactly as before. */
.app-nav{display:none}
@media (max-width:760px){
  .app-nav{display:grid;grid-template-columns:repeat(var(--app-tabs,4),1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;
    background:var(--canvas);border-top:1px solid var(--line);box-shadow:0 -4px 18px rgba(34,34,34,.05);
    padding:4px 4px calc(6px + env(safe-area-inset-bottom,0px))}
  .app-nav[hidden]{display:none}
  .app-nav button{border:0;background:none;color:var(--muted);font-family:var(--fb);font-size:.68rem;font-weight:600;line-height:1.15;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:4px 2px;cursor:pointer;border-radius:12px;
    -webkit-tap-highlight-color:transparent}
  .app-nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .app-nav button.on{color:var(--olive)}
  .app-nav button.on svg{background:var(--sage-tint);border-radius:999px;padding:2px 10px;width:42px;box-sizing:content-box;margin:-2px -10px}
  .app-nav button:focus-visible{outline:2px solid var(--olive);outline-offset:-2px}
  body.has-appnav{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
  body.has-appnav .toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  body.has-appnav .rwm-toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  /* The library has its own bottom bar, so the app bar steps aside there (see APPNAV_HIDE). */
}
/* Community / Profile sheet */
.app-sheet{position:fixed;inset:0;z-index:70}
.app-sheet-bg{position:absolute;inset:0;background:rgba(34,34,34,.32)}
.app-sheet-box{position:absolute;left:0;right:0;bottom:0;max-height:82vh;overflow:auto;background:var(--canvas);
  border-radius:20px 20px 0 0;box-shadow:0 -10px 34px rgba(34,34,34,.16);padding:6px 16px calc(18px + env(safe-area-inset-bottom,0px));
  animation:appSheetUp .22s ease-out}
@media (min-width:761px){ .app-sheet-box{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-50%);width:420px;border-radius:var(--r);animation:none} }
@keyframes appSheetUp{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){ .app-sheet-box{animation:none} }
.app-sheet-grip{width:40px;height:4px;border-radius:4px;background:var(--line);margin:6px auto 4px}
.app-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:4px 2px 6px}
.app-sheet-head h3{margin:0;font-family:var(--fh);color:var(--olive);font-size:1.3rem}
.app-sheet-x{border:0;background:var(--surface-2);color:var(--olive);width:36px;height:36px;border-radius:50%;font-size:1.3rem;line-height:1;cursor:pointer}
.app-sheet-list{display:flex;flex-direction:column;gap:2px}
.app-sheet-item{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;border:0;background:none;
  color:var(--ink);font-family:var(--fb);font-size:1rem;padding:13px 10px;min-height:48px;border-radius:12px;cursor:pointer;border-bottom:1px solid var(--surface-2)}
.app-sheet-item:hover,.app-sheet-item:focus-visible{background:var(--sage-tint);outline:none}
.app-sheet-item span{color:var(--muted);font-size:1.2rem}
.app-sheet-item.out{color:var(--crit);border-bottom:0}
.app-install{margin-top:12px;background:var(--sand-tint);border-radius:var(--r);padding:12px 14px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.app-install p{margin:0;font-size:.92rem}.app-install p span{color:var(--muted)}
/* Offline notice */
.app-offline{position:fixed;left:0;right:0;top:0;z-index:80;background:var(--olive);color:#fff;text-align:center;font-size:.88rem;font-weight:600;
  padding:calc(8px + env(safe-area-inset-top,0px)) 16px 8px}

/* Menus scroll inside themselves; the page behind is held still (47-app.js) */
html.menu-open,html.sheet-open{overflow:hidden;overscroll-behavior:none}
@media (max-width:760px){
  nav#nav.open{position:fixed;left:0;right:0;top:var(--menu-top,80px);bottom:var(--menu-bottom,0px);z-index:45;margin:0;width:auto;
    background:var(--canvas);border-top:1px solid var(--line);padding:8px 14px 16px;
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}
  nav#nav.open > *{flex-shrink:0}
}
.app-sheet-box{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);max-height:min(82vh,calc(100dvh - 48px))}
.app-sheet-bg{touch-action:none}
/* A faded-out message must never block taps underneath it */
.toast{pointer-events:none}.toast.show{pointer-events:auto}

/* ===================== Media folders (48-media-folders.js, 20261016c) ===================== */
.mkf-folders{margin:12px 0 8px}
.mkf-folders button .mkf-n{display:inline-block;min-width:1.4em;padding:0 5px;margin-left:3px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.74rem;font-weight:600;text-align:center}
.mkf-folders button.on .mkf-n{background:rgba(255,255,255,.22);color:#fff}
.mkf-bar{gap:8px;align-items:center;margin-bottom:6px}
.mkf-bar select{width:auto;min-width:170px}
.mkf-cell{position:relative}
.mkf-cell.mkf-on{border-color:var(--olive);box-shadow:inset 0 0 0 2px var(--olive)}
.mkf-tick{position:absolute;top:12px;left:12px;z-index:2;background:var(--surface);border-radius:6px;padding:2px 4px;line-height:0;box-shadow:var(--shadow)}
.mkf-tick input{width:20px;height:20px;margin:0;cursor:pointer}
.mkf-tags{display:flex;flex-wrap:wrap;gap:4px}
.mkf-tags span{font-size:.7rem;font-weight:600;border-radius:999px;padding:1px 7px;line-height:1.5}
.mkf-ok{background:var(--sage-tint);color:var(--olive)}
.mkf-no{background:var(--ochre-tint);color:#7A5B12}
.mkf-t{background:var(--surface-2);color:var(--ink)}
.mkf-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:2px 12px;margin:4px 0 8px}
.mkf-checks.mkf-inline{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.mkf-okrow{align-items:flex-start;background:var(--sand-tint);border-radius:10px;padding:8px 10px;margin:8px 0 4px}
.mkf-okrow span{font-size:.86rem}
.mkf-detail{margin-top:6px}
.mkf-rv-row{display:flex;gap:12px;align-items:flex-start;border-top:1px solid var(--line);padding:12px 0}
.mkf-rv-img{flex:0 0 96px}
.mkf-rv-main{flex:1;min-width:0}
.mkf-mrow{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding:8px 0}
.mkf-mrow.mkf-off .mkf-mmain{opacity:.55}
.mkf-mord{display:flex;flex-direction:column;gap:3px}
.mkf-mmain{flex:1;display:grid;grid-template-columns:1fr 2fr;gap:6px}
@media (max-width:600px){ .mkf-mmain{grid-template-columns:1fr} .mkf-rv-img{flex-basis:64px} }
.mkf-auto{background:var(--olive)!important;color:#fff!important;border-color:var(--olive)!important}
.mkf-cp{margin-top:14px;padding:10px 12px;background:var(--sand-tint);border-radius:12px}
.mkf-cp select{width:auto;min-width:200px}
.ap-media{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}

/* Long links and words wrap inside their box instead of running past it (20261016d) */
body{overflow-wrap:break-word}
a{overflow-wrap:anywhere}
.mk-pv,.mk-pv *,.mk-wa-b,.mk-ig,.mk-fb,.cp-pv,.cp-pv *,.mk-sheet p,.mk-sheet li,.card p,.card li,.toast,.rwm-toast,.nl-body,.nl-body *{overflow-wrap:anywhere}
.mk-wa-b{min-width:0}
.mkf-note{font-size:.78rem;color:#7A4A2A;background:var(--terra-tint);border-radius:8px;padding:4px 8px;margin-top:6px;display:inline-block}
.mkf-note-rep{color:#6A5414;background:var(--ochre-tint)}
.mkf-rep{font-size:.72rem;font-weight:600;color:#6A5414;background:var(--ochre-tint);border-radius:999px;padding:1px 8px}

/* ===================== SMS (52-sms.js, release 20261023a) ===================== */
.sms-inbox{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:14px;align-items:start}
.sms-inbox .card{margin:0}
.sms-list{max-height:72vh;overflow:auto}
.sms-threads{list-style:none;margin:0;padding:0}
.sms-th{display:grid;gap:2px;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:10px 8px;cursor:pointer;position:relative;color:var(--ink);font:inherit;min-height:44px}
.sms-th:hover,.sms-th:focus-visible{background:var(--sand-tint)}
.sms-th.on{background:var(--sage-tint)}
.sms-th.unread b{color:var(--olive)}
.sms-th-top{display:flex;justify-content:space-between;gap:8px}
.sms-th-top .small{color:var(--muted);white-space:nowrap}
.sms-th-num{color:var(--muted)}
.sms-th-last{font-size:.86rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:28px}
.sms-th .notif-badge{position:absolute;right:8px;bottom:10px}
.sms-thread-head{align-items:flex-start;margin-bottom:8px}
.sms-back{display:none;padding:4px 10px}
.sms-bookings{background:var(--sand-tint);border-radius:10px;padding:6px 10px;margin:6px 0}
.sms-msgs{max-height:52vh;overflow:auto;padding:4px 2px;display:flex;flex-direction:column;gap:10px}
.sms-msg{display:flex;flex-direction:column;max-width:86%}
.sms-msg.in{align-self:flex-start}
.sms-msg.out{align-self:flex-end;align-items:flex-end}
.sms-bubble{border-radius:16px;padding:9px 13px;line-height:1.45;white-space:pre-wrap;word-break:break-word;max-width:520px;background:var(--surface-2)}
.sms-msg.out .sms-bubble{background:var(--sage-tint)}
.sms-meta{color:var(--muted);margin-top:3px}
.sms-meta .pill{font-size:.66rem}
.sms-compose{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}
.sms-count{margin:4px 0 6px;color:var(--muted)}
.sms-tog{display:flex;align-items:flex-start;gap:10px;text-transform:none;letter-spacing:0;font-weight:400;padding:8px 0;border-top:1px solid var(--line)}
.sms-tog input{width:auto;margin-top:4px}
.sms-mode{border:0;padding:0;margin:8px 0}
.sms-mode legend{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.sms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 14px;align-items:end}
.sms-status{background:var(--sand-tint);border-radius:10px;padding:10px 12px;margin:10px 0;font-size:.9rem;line-height:1.7}
.sms-meter{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin:4px 0 8px}
.sms-meter span{display:block;height:100%;background:var(--sage)}
.sms-table td{vertical-align:top}
#sms-body{container-type:inline-size}
/* one pane at a time (list, then conversation) whenever the SMS area is narrow: phones, and the Staff area on most laptops */
@container (max-width:780px){
  .sms-inbox{grid-template-columns:1fr}
  .sms-inbox.has-thread .sms-list{display:none}
  .sms-inbox:not(.has-thread) .sms-thread{display:none}
  .sms-back{display:inline-block}
  .sms-msg{max-width:94%}
  .sms-msgs{max-height:60vh}
}
@media (max-width:820px){ .sms-msgs{max-height:60vh} }

/* ---------- Marketing Studio: monthly planning (53-monthly-studio.js, 20261024a) ---------- */
.mm-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.mm-tabs button{white-space:nowrap;flex:0 0 auto}
.mm-tabs .mm-tab-week{margin-left:auto;opacity:.8}
.mm-badge{display:inline-block;min-width:18px;margin-left:6px;padding:0 5px;border-radius:99px;background:var(--warn,#C9A24B);color:#fff;font-size:.7rem;line-height:18px;text-align:center}
.mm-cat{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.02em;padding:1px 7px;border-radius:99px;color:var(--cc);background:color-mix(in srgb,var(--cc) 14%,#fff);border:1px solid color-mix(in srgb,var(--cc) 35%,#fff);white-space:nowrap}
.mm-cat-none{--cc:#8A8A80}
.mm-plat{display:inline-block;font-size:.68rem;background:var(--surface-2);border-radius:4px;padding:0 5px;margin-right:3px}
.mm-cdot{display:inline-block;width:7px;height:7px;border-radius:99px;margin:0 3px 1px 0;vertical-align:middle}
.mm-ret{color:var(--terracotta);font-weight:700;margin-right:2px}
.mk-cal-chip.cb-on{border-left-color:var(--cb)!important}
.mk-cal-chip.mm-archived{opacity:.45;text-decoration:line-through}
.mk-cal-chip.mm-src{background:var(--sand-tint);border-left-color:var(--ochre,#C9A24B);box-shadow:none;font-style:italic}
.mm-src-key{font-style:italic;background:var(--sand-tint);border-radius:6px;padding:1px 6px}
.mm-banner{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:6px 0 12px;background:linear-gradient(180deg,var(--sage-tint),#fff)}
.mm-banner-main{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.mm-theme{margin:2px 0 6px;font-size:1.1rem}
.mm-weeks{display:flex;flex-wrap:wrap;gap:6px}
.mm-week{font-size:.78rem;background:#fff;border:1px solid var(--line);border-radius:99px;padding:2px 10px}
.mm-counts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.mm-count{font-size:.8rem;background:#fff;border:1px solid var(--line);border-radius:8px;padding:3px 9px;cursor:pointer}
.mm-count.warn{border-color:var(--warn);background:var(--ochre-tint)}
.mm-count.bad{border-color:var(--crit);color:var(--crit)}
.mm-remind{background:var(--ochre-tint);border-radius:8px;padding:7px 10px;margin-bottom:10px;font-size:.88rem}
.mm-info{background:var(--sage-tint);border-radius:8px;padding:9px 12px;margin:10px 0;font-size:.88rem}
.mm-retnote{background:var(--terra-tint);border-radius:8px;padding:8px 11px;margin:8px 0;font-size:.88rem}
.mm-retline{color:var(--terracotta)}
.mm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px}
.mm-checks{display:flex;flex-wrap:wrap;gap:6px 10px;margin:2px 0 4px}
.mm-mix{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.mm-mix summary{cursor:pointer;font-weight:700}
.mm-mixgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:8px 0}
.mm-mixrow{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.86rem;margin:0}
.mm-mixrow input{width:72px;margin:0}
.mm-progress{display:flex;align-items:center;gap:10px;padding:12px;background:var(--sand-tint);border-radius:10px;margin-top:10px}
.mm-spin{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--sage);border-radius:99px;animation:mmspin .8s linear infinite}
@keyframes mmspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.mm-spin{animation:none}}
.mm-plan-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:14px 0;background:#fff}
.mm-wkrow{display:flex;align-items:center;gap:10px}.mm-wkrow span{flex:0 0 120px}.mm-wkrow input{margin:3px 0}
.mm-wk{margin-top:14px}
.mm-wk-h{font-weight:700;font-size:.9rem;color:var(--olive);border-bottom:1px solid var(--line);padding-bottom:4px;margin-bottom:6px}
.mm-caps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mm-pre{white-space:pre-wrap}
.mm-brief summary{cursor:pointer;font-size:.8rem;color:var(--muted)}
.mm-email{background:var(--ochre-tint)}
.mm-sticky{position:sticky;top:0;z-index:3;background:#fff;padding:8px 0;border-bottom:1px solid var(--line)}
.mm-bulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.mm-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.mm-row{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;flex-wrap:wrap}
.mm-row.bad{border-color:var(--crit)}
.mm-sec .mm-row{margin-bottom:8px}
.mm-sel{margin-top:16px;width:18px;height:18px}
.mm-th{flex:0 0 52px}
.mm-main{flex:1 1 260px;min-width:0}
.mm-cap{font-size:.85rem;margin-top:4px;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}
.mm-act{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;flex:0 1 auto}
.mm-act input[type=datetime-local]{margin:0;max-width:210px;padding:4px 6px}
.mm-err{color:var(--crit);margin-top:4px}
.mm-faillist li{margin-bottom:8px}
.mm-ed{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:0 0 10px;background:var(--sand-tint)}
.mm-ed-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.mm-ed-l{display:flex;align-items:center;gap:6px;margin:0;font-size:.85rem}.mm-ed-l select{margin:0;padding:3px 6px}
.mm-campx{margin-top:4px;color:var(--ink)}
.mm-ins li{margin-bottom:4px}
.mm-tw{overflow-x:auto}
.mm-t{width:100%;border-collapse:collapse;font-size:.86rem}
.mm-t th,.mm-t td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;white-space:nowrap}
.mm-t td:not(:first-child),.mm-t th:not(:first-child){text-align:right}
@media (max-width:760px){
  .mm-grid,.mm-mixgrid,.mm-caps{grid-template-columns:1fr}
  .mm-act{justify-content:flex-start;width:100%}
  .mm-wkrow{flex-wrap:wrap}.mm-wkrow span{flex-basis:100%}
  .mm .mk-weeknav{flex-wrap:wrap}
  .mm-banner-main{flex-direction:column}
}
@media print{ .mm-tabs,.mk-weeknav{display:none} }
