/* =====================================================================================
   1.10.24  THEME ISOLATION BASELINE  (must stay at the very top of this file)
   The site theme (Hello Elementor → assets/css/reset.css) styles every element globally:
   buttons get #c36 pink text + border and a solid #c36 background on :hover AND :focus,
   links are #c36 / #336, focus-visible is a black 2px outline, inputs get a #666 border,
   tables get 15px cell padding, borders and zebra rows.
   Each rule below repeats the theme's own selector, prefixed with :where(<Slot Manager roots>)
   (zero extra specificity). Same specificity + later in the cascade ⇒ it beats the theme,
   while every Slot Manager component rule further down this file still beats it.
   Nothing outside the Slot Manager is affected.
   ===================================================================================== */
:root{
  --em-navy:#0d203b;--em-teal:#0f938d;--em-teal-hover:#08766f;--em-teal-ink:#075e59;
  --em-teal-soft:#e7f6f3;--em-mint:#f0faf8;--em-teal-border:#9fd6cf;
  --em-border:#dfe6ee;--em-surface:#fff;--em-text:#13213c;--em-text-muted:#5f6e85;
  --em-success:#15803d;--em-success-soft:#ecfdf3;--em-success-border:#a6e3bf;
  --em-warning:#b45309;--em-warning-soft:#fff7e6;--em-warning-border:#f6d49a;
  --em-danger:#c2262e;--em-danger-hover:#a51d24;--em-danger-soft:#fef1f1;--em-danger-border:#f3c4c4;
  --em-disabled-bg:#f1f4f8;--em-disabled-text:#7b879a;--em-disabled-border:#e0e6ee;
  --em-ring:0 0 0 3px rgba(15,147,141,.22);
}
/* buttons: theme gives #c36 text + border and a pink :hover/:focus fill */
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) :is(button,[type=button],[type=submit]){color:inherit;border-color:transparent;text-decoration:none}
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) :is(button,[type=button],[type=submit]):focus{background-color:transparent;color:inherit}
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) :is(button,[type=button],[type=submit]):hover{background-color:var(--em-mint);color:var(--em-navy)}
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) :is(button,[type=button],[type=submit]):disabled{cursor:not-allowed}
/* links */
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) a{color:var(--em-teal-hover)}
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) a:is(:hover,:active){color:var(--em-teal-ink)}
/* keyboard focus: English Mithra teal ring instead of the theme's black outline + white halo */
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) :is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--em-teal);outline-offset:2px;box-shadow:none}
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) [tabindex]:not([tabindex="-1"]):focus-visible{outline:2px solid var(--em-teal);outline-offset:2px;box-shadow:none}
/* form fields: #666 border / #333 focus border */
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) :is(input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea){border-color:var(--em-border)}
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) :is(input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea):focus{border-color:var(--em-teal)}
:where(#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel) label{line-height:1.35}
/* tables: 15px padding, full grid borders, zebra + hover rows (values below = the Slot Manager's own table style) */
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) table{margin-block-end:0}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) table th{padding:11px;border:0;border-bottom:1px solid var(--em-border);line-height:1.35;vertical-align:middle}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) table td{padding:13px 11px;border:0;border-bottom:1px solid #eef1f5;line-height:1.4;vertical-align:middle}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) table thead:first-child tr:first-child th{border-block-start:0}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) table tbody>tr:nth-child(odd)>:is(td,th){background-color:transparent}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) table tbody tr:hover>:is(td,th){background-color:transparent}
/* ===================================================================================== */
:root{--ink:#172033;--muted:#718096;--line:#e7eaf0;--bg:#f5f7fb;--brand:#178b86;--nav:#101828}.emsm-app{display:grid;grid-template-columns:230px 1fr;min-height:720px;background:var(--bg);font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink);border-radius:20px;overflow:hidden}.emsm-side{background:var(--nav);padding:26px 18px;color:#fff}.emsm-brand{display:flex;align-items:center;gap:12px;font-weight:750;font-size:17px;margin-bottom:34px}.emsm-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--brand)}.emsm-brand small,.emsm-user small,.slot small,td small{display:block;color:#98a2b3;font-size:12px;font-weight:500}.emsm-side nav{display:grid;gap:7px}.emsm-side nav button{border:0;background:transparent;color:#cbd5e1;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer;font-weight:650}.emsm-side nav button.active,.emsm-side nav button:hover{background:#1d2939;color:#fff}.emsm-main{padding:28px}.emsm-main header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.emsm-main h1{font-size:27px;margin:0}.emsm-main header p{margin:5px 0 0;color:var(--muted)}.emsm-user{text-align:right;font-weight:700}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stats>div,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 18px rgba(16,24,40,.035)}.stats>div{padding:20px}.stats b{font-size:29px;display:block}.stats span{color:var(--muted);font-size:13px}.panel{padding:18px;margin-bottom:18px}.panelhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel h2{font-size:17px;margin:0 0 14px}.panelhead h2{margin:0}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#667085;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:11px;border-bottom:1px solid var(--line)}td{padding:13px 11px;border-bottom:1px solid #f0f2f5;vertical-align:middle}.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef2f6;font-size:11px;text-transform:capitalize}.b-available,.b-booked{background:#e7f8f1;color:#087a55}.b-pending_trainer,.b-pending_tl{background:#fff3d6;color:#a15c00}.b-rejected,.b-cancelled{background:#feecec;color:#b42318}.formgrid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}label{display:grid;gap:6px;font-size:12px;font-weight:650;color:#475467}input,select,textarea{box-sizing:border-box;width:100%;border:1px solid #d7dce3;border-radius:9px;padding:10px;background:#fff;color:#172033}textarea{min-height:75px}.primary,.ok,.danger{border:0;border-radius:9px;padding:10px 13px;cursor:pointer;font-weight:700}.primary,.ok{background:var(--brand);color:#fff}.danger{background:#fff0f0;color:#b42318}.full{width:100%;margin-top:6px}.cards{display:grid;gap:9px}.slot{display:flex;justify-content:space-between;align-items:center;padding:13px;border:1px solid var(--line);border-radius:12px}.empty{padding:30px!important;text-align:center;color:var(--em-text-muted)}.modal{position:fixed;inset:0;background:rgba(16,24,40,.55);display:grid;place-items:center;z-index:var(--em-z-modal);padding:20px}.dialog{width:min(470px,100%);background:#fff;border-radius:18px;padding:22px;position:relative;display:grid;gap:11px;max-height:90vh;overflow:auto}.dialog h2,.dialog p{margin:0}.x{position:absolute;right:14px;top:10px;border:0;background:none;font-size:27px;cursor:pointer}.emsm-loading{padding:70px;text-align:center;color:var(--em-text-muted)}@media(max-width:850px){.emsm-app{grid-template-columns:1fr}.emsm-side{padding:14px}.emsm-brand{margin-bottom:12px}.emsm-side nav{display:flex;overflow:auto}.emsm-side nav button{white-space:nowrap}.stats{grid-template-columns:repeat(2,1fr)}.formgrid{grid-template-columns:1fr 1fr}.emsm-main header{align-items:flex-start}.emsm-user{font-size:12px}}
/* v0.2.0 */
.emsm-user{display:flex!important;align-items:center;gap:10px}.emsm-avatar{width:38px;height:38px;border-radius:12px;background:#149895;color:#fff;display:grid;place-items:center;font-weight:800}.emsm-user div{display:flex;flex-direction:column}.emsm-user a{color:inherit;text-decoration:none}.v2toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.v2toolbar>div{display:flex;gap:6px}.v2toolbar button{border:1px solid #d7deea;background:#fff;border-radius:9px;padding:9px 13px}.v2toolbar input{border:1px solid #d7deea;border-radius:9px;padding:10px 12px}.v2toolbar #trainerSearch{margin-left:auto}.emsm-legend{display:flex;gap:13px;align-items:center;font-size:12px;color:#66758e}.emsm-legend span{display:flex;gap:5px;align-items:center}.lg{width:9px;height:9px;border-radius:50%;display:inline-block}.lg.available{background:#2eae76}.lg.pending{background:#e4a72b}.lg.booked{background:#4879e8}.lg.unavailable{background:#9ca8b9}.slotgrid{display:grid;grid-template-columns:190px repeat(var(--cols),minmax(112px,1fr));overflow:auto;border:1px solid #e0e5ee;border-radius:12px;max-height:65vh}.gridcorner,.timehead,.trainer-row-name,.gridcell{min-height:68px;border-right:1px solid #e8ecf2;border-bottom:1px solid #e8ecf2}.gridcorner,.timehead{position:sticky;top:0;z-index:3;background:#f7f9fc;display:grid;place-items:center;font-weight:800;color:#647089}.gridcorner{left:0;z-index:4}.trainer-row-name{position:sticky;left:0;z-index:2;background:#fff;padding:14px;display:flex;flex-direction:column;justify-content:center}.trainer-row-name small{color:var(--em-text-muted);margin-top:4px}.gridcell{background:#fff;border-top:0;border-left:0;padding:7px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left}.slotcell{cursor:pointer;border-left:4px solid transparent}.slotcell.available{background:#f0fbf6;border-left-color:#2eae76}.slotcell.pending,.slotcell.pending_trainer,.slotcell.pending_tl{background:#fff8e8;border-left-color:#e4a72b}.slotcell.booked{background:#eef4ff;border-left-color:#4879e8}.slotcell span{font-weight:750;font-size:12px}.slotcell small{margin-top:4px;color:var(--em-text-muted)}.bigempty{padding:70px!important;display:flex;flex-direction:column;gap:8px}.v2overlay{position:fixed;inset:0;background:rgba(9,17,30,.42);z-index:var(--em-z-modal)}.drawer{position:absolute;right:0;top:0;height:100%;width:min(430px,92vw);background:#fff;padding:32px;box-shadow:-10px 0 35px rgba(0,0,0,.12)}.drawer .x{position:absolute;right:20px;top:18px;border:0;background:#f0f3f7;border-radius:50%;width:36px;height:36px;font-size:22px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--em-teal-text)}.drawer-time{padding:12px 0 22px;color:#65728a}.detailgrid{display:grid;grid-template-columns:100px 1fr;gap:16px;border-top:1px solid #e5e9ef;border-bottom:1px solid #e5e9ef;padding:22px 0;margin-bottom:22px}.detailgrid span{color:var(--em-text-muted)}.usercards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.usercard{border:1px solid #e2e7ef;border-radius:14px;padding:14px;display:flex;align-items:center;gap:12px}.usercard>span{width:42px;height:42px;border-radius:12px;background:#e8f7f6;color:var(--em-teal-text);display:grid;place-items:center;font-weight:800}.usercard div{display:flex;flex-direction:column;min-width:0}.usercard small{color:var(--em-text-muted);overflow:hidden;text-overflow:ellipsis}.usercard em{margin-left:auto;font-style:normal;font-size:11px;background:#f0f3f7;padding:5px 8px;border-radius:99px}.recurring{display:grid;grid-template-columns:2fr repeat(5,1fr);gap:10px;margin:18px 0}.recurring label{font-size:12px;color:#68758a}.recurring input,.recurring select{width:100%;margin-top:5px;padding:10px;border:1px solid #d9e0e9;border-radius:9px}.weekdays{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.weekdays label{border:1px solid #dce2ea;padding:8px 11px;border-radius:9px}.weekdays input{margin-right:6px}.credentials{margin-top:15px;padding:14px;border-radius:10px;background:#f0fbf6;display:flex;flex-direction:column;gap:6px}.credentials code{padding:5px;background:#fff}.activitylist>div{display:flex;gap:14px;padding:15px 4px;border-bottom:1px solid #edf0f4}.activitydot{width:10px;height:10px;border-radius:50%;background:#149895;margin-top:6px}.activitylist section{display:flex;flex-direction:column}.activitylist small,.muted{color:var(--em-text-muted)}.activitylist p{margin:5px 0 0}.full{width:100%}@media(max-width:900px){.recurring{grid-template-columns:1fr 1fr}.v2toolbar #trainerSearch{margin-left:0}.emsm-legend{width:100%;overflow:auto}.slotgrid{grid-template-columns:140px repeat(var(--cols),105px)}}

/* v0.3 core operations */
.formgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}.formgrid.two{grid-template-columns:1fr 1fr}.formgrid label,.dialog label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#65738b}.formgrid input,.formgrid select,.formgrid textarea,.dialog input,.dialog select,.dialog textarea{min-height:46px;border:1px solid #d8e0eb;border-radius:10px;padding:10px 12px;background:#fff;color:#172238;font:inherit}.dialog textarea{min-height:80px}.wide{width:min(760px,94vw)!important}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;text-transform:capitalize;background:#edf1f6;color:#64748b}.status.available{background:#e9f9f1;color:#14835a}.status.pending_trainer,.status.pending_tl,.status.pending{background:#fff6dc;color:#a56a00}.status.booked{background:#eaf1ff;color:#2f64c7}.status.rejected,.status.cancelled{background:#ffeded;color:#b63b3b}.tablewrap{overflow:auto}.tablewrap td small{display:block;color:var(--em-text-muted);margin-top:4px}.availablecards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.availablecard{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #dce4ee;border-radius:14px;background:#fff;text-align:left;cursor:pointer}.availablecard:hover{border-color:#16958f;box-shadow:0 6px 20px rgba(15,35,60,.08)}.availablecard .dot{width:10px;height:10px;border-radius:50%;background:#2bb673}.availablecard div{flex:1}.availablecard b,.availablecard small{display:block}.availablecard small{color:var(--em-text-muted);margin-top:4px}.availablecard strong{color:#14835a;font-size:12px}.studentgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.studentcard{display:flex;align-items:center;gap:12px;border:1px solid #e1e7ef;border-radius:14px;padding:14px}.studentavatar{width:42px;height:42px;border-radius:12px;background:#e9f6f5;color:var(--em-teal-text);display:grid;place-items:center;font-weight:800}.studentcard>div:nth-child(2){flex:1}.studentcard b,.studentcard small,.studentcard span{display:block}.studentcard small{color:var(--em-text-muted);margin:4px 0}.studentcard .editstudent,.mapcourse{border:1px solid #d8e0eb;background:#fff;border-radius:8px;padding:7px 10px;cursor:pointer}.inlineadd{display:flex;gap:8px}.inlineadd input{border:1px solid #d8e0eb;border-radius:10px;padding:10px 12px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips>span{display:inline-flex;align-items:center;gap:7px;background:#edf7f6;color:#167f7a;padding:8px 10px;border-radius:999px;font-weight:700}.chips button{border:0;background:transparent;color:inherit;font-size:17px;cursor:pointer}.checklist{display:grid;gap:10px;margin:18px 0}.checklist label{flex-direction:row;align-items:center;border:1px solid #e1e7ef;border-radius:10px;padding:12px}.warning{background:#fff4dc;border:1px solid #f1d38a;color:#805d11;border-radius:10px;padding:12px;margin:12px 0}.slotcards{display:grid;gap:8px}.slotcard{display:flex;align-items:center;gap:12px;border-bottom:1px solid #edf0f4;padding:10px}.slotcard>div{flex:1}.slotcard b,.slotcard span{display:block}.icon{border:0;background:transparent;font-size:22px;cursor:pointer}.searchpanel{margin-bottom:16px}@media(max-width:900px){.formgrid,.formgrid.two,.availablecards,.studentgrid{grid-template-columns:1fr}.inlineadd{width:100%}.inlineadd input{flex:1}}

/* v0.4 */
.timehead{min-width:150px;padding:0 10px;text-align:center;font-size:11px;line-height:1.25}.direct-note{background:#eef8f7;border:1px solid #cde8e5;color:#326a67;padding:11px 12px;border-radius:10px;font-size:12px;margin:8px 0}.drawer .directbook{margin-top:10px}
.rulecards{display:grid;gap:12px;margin-top:16px}.rulecard{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;border:1px solid #e4e9f1;border-radius:14px;padding:16px}.rulecard>div{display:flex;flex-direction:column;gap:4px}.rulecard span:not(.status){font-weight:700}.rulecard small{color:var(--em-text-muted)}.status.active{background:#e8f8f1;color:#15805c}.status.deleted{background:#f1f3f6;color:#718096}@media(max-width:760px){.rulecard{grid-template-columns:1fr}.rulecard button{width:100%}}
/* v1.3.0 — operations suite + visual refresh */
:root{--brand:#118f89;--brand2:#0d766f;--ink:#142033;--muted:#718096;--surface:#fff;--soft:#f5f8fb;--line:#e5eaf1;--shadow:0 10px 30px rgba(19,36,58,.07)}
.emsm-app{background:#f4f7fa;min-height:760px;border-radius:22px;overflow:hidden;box-shadow:0 18px 60px rgba(18,34,54,.10)}
.emsm-side{background:linear-gradient(180deg,#0f2430 0%,#102b35 100%);padding:26px 18px}.emsm-brand{padding:0 8px 22px}.emsm-brand>span{background:linear-gradient(135deg,#22b8ae,#118f89);box-shadow:0 8px 20px rgba(17,143,137,.25)}
.emsm-side nav{display:grid;gap:5px}.emsm-side nav button{border-radius:11px;padding:11px 13px;transition:.18s ease}.emsm-side nav button:hover{background:rgba(255,255,255,.07);transform:translateX(2px)}.emsm-side nav button.active{background:#fff;color:#0d766f;box-shadow:0 7px 20px rgba(0,0,0,.12)}.emsm-main header{padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:24px}.emsm-main header h1{letter-spacing:-.035em}.emsm-avatar{border-radius:50%;background:linear-gradient(135deg,#1aa9a1,#0d766f)}
.panel{border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);padding:22px;margin-bottom:18px;background:var(--surface)}.panel h2{letter-spacing:-.02em}.stats{gap:14px}.stats>div{border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stats>div:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--brand)}.stats b{font-size:30px;letter-spacing:-.04em}
button.primary,button.ok{background:linear-gradient(135deg,#169e97,#0d817b);box-shadow:0 5px 14px rgba(17,143,137,.18);border:0}.profilebtn,.waitmatch,.actionrow button,.v2toolbar button{border:1px solid #d9e1eb;background:#fff;color:#344054;border-radius:9px;padding:8px 11px;cursor:pointer;font-weight:700}.profilebtn:hover,.waitmatch:hover,.actionrow button:hover{border-color:#15958e;color:#0d766f}
.profiledialog{width:min(1000px,95vw)!important}.profilehero{display:flex;align-items:center;gap:14px;padding:4px 0 18px;border-bottom:1px solid var(--line)}.profilehero>div{flex:1}.profilehero h2{margin:2px 0}.profiletabs{padding:14px 0}.profiletabs button{border:0;background:#e9f6f5;color:#0c766f;border-radius:9px;padding:8px 12px;font-weight:800}.scheduletools{margin-top:18px;padding:18px;background:#f7fafc;border:1px solid var(--line);border-radius:14px}.scheduletools label{margin:12px 0}.actionrow{display:flex;gap:8px;flex-wrap:wrap}
.matchgrid,.reportcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.matchcard,.reportcard{border:1px solid var(--line);border-radius:15px;padding:16px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:#fff}.matchcard>strong{width:34px;height:34px;border-radius:10px;background:#eaf7f6;color:#0d817b;display:grid;place-items:center}.matchcard div:not(.meter),.reportcard>div{display:flex;flex-direction:column}.matchcard span,.matchcard small,.reportcard span{color:var(--em-text-muted);margin-top:3px}.matchcard em,.reportcard strong{font-size:20px;font-style:normal;color:#0d817b}.meter{grid-column:1/-1;height:7px;border-radius:99px;background:#edf1f5;overflow:hidden}.meter i{display:block;height:100%;background:linear-gradient(90deg,#20afa6,#0d817b);border-radius:99px}.sectiontitle{margin-top:28px!important}
.weekboard{display:grid;grid-template-columns:150px repeat(7,minmax(145px,1fr));overflow:auto;border:1px solid var(--line);border-radius:13px}.weekcorner,.weekdate{position:sticky;top:0;background:#f6f8fb;z-index:3;padding:12px;font-weight:800;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.weekcorner{left:0;z-index:4}.weektrainer{position:sticky;left:0;background:#fff;z-index:2;padding:14px;font-weight:800;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.weekdaycell{min-height:100px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.weekdaycell>small{color:var(--em-text-muted)}.miniBooking{width:100%;display:flex;flex-direction:column;text-align:left;border:0;border-left:3px solid #e3a62c;border-radius:7px;background:#fff8e6;padding:7px;margin-bottom:5px;font-size:11px;cursor:pointer}.miniBooking.booked{background:#edf4ff;border-left-color:#4b7fe5}.miniBooking b{font-size:11px;margin-top:2px}
.notificationlist{display:grid;gap:8px}.notificationlist article{display:flex;gap:12px;padding:15px;border:1px solid var(--line);border-radius:13px}.notificationlist article>span{color:var(--em-teal-text)}.notificationlist p{margin:5px 0;color:#56647a}.notificationlist small{color:var(--em-text-muted)}.smartpanel{background:linear-gradient(135deg,#fff,#f5fbfa)}
@media(max-width:900px){.emsm-main{padding:18px}.profilehero{align-items:flex-start}.weekboard{grid-template-columns:120px repeat(7,135px)}.matchgrid,.reportcards{grid-template-columns:1fr}}

/* v1.4.0 — approved branded app + frontend login */
.emsm-login-page{--login-navy:#102033;--login-teal:#118f89;display:grid;grid-template-columns:1.08fr .92fr;min-height:720px;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 24px 70px rgba(15,32,51,.14);font-family:Inter,system-ui,-apple-system,sans-serif;color:#142033}
.emsm-login-story{position:relative;padding:48px 56px;background:radial-gradient(circle at 18% 10%,#fff 0 10%,transparent 30%),linear-gradient(145deg,#effcf9,#dff5f2 52%,#f6fbfa);overflow:hidden}.emsm-login-story:before,.emsm-login-story:after{content:"";position:absolute;border-radius:50%;background:rgba(17,143,137,.08)}.emsm-login-story:before{width:330px;height:330px;right:-110px;top:-90px}.emsm-login-story:after{width:260px;height:260px;left:-110px;bottom:-90px}.emsm-login-brand{display:flex;align-items:center;gap:18px;position:relative;z-index:2}.emsm-login-brand img{width:155px;height:64px;object-fit:contain;object-position:left center}.emsm-login-brand span{border-left:1px solid rgba(16,32,51,.18);padding-left:18px;font-weight:800;color:#173042}.emsm-login-copy{position:relative;z-index:2;max-width:560px;margin-top:90px}.emsm-kicker{display:block;color:var(--login-teal);font-size:11px;letter-spacing:.16em;font-weight:900;margin-bottom:12px}.emsm-login-copy h1{font-size:52px;line-height:1.02;letter-spacing:-.055em;margin:0 0 20px;color:var(--login-navy)}.emsm-login-copy>p{font-size:17px;line-height:1.7;color:#5e7080;max-width:520px}.emsm-login-points{display:grid;gap:20px;margin-top:36px}.emsm-login-points>div{display:flex;gap:14px;align-items:flex-start}.emsm-login-points b{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#fff;color:var(--login-teal);box-shadow:0 7px 20px rgba(17,143,137,.12)}.emsm-login-points span{display:grid;gap:3px}.emsm-login-points strong{font-size:14px}.emsm-login-points small{font-size:12px;color:#728493}.emsm-login-tag{position:absolute;right:46px;bottom:42px;transform:rotate(-4deg);color:#66847f;font-size:16px;line-height:1.35;font-style:italic}.emsm-login-tag strong{color:var(--login-teal)}
.emsm-login-panel{display:grid;place-items:center;padding:48px;background:linear-gradient(180deg,#fff,#fbfcfd)}.emsm-login-card{width:min(430px,100%)}.emsm-mobile-logo{display:none}.emsm-login-card h2{font-size:31px;letter-spacing:-.04em;margin:0 0 8px}.emsm-login-card>p{color:var(--em-text-muted);margin:0 0 28px}.emsm-login-form{display:grid;gap:18px}.emsm-login-form>label{display:grid;gap:8px;font-size:12px;font-weight:800;color:#344054}.emsm-input{display:flex;align-items:center;border:1px solid #dbe2ea;border-radius:12px;background:#fff;padding:0 13px;transition:.18s}.emsm-input:focus-within{border-color:#24a69f;box-shadow:0 0 0 4px rgba(17,143,137,.09)}.emsm-input span{color:var(--em-text-muted)}.emsm-input input{border:0!important;box-shadow:none!important;outline:0!important;padding:14px 10px!important;min-height:50px;background:transparent!important}.emsm-login-options{display:flex;justify-content:space-between;align-items:center;font-size:12px}.emsm-login-options label{display:flex;align-items:center;gap:7px;color:#59677a}.emsm-login-options input{width:auto}.emsm-login-options a{color:var(--login-teal);font-weight:800;text-decoration:none}.emsm-login-submit{height:52px;border:0;border-radius:12px;background:linear-gradient(135deg,#102b42,#13233a);color:#fff;font-weight:850;font-size:14px;cursor:pointer;display:flex;justify-content:center;gap:10px;align-items:center;box-shadow:0 10px 24px rgba(16,32,51,.18)}.emsm-login-submit:hover{transform:translateY(-1px)}.emsm-login-help{display:block;text-align:center;color:var(--em-text-muted);line-height:1.5;margin-top:20px}.emsm-login-error{background:#fff1f0;border:1px solid #ffd0cc;color:#a7352e;padding:11px 12px;border-radius:10px;font-size:12px;margin-bottom:16px}.emsm-access-denied{max-width:520px;margin:60px auto;padding:34px;background:#fff;border:1px solid #e5eaf1;border-radius:18px;text-align:center;box-shadow:var(--shadow)}
/* app shell refinement to match approved mockup */
.emsm-app{grid-template-columns:244px 1fr;border-radius:24px}.emsm-side{background:linear-gradient(180deg,#0e1e31,#101d2f);padding:26px 16px}.emsm-brand{gap:12px;padding:0 8px 24px;margin-bottom:12px}.emsm-brand img{width:52px;height:44px;object-fit:contain;background:#fff;border-radius:12px;padding:5px}.emsm-brand>div{font-size:16px}.emsm-brand small{margin-top:3px}.emsm-side nav button{position:relative;padding:11px 13px 11px 16px;font-size:13px}.emsm-side nav button.active{background:#0d756f;color:#fff;box-shadow:0 8px 22px rgba(13,117,111,.24)}.emsm-main{background:#f7f9fc}.emsm-main header{background:rgba(247,249,252,.92);position:sticky;top:0;z-index:20;padding-top:4px}.emsm-user{background:#fff;border:1px solid #e7ebf1;border-radius:14px;padding:7px 10px 7px 7px;box-shadow:0 4px 14px rgba(19,36,58,.04)}.emsm-user small a{color:#0d817b}.stats>div{background:linear-gradient(180deg,#fff,#fdfefe)}.stats>div:before{width:0}.stats>div:nth-child(1) b{color:#0d817b}.panel{box-shadow:0 8px 28px rgba(20,35,54,.055)}
@media(max-width:900px){.emsm-login-page{grid-template-columns:1fr;min-height:auto}.emsm-login-story{display:none}.emsm-login-panel{min-height:680px;padding:30px 22px;background:linear-gradient(145deg,#effcf9,#fff 42%)}.emsm-mobile-logo{display:block;margin-bottom:28px}.emsm-mobile-logo img{width:170px;height:65px;object-fit:contain;object-position:left center}.emsm-app{grid-template-columns:1fr;border-radius:16px}.emsm-brand img{width:44px;height:38px}.emsm-side nav{padding-bottom:4px}.emsm-main header{position:relative}.emsm-user{padding:5px 7px}.emsm-login-card h2{font-size:28px}}
/* v1.6 Data Management */
.resetgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.resetcard{border:1px solid #e3e9f2;border-radius:18px;padding:22px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:#fff}.resetcard.factory{border-color:#f2c7c7;background:#fffafa}.resetcard h3{margin:0;font-size:18px}.resetcard p{margin:0;color:var(--em-text-muted);line-height:1.55}.resetcard b{font-size:13px;color:#42516a}.reseticon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff0f0;color:#bd2c2c;font-weight:800}.warningbox{margin-top:20px;border-radius:16px;padding:16px 18px;background:#fff8e8;border:1px solid #f0d99a}.warningbox p{margin:5px 0 0;color:#6c5a2d}@media(max-width:900px){.resetgrid{grid-template-columns:1fr}}
/* v1.7 Operations UI 2.0 */
:root{--brand:#0d8f89;--brand2:#0b6f6b;--mint:#eaf8f5;--nav:#10213b;--ink:#14213d;--muted:#748198;--line:#e6ebf2;--bg:#f6f8fb;--shadow:0 10px 30px rgba(20,33,61,.06)}
.emsm-app{grid-template-columns:250px 1fr;min-height:820px;background:var(--bg);border:1px solid #edf0f4;box-shadow:0 18px 60px rgba(15,23,42,.08)}.emsm-side{background:linear-gradient(180deg,#10213b 0%,#132942 100%);padding:28px 18px}.emsm-brand{padding:0 8px 24px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:22px}.emsm-brand>span{background:linear-gradient(135deg,#1ca79f,#08746f);box-shadow:0 8px 18px rgba(13,143,137,.28)}.emsm-side nav button{padding:13px 14px;border-radius:12px;font-size:13px}.emsm-side nav button.active{background:linear-gradient(90deg,rgba(24,160,153,.28),rgba(24,160,153,.09));box-shadow:inset 3px 0 #29b9af}.emsm-main{padding:30px 34px}.emsm-main header{background:#fff;border:1px solid var(--line);padding:18px 20px;border-radius:16px;box-shadow:var(--shadow)}.emsm-main h1{font-size:25px}.emsm-avatar{border-radius:50%;background:linear-gradient(135deg,#19a49c,#08746f)}.stats>div{padding:20px 22px;border-radius:18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stats>div:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#d9e1eb}.stats>div:nth-child(2):before{background:#8b5cf6}.stats>div:nth-child(4):before{background:#0d8f89}.stats b{font-size:31px;letter-spacing:-.04em}.panel{border-radius:18px;box-shadow:var(--shadow);padding:20px}.panelhead p{margin:5px 0 0;color:var(--muted);font-size:13px}.primary,.ok{background:linear-gradient(135deg,#159d96,#087b76);box-shadow:0 5px 14px rgba(13,143,137,.16)}.primary:hover,.ok:hover{filter:brightness(.96);transform:translateY(-1px)}button{transition:.18s ease}.status{font-weight:750;padding:6px 10px}.status.available{background:#eee9ff;color:#6842c2}.status.waiting_tl_approval,.status.pending,.status.pending_tl{background:#fff2d9;color:#a45f00}.status.admission{background:#e5f7ee;color:#08764e}.status.booked{background:#e8f0ff;color:#285fc5}.status.not-converted,.status.not_converted,.status.rejected{background:#feeceb;color:#b42318}
/* dashboard action strip */.opshero{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 24px;background:linear-gradient(120deg,#e8f8f5,#f7fbff);border:1px solid #dbeeea;border-radius:20px;margin-bottom:18px}.opshero h2{margin:0 0 6px;font-size:20px}.opshero p{margin:0;color:var(--muted)}.quickactions{display:flex;gap:9px;flex-wrap:wrap}.quickactions button{border:1px solid #d9e5e3;background:#fff;border-radius:11px;padding:10px 13px;font-weight:700;color:#24504d;cursor:pointer}
/* approvals */.approvalgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}.approvalcard{margin:0}.approvalslots{display:grid;gap:8px}.approvalslots>div{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;padding:11px 12px;border:1px solid #edf0f4;border-radius:12px;background:#fbfcfe}.approvalslots .ok,.approvalslots .danger{padding:8px 10px;font-size:12px}
.slotcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;padding:14px}.slotcard{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff;display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center}.slotcard div{display:flex;flex-direction:column;gap:4px}.slotcard span{font-size:12px;color:var(--muted)}.slotcard>small{grid-column:1/-1;color:#667085}
/* counsellor finder */.searchpanel{background:linear-gradient(135deg,#f2fbf9,#fff)}.availablecards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.availablecard{border-radius:16px;padding:17px;box-shadow:0 5px 16px rgba(20,33,61,.035)}.availablecard .dot{width:11px;height:11px;background:#7c4dff;border-radius:50%;box-shadow:0 0 0 5px #f0ebff}.availablecard strong{margin-left:auto;color:#087b76;background:#e9f8f5;padding:7px 10px;border-radius:9px}.dialog{border-radius:22px;padding:26px;box-shadow:0 24px 70px rgba(15,23,42,.22)}.dialog .eyebrow{color:var(--em-teal-text)}.drawer-time{background:#f5f8fb;border-radius:12px;padding:12px 14px;margin:8px 0 4px}
/* trainer availability */.availability-modes{display:flex;gap:8px;margin-bottom:16px}.availability-modes span{padding:8px 11px;border-radius:9px;background:#e9f8f5;color:#087b76;font-size:12px;font-weight:800}.weekdays label{background:#fff;cursor:pointer}.weekdays label:has(input:checked){background:#e9f8f5;border-color:#86cec9;color:#087b76}
/* team/course */.studentgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}.studentcard{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px}.studentavatar{width:42px;height:42px;border-radius:12px;background:#e9f8f5;color:#087b76;display:grid;place-items:center;font-weight:850}.studentcard>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.studentcard small{color:var(--muted)}.studentcard .status{margin-left:auto}.coursechips{display:flex;gap:9px;flex-wrap:wrap}.coursechips>span{background:#f2f6fa;border:1px solid var(--line);padding:9px 11px;border-radius:11px;font-weight:650}.coursechips button{border:0;background:none;color:var(--em-text-muted);cursor:pointer}
/* reset */.resetgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.resetcard{border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px}.resetcard h3,.resetcard p{margin:0}.resetcard p{color:var(--muted);font-size:13px;line-height:1.5}.resetcard .danger{margin-top:auto}.reseticon{width:38px;height:38px;border-radius:11px;background:#f1f5f9;display:grid;place-items:center;font-weight:900}.warningbox{margin-top:16px;padding:14px 16px;background:#fff8e7;border:1px solid #f4dfa7;border-radius:13px}.warningbox p{margin:5px 0 0;color:#7c6430}
@media(max-width:900px){.emsm-app{display:block;border-radius:0}.emsm-side{position:sticky;top:0;z-index:50;padding:12px 14px}.emsm-brand{display:none}.emsm-side nav{display:flex;overflow-x:auto;gap:5px}.emsm-side nav button{padding:10px 12px}.emsm-main{padding:14px}.emsm-main header{padding:14px;margin-bottom:14px}.emsm-main header p{display:none}.stats{grid-template-columns:1fr 1fr}.opshero{align-items:flex-start;flex-direction:column}.approvalgrid,.resetgrid{grid-template-columns:1fr}.approvalslots>div{grid-template-columns:1fr auto}.approvalslots>div button{grid-row:2}.availablecards{grid-template-columns:1fr}.formgrid,.formgrid.two{grid-template-columns:1fr}}
/* v1.7.1 Trainer Availability — time-first workflow */
.trainer-avail-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr);gap:18px;align-items:start}.regular-panel,.exception-card{margin:0}.miniok{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:#e5f7ee;color:#08764e;font-size:11px;font-weight:800;vertical-align:middle;margin-left:8px}.quick-slot-add,.bulkbox{background:#f7f9fc;border:1px solid #edf1f6;border-radius:15px;padding:16px;margin-top:16px}.quick-slot-add h3,.bulkbox h3{margin:0 0 10px;font-size:14px}.bulkbox p{margin:-3px 0 10px;color:var(--muted);font-size:12px}.bulkbox>div{display:flex;gap:8px}.bulkbox input{flex:1}.bulkbox button{min-width:92px;border:0;border-radius:10px;background:#e8f0ff;color:#2161d1;font-weight:800}.time-add-row{display:flex;align-items:end;gap:10px}.time-add-row label{flex:1}.time-add-row .arrow{padding-bottom:13px;color:var(--em-text-muted);font-size:20px}.time-add-row select{width:100%}.reviewhead{display:flex;justify-content:space-between;align-items:center;margin:20px 0 10px}.reviewhead>div{display:flex;align-items:center;gap:8px}.reviewhead h3{margin:0}.regularrow{display:grid;grid-template-columns:26px 1fr auto 34px;align-items:center;gap:10px;padding:13px 12px;border-bottom:1px solid #edf0f4;background:#fff}.regularrow:first-child{border-radius:12px 12px 0 0}.regularrow:last-child{border-radius:0 0 12px 12px}.drag{color:var(--em-text-muted);font-size:18px}.trash{border:0;background:transparent;color:var(--em-danger-text);font-size:20px;cursor:pointer}.submitbar{width:100%;margin-top:18px;border:0;border-radius:12px;padding:14px 18px;background:linear-gradient(135deg,#1677ff,#145be8);color:#fff;font-weight:800;font-size:14px;cursor:pointer;box-shadow:0 8px 20px rgba(20,91,232,.18)}.submitnote{text-align:center;color:var(--muted);font-size:11px}.exception-card{position:sticky;top:112px}.exception-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#f4f6f9;border-radius:10px;padding:4px;margin:14px 0}.exception-tabs button{border:0;background:transparent;border-radius:8px;padding:9px;font-weight:700;color:#667085}.exception-tabs button.active{background:#fff;color:#1768e5;box-shadow:0 2px 8px rgba(15,23,42,.06)}.exception-card>label{display:block;margin:12px 0}.exception-card>label input{width:100%}.exceptionbtn{width:100%;margin-top:12px;border:1px solid #ffd1d1;background:#fff0f0;color:#d92d20;border-radius:10px;padding:12px;font-weight:800;cursor:pointer}.upcoming-title{font-size:14px;margin:22px 0 10px}.exception-list{display:grid;gap:8px}.exception-list>div{display:flex;align-items:center;gap:8px;border:1px solid #edf0f4;border-left:3px solid #ef4444;border-radius:10px;padding:10px}.exception-list>div>span:first-child{display:flex;flex-direction:column;flex:1}.exception-list small{color:var(--muted);margin-top:3px}.exception-list .status{font-size:11px}.status.leave{background:#e5f7ee;color:#08764e}
@media(max-width:1050px){.trainer-avail-layout{grid-template-columns:1fr}.exception-card{position:static}}@media(max-width:650px){.time-add-row{display:grid;grid-template-columns:1fr 24px 1fr}.time-add-row .primary{grid-column:1/-1}.bulkbox>div{flex-direction:column}.regularrow{grid-template-columns:22px 1fr auto}.regularrow .trash{grid-column:3}.miniok{margin-left:0}.reviewhead>div{align-items:flex-start;flex-direction:column}}
/* v1.7.2 Trainer quick-pick availability */
.timeperiod-list{display:grid;gap:10px;margin-top:16px}.timeperiod{display:grid;grid-template-columns:175px minmax(0,1fr) 82px;gap:14px;align-items:start;padding:15px;border:1px solid #edf1f6;border-radius:15px}.timeperiod.early{background:linear-gradient(90deg,#fff8f4,#fff)}.timeperiod.morning{background:linear-gradient(90deg,#fffbed,#fff)}.timeperiod.evening{background:linear-gradient(90deg,#f7f4ff,#fff)}.timeperiod.night{background:linear-gradient(90deg,#f3f6ff,#fff)}.periodmeta{display:flex;gap:10px;align-items:center}.periodicon{font-size:24px}.periodmeta>div{display:flex;flex-direction:column}.periodmeta b{font-size:13px}.periodmeta small{font-size:11px;color:var(--muted);margin-top:3px}.periodslots{display:flex;flex-wrap:wrap;gap:7px}.timecheck{position:relative}.timecheck input{position:absolute;opacity:0;pointer-events:none}.timecheck span{display:block;border:1px solid #dbe3ed;background:#fff;border-radius:9px;padding:8px 9px;font-size:11px;font-weight:700;color:#344054;cursor:pointer;transition:.15s}.timecheck input:checked+span{border-color:#4b8cff;background:#eaf2ff;color:#145be8;box-shadow:inset 0 0 0 1px #4b8cff}.timecheck input:disabled+span{opacity:.72;cursor:not-allowed;background:#e9f8f5;border-color:#b9e3df;color:#087b76}.selectperiod{display:flex;align-items:center;gap:6px;justify-content:flex-end;font-size:11px;font-weight:750;color:#475467;cursor:pointer;padding-top:7px}.selectperiod input{accent-color:#1677ff}.outlinebtn{border:1px solid #80aef9;background:#fff;color:#1768e5;border-radius:10px;padding:10px 13px;font-weight:800;cursor:pointer}.compactbulk{padding:0;background:transparent;border:0}.compactbulk details{border:1px dashed #d9e2ec;border-radius:12px;padding:11px 13px}.compactbulk summary{cursor:pointer;font-weight:750;color:#475467;font-size:12px}.textdanger{border:0;background:transparent;color:#d92d20;font-size:12px;font-weight:750;cursor:pointer}.submitbar.disabled,.submitbar:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.regularrow .status.draft{background:#eaf2ff;color:#145be8}
@media(max-width:1200px){.timeperiod{grid-template-columns:145px minmax(0,1fr)}.selectperiod{grid-column:1/-1;justify-content:flex-start;padding-top:0}}@media(max-width:700px){.timeperiod{grid-template-columns:1fr}.periodslots{display:grid;grid-template-columns:1fr 1fr}.timecheck span{text-align:center;padding:10px 6px}.regular-panel .panelhead{align-items:flex-start;gap:10px}.outlinebtn{white-space:nowrap}}
/* v1.7.3 trainer availability refinement */
.trainer-avail-stack{display:flex;flex-direction:column;gap:18px}.trainer-avail-stack .regular-panel{width:100%}.trainer-avail-stack #exceptionmini{order:2;width:100%}.trainer-avail-stack .exception-card{position:static;margin:0}.trainer-avail-stack .exception-card .panelhead{margin-bottom:8px}.trainer-avail-stack .exception-card{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(420px,1.3fr);gap:16px 24px;align-items:start}.trainer-avail-stack .exception-card>.panelhead{grid-column:1/-1}.trainer-avail-stack .exception-tabs,.trainer-avail-stack .exception-card>label,.trainer-avail-stack #extimes,.trainer-avail-stack .exceptionbtn{grid-column:1}.trainer-avail-stack .upcoming-title,.trainer-avail-stack .exception-list{grid-column:2}.trainer-avail-stack .upcoming-title{grid-row:2;margin:14px 0 0}.trainer-avail-stack .exception-list{grid-row:3/8}.custom-slot-box{border:1px solid #cfe0ff;background:linear-gradient(135deg,#f7faff,#fff);box-shadow:0 10px 28px rgba(33,97,209,.08)}.custom-slot-box[hidden]{display:none!important}.custom-slot-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.custom-slot-head h3{font-size:16px;margin:0 0 4px}.custom-slot-head p{margin:0;color:var(--muted);font-size:12px}.iconclose{width:32px;height:32px;border:0;border-radius:9px;background:#eef3fb;color:#667085;font-size:20px;cursor:pointer}.reviewmodal{z-index:var(--em-z-sheet)}.reviewdialog{width:min(720px,calc(100vw - 32px));max-width:720px;max-height:88vh;overflow:auto;padding:0}.reviewmodal-head{display:flex;justify-content:space-between;gap:20px;padding:24px 26px 18px;border-bottom:1px solid #edf1f6}.reviewmodal-head h2{margin:4px 0 5px;font-size:24px}.reviewmodal-head p{margin:0;color:var(--muted);font-size:13px}.revieweyebrow{font-size:11px;letter-spacing:.12em;color:#1768e5;font-weight:900}.reviewsummary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 26px;background:#f8faff}.reviewsummary>div{background:#fff;border:1px solid #e7edf5;border-radius:12px;padding:12px;display:flex;flex-direction:column}.reviewsummary b{font-size:20px}.reviewsummary span{font-size:11px;color:var(--muted);margin-top:2px}.reviewgroups{padding:18px 26px;display:grid;gap:16px}.reviewgroups section{border:1px solid #e7edf5;border-radius:14px;overflow:hidden}.reviewgroups h3{margin:0;padding:11px 14px;background:#f8fafc;font-size:13px;display:flex;justify-content:space-between}.reviewgroups h3 span{background:#eaf2ff;color:#1768e5;border-radius:999px;padding:2px 8px;font-size:11px}.reviewslot{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:11px 14px;border-top:1px solid #eef2f6}.reviewslot:first-child{border-top:0}.reviewcheck{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#e7f8ef;color:#08764e;font-size:11px;font-weight:900}.reviewremove{border:0;background:transparent;color:#d92d20;font-size:11px;font-weight:750;cursor:pointer}.reviewnotice{margin:0 26px 18px;padding:11px 13px;border-radius:11px;background:#f0f7ff;color:#34547d;font-size:12px}.reviewactions{position:sticky;bottom:0;background:#fff;border-top:1px solid #edf1f6;padding:16px 26px;display:grid;grid-template-columns:140px 1fr;gap:10px}.reviewactions .primary{border:0;border-radius:10px}.reviewsuccess{text-align:center;padding:44px 30px}.reviewsuccess>span{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;margin:0 auto 15px;background:#e5f7ee;color:#08764e;font-size:26px;font-weight:900}.reviewsuccess h2{margin:0 0 7px}.reviewsuccess p{color:var(--muted);max-width:430px;margin:0 auto 20px}.reviewsuccess .donebtn{min-width:140px;border:0;border-radius:10px;padding:11px 18px}
@media(max-width:850px){.trainer-avail-stack .exception-card{display:block}.trainer-avail-stack .upcoming-title{margin-top:22px}.reviewsummary{grid-template-columns:1fr 1fr 1fr}.reviewactions{grid-template-columns:1fr}.reviewmodal-head,.reviewgroups,.reviewsummary,.reviewactions{padding-left:16px;padding-right:16px}.reviewnotice{margin-left:16px;margin-right:16px}}
/* v1.7.4 compact availability + priority submit */
.submit-priority{position:sticky;top:12px;z-index:12;margin:18px 0 14px;padding:13px 15px;border:1px solid #e4e9f0;border-radius:14px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 26px rgba(16,24,40,.07);display:flex;align-items:center;justify-content:space-between;gap:14px}.submit-priority.has-drafts{border-color:#b9d0ff;background:linear-gradient(135deg,rgba(242,247,255,.98),rgba(255,255,255,.98));box-shadow:0 10px 28px rgba(30,93,210,.12)}.submit-priority-copy{display:flex;align-items:center;gap:11px;min-width:0}.submit-priority-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e8f7ef;color:#08764e;font-weight:900}.has-drafts .submit-priority-icon{background:#e8f0ff;color:#1768e5}.submit-priority-copy>div{display:flex;flex-direction:column;gap:2px}.submit-priority-copy b{font-size:13px}.submit-priority-copy small{font-size:11px;color:var(--muted)}.submit-priority-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}.compact-submit{width:auto;margin:0;padding:10px 15px;box-shadow:none;white-space:nowrap}.compact-review-head{margin:20px 0 10px}.compact-review-head>div{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px}.compact-review-head h3{font-size:20px}.availability-counts{display:flex;gap:6px;flex-wrap:wrap}.availability-counts span{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f0f3f7;color:#65738a;font-size:11px;font-weight:800}.availability-counts #draftlabel.has-new{background:#e5f7ee;color:#08764e}.availability-groups{display:grid;gap:8px}.availability-group{border:1px solid #e6ebf2;border-radius:13px;background:#fff;overflow:hidden}.availability-group summary{list-style:none;display:grid;grid-template-columns:34px minmax(160px,1fr) auto 22px;align-items:center;gap:10px;padding:11px 13px;cursor:pointer}.availability-group summary::-webkit-details-marker{display:none}.availability-group[open] summary{background:#fafbfd;border-bottom:1px solid #edf1f5}.availability-group-icon{font-size:18px}.availability-group-main{display:flex;flex-direction:column;gap:2px}.availability-group-main b{font-size:12px}.availability-group-main small{font-size:11px;color:var(--muted)}.availability-group-meta{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.availability-group-meta strong{font-size:11px;color:#344054;margin-right:3px}.availability-group-meta em{font-style:normal;font-size:11px;font-weight:800;padding:4px 7px;border-radius:999px;background:#e8f7ef;color:#08764e}.availability-group-meta em.waiting{background:#fff4dc;color:#9a6400}.availability-group-meta em.new{background:#e8f0ff;color:#1768e5}.availability-chevron{font-size:16px;color:var(--em-text-muted);transition:.15s}.availability-group[open] .availability-chevron{transform:rotate(180deg)}.availability-slot-chips{display:flex;flex-wrap:wrap;gap:7px;padding:11px 13px}.availability-chip{display:inline-grid;grid-template-columns:auto auto auto;align-items:center;gap:6px;padding:7px 8px 7px 10px;border:1px solid #dfe6ee;border-radius:9px;background:#fff}.availability-chip b{font-size:11px}.availability-chip small{font-size:11px;font-weight:800;color:#667085;text-transform:uppercase}.availability-chip.is-approved{background:#f2fbf7;border-color:#d5efe3}.availability-chip.is-waiting{background:#fffaf0;border-color:#f4e5bd}.availability-chip.is-new{background:#f2f6ff;border-color:#cfddfb}.availability-chip button{width:20px;height:20px;border:0;border-radius:6px;background:#fff;color:#d92d20;cursor:pointer;font-size:14px;line-height:1}.compact-empty{border:1px dashed #dbe3ed;border-radius:12px}.compact-availability+.submitnote{margin-top:10px}.textdanger[hidden]{display:none!important}
@media(max-width:760px){.submit-priority{top:8px;align-items:stretch;flex-direction:column}.submit-priority-actions{width:100%}.compact-submit{flex:1}.compact-review-head>div{align-items:flex-start;flex-direction:column}.availability-group summary{grid-template-columns:30px 1fr 20px}.availability-group-meta{grid-column:2/4;justify-content:flex-start}.availability-chevron{grid-column:3;grid-row:1}.availability-slot-chips{display:grid;grid-template-columns:1fr 1fr}.availability-chip{grid-template-columns:1fr auto}.availability-chip small{display:none}}
@media(max-width:480px){.availability-slot-chips{grid-template-columns:1fr}.submit-priority-actions{flex-direction:column-reverse;align-items:stretch}.submit-priority-actions .textdanger{text-align:center;padding:8px}}
/* v1.7.5 compact TL approvals + rejected trainer state */
.approval-summary{display:grid;grid-template-columns:160px 160px 1fr;gap:12px;align-items:center;margin-bottom:16px}.approval-summary>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 18px;box-shadow:var(--shadow)}.approval-summary b{font-size:24px;display:block}.approval-summary span{font-size:12px;color:var(--muted)}.approval-summary .primary{justify-self:end;padding:12px 18px}.approvalcompact{display:grid;gap:14px}.compact-approval-card{padding:16px 18px}.compact-approval-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.compact-approval-head h2{margin:0;font-size:19px}.compact-approval-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.compact-approval-actions{display:flex;gap:8px}.approval-periods{display:grid;gap:9px;margin-top:14px}.approval-period{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:start}.approval-period>span{font-size:11px;font-weight:800;color:var(--muted);padding-top:8px;text-transform:uppercase}.approval-period>div{display:flex;gap:7px;flex-wrap:wrap}.approval-time{border:1px solid #d8e4e3;background:#f4fbfa;color:#173c3a;border-radius:10px;padding:7px 10px;font-weight:700;font-size:12px}.approval-time i{font-style:normal;margin-left:7px;color:var(--em-teal-text)}.approval-time:hover{background:#e4f6f3;border-color:#83c9c4}.approval-reject-details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.approval-reject-details summary{cursor:pointer;color:var(--muted);font-size:12px;font-weight:700}.approval-individual{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;margin-top:10px}.approval-individual>div{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:7px 9px}.approval-individual b{font-size:12px}.approval-individual .danger{padding:6px 8px;font-size:11px}.availability-group-meta em.rejected{background:#feeceb;color:#b42318}.availability-chip.is-rejected{background:#fff5f4;border-color:#f5c5c1}.availability-chip.is-rejected small{color:#b42318}.availability-counts #rejectedcount{color:#b42318;background:#feeceb}
@media(max-width:900px){.approval-summary{grid-template-columns:1fr 1fr}.approval-summary .primary{grid-column:1/-1;width:100%}.compact-approval-head{align-items:flex-start;flex-direction:column}.compact-approval-actions{width:100%}.compact-approval-actions button{flex:1}.approval-period{grid-template-columns:1fr}.approval-period>span{padding-top:0}}
/* v1.7.8 counsellor quick-booking overhaul */
.quickbook-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 24px;margin-bottom:16px;border:1px solid #dceae8;border-radius:20px;background:linear-gradient(135deg,#eefbf8,#fff)}.quickbook-hero h2{margin:3px 0 5px;font-size:22px}.quickbook-hero p{margin:0;color:var(--muted)}.qbfilters{padding:18px!important}.qb-date{display:flex;gap:8px;align-items:center}.qb-date input{min-height:42px;border:1px solid #d8e0eb;border-radius:10px;padding:8px 12px}.qb-date button,.todaychip{height:42px;border:1px solid #d8e0eb;border-radius:10px;background:#fff;padding:0 13px;font-weight:750;cursor:pointer}.qbchips{display:flex;gap:7px;overflow:auto;padding:14px 0 12px}.qbchips button{white-space:nowrap;border:1px solid #dce4ee;background:#fff;color:#526177;border-radius:999px;padding:8px 12px;font-weight:750;cursor:pointer}.qbchips button.active{background:#0f918a;color:#fff;border-color:#0f918a}.qbsecondary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.qbsecondary label{font-size:12px;font-weight:750;color:#667085}.qbsecondary select,.qbsecondary input{display:block;width:100%;margin-top:5px;min-height:42px;border:1px solid #d8e0eb;border-radius:10px;padding:8px 11px;background:#fff}.qbresults{margin-top:16px}.qbsummary{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.qbsummary span{color:var(--muted)}.qbgroup{margin:0 0 22px}.qbgroup h3{display:flex;gap:8px;align-items:center;margin:0 0 10px;font-size:15px}.qbgroup h3 small{color:var(--muted);font-weight:500}.qbgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qbcard{border:1px solid #dfe6ee;border-radius:15px;padding:14px;background:#fff;transition:.18s}.qbcard:hover{border-color:#a9d8d4;box-shadow:0 7px 22px rgba(15,35,60,.06)}.qbcard.justbooked{border-color:#57bea1;background:#f2fcf8}.qbtime{font-size:16px;font-weight:850;color:#14213d;margin-bottom:12px}.qbtrainer{display:flex;align-items:center;gap:9px}.qbtrainer>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#e7f6f4;color:#07827b;font-weight:850}.qbtrainer div{min-width:0;flex:1}.qbtrainer b,.qbtrainer small{display:block}.qbtrainer small{font-size:11px;color:var(--em-text-muted);margin-top:2px}.qbbook{width:100%;margin-top:13px;border:0;border-radius:10px;padding:10px;background:#e7f7f4;color:#087d77;font-weight:850;cursor:pointer}.qbbook:hover{background:#0f918a;color:#fff}.booking-success{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e6f8f0;color:#087a55;font-weight:900;font-size:20px}.optional{font-size:11px;color:var(--em-text-muted);font-weight:500}.dialog-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:9px;margin-top:16px}.bookingstats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.bookingstats>div{background:#fff;border:1px solid #e0e6ee;border-radius:16px;padding:16px}.bookingstats b,.bookingstats span{display:block}.bookingstats b{font-size:24px}.bookingstats span{color:var(--muted);font-size:12px;margin-top:3px}.bookingstats .needs{background:#fffaf0;border-color:#f3dfad}.mybookinglist{display:grid;gap:8px}.mybooking{display:grid;grid-template-columns:170px minmax(220px,1fr) auto auto auto;gap:12px;align-items:center;border:1px solid #e1e7ef;border-radius:13px;padding:12px 14px}.mybooking.needs-details{border-left:4px solid #f2a93b;background:#fffdf8}.mbdate b,.mbdate span,.mbmain b,.mbmain small{display:block}.mbdate span,.mbmain small{color:var(--muted);font-size:12px;margin-top:3px}.mbcourse{background:#f2f5f8;border-radius:999px;padding:6px 9px;font-size:11px}.editbooking{border:1px solid #bcdedb;background:#effaf8;color:#087d77;border-radius:9px;padding:8px 10px;font-weight:800;cursor:pointer}
@media(max-width:900px){.quickbook-hero{align-items:flex-start;flex-direction:column}.qbsecondary,.qbgrid,.bookingstats{grid-template-columns:1fr}.mybooking{grid-template-columns:1fr auto}.mbmain{grid-column:1/-1}.mbcourse{justify-self:start}}

/* v1.8.0 — UI System Overhaul */
:root{--brand:#0f938d;--brand-dark:#08766f;--nav:#0d203b;--ink:#13213c;--muted:#7888a3;--line:#e3e9f1;--bg:#f4f7fb;--radius:18px;--shadow:0 10px 30px rgba(20,40,75,.055)}
.emsm-app{background:linear-gradient(145deg,#f7f9fc,#f1f5fa);border:1px solid #e7ebf1;box-shadow:0 24px 70px rgba(18,35,65,.08)}
.emsm-side{background:linear-gradient(180deg,#0d1d35 0%,#102b4b 100%);padding:28px 20px}.emsm-side nav{gap:6px}.emsm-side nav button{position:relative;padding:13px 14px;border-radius:12px;transition:.18s ease}.emsm-side nav button.active{background:linear-gradient(90deg,rgba(22,174,166,.23),rgba(22,174,166,.09));box-shadow:inset 3px 0 #2dd4bf}.emsm-main{padding:32px 34px}.emsm-main>header{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px 24px;box-shadow:var(--shadow);margin-bottom:22px}.emsm-main h1{font-size:28px;letter-spacing:-.035em}.panel,.stats>div{border-color:var(--line);border-radius:18px;box-shadow:var(--shadow)}.panel{padding:22px}.stats{gap:16px}.stats>div{position:relative;overflow:hidden;padding:20px 22px}.stats>div:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#dce5ef}.stats>div:nth-child(1):before{background:#13a69d}.stats>div:nth-child(2):before{background:#7357e8}.stats>div:nth-child(3):before{background:#f59e0b}.stats>div:nth-child(4):before{background:#3b82f6}.stats b{letter-spacing:-.04em}.primary,.ok{background:linear-gradient(135deg,#12a39b,#087e78);box-shadow:0 6px 14px rgba(15,147,141,.18);transition:.18s}.primary:hover,.ok:hover{transform:translateY(-1px);box-shadow:0 9px 18px rgba(15,147,141,.24)}:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) button:disabled{opacity:.62;cursor:not-allowed;transform:none!important}input,select,textarea{transition:.15s}input:focus,select:focus,textarea:focus{outline:0;border-color:#42bdb6;box-shadow:0 0 0 3px rgba(20,160,152,.11)}
.emsm-toasts{position:fixed;right:24px;top:24px;z-index:var(--em-z-toast);display:grid;gap:10px;width:min(390px,calc(100vw - 32px))}.emsm-toast{display:grid;grid-template-columns:38px 1fr auto auto;gap:11px;align-items:center;background:#fff;border:1px solid #dfe6ee;border-radius:16px;padding:13px 13px;box-shadow:0 18px 50px rgba(10,30,55,.18);animation:toastin .22s ease}.emsm-toast.error{border-left:4px solid #e5484d}.emsm-toast.warning{border-left:4px solid #e9a31a}.emsm-toast.success{border-left:4px solid #15a47a}.toasticon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e9f8f3;color:#087a55;font-weight:900}.error .toasticon{background:#fff0f0;color:#c52b31}.warning .toasticon{background:#fff7e5;color:#a96800}.emsm-toast b{display:block;font-size:13px}.emsm-toast p{margin:2px 0 0;color:#68778e;font-size:12px;line-height:1.4}.emsm-toast>button:not(.toastx){border:0;background:#eef8f7;color:#087b75;padding:7px 9px;border-radius:8px;font-weight:800}.toastx{border:0;background:transparent;color:#98a2b3;font-size:20px}.emsm-toast.leaving{opacity:0;transform:translateX(12px);transition:.18s}@keyframes toastin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.emsm-confirm{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.confirmdialog,.resetdialog{text-align:center;width:min(430px,100%);padding:30px;border:1px solid #e6eaf0;box-shadow:0 30px 90px rgba(7,20,40,.24)}.confirmdialog p,.resetdialog p{color:var(--em-text-muted);line-height:1.55}.confirmicon{width:48px;height:48px;border-radius:15px;background:#e8f8f5;color:var(--em-teal-text);display:grid;place-items:center;font-size:22px;font-weight:900;margin:0 auto}.confirmicon.dangerous{background:#fff0f0;color:#c83238}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.outlinebtn{border:1px solid #dbe2ea;background:#fff;color:#475569;border-radius:10px;padding:10px 13px;font-weight:750}.resetdialog{text-align:left}.resetdialog .confirmicon{margin:0}.resetdialog .revieweyebrow{color:#c83238}.resetdialog label{text-align:left;margin-top:6px}.resetdialog .danger{background:#c92e35;color:#fff}.settingshero{background:linear-gradient(110deg,#0d2b48,#0f756f);color:#fff;border-radius:20px;padding:24px 26px;margin-bottom:18px;box-shadow:0 14px 35px rgba(15,60,85,.16)}.settingshero span{font-size:11px;font-weight:900;letter-spacing:.16em;color:var(--em-teal-text)}.settingshero h2{margin:6px 0;font-size:22px}.settingshero p{margin:0;color:#c9e1e5}.resetcard{transition:.18s}.resetcard:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(20,40,70,.06)}
.emsm-loading{position:relative;min-height:240px;font-size:0}.emsm-loading:before{content:"";position:absolute;left:50%;top:70px;width:34px;height:34px;border:3px solid #dce7ed;border-top-color:#13958f;border-radius:50%;animation:spin .75s linear infinite}.emsm-loading:after{content:"Loading workspace…";position:absolute;top:120px;left:0;right:0;text-align:center;font-size:13px;color:var(--em-text-muted)}@keyframes spin{to{transform:rotate(360deg)}}
.slotcard,.availablecard,.mybooking,.studentcard,.resetcard{transition:border-color .16s,box-shadow .16s,transform .16s}.slotcard:hover,.mybooking:hover,.studentcard:hover{border-color:#c9d8e6;box-shadow:0 7px 20px rgba(20,40,70,.05)}
@media(max-width:850px){.emsm-main>header{padding:16px}.emsm-toasts{right:16px;top:16px}.confirm-actions{grid-template-columns:1fr}}

/* v1.8.2 — product UI rebuild */
:root{--v182-navy:#10233f;--v182-teal:#0c948c;--v182-text:#18263d;--v182-muted:#7b8799;--v182-line:#e6eaf0;--v182-bg:#f7f8fa}
.emsm-app{background:var(--v182-bg);box-shadow:none;border-color:#e8ebef}.emsm-side{width:220px;background:#10233f;padding:22px 14px}.emsm-side nav button{border-radius:9px;padding:11px 12px;font-size:13px}.emsm-side nav button.active{background:#173a54;box-shadow:inset 3px 0 #25b8aa}.emsm-main{padding:26px 30px}.emsm-main>header{padding:0 0 20px;background:transparent;border:0;border-radius:0;box-shadow:none;margin-bottom:0}.emsm-main h1{font-size:27px}.panel{box-shadow:none}.v182-command{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;background:#fff;border:1px solid var(--v182-line);border-radius:14px;margin-bottom:14px}.v182-command h2{font-size:22px;margin:4px 0;color:var(--v182-text)}.v182-command p{margin:0;color:var(--v182-muted);font-size:13px}.v182-eyebrow{font-size:11px;letter-spacing:.13em;font-weight:900;color:var(--v182-teal)}.v182-command-actions{display:flex;gap:8px;flex-shrink:0}.v182-command-actions button{min-height:40px}.v182-kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--v182-line);background:#fff;border-radius:14px;margin-bottom:14px;overflow:hidden}.v182-kpis>div{padding:15px 18px;border-right:1px solid var(--v182-line)}.v182-kpis>div:last-child{border-right:0}.v182-kpis span,.v182-kpis b{display:block}.v182-kpis span{font-size:11px;color:var(--v182-muted);font-weight:700}.v182-kpis b{font-size:24px;margin-top:3px;color:var(--v182-text);letter-spacing:-.04em}.v182-dashboardgrid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);gap:14px}.v182-section{background:#fff;border:1px solid var(--v182-line);border-radius:14px;padding:18px}.v182-sectionhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.v182-sectionhead h2{font-size:15px;margin:0;color:var(--v182-text)}.v182-sectionhead p{font-size:11px;color:var(--v182-muted);margin:3px 0 0}.textbtn{border:0;background:transparent;color:var(--v182-teal);font-weight:800;font-size:12px;cursor:pointer}.v182-attention{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:12px;background:#fffaf0;border:1px solid #f2e2b9;border-radius:10px}.v182-attention b,.v182-attention small{display:block}.v182-attention small{color:var(--v182-muted);margin-top:2px}.v182-attention button{border:1px solid #e5c97e;background:#fff;color:#8a6410;border-radius:8px;padding:7px 9px;font-weight:800}.v182-dot{width:8px;height:8px;border-radius:50%}.v182-dot.amber{background:#e9a51b}.v182-daylist{display:grid}.v182-dayrow{display:grid;grid-template-columns:145px 30px minmax(120px,1fr) auto;gap:9px;align-items:center;padding:9px 0;border-top:1px solid #eef1f4}.v182-dayrow:first-child{border-top:0}.v182-dayrow time{font-size:12px;font-weight:800;color:#334155}.v182-avatar{width:28px;height:28px;border-radius:8px;background:#e8f6f4;color:#087d77;display:grid;place-items:center;font-size:11px;font-weight:900}.v182-daymain b,.v182-daymain small{display:block}.v182-daymain b{font-size:12px}.v182-daymain small{font-size:11px;color:var(--v182-muted);margin-top:1px}.v182-empty{padding:24px;text-align:center;color:var(--v182-muted);background:#fafbfc;border:1px dashed #dfe4ea;border-radius:10px;font-size:12px}
.qbfilters,.qbresults,.quickbook-hero{box-shadow:none!important}.quickbook-hero{background:#fff;border-radius:14px}.qbcard{border-radius:11px;box-shadow:none}.qbbook{border-radius:8px}.bookingstats>div,.mybooking{border-radius:11px}.status{border-radius:999px;font-size:11px;padding:4px 7px;text-transform:capitalize}.primary,.ok{background:#0c948c;box-shadow:none;border-radius:8px}.primary:hover,.ok:hover{background:#087b75;box-shadow:none;transform:none}.outlinebtn{border-radius:8px}.modal .dialog{border-radius:14px}
@media(max-width:980px){.v182-dashboardgrid{grid-template-columns:1fr}.v182-kpis{grid-template-columns:repeat(2,1fr)}.v182-kpis>div:nth-child(2){border-right:0}.v182-kpis>div:nth-child(-n+2){border-bottom:1px solid var(--v182-line)}.v182-command{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.emsm-main{padding:18px 14px}.v182-kpis{grid-template-columns:1fr 1fr}.v182-command-actions{width:100%}.v182-command-actions button{flex:1}.v182-dayrow{grid-template-columns:125px 28px 1fr}.v182-dayrow .status{grid-column:3}}

/* v1.8.4 — Professional UI/UX Refinement */
:root{--em-space-1:4px;--em-space-2:8px;--em-space-3:12px;--em-space-4:16px;--em-space-5:24px;--em-space-6:32px;--em-radius-sm:8px;--em-radius-md:10px;--em-radius-lg:12px;--em-radius-xl:16px;--em-navy:#10233f;--em-teal:#0b9189;--em-bg:#f6f8fa;--em-card:#fff;--em-text:#17243a;--em-muted:#748195;--em-line:#e5eaf0}
.emsm-app{border-radius:16px;background:var(--em-bg);min-height:calc(100vh - 40px)}body.admin-bar .emsm-app{min-height:calc(100vh - 72px)}
.emsm-side{width:218px;padding:20px 12px;background:var(--em-navy)}.emsm-brand{margin:0 6px 24px;gap:10px;font-size:15px}.emsm-brand img{max-width:36px;max-height:36px}.emsm-brand small{font-size:11px;color:#8fa1b8}.emsm-side nav{gap:3px}.emsm-side nav button{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;font-size:12.5px;font-weight:650}.emsm-side nav button.active{background:#183752;box-shadow:inset 3px 0 var(--em-teal)}.navico{width:18px;text-align:center;color:var(--em-text-muted);font-size:15px}.emsm-side nav button.active .navico{color:#6fe0d5}
.emsm-main{padding:22px 26px;max-width:none}.emsm-main>header{min-height:56px;padding:0 0 16px;border-bottom:1px solid var(--em-line);margin-bottom:18px;align-items:center}.emsm-main h1{font-size:24px;letter-spacing:-.025em}.emsm-main header p{font-size:12px;margin-top:3px}.emsm-headtools{display:flex;align-items:center;gap:8px}.headicon{width:36px;height:36px;border:1px solid var(--em-line);border-radius:9px;background:#fff;color:#66758a;cursor:pointer}.emsm-user{padding:5px 7px;border-radius:10px;text-align:left!important;gap:8px!important}.emsm-user:hover{background:#fff}.emsm-avatar{width:34px;height:34px;border-radius:9px}.emsm-user div{font-size:12px}.emsm-user small{font-size:11px}.userchev{font-size:13px;color:var(--em-text-muted);margin-left:3px}
.panel,.v182-section,.v182-command,.v182-kpis{border-color:var(--em-line);border-radius:12px;box-shadow:none}.panel{padding:16px;margin-bottom:14px}.panelhead{margin-bottom:12px}.panelhead h2,.panel h2{font-size:15px}.panelhead p{font-size:11px;color:var(--em-muted);margin:3px 0 0}.primary,.ok,.danger,.outlinebtn{min-height:38px;border-radius:8px;padding:8px 12px;font-size:12px}.primary,.ok{background:var(--em-teal)}input,select,textarea{border-color:#dbe2e9;border-radius:8px;min-height:38px;padding:8px 10px;font-size:12px}.status{font-size:11px;padding:4px 7px;font-weight:800}.status.available,.status.approved{background:#e8f7f2;color:#14755f}.status.booked,.status.confirmed,.status.admission{background:#eaf1ff;color:#345fc1}.status.pending,.status.pending_tl,.status.pending_approval,.status.pending_trainer{background:#fff4d8;color:#8e650b}.status.rejected,.status.conflict,.status.cancelled{background:#ffeded;color:#aa3a3a}.status.blocked{background:#eef1f4;color:#657185}
.v182-command{padding:16px 18px;margin-bottom:12px}.v182-command h2{font-size:19px}.v182-command p{font-size:12px}.v182-kpis{margin-bottom:12px}.v182-kpis>div{padding:12px 15px}.v182-kpis b{font-size:21px}.v182-section{padding:15px}.v182-empty,.compact-empty{padding:18px;text-align:center;border:1px dashed #dce3e9;border-radius:9px;background:#fafbfc;color:var(--em-muted);font-size:11px}.compact-empty b,.compact-empty span{display:block}.compact-empty b{color:var(--em-text);font-size:12px;margin-bottom:3px}
.course-list{display:grid;gap:0;border:1px solid var(--em-line);border-radius:10px;overflow:hidden}.course-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf0f3}.course-row:last-child{border-bottom:0}.course-icon{width:30px;height:30px;border-radius:8px;background:#eaf7f5;color:#087c75;display:grid;place-items:center}.course-row b,.course-row small{display:block}.course-row b{font-size:12px}.course-row small{font-size:11px;color:var(--em-muted);margin-top:2px}.course-menu{border:1px solid #e0e5eb;background:#fff;color:#68758a;border-radius:7px;padding:6px 9px;font-size:11px;cursor:pointer}.course-menu:hover{border-color:#efb6b6;color:#ad3b3b;background:#fff8f8}
.activity-toolbar{display:flex;gap:8px;margin-bottom:8px}.activity-toolbar input{flex:1}.activity-toolbar select{width:160px}.compact-activity>div{padding:10px 4px}.compact-activity .activitydot{width:8px;height:8px;margin-top:5px}.compact-activity section b{font-size:12px;text-transform:capitalize}.compact-activity section small{font-size:11px}.compact-activity section p{font-size:11px;color:#5f6d80}
.emsm-loading{min-height:180px}.emsm-loading:before{top:50px;width:28px;height:28px}.emsm-loading:after{top:92px}.dialog,.drawer{border-radius:12px}.modal{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}button,input,select,textarea{transition:border-color .18s,background-color .18s,color .18s,box-shadow .18s,transform .18s}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(11,145,137,.18);outline-offset:2px;border-color:var(--em-teal)}
@media(max-width:850px){.emsm-app{min-height:100vh}.emsm-side{width:auto}.emsm-side nav button{padding:9px 11px}.navico{display:none}.emsm-main{padding:16px}.emsm-headtools .headicon{display:none}.emsm-user div{display:none}.userchev{display:none}.activity-toolbar{flex-direction:column}.activity-toolbar select{width:100%}}

/* v1.8.5 — Focused Team Management refinement */
.team-shell{max-width:1440px}.team-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:2px 0 14px}.team-heading h2{font-size:16px;margin:0}.team-heading p{font-size:11px;color:var(--em-muted);margin:3px 0 0}.team-tabs{display:flex;gap:4px;border-bottom:1px solid var(--em-line);margin-bottom:12px;overflow-x:auto}.team-tab{border:0;background:transparent;color:#657287;padding:9px 11px;border-bottom:2px solid transparent;font-size:11.5px;font-weight:750;white-space:nowrap;cursor:pointer}.team-tab span{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#eef2f5;color:var(--em-text-muted);font-size:11px;margin-left:4px}.team-tab.active{color:var(--em-teal);border-bottom-color:var(--em-teal)}.team-tab.active span{background:#e7f6f4;color:#087b75}.team-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 150px 150px;gap:8px;margin-bottom:14px}.team-search{position:relative}.team-search>span{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--em-text-muted);font-size:17px;pointer-events:none}.team-search input{width:100%;padding-left:34px;padding-right:34px}.team-search button{display:none;position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;background:transparent;color:var(--em-text-muted);font-size:18px;cursor:pointer}.team-search button.show{display:block}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.team-card{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:92px;padding:12px 36px 12px 12px;border:1px solid var(--em-line);border-radius:10px;background:#fff;text-align:left;color:var(--em-text);cursor:pointer;transition:border-color .18s,box-shadow .18s}.team-card:hover,.team-card:focus-visible{border-color:#bddbd8;box-shadow:0 5px 16px rgba(18,42,65,.055)}.team-avatar{width:38px;height:38px;border-radius:10px;background:#e8f6f4;color:#087d77;display:grid;place-items:center;font-size:12px;font-weight:850}.team-avatar.large{width:48px;height:48px;border-radius:12px;font-size:15px}.team-person{min-width:0}.team-person b,.team-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-person b{font-size:12.5px}.team-person small{font-size:11px;color:var(--em-muted);margin-top:4px}.role-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:800;white-space:nowrap}.role-badge.trainer{background:#e8f7f3;color:#137565}.role-badge.counsellor{background:#edf3fb;color:#476786}.role-badge.team-lead{background:#f2eefb;color:#6a5795}.team-more{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--em-text-muted);font-size:16px}.team-empty{grid-column:1/-1;padding:28px 16px;text-align:center;border:1px dashed #dce3e9;border-radius:10px;background:#fafbfc}.team-empty b,.team-empty span{display:block}.team-empty b{font-size:12px}.team-empty span{font-size:11px;color:var(--em-muted);margin-top:4px}.team-drawer-backdrop{position:fixed;inset:0;background:rgba(15,29,49,.28);z-index:var(--em-z-modal);display:flex;justify-content:flex-end}.team-drawer{width:min(390px,92vw);height:100%;background:#fff;padding:22px;box-shadow:-12px 0 36px rgba(15,29,49,.12);animation:teamDrawerIn .18s ease-out}.drawer-close{float:right;width:34px;height:34px;border:1px solid var(--em-line);border-radius:8px;background:#fff;color:var(--em-text-muted);font-size:19px;cursor:pointer}.drawer-profile{display:flex;align-items:center;gap:12px;padding:48px 0 20px;border-bottom:1px solid var(--em-line)}.drawer-profile h2{font-size:17px;margin:0 0 6px}.drawer-section{padding:18px 0;border-bottom:1px solid var(--em-line)}.drawer-section small{font-size:11px;font-weight:850;color:var(--em-text-muted);letter-spacing:.08em}.drawer-section p{font-size:12px;margin:6px 0 0}.drawer-note{margin-top:18px;padding:11px;border-radius:8px;background:#f6f8fa;color:var(--em-text-muted);font-size:11px;line-height:1.5}@keyframes teamDrawerIn{from{transform:translateX(24px);opacity:.7}to{transform:none;opacity:1}}
@media(max-width:1050px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.team-toolbar{grid-template-columns:1fr 1fr}.team-search{grid-column:1/-1}.team-grid{grid-template-columns:1fr}.team-heading{align-items:flex-start}.team-card{min-height:88px}.team-tabs{margin-left:-2px;margin-right:-2px}}@media(max-width:460px){.team-search{grid-column:auto}.team-heading{gap:10px}.team-heading .primary{white-space:nowrap}.team-card{grid-template-columns:38px minmax(0,1fr);padding-right:34px}.team-card .role-badge{grid-column:2;justify-self:start}}
/* v1.8.6 Master Calendar workspace */
.v186-cal{background:#fff;border:1px solid var(--em-line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;height:calc(100vh - 285px)}
.v186-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid var(--em-line);flex:0 0 auto}.v186-datebar,.v186-tools,.v186-search,.v186-density,.v186-jump,.v186-legend{display:flex;align-items:center;gap:7px}.v186-datebar button,.v186-datebar input,.v186-tools input,.v186-tools select,.v186-density button,.v186-jump button{height:36px;border:1px solid #dbe2e9;background:#fff;border-radius:8px;padding:0 10px;font-size:11px;color:#23334d}.v186-datebar button,.v186-density button,.v186-jump button{cursor:pointer;font-weight:800}.v186-datebar input{width:142px}.v186-search{position:relative}.v186-search span{position:absolute;left:10px;color:var(--em-text-muted)}.v186-search input{width:165px;padding-left:27px}.v186-tools select{max-width:145px}.v186-density{gap:0;border:1px solid #dbe2e9;border-radius:8px;padding:2px}.v186-density button{border:0;height:30px;border-radius:6px}.v186-density button.active{background:#e9f7f5;color:#087c75}.v186-subbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--em-line);flex:0 0 auto}.v186-legend{gap:15px;font-size:11px;color:#718097}.v186-legend span{display:flex;align-items:center;gap:5px}.v186-legend i{width:8px;height:8px;border-radius:50%;background:#cbd3dd}.v186-legend .available{background:#2fbf9f}.v186-legend .booked{background:#4c7df0}.v186-legend .pending{background:#e9a51b}.v186-legend .noslot{background:#cbd3dd}.v186-jump span{font-size:11px;color:var(--em-text-muted)}.v186-jump button{height:28px;padding:0 8px;border-color:#e3e8ee;color:#526178}
.v186-grid{overflow:auto;flex:1 1 auto;min-height:0;max-width:100%;position:relative;overscroll-behavior:contain;scrollbar-gutter:stable}.v186-timeline{display:grid;grid-template-columns:190px repeat(var(--cols),76px);min-width:max-content;position:relative}.v186-grid.comfortable .v186-timeline{grid-template-columns:190px repeat(var(--cols),100px)}.v186-corner,.v186-timehead,.v186-trainername,.v186-cell{height:54px;box-sizing:border-box;border-right:1px solid #edf0f3;border-bottom:1px solid #edf0f3}.v186-corner,.v186-timehead{position:sticky;top:0;z-index:8;background:#f8fafc;padding:18px 9px;font-size:11px;color:var(--em-text-muted);font-weight:900}.v186-corner{left:0;z-index:12;text-transform:uppercase;letter-spacing:.04em;box-shadow:8px 0 12px -12px rgba(23,43,77,.45)}.v186-trainername{position:sticky;left:0;z-index:6;background:#fff;display:flex;align-items:center;gap:9px;padding:8px 10px;box-shadow:8px 0 12px -12px rgba(23,43,77,.45)}.v186-trainername span{width:28px;height:28px;border-radius:8px;background:#edf7f6;color:#087c75;display:grid;place-items:center;font-size:11px;font-weight:900;flex:0 0 auto}.v186-trainername b{font-size:11px;max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v186-cell{border-top:0;border-left:0;background:#fff;padding:5px;cursor:pointer;position:relative}.v186-cell span{display:grid;place-items:center;height:100%;border-radius:6px;font-size:11px;font-weight:850}.v186-cell.available span{background:#e8f8f2;color:#117a5d}.v186-cell.available span:before{content:'• ';}.v186-cell.booked span{background:#eaf0ff;color:#315fc4}.v186-cell.booked span:before{content:'✓ ';}.v186-cell.pending_tl span{background:#fff5dd;color:#956a08}.v186-cell.pending_tl span:before{content:'◷ ';}.v186-cell.blocked span{background:#eef1f4;color:#657185}.v186-cell.conflict span{background:#ffeded;color:#aa3a3a}.v186-cell.noslot{cursor:default;background:repeating-linear-gradient(135deg,#fcfcfd,#fcfcfd 6px,#fafbfc 6px,#fafbfc 12px)}.v186-cell.dimmed{opacity:.55}.v186-cell:not(.noslot):hover span{outline:2px solid rgba(15,148,140,.18);outline-offset:1px}.v186-now{position:absolute;top:0;bottom:0;width:2px;background:#e74f68;z-index:7;pointer-events:none}.v186-now span{position:sticky;top:2px;display:block;transform:translateX(-50%);width:max-content;background:#e74f68;color:#fff;border-radius:4px;padding:2px 4px;font-size:11px;font-weight:900;letter-spacing:.04em}.v186-slotdrawer h2{font-size:24px;margin:6px 0}.v186-slotdrawer .muted{margin-top:0}
@media(max-width:1200px){.v186-toolbar{align-items:flex-start;flex-direction:column}.v186-tools{width:100%;flex-wrap:wrap}.v186-search{flex:1}.v186-search input{width:100%}.v186-cal{height:calc(100vh - 320px)}}
@media(max-width:700px){.v186-cal{height:calc(100vh - 235px);min-height:430px}.v186-subbar{align-items:flex-start;gap:8px;flex-direction:column}.v186-tools select{max-width:none;flex:1}.v186-density{width:100%}.v186-density button{flex:1}.v186-timeline,.v186-grid.comfortable .v186-timeline{grid-template-columns:130px repeat(var(--cols),76px)}.v186-trainername b{max-width:80px}.v186-corner,.v186-timehead,.v186-trainername,.v186-cell{height:52px}}

/* v1.8.7 — Login UX polish */
.emsm-login-page{min-height:min(720px,calc(100vh - 32px))}
.emsm-login-story{display:flex;flex-direction:column;min-height:0;padding:clamp(30px,4vh,48px) clamp(34px,4vw,56px)}
.emsm-login-copy{margin-top:clamp(38px,8vh,90px)}
.emsm-login-copy h1{font-size:clamp(42px,4vw,52px)}
.emsm-login-points{gap:16px;margin-top:28px}.emsm-login-tag{bottom:28px}
.emsm-login-card>p{margin-bottom:22px}.emsm-login-form{gap:15px}
.emsm-input{height:56px;padding:0 14px;gap:10px}.emsm-input:hover{border-color:#c8d1dc}.emsm-input:focus-within{border-color:#159b94;box-shadow:0 0 0 3px rgba(17,143,137,.09)}
.emsm-field-icon,.emsm-password-toggle svg,.emsm-login-error svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.emsm-field-icon{width:18px;height:18px;flex:0 0 18px;color:var(--em-text-muted)}.emsm-input input{width:100%;min-width:0;min-height:54px!important;padding:0!important;font-size:14px}.emsm-password-wrap{padding-right:7px}.emsm-password-toggle{width:42px;height:42px;flex:0 0 42px;border:0;border-radius:9px;background:transparent;color:var(--em-text-muted);display:grid;place-items:center;cursor:pointer}.emsm-password-toggle:hover{background:#f3f6f8;color:#3f5269}.emsm-password-toggle:focus-visible{outline:2px solid #159b94;outline-offset:1px}.emsm-password-toggle svg{width:19px;height:19px}.emsm-password-toggle .eye-off{display:none}.emsm-password-toggle.is-visible .eye-open{display:none}.emsm-password-toggle.is-visible .eye-off{display:block}
.emsm-caps-warning{display:none;margin-top:6px;color:#9a6a16;font-size:11px;font-weight:700}.emsm-caps-warning.show{display:block}
.emsm-login-error{display:flex;align-items:center;gap:9px;background:#fff3f2;border:1px solid #f6cbc7;color:#9b342f;padding:11px 12px;border-radius:10px;font-size:12px;margin-bottom:14px}.emsm-login-error svg{width:17px;height:17px;flex:0 0 17px}
.emsm-remember{position:relative;cursor:pointer;user-select:none}.emsm-remember input{position:absolute;opacity:0;width:1px;height:1px}.emsm-checkmark{width:17px;height:17px;border:1px solid #cbd4de;border-radius:5px;background:#fff;display:grid;place-items:center;transition:.15s}.emsm-remember input:checked+.emsm-checkmark{background:var(--login-teal);border-color:var(--login-teal)}.emsm-remember input:checked+.emsm-checkmark:after{content:'✓';font-size:11px;line-height:1;color:#fff;font-weight:900}.emsm-remember input:focus-visible+.emsm-checkmark{outline:2px solid rgba(17,143,137,.35);outline-offset:2px}.emsm-login-options a{opacity:.88}.emsm-login-options a:hover{text-decoration:underline;opacity:1}
.emsm-login-submit{height:54px;transition:transform .16s,box-shadow .16s,opacity .16s}.emsm-login-submit:focus-visible{outline:3px solid rgba(17,143,137,.24);outline-offset:2px}.emsm-login-submit:disabled{cursor:wait;opacity:.78;transform:none}.emsm-login-spinner{display:none;width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:emsmSpin .7s linear infinite}.emsm-login-submit.is-loading .emsm-login-spinner{display:block}@keyframes emsmSpin{to{transform:rotate(360deg)}}
@media(max-height:820px) and (min-width:901px){.emsm-login-page{min-height:calc(100vh - 18px)}.emsm-login-story{padding-top:28px;padding-bottom:26px}.emsm-login-brand img{height:54px}.emsm-login-copy{margin-top:30px}.emsm-login-copy h1{font-size:42px;margin-bottom:14px}.emsm-login-copy>p{font-size:15px;line-height:1.55}.emsm-login-points{gap:11px;margin-top:20px}.emsm-login-points b{width:30px;height:30px}.emsm-login-tag{font-size:13px;bottom:18px}.emsm-login-panel{padding:30px}.emsm-login-card h2{font-size:29px}.emsm-login-card>p{margin-bottom:18px}.emsm-login-form{gap:12px}.emsm-input{height:54px}.emsm-login-help{margin-top:14px}}
@media(max-height:700px) and (min-width:901px){.emsm-login-tag{display:none}.emsm-login-copy{margin-top:22px}.emsm-login-points{margin-top:15px}.emsm-login-copy h1{font-size:38px}.emsm-login-points small{font-size:11px}}
@media(max-width:900px){.emsm-login-page{min-height:auto}.emsm-login-panel{min-height:100dvh;padding:26px 22px}.emsm-mobile-logo{margin-bottom:22px}.emsm-login-card{width:min(430px,100%)}}
@media(max-width:480px){.emsm-login-panel{place-items:start center;padding-top:28px}.emsm-mobile-logo img{width:145px;height:54px}.emsm-login-card h2{font-size:26px}.emsm-login-options{gap:14px}.emsm-login-help{text-align:left}.emsm-input{height:54px}}


/* v1.8.8 — Full-day Master Calendar accessibility */
.v186-cal{height:auto;min-height:0;overflow:visible}
.v186-grid{flex:none;min-height:0;height:auto;max-height:min(62vh,620px);overflow-x:scroll;overflow-y:auto;scrollbar-gutter:auto;scrollbar-color:#9aa9ba #edf1f5;scrollbar-width:auto;border-bottom:1px solid #e5eaf0}
.v186-grid::-webkit-scrollbar{height:14px;width:12px}.v186-grid::-webkit-scrollbar-track{background:#edf1f5;border-radius:10px}.v186-grid::-webkit-scrollbar-thumb{background:#9aa9ba;border:3px solid #edf1f5;border-radius:10px}.v186-grid::-webkit-scrollbar-thumb:hover{background:#71849a}
.v186-timeline{grid-template-columns:190px repeat(48,76px)}
.v186-grid.comfortable .v186-timeline{grid-template-columns:190px repeat(48,100px)}
.v186-subbar{flex-wrap:wrap}.v186-jump{flex-wrap:wrap}.v188-range{margin-left:auto;white-space:nowrap;font-size:11px;font-weight:800;color:#5f6f84;background:#f5f7fa;border:1px solid #e3e8ee;border-radius:999px;padding:6px 9px}
@media(max-width:1200px){.v186-cal{height:auto}.v186-grid{max-height:min(58vh,560px)}}
@media(max-width:700px){.v186-cal{height:auto;min-height:0}.v186-grid{max-height:60vh}.v188-range{order:3;margin-left:0;width:max-content}.v186-jump{gap:4px}.v186-jump button{padding:0 6px}}


/* v1.8.9 — Team Lead full-day fit calendar */
.v186-grid.fullday{overflow-x:hidden;overflow-y:auto}
.v186-grid.fullday .v186-timeline{width:100%;min-width:0;grid-template-columns:170px repeat(48,minmax(18px,1fr))}
.v186-grid.fullday .v186-corner,.v186-grid.fullday .v186-trainername{width:auto}
.v186-grid.fullday .v186-timehead{padding:0;display:flex;align-items:center;justify-content:center;overflow:visible;font-size:11px}
.v186-grid.fullday .v186-timehead span{white-space:nowrap;transform:rotate(-90deg);display:block;line-height:1}
.v186-grid.fullday .v186-timehead.half span{font-size:11px;color:#b8c1cd;transform:none}
.v186-grid.fullday .v186-cell{padding:2px;min-width:0}
.v186-grid.fullday .v186-cell span{font-size:0;border-radius:4px;position:relative}
.v186-grid.fullday .v186-cell.available span:before,.v186-grid.fullday .v186-cell.booked span:before,.v186-grid.fullday .v186-cell.pending_tl span:before{font-size:11px;margin:0}
.v186-grid.fullday .v186-cell.blocked span:before{content:'×';font-size:11px}
.v186-grid.fullday .v186-cell.conflict span:before{content:'!';font-size:11px}
.v186-grid.fullday .v186-cell.noslot:nth-child(2n){background:#f8fafc}
.v186-grid.fullday .v186-timehead.hour{border-left:1px solid #dce3eb}
.v186-grid.fullday .v186-cell:nth-child(2n){border-left-color:#e1e6ec}
.v186-grid.fullday .v186-corner,.v186-grid.fullday .v186-timehead,.v186-grid.fullday .v186-trainername,.v186-grid.fullday .v186-cell{height:48px}
.v186-grid.fullday .v186-trainername{padding:6px 8px}
.v186-grid.fullday .v186-trainername b{max-width:116px}
.v186-grid.fullday .v186-now span{display:none}
@media(max-width:1100px){.v186-grid.fullday .v186-timeline{min-width:1120px;grid-template-columns:150px repeat(48,minmax(20px,1fr))}}


/* v1.9.1 — Master Calendar: true 24-hour fit-to-screen overview */
.v186-cal{border-radius:16px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 8px 28px rgba(25,45,72,.04);overflow:hidden}
.v186-toolbar{padding:14px 16px}.v186-subbar{padding:10px 16px;background:#fff}
.v186-grid.fullday{width:100%;overflow-x:hidden;overflow-y:auto;max-height:min(64vh,680px);background:#fff}
.v186-grid.fullday .v186-timeline{display:grid;width:100%;min-width:0!important;grid-template-columns:minmax(138px,170px) repeat(48,minmax(0,1fr))!important}
.v186-grid.fullday .v186-corner,.v186-grid.fullday .v186-trainername{min-width:0}
.v186-grid.fullday .v186-corner{padding:0 10px;display:flex;align-items:center;font-size:11px}
.v186-grid.fullday .v186-timehead{height:52px!important;padding:0!important;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:11px}
.v186-grid.fullday .v186-timehead.hour span{transform:rotate(-90deg);white-space:nowrap;font-size:11px;color:#5f7088;font-weight:900}
.v186-grid.fullday .v186-timehead.half span{transform:none;font-size:11px;color:#c0c9d4}
.v186-grid.fullday .v186-trainername,.v186-grid.fullday .v186-cell{height:46px!important}
.v186-grid.fullday .v186-trainername{padding:5px 8px;gap:6px}.v186-grid.fullday .v186-trainername span{width:25px;height:25px;border-radius:8px}.v186-grid.fullday .v186-trainername b{font-size:11px;max-width:100px}
.v186-grid.fullday .v186-cell{padding:2px!important;min-width:0;overflow:hidden}.v186-grid.fullday .v186-cell span{min-width:0;width:100%;font-size:0!important;border-radius:4px}
.v186-grid.fullday .v186-cell.available span:before{content:'•';font-size:11px!important}.v186-grid.fullday .v186-cell.booked span:before{content:'✓';font-size:11px!important}.v186-grid.fullday .v186-cell.pending_tl span:before{content:'!';font-size:11px!important}
.v186-grid.fullday .v186-cell.noslot{background:#fbfcfd}.v186-grid.fullday .v186-cell.noslot:nth-child(even){background:#f8fafc}
.v191-calfooter{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid #e8edf2;color:var(--em-text-muted);font-size:11px;font-weight:700;background:#fff}.v191-calfooter b{color:#42526a}.v191-calfooter .nav{display:flex;gap:6px}.v191-calfooter button{height:30px;min-width:34px;border:1px solid #dce4ed;background:#fff;border-radius:8px;color:#34465e;font-weight:900;cursor:pointer}
@media(max-width:1100px){.v186-grid.fullday{overflow-x:auto}.v186-grid.fullday .v186-timeline{min-width:1040px!important;grid-template-columns:135px repeat(48,minmax(18px,1fr))!important}}
/* v1.9.2 Booking Lifecycle & Counsellor UX */
.qbsearch{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #dbe4ef;border-radius:14px;padding:0 14px;margin:14px 0 4px}.qbsearch span{font-size:20px;color:var(--em-text-muted)}.qbsearch input{border:0!important;box-shadow:none!important;min-height:48px;width:100%;font-size:15px}.lifecycle-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.lifecycle-panel .panelhead{position:sticky;top:0;z-index:3;background:#fff}.lifecycle-list{display:grid;gap:10px}.lifecycle-booking{grid-template-columns:minmax(150px,.7fr) minmax(260px,1.6fr) auto auto minmax(260px,auto);align-items:center}.hold-countdown{display:inline-flex;margin-top:7px;padding:6px 9px;border-radius:9px;background:#fff4db;color:#9a6200;font-size:12px;font-variant-numeric:tabular-nums;width:max-content}.booking-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.booking-actions button{min-height:36px;padding:7px 12px}.status-admission{border-left:4px solid #12a88b}.status-booked{border-left:4px solid #f0a11a}.status-expired,.status-cancelled{opacity:.65}.hold-inline{color:#a36b08!important;font-variant-numeric:tabular-nums}.mini-action{border:1px solid #d7e2ed;background:#fff;border-radius:9px;padding:6px 9px;font-weight:700;color:#0b746d;cursor:pointer}.v182-dayrow .mini-action{margin-left:6px}
@media(max-width:900px){.lifecycle-booking{grid-template-columns:1fr}.booking-actions{justify-content:flex-start}.lifecycle-stats{grid-template-columns:1fr 1fr 1fr}}

/* v1.9.4 — Counsellor Available Slots workspace */
.qbfilters-v194{padding:14px 16px!important;margin-bottom:14px!important}.qbtoprow,.qbfilterrow,.qbperiodwrap,.qbresultshead,.qbresulttools,.qbcount,.qbview,.qbgrouphead,.qbgroupname,.qblistrow,.qbcardtop{display:flex;align-items:center}.qbtoprow{justify-content:space-between;gap:14px}.qbperiodwrap{gap:10px}.qbperiodwrap>span{font-size:11px;font-weight:800;color:#526178}.qbfilters-v194 .qbchips{padding:0;gap:6px}.qbfilters-v194 .qbchips button{padding:7px 11px;font-size:11px}.qbfilterrow{display:grid;grid-template-columns:1.35fr 1fr 1fr auto;gap:12px;margin-top:12px;align-items:end}.qbfilterrow label{font-size:11px}.qbfilterrow select,.qbfilterrow input{height:40px;min-height:40px;margin-top:4px}.qbsearch{position:relative;align-self:end}.qbsearch>span{position:absolute;left:12px;top:50%;transform:translateY(-50%);z-index:1;color:#63738a;font-size:18px}.qbsearch input{padding-left:38px!important;padding-right:34px!important;margin:0!important}.qbclearsearch{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--em-text-muted);font-size:19px;cursor:pointer}.qbclear{height:40px;white-space:nowrap}.qbresults-v194{padding:0!important;overflow:hidden}.qbresultshead{justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);gap:12px}.qbcount{gap:10px}.qbcount b{font-size:19px}.qbcount span{background:#f2f6fb;color:var(--em-text-muted);border-radius:8px;padding:6px 9px;font-size:11px}.qbresulttools{gap:12px}.qbresulttools label{display:flex;align-items:center;gap:7px;font-size:11px}.qbresulttools select{height:36px;min-height:36px;width:180px}.qbview{border:1px solid #dfe6ee;border-radius:9px;padding:2px;gap:2px}.qbview button{height:31px;border:0;background:#fff;border-radius:7px;padding:0 10px;font-size:11px;font-weight:800;color:#56657a;cursor:pointer}.qbview button.active{background:#0f938d;color:#fff}.qbgroup{margin:0!important;padding:0 16px 16px}.qbgrouphead{width:100%;justify-content:space-between;border:0;background:#f7f9fc;border-radius:10px;padding:10px 12px;margin:12px 0 10px;cursor:pointer;color:#17243d}.qbgroupname{gap:8px}.qbgroupname i{font-style:normal;font-size:17px}.qbgroupname b{font-size:13px}.qbgroupname small{color:var(--em-text-muted);font-size:11px}.qbgrouprange{font-size:11px;color:var(--em-text-muted)}.qbgrouprange strong{font-size:15px;margin-left:8px}.qbgroup.collapsed .qbgrid,.qbgroup.collapsed .qblist{display:none}.qbgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.qbcard{padding:12px;border-radius:12px;box-shadow:none}.qbcardtop{justify-content:space-between;gap:8px}.qbtime{font-size:13px;margin:0;font-weight:900;white-space:nowrap}.qbbadge{background:#e7f7f2;color:#0a7d72;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:850;white-space:nowrap}.qbtrainer{margin-top:13px}.qbtrainer>span{width:36px;height:36px}.qbtrainer b{font-size:13px}.qbbook{margin-top:12px;padding:10px;border-radius:8px}.qbbook em{font-style:normal;margin-left:5px}.qblist{display:grid;gap:6px}.qblistrow{display:grid;grid-template-columns:170px minmax(180px,1fr) auto 135px;gap:12px;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px}.qblistrow>.qbtrainer{margin:0}.qblistrow>.qbbook{margin:0}.qbskeleton{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:58px 16px 16px}.qbskeleton i{display:block;height:142px;border-radius:12px;background:linear-gradient(90deg,#f2f5f8 25%,#fafbfd 40%,#f2f5f8 60%);background-size:300% 100%;animation:qbs 1.2s infinite}@keyframes qbs{to{background-position:-100% 0}}.qbspinner{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:qbspin .7s linear infinite;vertical-align:-2px;margin-right:5px}@keyframes qbspin{to{transform:rotate(360deg)}}
@media(max-width:1200px){.qbgrid,.qbskeleton{grid-template-columns:repeat(3,1fr)}.qbtoprow{align-items:flex-start;flex-direction:column}.qbperiodwrap{width:100%}.qbchips{max-width:100%}.qbfilterrow{grid-template-columns:1.3fr 1fr 1fr}.qbclear{grid-column:3}}
@media(max-width:850px){.qbfilterrow{grid-template-columns:1fr 1fr}.qbclear{grid-column:auto}.qbgrid,.qbskeleton{grid-template-columns:repeat(2,1fr)}.qbresultshead{align-items:flex-start;flex-direction:column}.qbresulttools{width:100%;justify-content:space-between}.qblistrow{grid-template-columns:1fr auto}.qblistrow>.qbtrainer{grid-column:1}.qblistrow>.qbbadge{grid-column:2;grid-row:1}.qblistrow>.qbbook{grid-column:1/-1}}
@media(max-width:560px){.qbfilterrow{grid-template-columns:1fr}.qbperiodwrap{display:block}.qbperiodwrap>span{display:none}.qbfilters-v194 .qbchips{margin-top:10px;overflow-x:auto}.qbgrid,.qbskeleton{grid-template-columns:1fr}.qbresulttools{align-items:stretch;flex-direction:column}.qbresulttools label{justify-content:space-between}.qbresulttools select{flex:1}.qbview button{flex:1}.qbview{display:flex}.qbgrouprange{font-size:0}.qbgrouprange strong{font-size:15px}.qb-date{width:100%}.qb-date input{flex:1;min-width:0}}

/* v1.9.5 — exact booking hold timer + compact My Bookings polish */
.lifecycle-panel{border-radius:16px}.lifecycle-list{gap:8px}.lifecycle-booking{padding:14px 16px;min-height:94px;transition:box-shadow .18s ease,border-color .18s ease}.lifecycle-booking:hover{box-shadow:0 8px 24px rgba(23,42,70,.06);border-color:#d8e2ec}.hold-countdown{display:inline-flex!important;align-items:center;gap:8px;margin-top:8px;padding:7px 10px!important;border:1px solid #f3d99d;background:#fff9eb!important;color:#8c5b00!important;border-radius:10px!important;font-variant-numeric:tabular-nums;line-height:1}.hold-countdown .hold-clock-icon{font-size:17px;line-height:1}.hold-countdown .hold-clock-copy{display:grid;gap:3px}.hold-countdown .hold-clock-copy small{font-size:11px;line-height:1;text-transform:uppercase;letter-spacing:.04em;color:#9b711e;font-weight:800}.hold-countdown .hold-clock-copy b{font-size:14px;line-height:1;font-weight:900;letter-spacing:.035em;color:#8b5700}.hold-countdown.is-expired{background:#fff1f1!important;border-color:#f4c8c8;color:#b42318!important}.hold-countdown.is-expired .hold-clock-copy small,.hold-countdown.is-expired .hold-clock-copy b{color:#b42318}.lifecycle-stats>div{border-radius:14px}.lifecycle-stats .needs{background:linear-gradient(180deg,#fffaf0,#fffdf8)}
@media(max-width:900px){.lifecycle-booking{padding:14px}.hold-countdown{width:max-content}}
/* v1.9.7 Counsellor My Bookings UI */
.mb-pro{display:grid;gap:16px}.mb-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mb-summary button{position:relative;display:grid;grid-template-columns:58px auto 1fr 20px;grid-template-rows:auto auto;align-items:center;text-align:left;border:1px solid #e1e8f0;border-radius:14px;padding:16px;background:#fff;cursor:pointer}.mb-summary .sum-icon{grid-row:1/3;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:20px;background:#fff}.mb-summary b{font-size:25px;color:#10213f}.mb-summary small{color:var(--em-text-muted)}.mb-summary i{grid-column:4;grid-row:1/3;font-size:24px;font-style:normal}.mb-summary .hold{background:#fffaf0;border-color:#f4dfaa}.mb-summary .hold .sum-icon{color:#e79a08}.mb-summary .admit{background:#f1fbf9;border-color:#cdebe5}.mb-summary .admit .sum-icon{color:var(--em-teal-text)}.mb-summary .expire{background:#fff5f5;border-color:#f4d6d9}.mb-summary .expire .sum-icon{color:var(--em-danger-text)}.mb-toolbar{position:sticky;top:0;z-index:5;background:#fff;border:1px solid #e1e8f0;border-radius:14px;padding:14px}.mb-filter-main{display:grid;grid-template-columns:minmax(280px,1.7fr) 170px 18px 170px 190px 140px;gap:10px;align-items:center}.mb-search{display:flex;align-items:center;border:1px solid #dbe4ee;border-radius:9px;padding:0 12px}.mb-search input{border:0!important;box-shadow:none!important;width:100%;min-height:42px}.mb-filter-main>input,.mb-filter-main select,.mb-sort select{height:42px;border:1px solid #dbe4ee;border-radius:9px;background:#fff;padding:0 12px;color:#20314e}.date-arrow{text-align:center;color:var(--em-text-muted)}.mb-clear{height:42px;border:0;border-radius:9px;background:#f5f7fa;color:#34435d;font-weight:750;cursor:pointer}.mb-filter-sub{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:12px}.mb-tabs{display:flex;gap:8px;flex-wrap:wrap}.mb-tabs button{border:1px solid #dbe4ee;background:#fff;border-radius:9px;padding:8px 12px;color:#34435d;font-weight:750;cursor:pointer}.mb-tabs button.active{background:#0b9188;color:#fff;border-color:#0b9188}.mb-tabs i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.mb-tabs .amber{background:#f3a800}.mb-tabs .teal{background:#079682}.mb-tabs .rose{background:#e83551}.mb-sort{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:12px;font-weight:700}.mb-rows{display:grid;gap:9px}.mb-row{display:grid;grid-template-columns:minmax(180px,.85fr) minmax(210px,1fr) minmax(180px,.9fr) minmax(250px,1.05fr) minmax(220px,.9fr);align-items:stretch;background:#fff;border:1px solid #e0e7ef;border-left:4px solid #d0d8e3;border-radius:12px;overflow:hidden}.mb-row.hold{border-left-color:#f0a000}.mb-row.admission{border-left-color:#14aa8c}.mb-row.expired{border-left-color:#d16b78}.mb-row>div{padding:14px 16px;display:flex;align-items:center;border-right:1px solid #edf1f5;min-width:0}.mb-when{display:grid!important;align-content:center!important}.mb-when small{color:var(--em-text-muted)}.mb-when b{font-size:17px;margin:3px 0;color:#10213f}.mb-when span{width:max-content;padding:4px 8px;background:#f3f6fa;border-radius:999px;color:#536784;font-size:11px}.mb-person,.mb-course{gap:11px}.mb-avatar{flex:0 0 42px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e9f8f5;color:var(--em-teal-text);font-size:18px;font-weight:850}.mb-person b,.mb-person small,.mb-course b,.mb-course small{display:block}.mb-person small,.mb-course small{color:var(--em-text-muted);margin-top:4px;font-size:11px}.mb-course>span{font-size:20px;color:#1d3153}.mb-state{padding:10px!important}.hold-module{width:100%;display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center;border:1px solid #f3dda9;border-radius:11px;background:#fff9ec;padding:9px 10px;font-variant-numeric:tabular-nums}.hold-ring{--hold-progress:100%;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#f2a000 var(--hold-progress),#f8eac7 0);position:relative}.hold-ring:before{content:"";position:absolute;inset:5px;background:#fffaf0;border-radius:50%}.hold-ring span{position:relative;z-index:1;font-size:19px}.hold-label{font-size:11px;font-weight:800;color:#8b5d0a}.hold-digits{display:flex;align-items:flex-start;gap:4px;margin-top:3px}.hold-digits span{display:grid;text-align:center}.hold-digits b{font-size:17px;line-height:1;background:#fff3d8;border-radius:5px;padding:4px 5px;color:#7b4e00;min-width:30px}.hold-digits small{font-size:11px;margin-top:3px;color:#a47c35}.hold-digits i{font-style:normal;font-weight:900;color:#ad7c24;margin-top:3px}.hold-progress{height:4px;background:#f5e8c8;border-radius:999px;margin-top:5px;overflow:hidden}.hold-progress i{display:block;height:100%;background:#eea000;border-radius:inherit}.hold-module em{display:block;font-style:normal;font-size:11px;font-weight:800;margin-top:4px;color:#b65d00}.hold-module.warning{border-color:#f2c46c;background:#fff7e4}.hold-module.urgent{border-color:#f2a36d;background:#fff4e9}.hold-module.urgent .hold-progress i,.hold-module.critical .hold-progress i{background:#e55c38}.hold-module.critical{border-color:#efb1b1;background:#fff0f0}.hold-module.critical .hold-label,.hold-module.critical em{color:#b42318}.mb-status-panel{width:100%;border-radius:10px;padding:12px}.mb-status-panel b,.mb-status-panel small{display:block}.mb-status-panel small{font-size:11px;margin-top:4px}.mb-status-panel.admitted{background:#edf9f6;color:#087c6b}.mb-status-panel.expired{background:#fff0f1;color:#b92c3e}.mb-actions{position:relative!important;display:grid!important;gap:7px;border-right:0!important}.mb-actions>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.mb-actions button{min-height:36px}.danger-outline{border:1px solid #ef5165;background:#fff;color:#dc2740;border-radius:8px;font-weight:750}.mb-more{position:absolute;right:3px;top:50%;transform:translateY(-50%);border:0;background:transparent;font-size:20px;color:#50617d}.mb-empty{padding:44px;text-align:center;background:#fff;border:1px solid #e1e8f0;border-radius:14px}.mb-empty b,.mb-empty span{display:block}.mb-empty span{color:var(--em-text-muted);margin:6px 0 14px}
@media(max-width:1200px){.mb-filter-main{grid-template-columns:1fr 1fr 18px 1fr}.mb-filter-main .mb-search{grid-column:1/-1}.mb-filter-main select,.mb-clear{grid-column:auto}.mb-row{grid-template-columns:1fr 1fr 1fr}.mb-state,.mb-actions{grid-column:auto}.mb-course{border-right:0!important}}
@media(max-width:760px){.mb-summary{grid-template-columns:1fr}.mb-toolbar{position:static}.mb-filter-main{display:grid;grid-template-columns:1fr}.mb-filter-main>*{grid-column:1!important}.date-arrow{display:none}.mb-filter-sub{align-items:stretch;flex-direction:column}.mb-tabs{overflow:auto;flex-wrap:nowrap}.mb-tabs button{white-space:nowrap}.mb-sort{justify-content:space-between}.mb-row{grid-template-columns:1fr}.mb-row>div{border-right:0;border-bottom:1px solid #edf1f5}.mb-state,.mb-actions{grid-column:1}.hold-module{max-width:320px}.mb-actions{padding-right:32px!important}}
@media(prefers-reduced-motion:no-preference){.hold-module.critical .hold-ring span{animation:emsmTimerPulse 1.6s ease-in-out infinite}@keyframes emsmTimerPulse{50%{transform:scale(1.08)}}}

/* v1.9.8 — final Counsellor > My Bookings polish only */
.mb-summary button{grid-template-columns:58px minmax(0,1fr) 20px;grid-template-rows:auto auto;column-gap:12px;row-gap:7px;min-height:92px;padding:15px 16px}
.mb-summary .sum-icon{grid-column:1;grid-row:1/3}.mb-summary b{grid-column:2;grid-row:1;font-size:27px;line-height:1;font-weight:850}.mb-summary small{grid-column:2;grid-row:2;font-size:12px;line-height:1.2}.mb-summary i{grid-column:3;grid-row:1/3}
.mb-summary button.is-active{box-shadow:0 0 0 2px rgba(11,145,136,.12) inset}
.mb-tabs button b{margin-left:7px;font-variant-numeric:tabular-nums}.mb-clear:disabled{background:#f6f8fa;color:#9ba8b9;cursor:default;opacity:.72}.mb-clear:not(:disabled){cursor:pointer}
.mb-row{grid-template-columns:minmax(220px,.92fr) minmax(205px,.9fr) minmax(160px,.72fr) minmax(240px,1fr) minmax(205px,.82fr);min-height:112px}
.mb-row>div{padding:11px 14px;border-right-color:#e8edf3;align-items:center}.mb-when b{font-size:16px;line-height:1.25;white-space:nowrap;margin:4px 0 6px}.mb-when small{font-size:11px}.mb-when span{font-size:11px;padding:3px 7px}
.mb-person{align-items:center}.mb-avatar{flex-basis:42px}.mb-person b{font-size:14px;line-height:1.25}.mb-person small,.mb-course small{font-size:11px;line-height:1.35}.mb-course b{font-size:14px;line-height:1.25;font-weight:650;color:#42526a}.mb-course>span{font-size:18px;color:var(--em-text-muted)}
.mb-state{padding:8px 10px!important}.hold-module{grid-template-columns:48px 1fr;gap:8px;padding:7px 9px;min-height:78px}.hold-ring{width:43px;height:43px}.hold-ring span{font-size:17px}.hold-label{font-size:11px}.hold-digits{gap:3px;margin-top:2px}.hold-digits b{font-size:18px;min-width:31px;padding:3px 5px;font-variant-numeric:tabular-nums}.hold-digits small{font-size:11px;margin-top:2px}.hold-progress{margin-top:4px}.hold-module em{margin-top:3px}
.mb-actions{padding:10px 14px!important;padding-right:14px!important;align-content:center}.mb-actions>div{gap:6px}.mb-actions button{min-height:34px}.mb-more{right:7px;top:7px;transform:none;display:none}
.mb-status-panel{padding:10px}.mb-toolbar input,.mb-toolbar select,.mb-toolbar button{font-size:13px}.mb-filter-main>*{min-width:0}
@media(max-width:1440px) and (min-width:1101px){.mb-row{grid-template-columns:minmax(210px,.95fr) minmax(185px,.9fr) minmax(145px,.7fr) minmax(225px,1fr) minmax(190px,.82fr)}.mb-row>div{padding:10px 11px}.hold-module{grid-template-columns:44px 1fr;padding:7px}.hold-ring{width:40px;height:40px}.hold-digits b{font-size:16px;min-width:28px}.mb-actions button{font-size:12px;padding-left:8px;padding-right:8px}}
@media(max-width:1100px) and (min-width:761px){.mb-filter-main{grid-template-columns:1fr 160px 18px 160px}.mb-filter-main .mb-search{grid-column:1/3}.mb-filter-main #mbStatus{grid-column:3/5}.mb-filter-main #mbClear{grid-column:4}.mb-row{grid-template-columns:minmax(210px,.9fr) minmax(220px,1fr) minmax(220px,1fr)}.mb-row>div{border-right-color:#e8edf3}.mb-course{grid-column:1}.mb-state{grid-column:2}.mb-actions{grid-column:3}.mb-when b{white-space:nowrap}}
@media(max-width:760px){.mb-row{min-height:0}.mb-row>div{padding:11px 13px}.mb-when b{white-space:normal}.hold-module{max-width:none}.mb-actions{padding-right:13px!important}.mb-summary button{min-height:82px}.mb-filter-main input,.mb-filter-main select,.mb-filter-main button{width:100%}}
/* v1.10.0 extension workflow + TL control centre */
.mb-request-ext{margin-top:7px;width:100%;min-height:32px;border:1px solid #d8e3ea;background:#f8fbfc;color:#0b7773;border-radius:9px;font-weight:700;font-size:12px;cursor:pointer}.mb-request-ext:hover:not(:disabled){background:#edf9f7;border-color:#9fd8d2}.mb-request-ext:disabled{cursor:not-allowed;color:#8a96a8;background:#f4f6f8;opacity:.78}.tl-control-centre{margin-top:18px}.tl-ops-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.tl-ops-head h2{margin:0 0 4px}.tl-ops-head p{margin:0;color:var(--em-text-muted)}.tl-limit{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#53637b}.tl-limit input{width:64px;height:38px;border:1px solid #dbe3ec;border-radius:9px;padding:0 8px}.tl-ops-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:20px}.tl-ops-kpis>div{border:1px solid #e3e9f0;border-radius:12px;padding:14px;background:#fbfcfe}.tl-ops-kpis b{display:block;font-size:24px;color:#10213e}.tl-ops-kpis span{font-size:12px;color:var(--em-text-muted)}.tl-ext-section,.tl-all-bookings{border-top:1px solid #edf0f4;padding-top:18px;margin-top:18px}.tl-ext-row{display:grid;grid-template-columns:1.2fr 1fr auto;gap:18px;align-items:center;border:1px solid #e6ebf1;border-left:3px solid #f2a30b;border-radius:11px;padding:12px 14px;margin:8px 0}.tl-ext-row b,.tl-ext-row span,.tl-ext-row small{display:block}.tl-ext-row small{color:var(--em-text-muted);margin-top:3px}.tl-ext-row>div:last-child{display:flex;gap:7px}.tl-all-bookings .panelhead input{width:260px;height:40px;border:1px solid #dce4ed;border-radius:10px;padding:0 12px}.tl-all-bookings .tablewrap{max-height:460px;overflow:auto}.tl-all-bookings table{min-width:900px}@media(max-width:1200px){.tl-ops-kpis{grid-template-columns:repeat(3,1fr)}.tl-ext-row{grid-template-columns:1fr 1fr}.tl-ext-row>div:last-child{grid-column:1/-1}}@media(max-width:760px){.tl-ops-head{align-items:flex-start;flex-direction:column}.tl-ops-kpis{grid-template-columns:repeat(2,1fr)}.tl-ext-row{grid-template-columns:1fr}.tl-ext-row>div:last-child{grid-column:auto}.tl-all-bookings .panelhead{align-items:stretch;flex-direction:column}.tl-all-bookings .panelhead input{width:100%}}

/* v1.10.1 TL extension request visibility */
.tl-ext-priority{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;margin-bottom:16px;border:1px solid #e8edf3;border-radius:16px;background:#f8fafc}.tl-ext-priority.has-pending{border-color:#f3cf8b;background:#fff9ed}.tl-ext-priority h2{margin:3px 0 2px;font-size:20px;color:#10213f}.tl-ext-priority p{margin:0;color:var(--em-text-muted)}.tl-pending-count{white-space:nowrap;padding:8px 12px;border-radius:999px;background:#fff0c7;color:#9a6200;font-weight:800}.tl-ext-section{scroll-margin-top:24px}.tl-ext-row{border-left:3px solid #f2a20b}.v182-empty.error{display:grid;gap:8px;justify-items:start}
/* v1.10.3 separate hold-extension approval workflow */
.tl-ext-kpi{background:#fff;border:1px solid #e5eaf2;border-radius:14px;padding:14px 18px;text-align:left;cursor:pointer}.tl-ext-kpi.has-pending{border-color:#f0b54d;background:#fffaf0}.tl-ext-kpi b,.tl-ext-kpi span,.tl-ext-kpi small{display:block}.tl-ext-kpi b{font-size:24px}.tl-ext-kpi small{margin-top:5px;color:var(--em-teal-text)}.hold-ext-list{display:grid;gap:12px}.hold-ext-card{display:grid;grid-template-columns:1.1fr 1.35fr 1.25fr auto;gap:18px;align-items:center;background:#fff;border:1px solid #e4eaf2;border-left:4px solid #f2a30b;border-radius:14px;padding:18px}.hold-ext-card>div:not(.hold-ext-actions){display:grid;gap:4px}.hold-ext-card small,.hold-ext-card span{color:#7889a6;font-size:12px}.hold-ext-card b{color:#122341}.hold-ext-countdown{font-variant-numeric:tabular-nums;color:#a76500!important}.hold-ext-actions{display:flex;gap:8px}.hold-ext-card.approved{border-left-color:#17a98f}.hold-ext-card.rejected{border-left-color:#ef476f}.ext-approved{color:var(--em-teal-text)!important}.ext-rejected{color:#d73558!important;text-transform:capitalize}@media(max-width:1100px){.hold-ext-card{grid-template-columns:1fr 1fr}.hold-ext-actions{grid-column:1/-1}}@media(max-width:700px){.hold-ext-card{grid-template-columns:1fr}}

/* v1.10.4 extension decision feedback */
.ext-decision{margin-top:8px;padding:8px 10px;border-radius:10px;display:grid;gap:2px;font-size:12px}.ext-decision b{font-size:12px}.ext-decision small{display:block;line-height:1.35}.ext-decision.rejected{background:#fff1f2;border:1px solid #fecdd3;color:#9f1239}.ext-decision.pending{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.ext-decision.approved{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857}
/* v1.10.5 — trainer student visibility + TL booking control */
.trainer-student{display:block;margin-top:4px;color:#203550!important;font-weight:700}.trainer-note{display:block;margin-top:2px;color:var(--em-text-muted)!important;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tlcancelbooking{color:#b42318!important;border-color:#efc5c2!important;background:#fff!important}.tlcancelbooking:hover{background:#fff3f2!important;border-color:#e49b96!important}.tl-all-bookings table{min-width:1080px}

/* ===== v1.10.7 additions ===== */
.emsm-headtools{display:flex;align-items:center;gap:12px}
.emsm-bell{position:relative;width:44px;height:44px;border-radius:12px;border:1px solid #e1e8f0;background:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.emsm-bell svg{width:20px;height:20px;fill:none;stroke:#334155;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.emsm-bell:hover{border-color:#b9c7d6}.emsm-bell:focus-visible{outline:3px solid rgba(15,147,141,.35);outline-offset:2px}
.emsm-bell-count{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#e11d48;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;border:2px solid #fff}
.emsm-notif{position:fixed;top:84px;right:24px;width:min(380px,calc(100vw - 32px));max-height:min(70vh,560px);background:#fff;border:1px solid #e1e8f0;border-radius:16px;box-shadow:0 24px 60px -20px rgba(15,23,42,.35);z-index:var(--em-z-notif);display:flex;flex-direction:column;overflow:hidden}
.emsm-notif-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #edf1f5}.emsm-notif-head b{flex:1;font-size:15px;color:#14213d}
.emsm-notif-head .textbtn{background:none;border:0;color:var(--em-teal-text);font-weight:700;cursor:pointer;font-size:12px}
.emsm-notif-head .iconclose{background:none;border:0;font-size:20px;cursor:pointer;color:#64748b}
.emsm-notif-list{overflow:auto}
.emsm-notif-item{padding:12px 16px;border-bottom:1px solid #f1f4f8}.emsm-notif-item b{display:block;font-size:13px;color:#14213d}.emsm-notif-item p{margin:4px 0;font-size:12.5px;color:#475569;line-height:1.45}.emsm-notif-item small{font-size:11px;color:var(--em-text-muted)}
.emsm-notif-item.unread{background:#f0fbfa;cursor:pointer}.emsm-notif-item.unread b:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#0f938d;margin-right:7px;vertical-align:middle}
/* statuses */
.status.cancelled{background:#f1f5f9;color:#475569}.status.expired{background:#fff1f2;color:#be123c}.status.past{background:#f1f5f9;color:#94a3b8}.status.pending_approval{background:#fff7e6;color:#b45309}.status.rejected{background:#fff1f2;color:#be123c}
.ext-pill{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#f1f5f9;color:#475569;white-space:nowrap}
.ext-pill.ext-pending{background:#fff7e6;color:#b45309}.ext-pill.ext-approved{background:#e5f7ee;color:#08764e}.ext-pill.ext-rejected{background:#fff1f2;color:#be123c}.ext-pill.ext-closed{background:#f1f5f9;color:#64748b}
.tl-hold{display:block;font-variant-numeric:tabular-nums;font-weight:800;color:#b45309}.cellsub,.tl-hold+small{display:block;font-size:11px;color:var(--em-text-muted);margin-top:2px}
.muted{color:var(--em-text-muted)}
.mini-action.danger{background:#e11d48;color:#fff;border-color:#e11d48}
/* reason dialog */
.emsm-reason .reasonlabel{display:block;text-align:left;margin:16px 0 8px;font-weight:700;color:#14213d}.emsm-reason .req{color:#e11d48}.emsm-reason .optional{font-size:11px;font-weight:600;color:var(--em-text-muted);margin-left:4px}
.emsm-reason .reasonfield{width:100%;box-sizing:border-box;resize:vertical;border:1px solid #d7dfe9;border-radius:10px;padding:10px 12px;font:inherit}
.emsm-reason .reasonerror{display:block;color:#e11d48;text-align:left;margin-top:6px}
/* hold extensions */
.ext-section-title{margin:18px 0 10px;font-size:14px;color:#334155}
.ext-usage.full{color:#be123c;font-weight:700}.ext-req{display:block;font-size:11px;color:var(--em-text-muted);margin-top:4px}
.hold-ext-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.hold-ext-actions small{display:block;width:100%;font-size:11px;color:#7b8798}.ext-note{font-style:italic}
.ext-history{margin-top:18px}.ext-history summary{cursor:pointer;font-weight:700;color:#475569;padding:8px 0}
.extension-summary .outlinebtn{align-self:center;justify-self:end;height:auto}
/* approvals */
.approved-regular{margin-top:18px}.approved-trainer{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #eef2f6}.approved-trainer>b{min-width:160px}
.approved-chips{display:flex;flex-wrap:wrap;gap:8px}.approved-chips .regwithdraw{border:0;background:none;color:#be123c;font-size:16px;cursor:pointer;margin-left:4px}
/* team courses */
.course-checks{display:grid;grid-template-columns:1fr;gap:6px;max-height:240px;overflow:auto;margin:10px 0}.course-checks label{display:flex;gap:8px;align-items:center;font-size:13px}
/* my bookings */
.mb-summary{grid-template-columns:repeat(4,1fr)}
@media(max-width:1100px){.mb-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.mb-summary{grid-template-columns:1fr}}
.mb-summary .cancel .sum-icon{background:#f1f5f9}.mb-tabs i.slate{background:#94a3b8}
.mb-status-panel.cancelled b{color:#475569}.cancel-reason{display:block;margin-top:3px;color:#475569}
.ext-decision.rejected{border-left:3px solid #e11d48}
/* calendar */
.v186-legend{flex-wrap:wrap;row-gap:6px}.v186-legend span{margin-right:12px;white-space:nowrap}
.v186-legend i.admission{background:#16a34a}
.v186-cell.admission span{background:#e5f7ee;color:#08764e}.v186-cell.admission span:before{content:'★';font-size:11px!important}
.v186-cell.past span{background:#f3f5f8;color:#a0aab8}.v186-cell.past span:before{content:'·';font-size:11px!important}
.v186-subbar{flex-wrap:wrap;gap:10px}
@media(max-width:760px){.emsm-notif{top:70px;right:16px}}
.emsm-bell-count[hidden]{display:none!important}
.hold-ext-card{grid-template-columns:minmax(150px,1fr) minmax(200px,1.4fr) minmax(170px,1fr) auto}
@media(max-width:900px){.hold-ext-card{grid-template-columns:1fr 1fr}.hold-ext-actions{grid-column:1/-1}}
@media(max-width:560px){.hold-ext-card{grid-template-columns:1fr}}
.mb-state{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0}
.mb-state .ext-decision{width:auto;max-width:none;margin:0}
.mb-actions{min-width:0}
.mb-actions .editbooking.primary,.mb-actions .editbooking.primary:hover{color:#fff!important;background:#0f938d!important;opacity:1!important}
/* v1.10.8: wide calendar content must scroll inside the grid, never stretch the page column */
.emsm-main,#emsm-content,.v186-cal{min-width:0;max-width:100%}
.v186-cal{overflow:hidden}
.v186-toolbar{flex-wrap:wrap;row-gap:10px}
@media(max-width:900px){.emsm-side nav{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);scroll-snap-type:x proximity;padding-right:24px}.emsm-side nav button{scroll-snap-align:start;flex:none}}
.emsm-creds .creds{display:grid;gap:10px;margin:14px 0}.emsm-creds input{width:100%;box-sizing:border-box;font-family:ui-monospace,Menlo,monospace;background:#f6f8fb}

/* ===== v1.10.8 UI/UX pass ===== */
/* The hidden attribute must always win over component display rules */
.emsm-app [hidden],.modal [hidden],.emsm-notif [hidden],.team-drawer [hidden]{display:none!important}
/* Headings use the app typeface regardless of the WordPress theme */
.emsm-app h1,.emsm-app h2,.emsm-app h3,.emsm-app h4,.modal h2,.modal h3,.team-drawer h2,.emsm-notif b{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:-.01em}
.emsm-app h1#emsm-title{font-size:26px;font-weight:800;color:#10213b;margin:0}
.emsm-app .v182-section h2,.emsm-app .panelhead h2,.emsm-app .panel h2,.approved-regular h2{font-size:17px;font-weight:800;color:#10213b}
.tl-ops-head h2{font-size:22px!important;font-weight:800}
.emsm-app .tl-all-bookings h3{font-size:18px;font-weight:800;margin:0}
.settingshero h2{color:#fff!important;font-weight:800}
.settingshero p{color:rgba(255,255,255,.86)}
.emsm-login-page h1,.emsm-login-page h2{font-family:Inter,system-ui,sans-serif}
/* KPI rows: fluid, no orphaned cards */
.v182-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}
.v182-kpis>div{border-bottom:0}
.v182-kpis-caption{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--em-text-muted);margin:2px 2px 8px}
.tl-ops-kpis{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important}
.approval-summary{grid-template-columns:repeat(auto-fit,minmax(150px,190px)) 1fr;align-items:stretch}
.approval-summary>div{display:flex;flex-direction:column;justify-content:center}
.approval-summary>button{align-self:center;justify-self:end}
/* Content area queries: layouts adapt to the width actually available, not the viewport */
#emsm-content{container-type:inline-size;container-name:content}
.mb-row{grid-template-columns:minmax(150px,.85fr) minmax(170px,1fr) minmax(130px,.75fr) minmax(220px,1.1fr) minmax(170px,.85fr)!important}
.mb-filter-main{grid-template-columns:minmax(200px,1.6fr) minmax(130px,1fr) 18px minmax(130px,1fr) minmax(130px,1fr) auto!important}
.mb-filter-sub{flex-wrap:wrap;row-gap:10px}
@container content (max-width:1080px){
  .mb-row{grid-template-columns:1fr 1fr 1fr!important}
  .mb-row .mb-state{grid-column:1/3!important}
  .mb-row .mb-actions{grid-column:3!important}
  .mb-filter-main{grid-template-columns:1fr 1fr 18px 1fr!important}
  .mb-filter-main .mb-search{grid-column:1/-1}
}
@container content (max-width:640px){
  .mb-row{grid-template-columns:1fr!important}
  .mb-row .mb-state,.mb-row .mb-actions{grid-column:1!important}
  .mb-filter-main{grid-template-columns:1fr!important}.mb-filter-main .date-arrow{display:none}
}
.timeperiod{grid-template-columns:150px minmax(0,1fr) 90px}
@container content (max-width:1050px){.timeperiod{grid-template-columns:130px minmax(0,1fr)}.timeperiod .selectperiod{grid-column:2}}
@container content (max-width:640px){.timeperiod{grid-template-columns:1fr}.timeperiod .selectperiod{grid-column:1}}
.regular-panel .panelhead,.reviewhead,.compact-review-head{flex-wrap:wrap;gap:10px}
.availability-counts{flex-wrap:wrap}
.submit-priority{flex-wrap:wrap;gap:12px}
.hold-ext-card{grid-template-columns:minmax(140px,1fr) minmax(190px,1.4fr) minmax(160px,1fr) auto}
@container content (max-width:900px){.hold-ext-card{grid-template-columns:1fr 1fr}.hold-ext-actions{grid-column:1/-1}}
@container content (max-width:540px){.hold-ext-card{grid-template-columns:1fr}}
/* Booking table: compact, status never wraps, action column always reachable */
.tablewrap table{min-width:760px}
.tablewrap td,.tablewrap th{vertical-align:middle}
.tablewrap .status,.ext-pill{white-space:nowrap}
.tablewrap td.when b{display:block;white-space:nowrap}.tablewrap td.when small{display:block;color:var(--em-text-muted);white-space:nowrap}
.tablewrap th:last-child,.tablewrap td:last-child{position:sticky;right:0;background:#fff;box-shadow:-10px 0 12px -12px rgba(15,23,42,.25)}
.tablewrap thead th:last-child{background:#f8fafc}
.mini-action{white-space:nowrap}
/* Activity: colour-coded event dots */
.activitydot.ev-cancel{background:#e11d48}.activitydot.ev-extension{background:#f59e0b}.activitydot.ev-admission{background:#16a34a}.activitydot.ev-expired{background:#94a3b8}.activitydot.ev-booking{background:#2563eb}
/* Focus visibility for keyboard users */
.emsm-app button:focus-visible,.emsm-app a:focus-visible,.emsm-app input:focus-visible,.emsm-app select:focus-visible,.emsm-app textarea:focus-visible,.modal button:focus-visible{outline:3px solid rgba(15,147,141,.45);outline-offset:2px}
/* Reduced motion */
@media (prefers-reduced-motion:reduce){.emsm-app *,.modal *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* panels sized to 100% must include their padding */
.trainer-avail-stack .regular-panel,.trainer-avail-stack #exceptionmini,.trainer-avail-stack .exception-card,.mb-pro,.mb-summary,.mb-summary button{box-sizing:border-box;max-width:100%;min-width:0}
@container content (max-width:760px){.trainer-avail-stack .exception-card{grid-template-columns:1fr}.trainer-avail-stack .exception-card>*{grid-column:1!important}}
.mb-summary{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@container content (max-width:900px){.mb-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@container content (max-width:520px){.mb-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.mb-summary button{grid-template-columns:minmax(0,1fr)!important;min-height:0!important;padding:12px 14px!important}.mb-summary .sum-icon,.mb-summary i{display:none!important}.mb-summary b,.mb-summary small{grid-column:1!important;grid-row:auto!important;justify-self:start;text-align:left}.mb-summary b{font-size:22px}}
.team-tabs{overflow-x:auto;scrollbar-width:none}
.mb-pro{grid-template-columns:minmax(0,1fr)}
.mb-tabs{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap;max-width:100%}
.mb-tabs button{flex:none}
@container content (max-width:520px){.mb-filter-sub{flex-direction:column;align-items:stretch}.mb-sort{display:flex;justify-content:space-between;align-items:center}}
.team-tabs{box-sizing:border-box;max-width:100%}
@media(max-width:900px){.emsm-main{padding:14px 14px 28px!important}.emsm-main>header{padding-left:0;padding-right:0}}
.v182-dayrow .status{justify-self:end;width:auto;flex:none}
@media(max-width:600px){.v182-dayrow .status{justify-self:start}}
.selectperiod{white-space:nowrap}
.selectperiod input{width:16px!important;height:16px!important;min-width:16px;margin:0!important;flex:none;appearance:auto;-webkit-appearance:checkbox}
.timecheck input{appearance:auto}
.emsm-main{box-sizing:border-box;max-width:100%}.emsm-side{box-sizing:border-box;max-width:100%}@media(max-width:900px){.emsm-main,.emsm-side{width:100%}}
/* v1.10.9 Available Slots: next-14-days strip */
.qbnotice{margin:0 0 12px;padding:12px 16px;border-radius:12px;background:#eef8f7;border:1px solid #bfe3df;color:#0b5f5a;font-size:13.5px}
.qbdays{display:flex;align-items:center;gap:12px;margin:0 0 14px;min-width:0}
.qbdays-label{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--em-text-muted);white-space:nowrap}
.qbdays-row{display:flex;gap:8px;overflow-x:auto;padding:2px;scrollbar-width:thin;min-width:0}
.qbday{flex:none;display:grid;justify-items:center;gap:1px;min-width:62px;padding:8px 8px;border:1px solid #dfe7ef;border-radius:12px;background:#fff;cursor:pointer;font:inherit;color:#14213d}
.qbday small{font-size:11px;color:var(--em-text-muted);font-weight:700}.qbday b{font-size:17px;line-height:1.2}.qbday em{font-style:normal;font-size:11px;font-weight:800;color:var(--em-teal-text)}
.qbday.none em{color:var(--em-text-muted);font-weight:600}.qbday.none{background:#fafbfc}
.qbday.active{border-color:#0f938d;background:#0f938d;color:#fff}.qbday.active small,.qbday.active em{color:#e6fffc}
.qbday:focus-visible{outline:3px solid rgba(15,147,141,.45);outline-offset:2px}
#emptyNext{margin-bottom:8px}
@container content (max-width:640px){.qbdays{flex-direction:column;align-items:stretch;gap:6px}}
/* v1.10.10 calendar: every column reachable, bookings always findable */
.v186-grid.fullday{overflow-x:auto!important}
.caldays{margin:12px 16px 4px}
.caldays .qbday em{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}
.caldays .qbday em i{font-style:normal;font-size:11px;font-weight:800;padding:1px 5px;border-radius:6px}
.caldays .qbday em i.ca{background:#e5f7ee;color:#08764e}.caldays .qbday em i.ch{background:#eaf0ff;color:#2f5fc4}.caldays .qbday em i.cf{color:var(--em-teal-text)}.caldays .qbday em i.cn{color:var(--em-text-muted);font-weight:600}
.caldays .qbday.active em i{background:rgba(255,255,255,.18);color:#fff}
.calbookings{margin-top:16px}
.calbook-list{display:grid;gap:8px}
.calbook{display:grid;grid-template-columns:150px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid #e4eaf2;border-left:4px solid #2f64c7;border-radius:12px;background:#fff;text-align:left;cursor:pointer;font:inherit;color:#14213d}
.calbook.admission{border-left-color:#16a34a}
.calbook time{font-weight:800;white-space:nowrap}.calbook-main b{display:block}.calbook-main small{color:#64748b}
.calbook:hover{border-color:#b9c7d6}
@container content (max-width:560px){.calbook{grid-template-columns:1fr auto}.calbook time{grid-column:1/-1}}
.v186-cell.flash span{outline:3px solid #f59e0b;outline-offset:1px}
@container content (max-width:600px){
  .v186-grid:not(.fullday) .v186-timeline{grid-template-columns:104px repeat(var(--cols),64px)!important}
  .v186-grid.fullday .v186-timeline{grid-template-columns:104px repeat(48,minmax(28px,1fr))!important;min-width:max-content!important;width:auto!important}
  .v186-trainername{padding:6px 8px!important;gap:6px!important}.v186-trainername span{display:none!important}.v186-trainername b{max-width:88px!important;font-size:11px}
  .v186-corner{padding:0 8px!important}
}
/* ===== v1.10.11 Master Calendar: readable statuses + Heatmap view ===== */
.v186-grid{--c-free:#10b981;--c-free-bg:#e3f7ee;--c-free-ink:#0b6b4a;--c-hold:#2563eb;--c-hold-bg:#e5edff;--c-hold-ink:#1d4ed8;--c-adm:#7c3aed;--c-adm-bg:#efe7ff;--c-adm-ink:#5b21b6;--c-wait:#d97706;--c-wait-bg:#fff2dc;--c-wait-ink:#92400e;--c-past:#cbd5e1;--c-past-bg:#f1f4f8;--c-past-ink:#94a3b8}
.v186-legend i.available{background:#10b981}.v186-legend i.booked{background:#2563eb}.v186-legend i.admission{background:#7c3aed}.v186-legend i.pending{background:#d97706}.v186-legend i.past{background:#cbd5e1}.v186-legend i.noslot{background:#fff;border:1px solid #cbd5e1}
/* every view: a cell is a coloured block */
.v186-cell{padding:3px!important;background:none;border-top:0;border-left:0;cursor:pointer}
.v186-cell span{display:flex!important;align-items:center;justify-content:center;width:100%;height:100%;box-sizing:border-box;border-radius:6px;font-size:11px!important;font-weight:800;letter-spacing:.01em;white-space:nowrap;overflow:hidden}
.v186-cell span:before{content:none!important}
.v186-cell.available span{background:var(--c-free-bg)!important;color:var(--c-free-ink)!important;box-shadow:inset 0 0 0 1px rgba(16,185,129,.35)}
.v186-cell.booked span{background:var(--c-hold)!important;color:#fff!important}
.v186-cell.admission span{background:var(--c-adm)!important;color:#fff!important}
.v186-cell.pending_tl span{background:var(--c-wait-bg)!important;color:var(--c-wait-ink)!important;box-shadow:inset 0 0 0 1px rgba(217,119,6,.4)}
.v186-cell.past span{background:repeating-linear-gradient(135deg,#f1f4f8 0 4px,#e6ebf1 4px 8px)!important;color:var(--c-past-ink)!important}
.v186-cell:hover span{filter:brightness(.96);outline:2px solid rgba(15,23,42,.18);outline-offset:-1px}
.v186-cell:focus-visible{outline:3px solid rgba(15,147,141,.5);outline-offset:-2px}
/* Fit to Screen: narrow columns → solid blocks, label hidden, colour carries meaning */
.v186-grid.fullday .v186-cell{padding:2px!important}
.v186-grid.fullday .v186-cell span{font-size:0!important;border-radius:4px}
.v186-grid.fullday .v186-cell.admission span:after{content:'★';font-size:11px;color:#fff}
.v186-grid.fullday .v186-cell.booked span:after{content:'●';font-size:11px;color:#fff}
/* Heatmap view: fit-to-width grid of dots + an all-trainer availability row */
.v186-grid.heatmap{overflow-x:auto!important}
.v186-grid.heatmap .v186-timeline{grid-template-columns:170px repeat(48,minmax(22px,1fr))!important;width:100%!important;min-width:max-content}
.v186-grid.heatmap .v186-timehead{padding:0;font-size:11px}.v186-grid.heatmap .v186-timehead span{transform:rotate(-90deg);white-space:nowrap;display:block}.v186-grid.heatmap .v186-timehead.half span{transform:none;color:#c0c8d4}
.v186-grid.heatmap .v186-corner,.v186-grid.heatmap .v186-trainername,.v186-grid.heatmap .v186-cell,.v186-grid.heatmap .v186-heat{height:40px}
.v186-grid.heatmap .v186-cell{padding:0!important;display:grid;place-items:center}
.v186-grid.heatmap .v186-cell span{width:14px!important;height:14px!important;border-radius:50%!important;font-size:0!important;box-shadow:none!important;padding:0}
.v186-grid.heatmap .v186-cell.available span{background:var(--c-free)!important}
.v186-grid.heatmap .v186-cell.past span{background:var(--c-past)!important;width:8px!important;height:8px!important}
.v186-grid.heatmap .v186-cell.pending_tl span{background:var(--c-wait)!important}
.v186-grid.heatmap .v186-cell.admission span{width:16px!important;height:16px!important;box-shadow:0 0 0 3px rgba(124,58,237,.18)!important}
.v186-grid.heatmap .v186-cell.booked span{width:16px!important;height:16px!important;box-shadow:0 0 0 3px rgba(37,99,235,.18)!important}
.v186-grid.heatmap .v186-cell.noslot:after{content:'';width:4px;height:4px;border-radius:50%;background:#e2e8f0}
.v186-sumname{background:#f8fafc!important;flex-direction:column;align-items:flex-start!important;justify-content:center;gap:0!important}.v186-sumname b{font-size:12px}.v186-sumname small{font-size:11px;color:var(--em-text-muted)}
.v186-heat{position:relative;display:grid;place-items:center;box-sizing:border-box;border-right:1px solid #edf0f3;border-bottom:2px solid #dfe5ec;background:#f8fafc;font-size:11px;font-weight:800;color:#0b6b4a;height:44px}
.v186-heat.lvl1{background:#e3f7ee}.v186-heat.lvl2{background:#b7ecd4}.v186-heat.lvl3{background:#6fd6aa;color:#064e36}.v186-heat.lvl4{background:#10b981;color:#fff}
.v186-heat i{position:absolute;top:4px;width:6px;height:6px;border-radius:50%}.v186-heat .hadm{right:4px;background:#7c3aed}.v186-heat .hhold{left:4px;background:#2563eb}
.status.admission{background:#efe7ff!important;color:#5b21b6!important}
.calbook.admission{border-left-color:#7c3aed}.calbook{border-left-color:#2563eb}
/* heatmap polish */
.v186-grid.heatmap .v186-timeline{grid-template-columns:150px repeat(48,minmax(16px,1fr))!important}
.v186-grid.heatmap .v186-corner,.v186-grid.heatmap .v186-timehead{height:58px!important}
.v186-grid.heatmap .v186-timehead{overflow:visible;display:flex;align-items:center;justify-content:center}
.v186-grid.heatmap .v186-timehead.hour span{font-size:11px;font-weight:800;color:#64748b}
.v186-grid.heatmap .v186-sumname,.v186-grid.heatmap .v186-heat{height:44px!important}
.v186-sumname{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;line-height:1.2;padding:4px 10px!important}
.v186-sumname b{display:block;max-width:none!important}.v186-sumname small{display:block}
/* bookings-on-date list */
.calbook{grid-template-columns:minmax(170px,auto) minmax(0,1fr) auto!important;column-gap:18px}
.calbook time{font-size:15px;white-space:nowrap}
.calbook-main{min-width:0}.calbook-main b{font-size:15px}.calbook-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v186-grid.heatmap .v186-timeline{width:100%!important;min-width:918px!important}
.v186-grid.heatmap .v186-timehead span{max-width:none;width:max-content}
.v186-grid.heatmap .v186-timehead{min-width:0;contain:inline-size}
@container content (max-width:600px){.v186-grid.heatmap .v186-timeline{grid-template-columns:104px repeat(48,minmax(16px,1fr))!important;min-width:872px!important}}

/* 1.10.13 — which date is shown + bookings on other dates */
.calother{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px 16px;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;background:#f8fafc}
.calother-now{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.calother-now span,.calother-list>span{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.calother-now b{font-size:16px;color:#0f172a}
.calother-now small{color:#475569;font-size:13px}
.calother-list{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.calother-list button{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;cursor:pointer;font-size:13px;color:#0f172a}
.calother-list button:hover,.calother-list button:focus-visible{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.15)}
.calother-list em{font-style:normal;font-size:12px;font-weight:600;padding:2px 7px;border-radius:999px}
.calother-list em.a{background:#ede9fe;color:#6d28d9}
.calother-list em.h{background:#dbeafe;color:#1d4ed8}
@container content (max-width:700px){.calother-list{margin-left:0}}

/* 1.10.14 — students, attendance, recurring admissions */
.stu-panel{padding:0;overflow:hidden}
.stu-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid #e5e9f0}
.stu-toolbar .v186-density em{font-style:normal;font-size:11px;background:#eef2f7;border-radius:999px;padding:1px 7px;margin-left:4px;color:#475569}
.stu-toolbar .v186-search{flex:1 1 220px;min-width:0}
.stu-list{display:flex;flex-direction:column;gap:10px;padding:14px 16px}
.stu-today .stu-list{padding:0}
.stu-card{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid #e5e9f0;border-left:4px solid #7c3aed;border-radius:12px;background:#fff}
.stu-card.compact{padding:10px 14px}
.stu-time b{display:block;font-size:15px;color:#0f172a}
.stu-time small{display:block;color:#64748b;font-size:12px}
.stu-time .stu-daily{margin-top:4px;display:inline-block;background:#ede9fe;color:#6d28d9;border-radius:999px;padding:1px 8px;font-weight:600}
.stu-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.stu-main>b{font-size:15px;color:#0f172a}
.stu-main small{color:#475569;font-size:13px;overflow-wrap:anywhere}
.stu-bar{height:6px;background:#eef2f7;border-radius:999px;overflow:hidden;margin:6px 0 2px;max-width:360px}
.stu-bar i{display:block;height:100%;background:#7c3aed;border-radius:999px}
.stu-stats{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
.stu-pct{font-size:12px;color:#0f172a;margin-left:4px}
.stu-act{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.att{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px;background:#eef2f7;color:#475569}
.att.present{background:#dcfce7;color:#166534}.att.absent{background:#fee2e2;color:#b91c1c}.att.leave{background:#fef3c7;color:#92400e}.att.none{background:#f1f5f9;color:#64748b;font-weight:500}
.attbtns{display:inline-flex;border:1px solid #cbd5e1;border-radius:10px;overflow:hidden;flex-shrink:0}
.attbtn{border:0;background:#fff;padding:7px 11px;font-size:13px;font-weight:600;color:#334155;cursor:pointer;min-height:36px}
.attbtn+.attbtn{border-left:1px solid #cbd5e1}
.attbtn:hover{background:#f8fafc}
.attbtn.present.on{background:#16a34a;color:#fff}.attbtn.absent.on{background:#dc2626;color:#fff}.attbtn.leave.on{background:#d97706;color:#fff}
.attbtn:focus-visible{outline:2px solid #7c3aed;outline-offset:-2px}
.att-drawer .stu-stats{margin:10px 0 14px}
.att-days{display:flex;flex-direction:column;gap:6px}
.att-day{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border:1px solid #e5e9f0;border-radius:10px}
.att-day span{display:flex;flex-direction:column}.att-day small{color:#64748b;font-size:12px}
.att-day.off{background:#f8fafc}
.att-future{margin-top:8px}
.adm-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;padding:12px;border-radius:12px;background:#f5f3ff}
.adm-summary small{display:block;font-size:11px;color:#6d28d9;letter-spacing:.04em;font-weight:700}
.adm-summary b{font-size:14px;color:#0f172a}
.adm-warn{background:#fef3c7;color:#92400e;border-radius:10px;padding:8px 10px;font-size:13px}
.adm-err{background:#fee2e2;color:#b91c1c;border-radius:10px;padding:8px 10px;font-size:13px}
.admdlg label,.durdlg label{display:block;margin-top:10px}
.drawer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
@container content (max-width:700px){
 .stu-card{grid-template-columns:72px minmax(0,1fr)}
 .stu-act{grid-column:1/-1;align-items:stretch}
 .stu-act .attbtns{display:flex}.stu-act .attbtn{flex:1}
 .adm-summary{grid-template-columns:1fr}
}

/* 1.10.15 — low attendance, team dashboards, trainer attendance, course dates */
.v186-cell.admission.lowatt{box-shadow:inset 0 0 0 2px #dc2626;position:relative}
.v186-cell.admission.lowatt::after{content:"!";position:absolute;top:-5px;right:-5px;width:14px;height:14px;border-radius:50%;background:#dc2626;color:#fff;font-size:11px;font-weight:800;line-height:14px;text-align:center}
.v186-legend i.lowatt{background:#7c3aed;box-shadow:0 0 0 2px #dc2626}
.lowtxt{color:#b91c1c!important}
.stu-card.low{border-left-color:#dc2626}
.lowbadge{margin-left:4px}
.tlbook select{width:100%;margin:6px 0 8px;min-height:40px}
.cdates-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.cdates #cdtoday{margin:0 0 6px}
.cdates label{display:block;margin-top:6px}
.tb-panel,.ta-panel{padding:0;overflow:hidden}
.tb-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid #e5e9f0}
.tb-bar select{min-height:40px;min-width:200px;max-width:100%}
.tb-bar p{margin:0}
#tbbody{padding:16px;display:flex;flex-direction:column;gap:16px}
.tb-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tb-head h2{margin:0}.tb-head p{margin:0}
.tb-head .outlinebtn{margin-left:auto}
.tb-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.tb-kpis>div{border:1px solid #e5e9f0;border-radius:12px;padding:12px 14px;background:#fff}
.tb-kpis b{display:block;font-size:22px;color:#0f172a}.tb-kpis small{color:#64748b}
.tb-kpis .warn{border-color:#fecaca;background:#fef2f2}.tb-kpis .warn b{color:#b91c1c}
.tb-row{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #eef2f7}
.tb-row small{display:block;color:#64748b;font-size:12px;overflow-wrap:anywhere}
.tb-rowact{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.ta-list{display:flex;flex-direction:column}
.ta-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid #eef2f7}
.ta-main{flex:1;min-width:0;display:flex;flex-direction:column}.ta-main small{color:#64748b;font-size:12px}
.lowatt-set{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:0 16px 16px}
.lowatt-set span{display:flex;align-items:center;gap:8px;margin-top:6px}
.lowatt-set input{width:90px}
.adm-missing .admfix{display:block;margin-top:8px}
@container content (max-width:700px){
 .tb-row{grid-template-columns:1fr}.tb-rowact{align-items:flex-start}
 .ta-row{flex-wrap:wrap}.ta-row .attbtns{width:100%}.ta-row .attbtn{flex:1}
 .cdates-grid{grid-template-columns:1fr}
 .tb-head .outlinebtn{margin-left:0}
}
@container content (max-width:760px){
 #tbbody .v182-dayrow{grid-template-columns:28px minmax(0,1fr);row-gap:4px}
 #tbbody .v182-dayrow time{grid-column:1/-1}
 #tbbody .v182-dayrow .status{grid-column:2;justify-self:start}
}

/* 1.10.16 — audit fixes */
.team-drawer{overflow-y:auto;box-sizing:border-box;overscroll-behavior:contain;max-height:100vh;max-height:100dvh}
.modal .dialog{max-height:calc(100dvh - 32px);overflow-y:auto}
button[aria-busy=true]{opacity:.65;cursor:progress}
.chip button,.chipx,.slotchip button{min-width:28px;min-height:28px}
.x,.drawer-close{min-width:36px;min-height:36px}
.tlmanage .danger{background:#dc2626;color:#fff;border:0;border-radius:10px;padding:8px 14px;font-weight:600;cursor:pointer}
.tlmanage{margin-top:10px}
input:disabled,select:disabled,textarea:disabled{background:#f1f5f9;color:#475569}
/* Block themes cap page content at a narrow "content width"; the app needs the full width. */
.is-layout-constrained>.emsm-app,.wp-block-post-content>.emsm-app,.entry-content>.emsm-app{max-width:none!important;width:100%!important}

/* 1.10.17 — live updates, phone cards, class changes, course completion, reports, backups */
.emsm-live{display:inline-flex;align-items:center;gap:6px;font:600 12px system-ui,sans-serif;color:#0f766e;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;padding:4px 10px;white-space:nowrap}
.emsm-live i{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 0 0 rgba(16,185,129,.6);animation:emsmPulse 2s infinite}
.emsm-live[hidden]{display:none}
@keyframes emsmPulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.55)}70%{box-shadow:0 0 0 7px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
@media (prefers-reduced-motion:reduce){.emsm-live i{animation:none}}
/* tables become cards on narrow screens */
@container content (max-width:760px){
 table.cardtable,table.rep-table{min-width:0!important;width:100%}
 table.cardtable thead,table.rep-table thead{display:none}
 table.cardtable tr,table.rep-table tr{display:block;border:1px solid #e5e9f0;border-radius:12px;padding:10px 12px;margin:0 0 10px;background:#fff}
 table.cardtable td,table.rep-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0!important;border:0!important;text-align:right;min-width:0}
 table.cardtable td::before,table.rep-table td::before{content:attr(data-label);font-size:12px;font-weight:600;color:#64748b;text-align:left;flex:none}
 table.cardtable td>*{max-width:70%}
 .tablewrap:has(table.cardtable),.tablewrap:has(table.rep-table){overflow:visible}
}
/* moved classes on the calendar */
.v186-cell.admission.moved{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.28) 0 4px,transparent 4px 8px)}
/* students */
.stu-card.closed{border-left-color:#94a3b8;opacity:.95}
.stu-card.extra{border-left-color:#0891b2}
.stu-daily.makeup,.stu-daily.substitute{background:#cffafe;color:#0e7490}
.stu-pend{color:#b45309!important;font-weight:600}
.stu-closed{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-top:6px;padding:8px 10px;border-radius:10px;background:#f1f5f9;font-size:13px}
.stu-closed.completed{background:#ecfdf5}.stu-closed.completed b{color:#047857}.stu-closed.dropped{background:#fef2f2}.stu-closed.dropped b{color:#b91c1c}
.stu-closed small{color:#475569;flex-basis:100%}
.stars{color:var(--em-warning-text);letter-spacing:1px}.stars span{color:#cbd5e1}
.stu-extra{padding:0}.stu-extra .stu-list{padding:0 16px 16px}
.att-moved{color:#0e7490!important}
.ccrate{display:flex;align-items:center;gap:12px;margin:10px 0}.ccrate>span{font-weight:600;font-size:14px}
.rate button{border:0;background:none;font-size:26px;line-height:1;color:#cbd5e1;cursor:pointer;padding:2px;min-width:36px;min-height:36px}
.rate button.on{color:#f59e0b}.rate button:focus-visible{outline:2px solid #7c3aed;border-radius:6px}
.cctabs,.mvtabs{margin:8px 0}
.ccdlg textarea,.mvdlg input,.mvdlg select{width:100%}
/* class changes */
.cc-top{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}.cc-top p{margin:0;max-width:640px}
.cc-list{display:flex;flex-direction:column}
.cc-row{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(200px,1.4fr) auto auto;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid #eef2f7}
.cc-row small{display:block;color:#64748b;font-size:12px}
.cc-what{display:flex;flex-direction:column;gap:2px;font-size:14px}
.cc-act{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.cc-badge{font:600 12px system-ui;border-radius:999px;padding:3px 10px;background:#f1f5f9;color:#475569;white-space:nowrap}
.cc-badge.requested{background:#fef3c7;color:#92400e}.cc-badge.scheduled{background:#cffafe;color:#0e7490}.cc-badge.no_makeup,.cc-badge.cancelled{background:#f1f5f9;color:#64748b}
.danger-text{color:#b91c1c!important}
details>summary.panelhead{cursor:pointer;list-style:none}
@container content (max-width:760px){.cc-row{grid-template-columns:1fr}.cc-act{justify-content:flex-start}}
/* reports */
.rep-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;padding:14px 16px}
.rep-range{display:flex;gap:10px;flex-wrap:wrap}.rep-range label{font-size:12px;font-weight:600;color:#475569;display:flex;flex-direction:column;gap:4px}
.rep-range-note{margin:4px 2px 10px}
.rep-sec .rep-body{padding:0 16px 16px}
.rep-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:#475569;margin:0 0 12px}
.rep-legend span{display:inline-flex;align-items:center;gap:6px}
.lg{width:12px;height:12px;border-radius:3px;display:inline-block}
.lg.adm,.seg.adm{background:#7c3aed}.lg.hold,.seg.hold{background:#0891b2}.lg.free,.seg.free{background:#d1fae5}.lg.unused,.seg.unused{background:#e2e8f0}
.rep-bars{display:flex;flex-direction:column;gap:10px}
.rep-brow{display:grid;grid-template-columns:minmax(90px,160px) minmax(0,1fr) minmax(130px,auto);gap:12px;align-items:center}
.rep-name{font-weight:600;font-size:14px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rep-track{display:flex;gap:2px;height:20px;background:#f8fafc;border-radius:6px;overflow:hidden}
.rep-track .seg{display:block;height:100%}.rep-track .seg:first-child{border-radius:4px 0 0 4px}.rep-track .seg:last-child{border-radius:0 4px 4px 0}
.rep-val{font-size:13px;color:#475569;white-space:nowrap}.rep-val b{color:#0f172a}
.rep-rate{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.rep-mini{width:90px;height:8px;background:#eef2f7;border-radius:999px;overflow:hidden}.rep-mini i{display:block;height:100%;background:#7c3aed;border-radius:999px}
.rep-mini.big{width:160px;height:10px}
.rep-note{font-size:12px;margin:8px 0 0}
.rep-heat{border-collapse:separate;border-spacing:2px;width:100%}
.rep-heat th{font:600 11px system-ui;color:#64748b;text-align:center;padding:4px;white-space:nowrap}.rep-heat th:first-child{text-align:left}
.rep-heat td{text-align:center;font:600 12px system-ui;padding:8px 6px;border-radius:6px;white-space:nowrap}
.rep-heat td:first-child{text-align:left;font-weight:400}.rep-heat td small{display:block;color:#64748b;font-size:11px}
.hc.h1{background:#f0fdfa;color:#134e4a}.hc.h2{background:#ccfbf1;color:#134e4a}.hc.h3{background:#5eead4;color:#134e4a}.hc.h4{background:#14b8a6;color:#fff}.hc.h5{background:#0f766e;color:#fff}.hc.h-na{color:#cbd5e1}
.rep-legend .hc{width:14px;height:14px;border-radius:3px;display:inline-block}
.rep-head{margin:0 0 8px;font-size:14px}
.rep-cols{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:2px;align-items:end;height:180px;padding-top:6px;border-bottom:1px solid #e2e8f0}
.rep-col{display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}
.rep-colbar{width:100%;max-width:24px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:2px}
.rep-colbar .seg{display:block;width:100%}.rep-colbar .seg:first-child{border-radius:4px 4px 0 0}
.rep-col small{font-size:11px;color:#64748b;height:14px;margin-top:4px;white-space:nowrap}
.rep-fill{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:10px}
.rep-fill li{display:grid;grid-template-columns:minmax(90px,160px) 160px auto;gap:4px 12px;align-items:center}
.rep-fill li small{grid-column:1/-1;color:#64748b;font-size:12px}
.linkbtn{border:0;background:none;color:#0f766e;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}
@container content (max-width:760px){.rep-brow{grid-template-columns:1fr}.rep-fill li{grid-template-columns:1fr}.rep-mini.big{width:100%}.rep-cols{height:140px}.rep-col small{font-size:11px}}
/* backups */
#bkpanel .bk-status{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:0 16px 10px}
.bk-list{display:flex;flex-direction:column;padding:0 16px}.bk-row{display:flex;gap:12px;align-items:center;padding:8px 0;border-top:1px solid #eef2f7}.bk-row span{flex:1}.bk-row small{color:#64748b}
.bk-note{padding:8px 16px 16px;margin:0;font-size:12px}

/* 1.10.18 — time-based timetable (no dates) */
.tt-title{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:44px}
.tt-title b{font-size:16px;color:#0f172a}.tt-title small{font-size:12px;color:#64748b}
.calbook-when{color:#6d28d9!important}
.qb-tools{padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.qb-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;align-items:end}
.qb-row .v186-search{flex:1 1 240px;min-width:0}
.qbsel{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#475569;flex:1 1 180px}
.qbsel select{min-height:42px}
.qbperiods{flex-wrap:wrap}
.qbresults{padding:0}
.qbhead{padding:16px;border-bottom:1px solid #eef2f7}.qbhead h2{margin:0}.qbhead p{margin:4px 0 0}
#qblist{padding:12px 16px 16px;display:flex;flex-direction:column;gap:16px}
.qbgroup h3{margin:0 0 8px;font-size:14px;color:#0f172a}.qbgroup h3 small{color:#64748b;font-weight:500;margin-left:6px}
.qbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.qbcard{border:1px solid #e5e9f0;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;background:#fff}
.qbtime{display:flex;justify-content:space-between;align-items:center;gap:8px}.qbtime b{font-size:15px}
.qbtrainer{display:flex;gap:10px;align-items:center}.qbtrainer small{display:block;color:#64748b;font-size:12px}
.qbcard .qbbook{width:100%}
.qbskeleton{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.qbskeleton i{height:120px;border-radius:12px;background:#f1f5f9}
.qbcard .qbbook{margin-top:0;background:#0f766e;color:#fff;font-weight:700;min-height:40px}
.qbcard .qbbook:hover{background:#115e59;color:#fff}
.qbcard .qbbook:disabled{opacity:.6;cursor:progress}

/* ===== 1.10.19 — layout polish & theme isolation ===== */
/* Keep the site theme's table, button and heading styles out of the app */
#emsm-app table{border-collapse:separate!important;border-spacing:0!important;width:100%;margin:0!important;border:0!important;background:transparent!important;font-size:14px}
#emsm-app table th,#emsm-app table td{border:0!important;border-bottom:1px solid #eef2f7!important;background:transparent!important;padding:12px 14px!important;text-align:left;vertical-align:middle;line-height:1.4}
#emsm-app table thead th{font:700 11px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif!important;letter-spacing:.06em;text-transform:uppercase;color:#64748b!important;background:#f8fafc!important;border-bottom:1px solid #e2e8f0!important;white-space:nowrap}
#emsm-app table thead th:first-child{border-top-left-radius:10px}#emsm-app table thead th:last-child{border-top-right-radius:10px}
#emsm-app table tbody tr:hover td{background:#f8fafc!important}
#emsm-app table tbody tr:last-child td{border-bottom:0!important}
#emsm-app .tablewrap{border:1px solid #e5e9f0;border-radius:12px;overflow-x:auto;background:#fff}
#emsm-app table td.when b{display:block;font-weight:600;color:#0f172a}#emsm-app table td.when small,#emsm-app .cellsub{display:block;color:#64748b;font-size:12px;margin-top:2px}
#emsm-app h1,#emsm-app h2,#emsm-app h3{letter-spacing:normal;text-transform:none}
#emsm-app button,#emsm-app summary{font-family:inherit;text-transform:none;letter-spacing:normal}
#emsm-app input,#emsm-app select,#emsm-app textarea{font-family:inherit;box-sizing:border-box}

/* Students: compact action column with a "More" menu */
#emsm-app .stu-card{grid-template-columns:96px minmax(0,1fr) minmax(220px,280px);align-items:start}
#emsm-app .stu-time{padding-top:2px}
#emsm-app .stu-act{align-items:stretch;gap:10px;width:100%}
.stu-todaybox{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.stu-todaybox small{font-size:12px}
.stu-todaybox .attbtns{width:100%;display:flex}.stu-todaybox .attbtn{flex:1}
.stu-btns{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;align-items:center}
.stu-btns>.outlinebtn,.stu-btns>a.textbtn{min-height:36px;padding:7px 12px;font-size:13px;border-radius:9px;display:inline-flex;align-items:center}
.stu-more{position:relative}
.stu-more>summary{list-style:none;cursor:pointer;min-height:36px;padding:7px 12px;font-size:13px;border-radius:9px;display:inline-flex;align-items:center;user-select:none}
.stu-more>summary::-webkit-details-marker{display:none}
.stu-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:230px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.14);padding:6px;display:flex;flex-direction:column}
.stu-menu button{display:block;width:100%;text-align:left;border:0!important;background:none!important;padding:9px 12px!important;border-radius:8px;font-size:14px!important;color:#0f172a!important;font-weight:500!important;cursor:pointer;min-height:0}
.stu-menu button:hover,.stu-menu button:focus-visible{background:#f1f5f9!important}
.stu-menu .sureopen{color:#b45309!important}
@container content (max-width:760px){
 #emsm-app .stu-card{grid-template-columns:72px minmax(0,1fr)}
 .stu-todaybox{align-items:stretch}.stu-btns{justify-content:flex-start}
 .stu-menu{left:0;right:auto}
}
#stutr{max-width:240px;flex:0 1 240px;min-height:40px}
.stu-toolbar{align-items:center}

/* Exceptions / Leave: form + list side by side */
.ex-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
.ex-form,.ex-list{padding:0;margin:0}
.ex-body{padding:0 16px 16px;display:flex;flex-direction:column;gap:14px}
.ex-tabs{align-self:flex-start}
.ex-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#334155;flex:1}
.ex-field input{min-height:42px;width:100%}
.ex-times{display:flex;align-items:flex-end;gap:10px}
.ex-arrow{padding-bottom:11px;color:var(--em-text-muted)}
.ex-save{align-self:flex-start;min-height:42px;padding:10px 18px!important}
.ex-items{display:flex;flex-direction:column;padding:0 16px 16px}
.ex-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #eef2f7}
.ex-item:first-child{border-top:0}
.ex-date b{display:block;font-size:14px;color:#0f172a}.ex-date small{color:#64748b;font-size:12px}
.ex-item .trash{width:32px;height:32px;border-radius:8px;border:1px solid #fecaca;background:#fff;color:#b91c1c;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:16px;padding:0}
.ex-empty{display:flex;flex-direction:column;gap:4px;padding:24px 16px;text-align:center;color:#64748b;background:#f8fafc;border-radius:12px}
.ex-empty b{color:#0f172a}
@container content (max-width:820px){.ex-layout{grid-template-columns:1fr}.ex-times{flex-wrap:wrap}.ex-save{align-self:stretch}}

/* Courses: icon | name | actions on one line */
#emsm-app .course-row{display:grid!important;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px}
#emsm-app .course-text b{display:block;font-size:15px;color:#0f172a}
#emsm-app .course-text small{display:flex;gap:8px;align-items:center;color:#64748b;font-size:13px;margin-top:3px;flex-wrap:wrap}
.course-days{background:#ecfdf5;color:#047857;font-weight:700;border-radius:999px;padding:2px 9px;font-size:12px}
.course-acts{display:flex;gap:8px;align-items:center}
#emsm-app .course-acts .course-menu{position:static!important;margin:0!important;min-height:34px;padding:6px 12px;border-radius:9px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
#emsm-app .course-acts .cdel{color:#b91c1c;border-color:#fecaca}
#emsm-app .course-acts .course-menu:hover{background:#f8fafc}
@container content (max-width:640px){#emsm-app .course-row{grid-template-columns:36px minmax(0,1fr)}.course-acts{grid-column:2}}

/* Slot Approvals: approved time chips */
#emsm-app .approved-trainer{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:12px;align-items:start;padding:12px 0;border-top:1px solid #eef2f7}
#emsm-app .approved-trainer>b{font-size:15px;padding-top:9px}
#emsm-app .approved-chips{display:flex;flex-wrap:wrap;gap:8px}
#emsm-app .availability-chip.is-approved{display:inline-flex!important;align-items:center;gap:8px;min-height:38px;padding:4px 6px 4px 12px!important;border-radius:10px}
#emsm-app .availability-chip.is-approved b{font-size:13px;white-space:nowrap}
#emsm-app .availability-chip.is-approved small{font-size:11px;font-weight:700;color:#6d28d9;background:#ede9fe;border-radius:999px;padding:2px 7px;text-transform:none;letter-spacing:0;white-space:nowrap}
#emsm-app .availability-chip .regwithdraw{position:static!important;margin:0!important;width:28px;height:28px;min-width:28px;border-radius:8px;border:0;background:transparent;color:#b91c1c;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
#emsm-app .availability-chip .regwithdraw:hover{background:#fee2e2}
@container content (max-width:640px){#emsm-app .approved-trainer{grid-template-columns:1fr}#emsm-app .approved-trainer>b{padding-top:0}}

/* Reports table */
#emsm-app .rep-table td:first-child{font-weight:600}
#emsm-app .rep-rate{justify-content:flex-start}
#emsm-app .tablewrap th:last-child,#emsm-app .tablewrap td:last-child{position:static;box-shadow:none}
#emsm-app #tlBookingRows .tablewrap th:last-child,#emsm-app #tlBookingRows .tablewrap td:last-child{position:sticky;right:0;background:#fff!important;box-shadow:-10px 0 12px -12px rgba(15,23,42,.25)}
#emsm-app .ex-form>.panelhead,#emsm-app .ex-list>.panelhead{padding:16px 16px 10px!important;margin:0}
#emsm-app .ex-form>.panelhead p,#emsm-app .ex-list>.panelhead p{margin:4px 0 0}
#emsm-app .availability-chip.is-approved small{display:inline-block!important}
@container content (max-width:640px){#emsm-app .stu-time b{white-space:nowrap;font-size:14px}}
/* 1.10.20 */
.qbperiods button small{font-weight:500;color:#64748b;margin-left:4px;font-size:11px}
.qbperiods button.active small{color:inherit;opacity:.8}
.adm-start{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px;margin-top:12px}
.adm-start input{min-height:42px}
.stu-card.compact .attbtns{display:flex}.stu-card.compact .attbtns .attbtn{flex:1}

/* ===== 1.10.21 Searchable people pickers + trainer attendance search ===== */
#emsm-app .emsm-pick,.emsm-pick{position:relative;display:inline-block;min-width:190px;max-width:100%;vertical-align:middle}
label .emsm-pick,.qbsel .emsm-pick,.dialog .emsm-pick{display:block;width:100%}
.emsm-pick .emsm-pick-native{position:absolute!important;inset:0;width:100%!important;height:100%!important;opacity:0!important;pointer-events:none!important;margin:0!important}
.emsm-pick .emsm-pick-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:40px;padding:8px 12px;border:1px solid #d6dbe4;border-radius:10px;background:#fff;color:#1f2937;font:inherit;font-size:14px;text-align:left;cursor:pointer;box-shadow:none;margin:0}
.emsm-pick .emsm-pick-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.emsm-pick .emsm-pick-btn i{font-style:normal;color:#6b7280;font-size:12px;flex:none}
.emsm-pick .emsm-pick-btn:focus-visible{outline:2px solid #2563eb;outline-offset:1px}
.emsm-pick .emsm-pick-btn[disabled]{opacity:.6;cursor:not-allowed}
.emsm-pick-panel{position:fixed;z-index:var(--em-z-picker);top:0;left:0;width:300px;max-width:calc(100vw - 16px);box-sizing:border-box;font-family:inherit;background:#fff;border:1px solid #d6dbe4;border-radius:12px;box-shadow:0 14px 34px rgba(15,23,42,.18);overflow:hidden;text-align:left}
.emsm-pick-search{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid #eef0f4}
.emsm-pick-search input{flex:1;min-width:0;height:36px;padding:6px 10px;border:1px solid #d6dbe4;border-radius:8px;font:inherit;font-size:14px;margin:0;box-shadow:none;background:#fff;color:#111827}
.emsm-pick-count{font-size:11px;color:#6b7280;white-space:nowrap}
.emsm-pick-panel ul{list-style:none;margin:0;padding:4px;max-height:300px;overflow-y:auto;overscroll-behavior:contain}
.emsm-pick-panel li{display:flex;flex-direction:column;gap:1px;margin:0;padding:8px 10px;border-radius:8px;cursor:pointer;line-height:1.3}
.emsm-pick-panel li b{font-weight:600;font-size:14px;color:#111827;overflow-wrap:anywhere}
.emsm-pick-panel li small{font-size:12px;color:#6b7280;overflow-wrap:anywhere}
.emsm-pick-panel li.act{background:#eef4ff}
.emsm-pick-panel li.on b{color:#1d4ed8}
.emsm-pick-panel li.on b::after{content:" ✓";font-weight:700}
.emsm-pick-panel li.none{color:#6b7280;cursor:default}
.ta-panel .ta-search{max-width:320px;margin-top:8px}
@media (max-width:640px){
 .emsm-pick{min-width:0;width:100%}
 .emsm-pick-panel{position:fixed;left:10px!important;right:10px!important;top:auto!important;bottom:10px!important;width:auto!important;max-width:none;border-radius:14px}
 .emsm-pick-panel ul{max-height:55vh!important}
 .emsm-pick-panel ul{max-height:55vh}
 .emsm-pick-panel li{padding:11px 12px}
 .emsm-pick-search input{height:42px;font-size:16px}
 .ta-panel .ta-search{max-width:none}
}
.ta-row[hidden],.ta-nomatch[hidden]{display:none!important}

/* ===== 1.10.23 Team management: edit, password, deactivate, delete ===== */
.role-badge.off{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}
.team-card.is-off{opacity:.72}
.team-card.is-off .team-avatar{filter:grayscale(1)}
.team-card .role-badge.off{grid-column:2;justify-self:start;margin-top:2px}
.drawer-profile .role-badge.off{margin-left:4px}
.team-drawer .dr-field{display:flex;flex-direction:column;gap:5px;margin:10px 0 0;font-size:12px;font-weight:700;color:#374151}
.team-drawer .dr-field input,.emsm-pass .dr-field input,.emsm-del .dr-field input,.emsm-del .dr-field select{width:100%;box-sizing:border-box;min-height:40px;padding:8px 11px;border:1px solid #d6dbe4;border-radius:9px;font:inherit;font-size:14px;font-weight:400;background:#fff;color:#111827}
.team-drawer .drawer-section .muted{font-size:12px;line-height:1.45}
.team-drawer .drawer-section .primary.full,.team-drawer .drawer-section .danger.full{width:100%;margin-top:12px}
.team-drawer .drawer-section .primary.full[disabled]{cursor:not-allowed}
.dr-status{font-size:13px!important;font-weight:600;padding:9px 11px;border-radius:9px;margin:8px 0 0!important}
.dr-status.on{background:#ecfdf3;color:#067647}
.dr-status.off{background:#f3f4f6;color:#4b5563}
.dr-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.dr-actions .outlinebtn{flex:1;min-width:130px}
.dr-danger small{color:#b42318!important}
.emsm-pass .dialog,.emsm-del .dialog{max-width:440px}
.emsm-pass .dr-field,.emsm-del .dr-field{display:flex;flex-direction:column;gap:5px;margin:12px 0 0;font-size:13px;font-weight:700;color:#374151}
.dr-choice{display:flex;flex-direction:column;gap:8px;margin:12px 0 4px}
.dr-choice label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
.dr-impact{margin:6px 0 4px 18px;padding:0;font-size:13px;line-height:1.6}
.dr-block{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5;margin-top:10px}
.emsm-del .danger.yes[disabled]{cursor:not-allowed}
.emsm-del .muted.small{font-size:12px;margin-top:8px}
.team-toolbar{grid-template-columns:minmax(220px,1fr) repeat(3,150px)}
.team-toolbar .team-search{grid-column:auto}
@media(max-width:900px){.team-toolbar{grid-template-columns:1fr 1fr 1fr}.team-toolbar .team-search{grid-column:1/-1}}
@media(max-width:460px){.team-toolbar{grid-template-columns:1fr}}
.course-checks label{justify-content:flex-start;cursor:pointer}
.course-checks input[type=checkbox]{width:16px!important;height:16px!important;min-height:0!important;flex:none;margin:0!important;padding:0!important}

/* =====================================================================================
   1.10.24  INTERACTION SYSTEM  — one set of hover / focus / selected / disabled states
   for the shared button families, built on the --em-* tokens defined at the top.
   Selectors are scoped with :where(<Slot Manager roots>) so they never reach the website.
   ===================================================================================== */
/* muted text that was too faint on white (2.6–3.2:1) → ≥4.5:1 */
.muted{color:var(--em-text-muted)}
td small,.tablewrap td small,.calbook-main small{color:#66758b}
.v182-empty,.compact-empty{color:var(--em-text-muted);font-size:12.5px;line-height:1.5}

/* Primary — teal, white text; hover darker teal; never loses its white label */
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop,.emsm-login-page) :is(.primary,.ok):is(:hover,:focus){color:#fff}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop,.emsm-login-page) :is(.primary,.ok):hover{background:var(--em-teal-hover);border-color:var(--em-teal-hover)}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop,.emsm-login-page) :is(.primary,.ok):focus:not(:hover){background-color:var(--em-teal)}

/* Secondary — white, navy text, light border; hover pale mint + teal */
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) :is(.outlinebtn,.mini-action:not(.danger):not(.danger-outline),.todaychip,.qb-date button,.drawer-close,.x):hover{background-color:var(--em-mint);color:var(--em-teal-ink);border-color:var(--em-teal-border)}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) :is(.outlinebtn,.mini-action:not(.danger):not(.danger-outline),.todaychip,.qb-date button,.drawer-close,.x):focus:not(:hover){background-color:#fff}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) .mini-action:not(.danger):not(.danger-outline):focus:not(:hover){color:#0b746d}

/* Text / link buttons — stay transparent, darker teal + underline on hover */
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) :is(.textbtn,.linkbtn):is(:hover,:focus){background-color:transparent}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) :is(.textbtn,.linkbtn):hover{color:var(--em-teal-ink);text-decoration:underline;text-underline-offset:3px}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) .textbtn:focus:not(:hover){color:var(--v182-teal,#0c948c)}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) .linkbtn:focus:not(:hover){color:#0f766e}
/* menu-style text buttons (student “More ▾” menu) highlight the row instead */
:where(#emsm-app,.emsm-mroot) .stu-more :is(.textbtn,button):hover{background-color:var(--em-mint);text-decoration:none}

/* Danger — pale red + red text; hover solid red + white. Used only for destructive actions. */
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) .danger:hover{background:var(--em-danger);color:#fff;border-color:var(--em-danger)}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) .danger:focus:not(:hover){background-color:#fff0f0;color:#b42318}
:where(.modal) :is(.resetdialog,.emsm-confirm) .danger:focus:not(:hover){background-color:#c92e35;color:#fff}
:where(#emsm-app,.emsm-mroot,.modal) .mini-action.danger{background:var(--em-danger-soft);color:var(--em-danger);border-color:var(--em-danger-border)}
:where(#emsm-app,.emsm-mroot,.modal) .mini-action.danger:hover{background:var(--em-danger);color:#fff;border-color:var(--em-danger)}
:where(#emsm-app,.emsm-mroot,.modal) .mini-action.danger:focus:not(:hover){background-color:var(--em-danger-soft);color:var(--em-danger)}
:where(#emsm-app,.emsm-mroot,.modal) :is(.danger-outline,.tlcancelbooking):hover{background:var(--em-danger)!important;color:#fff!important;border-color:var(--em-danger)!important}
:where(#emsm-app,.emsm-mroot,.modal) :is(.danger-outline,.tlcancelbooking):focus:not(:hover){color:#b42318}
:where(#emsm-app,.emsm-mroot) .mini-action{font-size:12px;line-height:1.3;min-height:32px}

/* Disabled — readable grey, never faded to nothing */
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) :is(.primary,.ok,.outlinebtn,.danger,.mini-action,.todaychip):disabled,
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) :is(.primary,.ok,.outlinebtn,.danger,.mini-action,.todaychip):disabled:hover{background:var(--em-disabled-bg);color:var(--em-disabled-text);border-color:var(--em-disabled-border);opacity:1;box-shadow:none;transform:none;filter:none;cursor:not-allowed}
:where(#emsm-app,.emsm-mroot) .v186-datebar button:disabled{background:var(--em-disabled-bg);color:var(--em-disabled-text);border-color:var(--em-disabled-border);opacity:1;cursor:not-allowed}

/* Present / Absent / Leave — segmented control */
:where(#emsm-app,.emsm-mroot,.modal) .attbtn{color:#334155}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn.present:hover{background:var(--em-success-soft);color:var(--em-success)}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn.absent:hover{background:var(--em-danger-soft);color:var(--em-danger)}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn.leave:hover{background:var(--em-warning-soft);color:var(--em-warning)}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn:focus:not(:hover){background:#fff;color:#334155}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn.present.on,:where(#emsm-app,.emsm-mroot,.modal) .attbtn.present.on:is(:hover,:focus){background:var(--em-success);color:#fff}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn.absent.on,:where(#emsm-app,.emsm-mroot,.modal) .attbtn.absent.on:is(:hover,:focus){background:#c81e1e;color:#fff}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn.leave.on,:where(#emsm-app,.emsm-mroot,.modal) .attbtn.leave.on:is(:hover,:focus){background:var(--em-warning);color:#fff}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn.present.on::before{content:"✓ ";font-weight:800}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn.absent.on::before{content:"✕ ";font-weight:800}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn:focus-visible{outline:2px solid var(--em-teal);outline-offset:-3px}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn:disabled{background:var(--em-disabled-bg);color:var(--em-disabled-text);cursor:not-allowed}
:where(#emsm-app,.emsm-mroot,.modal) .attbtn.on:disabled{opacity:.85}

/* Clickable cards keep their own surface on hover; border/shadow is the hover cue */
:where(#emsm-app,.emsm-mroot) :is(.team-card,.tl-ext-kpi):is(:hover,:focus){background-color:#fff;color:inherit}
:where(#emsm-app,.emsm-mroot) .tl-ext-kpi:hover{border-color:var(--em-teal-border)}
:where(#emsm-app,.emsm-mroot) .tl-ext-kpi.has-pending:is(:hover,:focus){background-color:#fffaf0}
:where(#emsm-app,.emsm-mroot) .mb-summary button:is(:hover,:focus){color:inherit}
:where(#emsm-app,.emsm-mroot) .mb-summary button.hold:is(:hover,:focus){background-color:#fffaf0}
:where(#emsm-app,.emsm-mroot) .mb-summary button.admit:is(:hover,:focus){background-color:#f1fbf9}
:where(#emsm-app,.emsm-mroot) .mb-summary button.cancel:is(:hover,:focus){background-color:#fff}
:where(#emsm-app,.emsm-mroot) .mb-summary button.expire:is(:hover,:focus){background-color:#fff5f5}
:where(#emsm-app,.emsm-mroot) .mb-summary button:hover{border-color:var(--em-teal-border)}
:where(#emsm-app,.emsm-mroot) .calbook:is(:hover,:focus){background-color:#fff;color:inherit}
:where(#emsm-app,.emsm-mroot) .v186-cell:is(:hover,:focus){background-color:transparent;color:inherit}
:where(#emsm-app,.emsm-mroot) .team-tab:is(:hover,:focus){background-color:transparent}
:where(#emsm-app,.emsm-mroot) .team-tab:hover{color:var(--em-teal-ink)}
:where(#emsm-app,.emsm-mroot) .team-tab:focus:not(:hover){color:#657287}
:where(#emsm-app,.emsm-mroot) .team-tab.active:is(:hover,:focus){color:var(--em-teal)}
/* status colours: “Available/Free” is green everywhere (purple = Admission only) */
.status.available{background:#e3f7ee;color:#0b6b4a}
/* focus rings that were purple → teal */
:where(#emsm-app,.emsm-mroot,.modal) .rate button:focus-visible{outline-color:var(--em-teal)}
:where(#emsm-app,.emsm-mroot) .calother-list button:is(:hover,:focus-visible){border-color:var(--em-teal);box-shadow:var(--em-ring)}

/* Icon-only buttons: true flex centring, no theme padding pushing the glyph off-centre */
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop,.emsm-login-page) :is(.emsm-bell,.drawer-close,.x,.emsm-password-toggle,#taprev,#tanext,#prev,#next,#calLeft,#calRight){display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;text-align:center}
:where(#emsm-app,.emsm-mroot) .emsm-bell{width:44px;height:44px}
:where(#emsm-app,.emsm-mroot) .emsm-bell svg{display:block;flex:none}
:where(#emsm-app,.emsm-mroot) .emsm-bell:hover{background-color:var(--em-mint);border-color:var(--em-teal-border)}
:where(#emsm-app,.emsm-mroot) .emsm-bell:hover svg{stroke:var(--em-teal-ink)}
:where(#emsm-app,.emsm-mroot) .emsm-bell:focus:not(:hover){background-color:#fff}
:where(#emsm-app,.emsm-mroot) .v186-datebar :is(#taprev,#tanext,#prev,#next){width:36px;min-width:36px;font-size:16px}
:where(.modal,.team-drawer-backdrop) :is(.drawer-close,.x){font-size:20px}

/* Header: live badge, bell and profile share one centre line and height */
.emsm-main>header{align-items:center}
.emsm-headtools{align-items:center}
.emsm-live{height:30px;box-sizing:border-box;line-height:1;font-variant-numeric:tabular-nums}
.emsm-live span{display:inline-block;min-width:10.5ch}
.emsm-live i{flex:none}
.emsm-user{display:flex;align-items:center;min-height:44px;box-sizing:border-box;padding-block:4px;line-height:1.25}
.emsm-user div{line-height:1.25}
.emsm-user small{line-height:1.3;margin:2px 0 0;color:#66758b}

/* Trainer Attendance toolbar: one row of equal-height controls, wraps cleanly */
.ta-panel .tb-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.ta-panel .tb-bar .v186-datebar{flex:none}
.ta-panel .tb-bar .v186-datebar :is(button,input){height:36px;box-sizing:border-box}
.ta-panel .tb-bar .v186-datebar .todaychip{height:36px;padding:0 12px;font-size:12px;border-radius:8px}
.ta-panel .tb-bar>p{flex:1 1 260px;margin:0;font-size:13px;line-height:1.4;color:var(--em-text-muted)}
.ta-panel .ta-search{flex:0 1 260px;margin-top:0}
.ta-panel .ta-search input{height:36px;box-sizing:border-box;padding-block:0}
.ta-row{align-items:center}
.ta-row .attbtns{width:auto;flex:none}
.ta-row .attbtn{min-width:96px}
@media (max-width:640px){.ta-row .attbtns{width:100%}.ta-panel .ta-search{flex:1 1 100%}}

/* Trainer “Review & Submit” used a bright-blue gradient — now the standard teal primary */
:where(#emsm-app,.emsm-mroot) .submitbar{background:var(--em-teal);box-shadow:0 6px 16px rgba(15,147,141,.18)}
:where(#emsm-app,.emsm-mroot) .submitbar:is(:hover,:focus){background:var(--em-teal-hover);color:#fff}
:where(#emsm-app,.emsm-mroot) .submitbar:is(.disabled,:disabled),:where(#emsm-app,.emsm-mroot) .submitbar:is(.disabled,:disabled):is(:hover,:focus){background:var(--em-disabled-bg);color:var(--em-disabled-text);opacity:1;box-shadow:none;cursor:not-allowed}
:where(#emsm-app,.emsm-mroot) .mb-clear:disabled{background:var(--em-disabled-bg);color:var(--em-disabled-text);opacity:1;cursor:not-allowed}
:where(#emsm-app,.emsm-mroot) .mb-clear:not(:disabled):hover{background-color:var(--em-mint);color:var(--em-teal-ink)}
:where(#emsm-app,.emsm-mroot) .mb-clear:focus:not(:hover){background-color:#f5f7fa;color:#34435d}
/* My Bookings filters: the 4-column grid put the “→” in a wide column and squeezed the To date to 26px */
.mb-filter-main{grid-template-columns:minmax(0,1.1fr) 18px minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr) auto!important}
.mb-filter-main .mb-search{grid-column:1/-1}
.mb-filter-main .date-arrow{display:flex;align-items:center;justify-content:center}
.mb-filter-main #mbClear{grid-column:auto!important;padding:0 14px;white-space:nowrap}
@media (max-width:700px){.mb-filter-main{grid-template-columns:1fr!important}.mb-filter-main .date-arrow{display:none}}

/* =====================================================================================
   1.10.25  Production fixes found in the live verification (Elementor kit + phone header)
   ===================================================================================== */
/* The Elementor kit sets line-height:1.7em on <body>; an em line-height is inherited as a fixed
   pixel value (30.6px), so every 11–14px Slot Manager text without its own line-height got a
   30px line box. A unitless value on the Slot Manager roots restores proportional leading. */
#emsm-app,.emsm-mroot,.emsm-login-page,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel{line-height:1.5}
/* Phone header: title, Live badge, bell and profile no longer collide / get clipped */
@media (max-width:560px){
 .emsm-main>header{flex-wrap:wrap;row-gap:10px;column-gap:12px}
 .emsm-main>header>div:first-child{flex:1 1 auto;min-width:0}
 .emsm-headtools{margin-left:auto;gap:8px;flex-wrap:nowrap;max-width:100%}
}
/* KPI strips: divider lines drawn per cell, so wrapped rows (auto-fit) never show broken borders */
.v182-kpis>div{border:0!important;box-shadow:1px 0 0 var(--v182-line,#e6eaf0),0 1px 0 var(--v182-line,#e6eaf0)}

/* =====================================================================================
   1.10.26  MOBILE APP UI (≤767px only — desktop and tablet are untouched)
   App bar with ☰ menu · slide-in drawer with the role's full menu · floating bottom navigation ·
   compact cards, metrics and empty states · phone agenda instead of the timetable grid.
   ===================================================================================== */
.emsm-burger,.emsm-mnav,.emsm-navdrawer-bd,.cal-magenda{display:none}
.emsm-mi{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}
html.emsm-lock,html.emsm-lock body{overflow:hidden!important;overscroll-behavior:none}

@media (max-width:767px){
 /* ---- shell ---- */
 #emsm-app{overflow:visible;overflow-x:clip;font-size:14px;border-radius:0;border:0;box-shadow:none;--m-pad:14px}
 #emsm-app .emsm-side{display:none!important}
 #emsm-app .emsm-main{padding:0 var(--m-pad) calc(104px + env(safe-area-inset-bottom))!important;min-width:0}
 #emsm-app .emsm-main>header{position:sticky;top:0;z-index:60;display:flex;flex-wrap:nowrap!important;align-items:center;gap:8px;min-height:60px;height:60px;margin:0 calc(-1 * var(--m-pad)) 14px;padding:0 10px 0 6px;background:rgba(246,248,251,.94);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--em-border);box-sizing:border-box}
 body.admin-bar #emsm-app .emsm-main>header{top:0}
 #emsm-app .emsm-main>header>div:not(.emsm-headtools){flex:1 1 auto;min-width:0}
 #emsm-app h1#emsm-title{font-size:20px;line-height:1.2;font-weight:800;letter-spacing:-.01em;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #emsm-app #emsm-sub{display:none}
 #emsm-app .emsm-burger{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--em-navy)}
 #emsm-app .emsm-burger:hover{background:var(--em-mint);color:var(--em-teal-ink)}
 #emsm-app .emsm-headtools{flex:none;gap:6px!important;margin-left:0!important}
 #emsm-app .emsm-headtools .emsm-bell{width:40px;height:40px;border-radius:12px}
 #emsm-app .emsm-headtools .emsm-bell svg{width:19px;height:19px}
 #emsm-app .emsm-user{min-height:40px;height:40px;padding:0!important;border:0;background:transparent;box-shadow:none}
 #emsm-app .emsm-user .emsm-avatar{width:36px;height:36px;border-radius:11px;font-size:14px}
 /* compact Live chip: dot + “Live” (time hidden on phones) */
 #emsm-app .emsm-live{height:26px;padding:0 9px;gap:5px;font-size:0}
 #emsm-app .emsm-live span{font-size:0;min-width:0}
 #emsm-app .emsm-live::after{content:"Live";font-size:11.5px;font-weight:700}
 /* ---- floating bottom navigation ---- */
 .emsm-mnav{display:block;position:fixed;z-index:var(--em-z-mnav);left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));pointer-events:none}
 .emsm-mnav-in{pointer-events:auto;display:flex;justify-content:space-around;align-items:center;gap:2px;height:68px;padding:0 8px;border-radius:24px;background:rgba(255,255,255,.97);border:1px solid #e3e9f0;box-shadow:0 10px 30px rgba(13,32,59,.14),0 2px 6px rgba(13,32,59,.06);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-width:520px;margin:0 auto;box-sizing:border-box}
 .emsm-mroot .emsm-mnav-item{flex:1 1 0;min-width:0;height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0;margin:0;border:0;border-radius:16px;background:transparent;color:#5b6b82;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
 .emsm-mroot .emsm-mnav-item:is(:hover,:focus){background:transparent;color:var(--em-navy)}
 .emsm-mnav-ico{width:44px;height:32px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:background-color .18s ease,color .18s ease,transform .18s ease}
 .emsm-mnav-lbl{font-size:11px;font-weight:700;line-height:1;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
 .emsm-mroot .emsm-mnav-item.is-active{color:var(--em-teal-ink)}
 .emsm-mroot .emsm-mnav-item.is-active .emsm-mnav-ico{background:var(--em-teal);color:#fff;box-shadow:0 6px 14px rgba(15,147,141,.3)}
 .emsm-mroot .emsm-mnav-item:active .emsm-mnav-ico{transform:scale(.94)}
 .emsm-mroot .emsm-mnav-item:focus-visible{outline:2px solid var(--em-teal);outline-offset:-2px}
 /* ---- ☰ drawer ---- */
 .emsm-navdrawer-bd{display:block;position:fixed;inset:0;z-index:var(--em-z-drawer);background:rgba(9,20,38,0);transition:background-color .2s ease;justify-content:flex-start!important;align-items:stretch!important;padding:0!important}
 .emsm-navdrawer-bd.is-open{background:rgba(9,20,38,.48)}
 .emsm-navdrawer{position:absolute;left:0;top:0;bottom:0;width:86vw;max-width:320px;display:flex;flex-direction:column;background:#fff;border-radius:0 22px 22px 0;box-shadow:12px 0 40px rgba(9,20,38,.22);transform:translateX(-104%);transition:transform .2s ease;overflow:hidden;padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;font-size:14px;color:var(--em-text)}
 .emsm-navdrawer-bd.is-open .emsm-navdrawer{transform:none}
 .emsm-nd-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 12px 12px 18px}
 .emsm-nd-brand{display:flex;align-items:center;gap:10px;min-width:0}
 .emsm-nd-brand img{width:36px;height:36px;border-radius:10px;object-fit:contain;background:#fff;border:1px solid #e6ebf1}
 .emsm-nd-brand b{display:block;font-size:15px;font-weight:800;color:var(--em-navy)}
 .emsm-nd-brand small{display:block;font-size:12px;color:var(--em-text-muted)}
 .emsm-mroot .emsm-nd-close{width:44px;height:44px;min-width:44px;padding:0;border:0;border-radius:12px;background:transparent;color:#5b6b82;display:inline-flex;align-items:center;justify-content:center}
 .emsm-mroot .emsm-nd-close:hover{background:var(--em-mint);color:var(--em-teal-ink)}
 .emsm-nd-user{display:flex;align-items:center;gap:10px;margin:0 14px 8px;padding:10px 12px;border-radius:14px;background:var(--em-mint);border:1px solid #dcefeb}
 .emsm-nd-av{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#19a49c,#08746f);color:#fff;font-weight:800;flex:none}
 .emsm-nd-user b{display:block;font-size:14px;color:var(--em-navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
 .emsm-nd-user small{display:block;font-size:12px;color:var(--em-text-muted)}
 .emsm-nd-nav{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:6px 10px}
 .emsm-mroot .emsm-nd-item{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;margin:0 0 2px;padding:0 12px;border:0;border-radius:12px;background:transparent;color:#2a3a52;font:inherit;font-size:14.5px;font-weight:650;text-align:left;text-decoration:none;cursor:pointer;box-sizing:border-box}
 .emsm-mroot .emsm-nd-item .emsm-mi{width:20px;height:20px;color:var(--em-text-muted)}
 .emsm-mroot .emsm-nd-item:hover{background:#f3f6f9;color:var(--em-navy)}
 .emsm-mroot .emsm-nd-item.is-active{background:var(--em-teal-soft);color:var(--em-teal-ink);font-weight:750}
 .emsm-mroot .emsm-nd-item.is-active .emsm-mi{color:var(--em-teal)}
 .emsm-mroot .emsm-nd-item:focus-visible{outline:2px solid var(--em-teal);outline-offset:-2px}
 .emsm-nd-foot{border-top:1px solid #edf1f5;padding:8px 10px 12px}
 .emsm-mroot a.emsm-nd-logout{color:#b42318}.emsm-mroot a.emsm-nd-logout .emsm-mi{color:#b42318}
 /* ---- systematic spacing / cards / type ---- */
 #emsm-app #emsm-content{display:flex;flex-direction:column;gap:12px}
 #emsm-app #emsm-content>*{margin-top:0!important;margin-bottom:0!important}
 #emsm-app .panel,#emsm-app .v182-section,#emsm-app .v182-command{border-radius:18px;padding:14px;box-shadow:none}
 #emsm-app .panel h2,#emsm-app .v182-section h2,#emsm-app .panelhead h2{font-size:17px;line-height:1.3}
 #emsm-app .panelhead p,#emsm-app .v182-sectionhead p,#emsm-app .panel>p.muted{font-size:12.5px;line-height:1.45}
 #emsm-app .v182-sectionhead,#emsm-app .panelhead{gap:8px}
 /* ---- dashboard ---- */
 #emsm-app .v182-command{padding:16px}
 #emsm-app .v182-command p.eyebrow,#emsm-app .v182-command .eyebrow{font-size:11px;margin-bottom:4px}
 #emsm-app .v182-command h2{font-size:18px;line-height:1.25;margin:0 0 4px}
 #emsm-app .v182-command p{font-size:13px;line-height:1.45;margin:0}
 #emsm-app .v182-command-actions{display:flex!important;gap:8px;margin-top:12px;flex-wrap:nowrap}
 #emsm-app .v182-command-actions>*{min-height:44px;margin:0}
 #emsm-app .v182-command-actions>.primary{flex:1 1 auto}
 #emsm-app .v182-command-actions>:not(.primary){flex:0 1 auto;padding-inline:14px}
 #emsm-app .v182-kpis-caption{margin:2px 2px -4px;font-size:11px}
 #emsm-app .v182-kpis{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px;background:transparent;border:0;border-radius:0;overflow:visible;margin:0}
 #emsm-app .v182-kpis>div{min-height:84px;padding:12px 14px!important;background:#fff;border:1px solid var(--em-border)!important;border-radius:16px;box-shadow:none;display:flex;flex-direction:column;justify-content:space-between}
 #emsm-app .v182-kpis>div:last-child:nth-child(odd){grid-column:1/-1;min-height:0;flex-direction:row;align-items:center}
 #emsm-app .v182-kpis span{font-size:12px;font-weight:700;color:var(--em-text-muted)}
 #emsm-app .v182-kpis b{font-size:28px;line-height:1.05;margin:6px 0 0;letter-spacing:-.03em}
 #emsm-app .v182-kpis>div:last-child:nth-child(odd) b{margin:0;font-size:24px}
 #emsm-app .tl-ops-head h2{font-size:18px}
 #emsm-app .tl-ops-head p{font-size:13px}
 /* ---- compact empty states ---- */
 #emsm-app .panel.empty.bigempty,#emsm-app .bigempty{min-height:0!important;height:auto!important;padding:16px 16px 16px 60px!important;text-align:left!important;display:block;position:relative}
 #emsm-app .bigempty::before{content:"";position:absolute;left:16px;top:16px;width:32px;height:32px;border-radius:10px;background:var(--em-teal-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f938d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4L18 8'/%3E%3C/svg%3E") center/18px no-repeat}
 #emsm-app .bigempty b{display:block;font-size:15px;line-height:1.3;color:var(--em-navy);margin:0}
 #emsm-app .bigempty p{font-size:13px;line-height:1.45;margin:3px 0 0;color:var(--em-text-muted)}
 #emsm-app .bigempty .primary{margin-top:10px}
 #emsm-app .v182-empty,#emsm-app .compact-empty{padding:14px;font-size:13px;border-radius:14px}
 /* ---- hold extensions ---- */
 #emsm-app .extension-summary{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}
 #emsm-app .extension-summary>div{padding:12px 14px;border-radius:16px;min-height:0}
 #emsm-app .extension-summary>div b{font-size:26px;line-height:1.1}
 #emsm-app .extension-summary>div small,#emsm-app .extension-summary>div span{font-size:12px}
 #emsm-app .extension-summary>.outlinebtn{display:none}
 #emsm-app .ext-history summary{font-size:15px;min-height:44px;display:flex;align-items:center}
 /* ---- slot approvals ---- */
 #emsm-app .approved-regular .panelhead h2{font-size:16px}
 #emsm-app .approved-trainer{padding:12px 0}
 #emsm-app .approved-trainer h3,#emsm-app .approved-trainer>b{font-size:14.5px}
 /* ---- master calendar → phone agenda ---- */
 #emsm-app .v186-cal{border-radius:18px;padding:12px;overflow:visible}
 #emsm-app .v186-toolbar{padding:0;gap:10px}
 #emsm-app .v186-toolbar .tt-title b{font-size:16px}
 #emsm-app .v186-toolbar .tt-title small{font-size:12px}
 #emsm-app .v186-tools{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
 #emsm-app .v186-tools .v186-search{grid-column:1/-1}
 #emsm-app .v186-tools :is(input,select,.emsm-pick-btn){min-height:44px;height:44px;font-size:14px}
 #emsm-app .v186-tools .emsm-pick{min-width:0;width:100%}
 #emsm-app .v186-cal .v186-density,#emsm-app .v186-jump,#emsm-app .v186-legend,#emsm-app .v186-grid,#emsm-app .v191-calfooter,#emsm-app #v188range{display:none!important}
 #emsm-app .v186-subbar{padding:0;border:0;min-height:0}
 #emsm-app .calother{margin:10px 0 0}
 #emsm-app .cal-magenda{display:block;margin-top:10px}
 #emsm-app .cal-mtabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0 10px;margin:0 -2px}
 #emsm-app .cal-mtabs::-webkit-scrollbar{display:none}
 #emsm-app .cal-mtabs button{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 13px;border:1px solid var(--em-border);border-radius:999px;background:#fff;color:#3a4a61;font-size:13px;font-weight:700}
 #emsm-app .cal-mtabs button span{font-size:11px;font-weight:800;color:var(--em-text-muted);background:#eef2f6;border-radius:999px;padding:1px 7px}
 #emsm-app .cal-mtabs button.on{background:var(--em-navy);border-color:var(--em-navy);color:#fff}
 #emsm-app .cal-mtabs button.on span{background:rgba(255,255,255,.18);color:#fff}
 #emsm-app .cal-mtabs button:disabled{opacity:.5}
 #emsm-app .cal-mgroup+.cal-mgroup{margin-top:12px}
 #emsm-app .cal-mghead{display:flex;align-items:baseline;justify-content:space-between;padding:4px 2px 6px}
 #emsm-app .cal-mghead b{font-size:13px;color:var(--em-navy)}
 #emsm-app .cal-mghead span{font-size:11.5px;color:var(--em-text-muted)}
 #emsm-app .cal-mitem{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:60px;margin:0 0 8px;padding:10px 12px;border:1px solid var(--em-border);border-left:4px solid #cbd5e1;border-radius:14px;background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer;box-sizing:border-box}
 #emsm-app .cal-mitem:is(:hover,:focus){background:#fff;color:inherit;border-color:var(--em-teal-border)}
 #emsm-app .cal-mitem.st-available{border-left-color:#10b981}
 #emsm-app .cal-mitem.st-booked{border-left-color:#2563eb}
 #emsm-app .cal-mitem.st-admission{border-left-color:#7c3aed}
 #emsm-app .cal-mitem.st-pending_tl{border-left-color:#d97706}
 #emsm-app .cal-mitem.st-past{opacity:.75}
 #emsm-app .cal-mitem.lowatt{box-shadow:inset 0 0 0 1px #fecaca}
 #emsm-app .cal-mtime b{display:block;font-size:13.5px;font-weight:800;color:var(--em-navy);white-space:nowrap}
 #emsm-app .cal-mtime small{display:block;font-size:11.5px;color:var(--em-text-muted);white-space:nowrap}
 #emsm-app .cal-mmain{min-width:0}
 #emsm-app .cal-mmain b{display:block;font-size:14px;font-weight:750;color:var(--em-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #emsm-app .cal-mmain small{display:block;font-size:12px;color:var(--em-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #emsm-app .cal-mchip{font-size:11px;font-weight:800;padding:4px 8px;border-radius:999px;white-space:nowrap;background:#eef2f6;color:#475569}
 #emsm-app .cal-mchip.available{background:#e3f7ee;color:#0b6b4a}
 #emsm-app .cal-mchip.booked{background:#e5edff;color:#1d4ed8}
 #emsm-app .cal-mchip.admission{background:#efe7ff;color:#5b21b6}
 #emsm-app .cal-mchip.pending_tl{background:#fff2dc;color:#92400e}
 #emsm-app .calbook{grid-template-columns:minmax(0,1fr) auto!important;row-gap:4px;padding:12px;border-radius:14px}
 #emsm-app .calbook time{grid-column:1/-1;font-size:13.5px}
 #emsm-app .calbook-main b{font-size:14px}
 /* trainer My Bookings card-table: the table kept its 760px desktop min-width, pushing values out of the card */
 #emsm-app .tablewrap{overflow:visible}
 #emsm-app table:is(.cardtable,.rep-table),#emsm-app table:is(.cardtable,.rep-table) tbody{display:block;min-width:0!important;width:100%!important}
 #emsm-app table:is(.cardtable,.rep-table) tr{display:block;width:auto;box-sizing:border-box}
 #emsm-app table:is(.cardtable,.rep-table) td{width:auto!important;min-width:0;max-width:100%;box-sizing:border-box;gap:12px}
 #emsm-app table:is(.cardtable,.rep-table) td>*{min-width:0;overflow-wrap:anywhere;white-space:normal!important}
 #emsm-app .tl-all-bookings,#emsm-app .tl-all-bookings .tablewrap{height:auto!important;max-height:none!important;overflow:visible!important}
 #emsm-app table:is(.cardtable,.rep-table) td{flex-wrap:wrap}
 #emsm-app table:is(.cardtable,.rep-table) td small{flex:1 0 100%;text-align:right;overflow-wrap:normal}
 #emsm-app table:is(.cardtable,.rep-table) td:last-child{position:static!important;box-shadow:none!important;background:transparent!important}
 #emsm-app .rep-rate{min-width:0;max-width:100%;flex:1 1 auto}
 #emsm-app table.rep-heat{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 /* ---- misc phone polish ---- */
 #emsm-app .hold-ext-card button,#emsm-app .ext-actions button{font-size:14px}
 #emsm-app :is(.primary,.outlinebtn,.danger,.ok){min-height:44px}
 #emsm-app .team-heading h2{font-size:18px}
 .emsm-toasts{bottom:calc(92px + env(safe-area-inset-bottom))!important}
 .emsm-notif{position:fixed!important;left:10px!important;right:10px!important;top:66px!important;width:auto!important;max-width:none!important;max-height:calc(100dvh - 180px);z-index:var(--em-z-notif)}
}
@media (max-width:374px){
 #emsm-app{--m-pad:12px}
 #emsm-app .emsm-live{width:26px;padding:0;justify-content:center}
 #emsm-app .emsm-live::after{content:none}
 #emsm-app h1#emsm-title{font-size:18px}
 .emsm-mnav{left:8px;right:8px}
 .emsm-mnav-lbl{font-size:11px}
 #emsm-app .cal-mitem{grid-template-columns:66px minmax(0,1fr) auto;gap:8px;padding:10px}
}
@media (max-width:767px) and (hover:none){
 /* touch screens keep :hover after a tap — don't leave a pale hover tint on the attendance buttons */
 #emsm-app .attbtn:not(.on):hover,.modal .attbtn:not(.on):hover{background:#fff;color:#334155}
}
/* WordPress admin bar is fixed (46px) only between 601–782px; keep the app bar below it there */
@media (min-width:601px) and (max-width:767px){body.admin-bar #emsm-app .emsm-main>header{top:46px}}

/* =====================================================================================
   1.10.28  Shared date picker · time filter · login fixes · desktop shell edge · phone calendar
   ===================================================================================== */
/* ---- desktop app shell: no rounded/clipped top-left corner where the navy sidebar meets the page ---- */
@media (min-width:768px){#emsm-app.emsm-app{border-radius:0;border:0;margin:0;box-shadow:none}#emsm-app .emsm-side{border-radius:0}}

/* ---- shared date field + calendar popover ---- */
.emsm-dp{position:relative;display:inline-flex;vertical-align:middle;min-width:0;max-width:100%}
label .emsm-dp,.dialog .emsm-dp,.drawer-section .emsm-dp{display:flex;width:100%}
.emsm-dp .emsm-dp-native{position:absolute!important;inset:0;width:100%!important;height:100%!important;opacity:0!important;pointer-events:none!important;margin:0!important}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) .emsm-dp-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;min-height:40px;padding:0 12px;margin:0;border:1px solid #d6dde7;border-radius:10px;background:#fff;color:var(--em-text);font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer;box-shadow:none;white-space:nowrap}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) .emsm-dp-btn:is(:hover,:focus){background:#fff;color:var(--em-text);border-color:var(--em-teal-border)}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) .emsm-dp-btn[aria-expanded="true"]{border-color:var(--em-teal);box-shadow:var(--em-ring)}
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop) .emsm-dp-btn:disabled{background:var(--em-disabled-bg);color:var(--em-disabled-text);cursor:not-allowed}
.emsm-dp-btn span{overflow:hidden;text-overflow:ellipsis}.emsm-dp-btn span.ph{color:var(--em-text-muted);font-weight:500}
.emsm-dp-btn svg,.emsm-tf-btn svg{width:17px;height:17px;flex:none;fill:none;stroke:var(--em-teal);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.emsm-dp-panel{padding:12px;min-width:288px;max-width:340px}
.emsm-dp-panel .dp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}
.emsm-dp-panel .dp-head b{font-size:15px;font-weight:800;color:var(--em-navy)}
.emsm-pick-panel .dp-nav{width:40px;height:40px;padding:0;border:1px solid var(--em-border);border-radius:10px;background:#fff;color:var(--em-navy);font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.emsm-pick-panel .dp-nav:is(:hover,:focus){background:var(--em-mint);color:var(--em-teal-ink);border-color:var(--em-teal-border)}
.emsm-pick-panel .dp-nav:disabled{opacity:.4;cursor:not-allowed;background:#fff}
.emsm-dp-panel .dp-week,.emsm-dp-panel .dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.emsm-dp-panel .dp-week span{text-align:center;font-size:11px;font-weight:800;color:#64748b;padding:4px 0;letter-spacing:.02em}
.emsm-pick-panel .dp-day{height:38px;min-width:0;padding:0;margin:0;border:0;border-radius:10px;background:transparent;color:var(--em-text);font:inherit;font-size:13.5px;font-weight:650;cursor:pointer}
.emsm-pick-panel .dp-day:is(:hover,:focus){background:var(--em-mint);color:var(--em-teal-ink)}
.emsm-pick-panel .dp-day.out{color:var(--em-text-muted)}
.emsm-pick-panel .dp-day.today{box-shadow:inset 0 0 0 1.5px var(--em-teal);color:var(--em-teal-ink)}
.emsm-pick-panel .dp-day.sel,.emsm-pick-panel .dp-day.sel:is(:hover,:focus){background:var(--em-teal);color:#fff;box-shadow:none;font-weight:800}
.emsm-pick-panel .dp-day:disabled{color:#c3cad5;background:transparent;cursor:not-allowed;text-decoration:line-through}
.emsm-pick-panel .dp-day:focus-visible{outline:2px solid var(--em-navy);outline-offset:1px}
.emsm-dp-panel .dp-foot{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid #eef1f5}
.emsm-pick-panel .dp-foot .textbtn{min-height:36px;padding:0 10px;border-radius:8px;font-size:13px;font-weight:800;color:var(--em-teal-ink)}
.emsm-pick-panel .dp-foot .textbtn:disabled{color:#a3adbb}
/* ---- shared time filter ---- */
:where(#emsm-app,.emsm-mroot,.modal) .emsm-tf-btn{display:flex;align-items:center;gap:8px;width:100%;min-width:0;min-height:42px;padding:0 12px;margin:0;border:1px solid #d6dde7;border-radius:10px;background:#fff;color:var(--em-text);font:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;text-align:left;box-shadow:none}
:where(#emsm-app,.emsm-mroot,.modal) .emsm-tf-btn span{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}
:where(#emsm-app,.emsm-mroot,.modal) .emsm-tf-btn i{font-style:normal;color:#64748b;font-size:12px}
:where(#emsm-app,.emsm-mroot,.modal) .emsm-tf-btn:is(:hover,:focus){background:#fff;color:var(--em-text);border-color:var(--em-teal-border)}
:where(#emsm-app,.emsm-mroot,.modal) .emsm-tf-btn.is-set{border-color:var(--em-teal);background:var(--em-teal-soft);color:var(--em-teal-ink)}
.emsm-tf-panel{padding:14px;min-width:300px}
.emsm-tf-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.emsm-tf-head b{font-size:15px;color:var(--em-navy)}
.emsm-pick-panel .emsm-tf-x{width:36px;height:36px;padding:0;border:0;border-radius:10px;background:transparent;color:#5b6b82;font-size:20px;display:inline-flex;align-items:center;justify-content:center}
.emsm-tf-quick{display:flex;flex-wrap:wrap;gap:6px}
.emsm-pick-panel .emsm-tf-quick button{min-height:36px;padding:0 12px;border:1px solid var(--em-border);border-radius:999px;background:#fff;color:#334155;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.emsm-pick-panel .emsm-tf-quick button:is(:hover,:focus){background:var(--em-mint);color:var(--em-teal-ink);border-color:var(--em-teal-border)}
.emsm-pick-panel .emsm-tf-quick button.on{background:var(--em-navy);border-color:var(--em-navy);color:#fff}
.emsm-tf-range{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.emsm-tf-range label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:#475569}
.emsm-tf-range select{min-height:42px;border:1px solid #d6dde7;border-radius:10px;padding:0 10px;background:#fff;color:var(--em-text);font:inherit;font-size:14px;width:100%}
.emsm-tf-note{font-size:12px;color:var(--em-text-muted);margin:8px 0 0}
.emsm-tf-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.emsm-tf-foot button{min-height:40px;padding:0 16px}
/* Available Slots: Time sits beside Trainer */
.qbsel.qbtime{gap:4px}.qbsel-l{font-size:12px;font-weight:600;color:#475569}
.qbperiods .qbcnt{display:inline-block;min-width:18px;margin-left:4px;padding:0 6px;border-radius:999px;background:#eef2f6;color:#475569;font-size:11px;font-weight:800;line-height:18px;text-align:center}
.qbperiods .active .qbcnt{background:rgba(255,255,255,.7);color:var(--em-teal-ink)}
#emsm-app .v186-tools .emsm-tf-btn{width:auto;min-width:170px;height:36px;min-height:36px;font-size:12px;border-color:#dbe2e9;border-radius:8px}
#emsm-app .mb-filter-main .emsm-tf-btn{height:42px;border-color:#dbe4ee;border-radius:9px}
/* shared compact “no results” */
.emsm-filter-empty{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;border:1px dashed #d6dde7;border-radius:14px;background:#fbfcfd}
.emsm-filter-empty b{font-size:15px;color:var(--em-navy)}.emsm-filter-empty p{margin:0;font-size:13px;color:var(--em-text-muted)}
.emsm-filter-empty .outlinebtn{margin-top:8px;min-height:40px}
.calother .cal-filtered{display:block;margin-top:4px;color:var(--em-teal-ink)!important;font-weight:700}
/* ---- login: Sign in label stays white in every state (theme + baseline hover/focus no longer recolour it) ---- */
:where(.emsm-login-page) .emsm-login-submit,:where(.emsm-login-page) .emsm-login-submit:is(:hover,:focus,:active,:disabled){color:#fff;background:linear-gradient(135deg,#102b42,#13233a);border:0}
:where(.emsm-login-page) .emsm-login-submit:hover{background:linear-gradient(135deg,#143a58,#173050)}
:where(.emsm-login-page) .emsm-login-submit:disabled{opacity:.92;cursor:wait}
.emsm-login-submit .emsm-submit-label,.emsm-login-submit .emsm-submit-arrow{color:#fff}
.emsm-login-page .emsm-input.is-error{border-color:#e5484d!important;box-shadow:0 0 0 3px rgba(229,72,77,.12)!important}
/* ---- phone: filters, calendar date strip, confirm sheet ---- */
@media (max-width:767px){
 #emsm-app .qb-tools .qb-row:last-child{display:grid;grid-template-columns:1fr 1fr;gap:10px}
 #emsm-app .qb-tools .qb-row:last-child>.v186-search,#emsm-app .qb-tools .qb-row:last-child>.qbsel:first-of-type,#emsm-app .qb-tools #qbclear{grid-column:1/-1}
 #emsm-app .qb-tools .qbsel{min-width:0}
 #emsm-app .qb-tools :is(select,.emsm-pick-btn,.emsm-tf-btn,input){min-height:44px}
 #emsm-app .qb-tools #qbclear{min-height:44px}
 #emsm-app .qbperiods{display:flex;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
 #emsm-app .qbperiods button{flex:none}
 #emsm-app .v186-tools .emsm-tf-btn{grid-column:1/-1;width:100%;height:44px;min-height:44px;font-size:14px}
 #emsm-app .mb-filter-main .emsm-tf-btn{height:44px}
 #emsm-app .cal-mdate{margin:0 0 10px}
 #emsm-app .cal-mdhead{display:grid;grid-template-columns:44px minmax(0,1fr) 44px auto;gap:6px;align-items:center}
 #emsm-app .cal-mnav{width:44px;height:44px;padding:0;border:1px solid var(--em-border);border-radius:12px;background:#fff;color:var(--em-navy);font-size:20px;display:inline-flex;align-items:center;justify-content:center}
 #emsm-app .cal-mnav:is(:hover,:focus){background:var(--em-mint);color:var(--em-teal-ink)}
 #emsm-app .cal-mjump .emsm-dp{display:flex;width:100%}
 #emsm-app .cal-mjump .emsm-dp-btn{height:44px;justify-content:center;font-size:14px;font-weight:800}
 #emsm-app .cal-mtoday{height:44px;padding:0 12px;border:1px solid var(--em-border);border-radius:12px;background:#fff;color:var(--em-teal-ink);font-weight:800;font-size:13px}
 #emsm-app .cal-mtoday:disabled{color:var(--em-text-muted);background:#fff;opacity:1}
 #emsm-app .cal-mweek{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px}
 #emsm-app .cal-mday{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:58px;padding:4px 0;margin:0;border:1px solid transparent;border-radius:14px;background:#fff;color:var(--em-text);font:inherit;cursor:pointer;min-width:0}
 #emsm-app .cal-mday small{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase}
 #emsm-app .cal-mday b{font-size:16px;font-weight:800;line-height:1.1}
 #emsm-app .cal-mday i{width:5px;height:5px;border-radius:50%;background:transparent}
 #emsm-app .cal-mday i.dot{background:#7c3aed}
 #emsm-app .cal-mday.today{border-color:var(--em-teal-border)}
 #emsm-app .cal-mday:is(:hover,:focus){background:var(--em-mint);color:var(--em-text)}
 #emsm-app .cal-mday.on,#emsm-app .cal-mday.on:is(:hover,:focus){background:var(--em-teal);border-color:var(--em-teal);color:#fff}
 #emsm-app .cal-mday.on small{color:rgba(255,255,255,.85)}#emsm-app .cal-mday.on i.dot{background:#fff}
 #emsm-app .cal-mdaylbl{margin:10px 2px 0;font-size:14px;font-weight:800;color:var(--em-navy)}
 .modal.emsm-confirm{align-items:flex-end!important;padding:0!important}
 .modal.emsm-confirm .dialog{width:100%!important;max-width:none!important;margin:0!important;border-radius:20px 20px 0 0!important;padding:20px 18px calc(18px + env(safe-area-inset-bottom))!important;animation:emsmSheet .2s ease-out}
 .modal.emsm-confirm .confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
 .modal.emsm-confirm .confirm-actions button{min-height:48px}
}
@keyframes emsmSheet{from{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.modal.emsm-confirm .dialog{animation:none!important}}
#emsm-app .qb-tools .emsm-pick{min-width:0}
#emsm-app .v186-datebar .emsm-dp{width:auto!important;flex:0 1 auto;min-width:0}
#emsm-app .v186-datebar .emsm-dp-btn{font-size:12.5px;padding:0 10px;gap:8px}
@media (max-width:767px){#emsm-app .ta-panel .v186-datebar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px auto;gap:6px;width:100%}#emsm-app .ta-panel .v186-datebar :is(button,.emsm-dp-btn){height:44px!important}#emsm-app .ta-panel .v186-datebar .emsm-dp{width:100%!important}#emsm-app .ta-panel .v186-datebar #taprev,#emsm-app .ta-panel .v186-datebar #tanext{width:44px}}
.qbsel.qbtime{align-items:stretch;text-align:left}.qbsel.qbtime .qbsel-l{display:block}
@media (max-width:767px){#emsm-app .ta-panel .v186-datebar .emsm-dp-btn{justify-content:center;padding:0 6px}#emsm-app .ta-panel .v186-datebar .emsm-dp-btn svg{display:none}}
.modal.emsm-confirm .dialog h2{font-size:20px;line-height:1.25;margin:8px 0 4px}
.modal.emsm-confirm .dialog p{font-size:14px;line-height:1.5;margin:0 0 14px}
@media(max-width:767px){#emsm-app .rep-bar .v186-density{display:flex!important;flex-wrap:wrap;gap:6px;width:100%;max-width:100%;overflow:visible}#emsm-app .rep-bar .v186-density button{flex:1 1 calc(50% - 6px);min-width:0;min-height:40px;white-space:normal;line-height:1.25}}

/* =====================================================================================
   1.10.30 SHARED UI FOUNDATION (Phase 1)
   One set of tokens + components for every role and screen. Later blocks may only refine.
   ===================================================================================== */
:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel,.emsm-notif,.emsm-navdrawer-bd,.emsm-login-page){
 /* colour */
 --em-navy:#0d203b;--em-teal:#0f938d;--em-teal-hover:#08766f;--em-teal-text:#0a7770;--em-teal-soft:#e8f6f4;--em-mint:#f0faf8;
 --em-text:#13213c;--em-text-muted:#5d6b82;--em-line:#e3e9f1;--em-border:#d9e1eb;--em-bg:#f4f7fb;--em-surface:#fff;
 --em-warning-text:#8a5300;--em-danger:#c4252f;--em-danger-text:#b42318;--em-danger-soft:#fdecec;--em-success-text:#067647;
 --muted:var(--em-text-muted);--v182-muted:var(--em-text-muted);--em-muted:var(--em-text-muted);
 /* type */
 --em-fs-title:24px;--em-fs-section:17px;--em-fs-body:14px;--em-fs-label:13px;--em-fs-meta:12px;--em-fs-min:11px;
 /* shape + space */
 --em-r-control:8px;--em-r-card:12px;--em-r-sheet:16px;--em-r-pill:999px;
 --em-s1:4px;--em-gap:12px;--em-pad-card:16px;--em-gap-section:24px;--em-gutter:24px;
 --em-h-control:36px;--em-h-icon:36px}
@media(max-width:767px){:where(#emsm-app,.emsm-mroot,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-pick-panel,.emsm-notif,.emsm-navdrawer-bd){--em-fs-title:20px;--em-pad-card:14px;--em-gutter:16px;--em-h-control:44px;--em-h-icon:44px}
 #emsm-app{--m-pad:16px}}

/* ---- Icons (one SVG set) ---- */
.em-ic,.emsm-mi.em-ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
#emsm-app .emsm-side .navico{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:0}
#emsm-app .emsm-side .navico .emsm-mi{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#emsm-app .em-search-ic{display:inline-flex;align-items:center;color:var(--em-text-muted);font-size:0}
#emsm-app .em-search-ic .em-ic{width:16px;height:16px}
#emsm-app .periodicon,#emsm-app .availability-group-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--em-teal-text);font-size:0}
#emsm-app .periodicon .em-ic,#emsm-app .availability-group-icon .em-ic{width:20px;height:20px}
#emsm-app .sum-icon .em-ic,#emsm-app .hold-ring .em-ic{width:18px;height:18px}
#emsm-app .course-icon .em-ic,#emsm-app .mb-course .em-ic{width:16px;height:16px}
#emsm-app .team-more .em-ic{width:18px;height:18px}
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-toasts,.emsm-notif) button .em-ic{width:16px;height:16px}
:is(#emsm-app,.modal,.team-drawer-backdrop) :is(.textbtn,.primary,.outlinebtn) .em-ic{margin-left:2px}
#emsm-app .arrow .em-ic,#emsm-app .ex-arrow .em-ic,#emsm-app .date-arrow .em-ic{width:14px;height:14px;color:var(--em-text-muted)}

/* ---- Typography ---- */
#emsm-app h1#emsm-title{font-size:var(--em-fs-title);line-height:1.2;font-weight:800;letter-spacing:-.01em}
#emsm-app #emsm-sub{font-size:var(--em-fs-label);color:var(--em-text-muted);line-height:1.4}
#emsm-app :is(.panel,.v182-section,.rep-sec) :is(h2,.v182-sectionhead h2,.panelhead h2){font-size:var(--em-fs-section);line-height:1.3}
#emsm-app :is(.panelhead,.v182-sectionhead) p{font-size:var(--em-fs-meta);color:var(--em-text-muted)}
#emsm-app :is(label,.qbsel-l,.dr-field){font-size:var(--em-fs-label)}
#emsm-app .muted,.modal .muted,.team-drawer-backdrop .muted{color:var(--em-text-muted)}
@media(max-width:767px){#emsm-app h1#emsm-title[data-short]{font-size:0!important}
 #emsm-app h1#emsm-title[data-short]::after{content:attr(data-short);font-size:var(--em-fs-title);line-height:1.2}}

/* ---- Page header ---- */
#emsm-app .emsm-main>header{gap:var(--em-gap)}
#emsm-app .emsm-headtools{gap:10px}
#emsm-app .emsm-live.is-static{background:#f4f6f9;border-color:var(--em-line);color:var(--em-text-muted)}
#emsm-app .emsm-live.is-static i{background:#9aa6b6;box-shadow:none;animation:none}
@media(max-width:767px){#emsm-app .emsm-live.is-static{display:none!important}}
#emsm-app .emsm-user .emsm-logout{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;margin-left:6px;border-radius:var(--em-r-control);border:1px solid var(--em-border);background:#fff;color:var(--em-text);font-size:var(--em-fs-label);font-weight:600;text-decoration:none;white-space:nowrap}
#emsm-app .emsm-user .emsm-logout .emsm-mi{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
#emsm-app .emsm-user .emsm-logout:hover{border-color:var(--em-teal);color:var(--em-teal-text);background:var(--em-mint)}
#emsm-app .emsm-user .emsm-logout:focus-visible{outline:2px solid var(--em-teal);outline-offset:2px}
@media(max-width:1100px) and (min-width:768px){#emsm-app .emsm-user .emsm-logout span{display:none}#emsm-app .emsm-user .emsm-logout{width:40px;padding:0;justify-content:center}}
@media(max-width:767px){#emsm-app .emsm-user .emsm-logout{display:none}}

/* ---- Desktop width ---- */
@media(min-width:768px){#emsm-app .emsm-main>header,#emsm-app #emsm-content{max-width:1440px;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}
 #emsm-app:is([data-view=calendar],[data-view=reports],[data-view=trainerattendance],[data-view=team],[data-view=activity]) :is(.emsm-main>header,#emsm-content){max-width:1600px}}

/* ---- Buttons: primary / secondary / quiet / danger ---- */
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif) :is(button,a,summary):is(.primary,.outlinebtn,.secondary,.danger,.danger-outline,.textbtn,.mb-clear,.linkbtn,.resetbtn){
 display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--em-h-control);padding:0 14px;border-radius:var(--em-r-control);
 font-size:var(--em-fs-label);font-weight:600;line-height:1.2;text-decoration:none;box-sizing:border-box;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif) :is(button,a,summary).primary{background:var(--em-teal);border:1px solid var(--em-teal);color:#fff;box-shadow:none}
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif) :is(button,a,summary).primary:hover:not(:disabled){background:var(--em-teal-hover);border-color:var(--em-teal-hover);color:#fff}
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif) :is(button,a,summary):is(.outlinebtn,.secondary,.mb-clear,.resetbtn){background:#fff;border:1px solid var(--em-border);color:var(--em-text)}
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif) :is(button,a,summary):is(.outlinebtn,.secondary,.mb-clear,.resetbtn):hover:not(:disabled){border-color:var(--em-teal);color:var(--em-teal-text);background:var(--em-mint)}
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif) :is(button,a,summary):is(.textbtn,.linkbtn){background:transparent;border:1px solid transparent;color:var(--em-teal-text);padding:0 8px}
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif) :is(button,a,summary):is(.textbtn,.linkbtn):hover:not(:disabled){background:var(--em-mint);color:var(--em-teal-text)}
/* Destructive: red outline on pages and drawers, red fill only inside confirmation dialogs */
:is(#emsm-app,.team-drawer-backdrop,.modal) :is(button,a).danger,:is(#emsm-app,.team-drawer-backdrop,.modal) :is(button,a).danger-outline{background:#fff;border:1px solid #efc4c6;color:var(--em-danger-text)}
:is(#emsm-app,.team-drawer-backdrop,.modal) :is(button,a):is(.danger,.danger-outline):hover:not(:disabled){background:var(--em-danger-soft);border-color:var(--em-danger);color:var(--em-danger-text)}
.modal :is(.confirmdialog,.reasondialog,.emsm-confirm .dialog) button.danger,.modal.emsm-confirm button.danger{background:var(--em-danger);border-color:var(--em-danger);color:#fff}
.modal.emsm-confirm button.danger:hover:not(:disabled),.modal :is(.confirmdialog,.reasondialog) button.danger:hover:not(:disabled){background:#a51d26;border-color:#a51d26;color:#fff}
:is(#emsm-app,.modal,.team-drawer-backdrop) :is(button,a):is(.primary,.outlinebtn,.secondary,.danger,.danger-outline,.textbtn,.mb-clear,.resetbtn):disabled{opacity:.55;cursor:not-allowed}
:is(#emsm-app,.modal,.team-drawer-backdrop) :is(button,a):is(.primary,.outlinebtn,.secondary,.danger,.danger-outline,.textbtn,.mb-clear,.resetbtn):focus-visible{outline:2px solid var(--em-teal);outline-offset:2px}
:is(#emsm-app,.modal,.team-drawer-backdrop) :is(button,a).full{width:100%}

/* ---- Icon-only controls + small targets ---- */
:is(.modal,.team-drawer-backdrop,.emsm-notif,#emsm-app) :is(button.x,button.drawer-close,button.iconclose,button.toastx){display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0;border-radius:var(--em-r-control)}
.emsm-toasts button.toastx{min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0}
#emsm-app :is(.regwithdraw,.regdel,.reviewremove,.exdel,.trash){display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:0;border-radius:var(--em-r-control)}
#emsm-app :is(.regwithdraw,.regdel,.reviewremove) .em-ic{width:14px;height:14px}
@media(max-width:767px){#emsm-app :is(.regwithdraw,.regdel,.reviewremove,.exdel,.trash){min-width:40px;min-height:40px}
 #emsm-app :is(.v186-density,.stu-tabs,.team-tabs,.qbperiods,.cal-mtabs,.ex-tabs,.seg,.segmented,[role=tablist]) button{min-height:40px}
 #emsm-app :is(.attbtn,.mini-action,.requestext){min-height:44px}}

/* ---- Inputs: shared control height + radius ---- */
#emsm-app :is(input[type=text],input[type=search],input[type=email],input[type=tel],input[type=number],input:not([type]),select):not(.emsm-dp-native){border-radius:var(--em-r-control)}
@media(max-width:767px){#emsm-app :is(input[type=text],input[type=search],input[type=email],input[type=tel],input[type=number],input:not([type]),select):not(.emsm-dp-native){min-height:44px}}

/* ---- Cards, sheets, chips ---- */
#emsm-app :is(.panel,.v182-section,.mb-row,.stu-card,.team-card,.qbcard,.hold-ext-card,.rep-sec,.course-row,.v182-kpis>*,.kpis>*){border-radius:var(--em-r-card)}
@media(max-width:767px){#emsm-app :is(.panel,.v182-section){border-radius:var(--em-r-card)!important;padding-left:var(--em-pad-card);padding-right:var(--em-pad-card)}}
.modal .dialog,.team-drawer-backdrop .team-drawer,.emsm-pick-panel,.emsm-notif{border-radius:var(--em-r-sheet)}
@media(max-width:640px){.modal.emsm-confirm .dialog,.emsm-pick-panel{border-radius:var(--em-r-sheet) var(--em-r-sheet) 0 0}}
#emsm-app :is(.status,.att,.role-badge,.availability-chip,.qbcnt){border-radius:var(--em-r-pill)}

/* ---- Empty state (one pattern) ---- */
:is(#emsm-app,.emsm-notif,.modal,.team-drawer-backdrop) .em-empty{display:flex!important;align-items:center;gap:12px;min-height:56px;margin:0;padding:12px 16px!important;
 border:1px dashed var(--em-border)!important;border-radius:var(--em-r-card)!important;background:#fafbfd!important;box-shadow:none!important;text-align:left!important;color:var(--em-text)!important;
 font-size:var(--em-fs-body);line-height:1.4;box-sizing:border-box;width:100%}
:is(#emsm-app,.emsm-notif,.modal,.team-drawer-backdrop) .em-empty[hidden]{display:none!important}
.em-empty .em-empty-ic{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:var(--em-r-pill);background:var(--em-teal-soft);color:var(--em-teal-text)}
.em-empty .em-empty-ic .em-ic{width:16px;height:16px}
.em-empty[role=alert] .em-empty-ic{background:var(--em-danger-soft);color:var(--em-danger-text)}
.em-empty .em-empty-txt{min-width:0;flex:1}
.em-empty .em-empty-txt b{display:block;margin:0;font-size:var(--em-fs-body);font-weight:650;color:var(--em-text);line-height:1.35}
.em-empty .em-empty-txt p{margin:2px 0 0!important;font-size:var(--em-fs-meta);color:var(--em-text-muted)!important;line-height:1.4}
.em-empty .em-empty-txt b:only-child,.em-empty .em-empty-txt p:only-child{margin:0!important}
.em-empty .em-empty-txt p:only-child{font-size:var(--em-fs-label)}
.em-empty .em-empty-act{flex:none;display:flex;gap:8px;margin-left:auto}
.em-empty .em-empty-act :is(button,a){margin:0!important}
@media(max-width:560px){.em-empty{flex-wrap:wrap}.em-empty .em-empty-act{width:100%;margin-left:44px}}

/* ---- List row (shared compact row) ---- */
#emsm-app .em-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 0;border-bottom:1px solid var(--em-line)}
#emsm-app .em-row:last-child{border-bottom:0}
#emsm-app .em-row .em-row-main{flex:1;min-width:0}
#emsm-app .em-row .em-row-main b{display:block;font-size:var(--em-fs-body);color:var(--em-text)}
#emsm-app .em-row .em-row-main small{display:block;font-size:var(--em-fs-meta);color:var(--em-text-muted)}

/* ---- KPI strip ---- */
#emsm-app .em-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--em-line);border:1px solid var(--em-line);border-radius:var(--em-r-card);overflow:hidden}
#emsm-app .em-kpis>*{background:#fff;padding:12px 16px;min-height:64px;box-sizing:border-box}
#emsm-app .em-kpis small{display:block;font-size:var(--em-fs-meta);color:var(--em-text-muted)}
#emsm-app .em-kpis b{display:block;font-size:22px;line-height:1.2;color:var(--em-text)}

/* ---- Filter bar + mobile filter sheet (shared pattern for upcoming phases) ---- */
#emsm-app .em-filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#emsm-app .em-filterbar>*{min-height:var(--em-h-control)}
#emsm-app .em-filterbar .em-filter-count{font-size:var(--em-fs-meta);color:var(--em-text-muted);margin-left:auto}
#emsm-app .em-chip-active{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 6px 0 12px;border-radius:var(--em-r-pill);background:var(--em-mint);border:1px solid #bfe3de;color:var(--em-teal-text);font-size:var(--em-fs-meta);font-weight:600}
.em-sheet-bd{position:fixed;inset:0;z-index:var(--em-z-sheet);background:rgba(13,32,59,.42);display:flex;align-items:flex-end;justify-content:center}
.em-sheet{width:100%;max-width:560px;max-height:86vh;overflow:auto;background:#fff;border-radius:var(--em-r-sheet) var(--em-r-sheet) 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));box-sizing:border-box;box-shadow:0 -12px 40px rgba(13,32,59,.18)}
.em-sheet h2{font-size:var(--em-fs-section);margin:0 0 12px}
.em-sheet .em-sheet-actions{display:flex;gap:8px;position:sticky;bottom:0;background:#fff;padding-top:12px}
.em-sheet .em-sheet-actions>*{flex:1}

/* ---- Skeleton / loading ---- */
:is(#emsm-app,.modal,.team-drawer-backdrop) .emsm-loading{position:relative;min-height:132px;margin:0;padding:0!important;border:0;background:transparent;color:transparent!important;font-size:0!important;overflow:hidden}
:is(#emsm-app,.modal,.team-drawer-backdrop) .emsm-loading::before{content:"";position:absolute;inset:0 0 auto 0;height:132px;border-radius:var(--em-r-card);
 background:linear-gradient(#e9eef4,#e9eef4) 16px 18px/38% 14px no-repeat,linear-gradient(#eef2f6,#eef2f6) 16px 46px/72% 12px no-repeat,linear-gradient(#eef2f6,#eef2f6) 16px 72px/64% 12px no-repeat,linear-gradient(#eef2f6,#eef2f6) 16px 98px/52% 12px no-repeat,#fff;border:1px solid var(--em-line);box-sizing:border-box}
:is(#emsm-app,.modal,.team-drawer-backdrop) .emsm-loading::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:translateX(-100%);animation:emSkel 1.2s ease-in-out infinite}
@keyframes emSkel{to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){:is(#emsm-app,.modal,.team-drawer-backdrop) .emsm-loading::after{animation:none}}
.em-skel-row{height:56px;border-bottom:1px solid var(--em-line);background:linear-gradient(#eef2f6,#eef2f6) 0 18px/40% 12px no-repeat,linear-gradient(#f2f5f8,#f2f5f8) 0 36px/60% 10px no-repeat}

/* ---- Toast (with Undo) ---- */
.emsm-toasts .emsm-toast{position:relative;overflow:hidden}
.emsm-toasts .toasticon{display:inline-flex;align-items:center;justify-content:center;font-size:0}
.emsm-toasts .toasticon .em-ic{width:18px;height:18px}
.emsm-toasts .toastaction{min-height:36px;padding:0 12px;border-radius:var(--em-r-control);border:1px solid var(--em-border);background:#fff;color:var(--em-teal-text);font-weight:700;font-size:var(--em-fs-label);cursor:pointer}
.emsm-toasts .toastbar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--em-teal);transform-origin:left;animation:emToastBar linear forwards}
@keyframes emToastBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.modal .confirmicon{font-size:0}.modal .confirmicon .em-ic{width:22px;height:22px}
:is(#emsm-app,.emsm-notif,.modal,.team-drawer-backdrop) .em-empty{flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;grid-template-columns:none!important;min-height:56px!important;height:auto!important}
:is(#emsm-app,.emsm-notif,.modal,.team-drawer-backdrop) .em-empty::before,:is(#emsm-app,.emsm-notif,.modal,.team-drawer-backdrop) .em-empty::after{content:none!important;display:none!important}
/* 1.10.30 contrast + target refinements */
:where(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif,.emsm-toasts) small{font-size:max(11px,80%)}
:where(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif,.emsm-pick-panel,.emsm-toasts){--em-teal-btn:#0a7a74;--em-teal-btn-hover:#08635e}
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif) :is(button,a,summary).primary{background:var(--em-teal-btn);border-color:var(--em-teal-btn)}
:is(#emsm-app,.modal,.team-drawer-backdrop,.emsm-notif) :is(button,a,summary).primary:hover:not(:disabled){background:var(--em-teal-btn-hover);border-color:var(--em-teal-btn-hover)}
#emsm-app :is(.team-avatar,.v182-avatar){color:var(--em-teal-text)}
#emsm-app .att.none,#emsm-app .cc-badge.cancelled{color:#4f5d73}
#emsm-app .hc.h-na{color:var(--em-text-muted)}
#emsm-app .v186-legend span{color:var(--em-text-muted)}
#emsm-app :is(.v182-eyebrow,.team-tab.active,.emsm-kicker){color:var(--em-teal-text)}
#emsm-app .hold-ext-card :is(small,span,.ext-usage){color:var(--em-text-muted)}
#emsm-app .hold-ext-card :is(b,strong,.ext-left,.hold-left){color:inherit}
#emsm-app .ex-save{height:auto}
#emsm-app :is(.timeperiod,.quick-slot-add,.bulkbox,.v182-command){border-radius:var(--em-r-card)!important}
#emsm-app .course-menu{min-height:var(--em-h-control);border-radius:var(--em-r-control)}
#emsm-app details>summary:is(.panelhead,.outlinebtn),#emsm-app .bulkbox>summary,#emsm-app details.compactbulk>summary{min-height:40px;display:flex;align-items:center;cursor:pointer}
@media(max-width:767px){#emsm-app .mb-tabs button{min-height:40px}
 #emsm-app :is(.regwithdraw,.regdel,.reviewremove){width:40px!important;height:40px!important}}
#emsm-app .course-acts .course-menu{min-height:var(--em-h-control);border-radius:var(--em-r-control)}
#emsm-app .bulkbox details>summary{min-height:40px;display:flex;align-items:center;cursor:pointer}
#emsm-app .v186-now span{background:#c8304a}
#emsm-app .mb-actions .editbooking.primary,#emsm-app .mb-actions .editbooking.primary:hover{background:var(--em-teal-btn)!important}
#emsm-app .mb-tabs button.active{background:var(--em-teal-btn);border-color:var(--em-teal-btn)}
#emsm-app .hold-timer-body small,#emsm-app .hold-module small{color:var(--em-warning-text)}
#emsm-app .availability-counts span{color:#4f5d73}
#emsm-app .hold-digits small{color:var(--em-warning-text)}
@media(max-width:360px){:where(#emsm-app){--em-fs-title:18px}}
#emsm-app .cal-mday small{color:var(--em-text-muted)}
#emsm-app .cal-mday.on small{color:#fff}
@media(max-width:767px){#emsm-app .stu-more>summary.outlinebtn,#emsm-app details.stu-more>summary{min-height:44px!important;height:auto!important}}

/* =====================================================================================
   1.10.31 PHASE 2 — Team Lead Home, Trainer Attendance, drawer groups, nav badges
   ===================================================================================== */
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* ---- TL Home ---- */
#emsm-app .tlh-sec{margin:0 0 var(--em-gap-section)}
#emsm-app .tlh-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;min-height:36px}
#emsm-app .tlh-head h2{margin:0;font-size:var(--em-fs-section);font-weight:750;color:var(--em-text)}
#emsm-app .tlh-sub{font-size:var(--em-fs-meta);color:var(--em-text-muted);font-weight:600}
#emsm-app .tlq{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:8px}
#emsm-app .tlq-row{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px;margin:0;border:1px solid var(--em-line);border-radius:var(--em-r-card);background:#fff;color:var(--em-text);text-align:left;cursor:pointer;box-shadow:none;font:inherit;transition:border-color .15s,background-color .15s}
#emsm-app .tlq-row:hover{border-color:var(--em-teal);background:var(--em-mint);color:var(--em-text)}
#emsm-app .tlq-row:focus-visible{outline:2px solid var(--em-teal);outline-offset:2px}
#emsm-app .tlq-ic{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:10px;background:#eef6f5;color:var(--em-teal-text)}
#emsm-app .tlq-ic .em-ic{width:18px;height:18px}
#emsm-app .tlq-row:not(.is-due) .tlq-ic{background:#f1f4f8;color:#6b7a90}
#emsm-app .tlq-row.is-due .tlq-ic{background:#fff4e0;color:var(--em-warning-text)}
#emsm-app .tlq-row.is-warn .tlq-ic{background:#fdecec;color:var(--em-danger-text)}
#emsm-app .tlq-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
#emsm-app .tlq-main b{font-size:var(--em-fs-body);font-weight:700;line-height:1.3}
#emsm-app .tlq-main small{font-size:var(--em-fs-meta);color:var(--em-text-muted);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#emsm-app .tlq-count{flex:none;min-width:28px;height:28px;padding:0 8px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--em-fs-label);font-weight:800;background:#f1f4f8;color:#4f5d73;box-sizing:border-box}
#emsm-app .tlq-row.is-due .tlq-count{background:#8a5300;color:#fff}
#emsm-app .tlq-row.is-warn .tlq-count{background:var(--em-danger);color:#fff}
#emsm-app .tlq-go{flex:none;display:inline-flex;align-items:center;gap:4px;font-size:var(--em-fs-label);font-weight:700;color:var(--em-teal-text)}
#emsm-app .tlq-row:not(.is-due) .tlq-go{color:var(--em-text-muted);font-weight:600}
#emsm-app .tlq-skel{pointer-events:none}
#emsm-app .tlq-skel .tlq-ic{background:#eef2f6}
#emsm-app .tlq-skel i{display:block;height:10px;border-radius:5px;background:#eef2f6;width:60%}
#emsm-app .tlq-skel i+i{width:40%;margin-top:6px}
#emsm-app .tlh-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
#emsm-app .tlh-kpis>div{min-height:64px}
#emsm-app .tlh-kpis .k-warn b{color:var(--em-danger-text)}
#emsm-app .tlh-next{background:#fff;border:1px solid var(--em-line);border-radius:var(--em-r-card);padding:0 14px}
#emsm-app .tlh-nrow{gap:12px;min-height:56px}
#emsm-app .tlh-nrow time{flex:none;width:72px;font-size:var(--em-fs-label);font-weight:750;color:var(--em-text);font-variant-numeric:tabular-nums}
#emsm-app .tlh-nrow .v182-avatar{flex:none}
#emsm-app .tlh-moreline{margin:8px 2px 0;font-size:var(--em-fs-meta);color:var(--em-text-muted)}
#emsm-app .tlh-more{margin:0 0 var(--em-gap-section);border:1px solid var(--em-line);border-radius:var(--em-r-card);background:#fff}
#emsm-app .tlh-more>summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 14px;cursor:pointer}
#emsm-app .tlh-more>summary::-webkit-details-marker{display:none}
#emsm-app .tlh-more-txt{flex:1;min-width:0;display:flex;flex-direction:column}
#emsm-app .tlh-more-txt b{font-size:var(--em-fs-body)}
#emsm-app .tlh-more-txt small{font-size:var(--em-fs-meta);color:var(--em-text-muted)}
#emsm-app .tlh-more-chev{color:var(--em-text-muted);transition:transform .15s}
#emsm-app .tlh-more[open] .tlh-more-chev{transform:rotate(180deg)}
#emsm-app .tlh-more .tl-control-centre{padding:0 14px 14px;border:0;box-shadow:none;margin:0}
#emsm-app .tlh-more .tl-ops-kpis{margin:4px 0 12px}
@media(max-width:1023px){#emsm-app .tlh-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){#emsm-app .tlq{grid-template-columns:1fr}
 #emsm-app .tlq-go{display:none}
 #emsm-app .tlq-row{min-height:60px;padding:10px 12px}
 #emsm-app .tlh-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
 #emsm-app .tlh-kpis>div{padding:10px 12px;min-height:58px}
 #emsm-app .tlh-kpis b{font-size:20px}
 #emsm-app .tlh-nrow time{width:64px}
 #emsm-app .tlh-next{padding:0 12px}
 #emsm-app .tlh-sec{margin-bottom:20px}}
@media(max-width:360px){#emsm-app .tlh-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ---- Trainer Attendance (compact) ---- */
#emsm-app .ta-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 16px;border-top:1px solid var(--em-line)}
#emsm-app .ta-filter{display:flex;gap:4px;padding:3px;background:#f1f4f8;border-radius:10px;flex-wrap:wrap}
#emsm-app .ta-filter button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:#4f5d73;font-size:var(--em-fs-label);font-weight:650;cursor:pointer}
#emsm-app .ta-filter button.active{background:#fff;color:var(--em-text);box-shadow:0 1px 2px rgba(13,32,59,.08)}
#emsm-app .ta-filter .qbcnt{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e3e9f1;color:#4f5d73;font-size:11px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
#emsm-app .ta-filter button.active .qbcnt{background:var(--em-teal-btn);color:#fff}
#emsm-app .ta-hide0{display:inline-flex;align-items:center;gap:8px;min-height:36px;font-size:var(--em-fs-label);color:var(--em-text);cursor:pointer}
#emsm-app .ta-hide0 input{width:18px;height:18px;margin:0;accent-color:var(--em-teal-btn)}
#emsm-app .ta-tools .ta-search{flex:1 1 200px;max-width:280px;margin:0}
#emsm-app .ta-tools .ta-bulk{margin-left:auto}
#emsm-app .ta-sum b{color:var(--em-text)}
#emsm-app .ta-list .ta-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:8px 16px;border-top:1px solid var(--em-line)}
#emsm-app .ta-list .ta-row .team-avatar{width:32px;height:32px;border-radius:9px;font-size:13px}
#emsm-app .ta-list .ta-main b{font-size:var(--em-fs-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#emsm-app .ta-list .ta-main small{font-size:var(--em-fs-meta);color:var(--em-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#emsm-app .ta-list .ta-cls{color:var(--em-text);font-weight:650}
#emsm-app .ta-list .attbtns{display:flex;gap:6px}
#emsm-app .ta-list .attbtn{min-width:78px;min-height:36px;padding:0 10px;border-radius:var(--em-r-control)}
#emsm-app .ta-list .em-empty{margin:12px 16px;width:auto}
#emsm-app .ta-list .ta-row.is-present{background:#f6fbf8}
#emsm-app .ta-list .ta-row.is-absent{background:#fdf6f6}
#emsm-app .v186-datebar .ic-left{transform:rotate(90deg)}#emsm-app .v186-datebar .ic-right{transform:rotate(-90deg)}
@media(max-width:767px){#emsm-app .ta-tools{padding:10px 12px;gap:8px}
 #emsm-app .ta-filter{width:100%;flex-wrap:nowrap;overflow-x:auto}
 #emsm-app .ta-filter button{min-height:40px;flex:1 0 auto;justify-content:center;padding:0 10px}
 #emsm-app .ta-tools .ta-search{max-width:none;flex-basis:100%}
 #emsm-app .ta-tools .ta-bulk{width:100%;margin-left:0}
 #emsm-app .ta-list .ta-row{grid-template-columns:28px minmax(0,1fr) auto;padding:8px 12px;gap:8px;min-height:60px}
 #emsm-app .ta-list .ta-row .team-avatar{width:28px;height:28px;font-size:12px}
 #emsm-app .ta-list .attbtn{min-width:72px;min-height:44px;padding:0 8px}}
@media(max-width:360px){#emsm-app .ta-list .attbtn{min-width:62px;font-size:12px}}
/* ---- Mobile drawer: groups, footer never covers items, scroll cue ---- */
.emsm-mroot .emsm-navdrawer{height:100%;max-height:100dvh;overflow:hidden}
.emsm-mroot .emsm-nd-nav{flex:1 1 auto;min-height:0;overflow-y:auto;position:relative;padding-bottom:12px}
.emsm-mroot .emsm-nd-foot{flex:none;position:relative;background:#fff;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
.emsm-mroot .emsm-navdrawer.has-more .emsm-nd-foot{box-shadow:0 -10px 16px -10px rgba(13,32,59,.28)}
.emsm-mroot .emsm-navdrawer.has-more .emsm-nd-foot::before{content:"";position:absolute;left:50%;top:-14px;width:28px;height:4px;margin-left:-14px;border-radius:2px;background:#cdd6e1}
.emsm-mroot .emsm-navdrawer.is-scrolled .emsm-nd-user{box-shadow:0 10px 16px -12px rgba(13,32,59,.25)}
.emsm-mroot .emsm-nd-group{margin:12px 12px 4px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--em-text-muted)}
.emsm-mroot .emsm-nd-group:first-child{margin-top:4px}
.emsm-mroot .emsm-nd-nav .emsm-nd-item{min-height:44px}
/* ---- Navigation count badges ---- */
.em-nbadge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#c4252f;color:#fff;font-size:11px;font-weight:800;line-height:1;box-sizing:border-box;font-variant-numeric:tabular-nums}
.emsm-mroot .emsm-mnav-ico{position:relative}
.emsm-mroot .emsm-mnav-ico .em-nbadge{position:absolute;top:-4px;right:2px;border:2px solid #fff;height:20px;min-width:20px}
.emsm-mroot .emsm-nd-item .em-nbadge{margin-left:auto}
#emsm-app .emsm-side nav button .em-nbadge{margin-left:auto}
#emsm-app .tlq{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}
#emsm-app .tlq-row{min-width:0}
@media(max-width:767px){#emsm-app .tlq{grid-template-columns:minmax(0,1fr)}
 #emsm-app .tlh-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
 #emsm-app .tlh-kpis>div:nth-child(-n+3){grid-column:span 2}
 #emsm-app .tlh-kpis>div:nth-child(n+4){grid-column:span 3}
 #emsm-app .ta-filter{gap:2px}
 #emsm-app .ta-filter button{flex:1 1 auto;padding:0 6px;gap:4px;font-size:12px}}
@media(max-width:360px){#emsm-app .tlh-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
 #emsm-app .tlq-row{gap:10px;padding:10px}
 #emsm-app .tlq-ic{width:32px;height:32px}}
@media(max-width:380px){#emsm-app .ta-filter{flex-wrap:wrap;overflow:visible}
 #emsm-app .ta-filter button{flex:1 1 calc(50% - 2px)}
 #emsm-app .ta-list .ta-row{grid-template-columns:minmax(0,1fr) auto}
 #emsm-app .ta-list .ta-row .team-avatar,#emsm-app .tlh-nrow .v182-avatar{display:none}
 #emsm-app .ta-list .attbtn{min-width:64px}}

/* =====================================================================================
   1.10.32 PHASE 3 — Counsellor workflow
   ===================================================================================== */
/* ---- Counsellor Home ---- */
#emsm-app .ch-find{background:#fff;border:1px solid var(--em-line);border-radius:var(--em-r-card);padding:16px}
#emsm-app .ch-find-h{margin:0 0 10px;font-size:var(--em-fs-section);font-weight:750}
#emsm-app .ch-find-form{display:flex;gap:8px}
#emsm-app .ch-find-in{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--em-border);border-radius:var(--em-r-control);background:#fff}
#emsm-app .ch-find-in:focus-within{border-color:var(--em-teal);box-shadow:0 0 0 3px rgba(15,147,141,.14)}
#emsm-app .ch-find-in input{flex:1;min-width:0;border:0!important;outline:0;box-shadow:none!important;padding:0!important;min-height:42px;background:transparent;font-size:15px}
#emsm-app .ch-find-form .primary{min-height:44px}
#emsm-app .ch-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
#emsm-app .ch-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:1px solid var(--em-border);border-radius:999px;background:#fff;color:var(--em-text);font-size:var(--em-fs-label);font-weight:650;cursor:pointer}
#emsm-app .ch-chip:hover{border-color:var(--em-teal);background:var(--em-mint);color:var(--em-teal-text)}
#emsm-app .ch-holds{display:grid;gap:8px}
#emsm-app .ch-hold{display:flex;align-items:center;gap:10px;min-height:60px;padding:10px 14px;background:#fff;border:1px solid var(--em-line);border-left:3px solid #e2a23a;border-radius:var(--em-r-card)}
#emsm-app .ch-hold-main{flex:1;min-width:0}
#emsm-app .ch-hold-main b{display:block;font-size:var(--em-fs-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#emsm-app .ch-hold-main small{display:block;font-size:var(--em-fs-meta);color:var(--em-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#emsm-app .ch-hold .ch-act{flex:none}
#emsm-app .ch-allholds{justify-self:start}
/* countdown pill (shared by Home and compact booking cards) */
#emsm-app .hold-module.mbc-hold{display:inline-flex!important;align-items:center;gap:5px;flex:none;min-height:28px;padding:0 10px;border-radius:999px;background:#fff6e5;border:1px solid #f1d39a;color:var(--em-warning-text);font-size:var(--em-fs-label);font-weight:750;font-variant-numeric:tabular-nums;width:auto;box-shadow:none}
#emsm-app .hold-module.mbc-hold .hold-digits{display:inline;font-size:inherit}
#emsm-app .hold-module.mbc-hold .hold-digits b{font-size:inherit;color:inherit;font-weight:inherit}
#emsm-app .hold-module.mbc-hold.urgent,#emsm-app .hold-module.mbc-hold.critical{background:#fdecec;border-color:#f3c0c4;color:var(--em-danger-text)}
#emsm-app .hold-module.mbc-hold .em-ic{width:14px;height:14px}
/* ---- Free-time rows (Available Slots + Home) ---- */
#emsm-app .slot-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));gap:8px}
#emsm-app .slot-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:60px;padding:8px 10px 8px 14px;background:#fff;border:1px solid var(--em-line);border-radius:var(--em-r-card);box-sizing:border-box}
#emsm-app .slot-row:hover{border-color:#bfe3de}
#emsm-app .slot-time b{display:block;font-size:var(--em-fs-body);font-weight:800;color:var(--em-text);font-variant-numeric:tabular-nums;white-space:nowrap}
#emsm-app .slot-time small{display:block;font-size:var(--em-fs-meta);color:var(--em-text-muted);white-space:nowrap}
#emsm-app .slot-main{min-width:0}
#emsm-app .slot-main b{display:block;font-size:var(--em-fs-body);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#emsm-app .slot-main small{display:block;font-size:var(--em-fs-meta);color:var(--em-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#emsm-app .slot-free{color:var(--em-success-text);font-weight:700}
#emsm-app .slot-row .qbbook{min-width:72px;min-height:var(--em-h-control);margin:0;width:auto}
#emsm-app .qb-jump{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap}
#emsm-app .qb-jl{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--em-border);border-radius:999px;background:#fff;color:var(--em-text);font-size:var(--em-fs-label);font-weight:650;text-decoration:none}
#emsm-app .qb-jl:hover{border-color:var(--em-teal);color:var(--em-teal-text);background:var(--em-mint)}
#emsm-app .qb-jl.is-empty{opacity:.55;pointer-events:none}
#emsm-app .qb-jl .qbcnt{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#eef2f6;color:#4f5d73;font-size:11px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
#emsm-app .qbgroup{margin:0 0 16px}
#emsm-app .qbgroup>.qb-sticky{position:sticky;top:0;z-index:5;margin:0 0 8px;padding:8px 2px;background:#fff;font-size:var(--em-fs-body);font-weight:750;color:var(--em-text)}
#emsm-app .qbgroup>.qb-sticky small{font-weight:600;color:var(--em-text-muted);font-size:var(--em-fs-meta)}
/* ---- My Bookings: compact mobile toolbar + cards ---- */
#emsm-app .mbm-filter{display:none}
#emsm-app .mbm-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
#emsm-app .mbm-chips[hidden]{display:none}
#emsm-app .em-chip-active button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer}
#emsm-app .em-chip-active button:hover{background:rgba(10,119,112,.1)}
#emsm-app .em-chip-active .em-ic{width:12px;height:12px}
@media(max-width:767px){
 #emsm-app .mb-pro .mb-summary{display:none!important}
 #emsm-app .mb-filter-main{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
 #emsm-app .mb-filter-main>:is(#mbFrom,.date-arrow,.emsm-tf-btn,#mbTime,#mbStatus,.mb-clear,.emsm-dp){display:none!important}
 #emsm-app .mb-filter-main .emsm-dp:has(#mbFrom),#emsm-app .mb-filter-main .emsm-dp:has(#mbTo){display:none!important}
 #emsm-app .mbm-filter{display:inline-flex;min-height:44px;white-space:nowrap}
 #emsm-app .mb-filter-sub .mb-sort{display:none!important}
 #emsm-app .mb-filter-sub .mb-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;scrollbar-width:none;margin:0}
 #emsm-app .mb-filter-sub .mb-tabs::-webkit-scrollbar{display:none}
 #emsm-app .mb-filter-sub .mb-tabs button{flex:none;min-height:40px}
 #emsm-app .mb-toolbar{padding:12px!important;margin-bottom:10px!important}
 #emsm-app .mb-rows.is-compact{display:grid;gap:8px}
 #emsm-app .mb-rows.is-compact .mb-row.mbc{display:block!important;padding:12px 12px 10px!important;border:1px solid var(--em-line)!important;border-left:3px solid #cfd8e3!important;border-radius:var(--em-r-card)!important;background:#fff!important;box-shadow:none!important;min-height:0!important}
 #emsm-app .mb-rows.is-compact .mbc.hold{border-left-color:#e2a23a!important}
 #emsm-app .mb-rows.is-compact .mbc.admission{border-left-color:#7c3aed!important}
 #emsm-app .mb-rows.is-compact .mbc.expired,#emsm-app .mb-rows.is-compact .mbc.cancelled{border-left-color:#c4cdd8!important}
 #emsm-app .mbc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
 #emsm-app .mbc-time{font-size:15px;font-weight:800;color:var(--em-text);white-space:nowrap}
 #emsm-app .mbc-mid{margin:4px 0 8px;min-width:0}
 #emsm-app .mbc-mid b{display:block;font-size:var(--em-fs-body);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #emsm-app .mbc-mid small{display:block;font-size:var(--em-fs-meta);color:var(--em-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #emsm-app .mbc-ext{display:block;margin-top:2px;font-size:var(--em-fs-meta);font-weight:650}
 #emsm-app .mbc-ext.pending{color:var(--em-warning-text)}#emsm-app .mbc-ext.approved{color:var(--em-success-text)}#emsm-app .mbc-ext.rejected{color:var(--em-danger-text)}
 #emsm-app .mbc-act{display:flex;gap:8px;align-items:center}
 #emsm-app .mbc-act>button{flex:1;margin:0!important}
 #emsm-app .mbc-act>.textbtn{flex:none;padding:0 4px}
 #emsm-app .mbc-more{position:relative;flex:none}
 #emsm-app .mbc-more>summary{list-style:none;width:44px;min-height:44px;padding:0!important;display:inline-flex;align-items:center;justify-content:center}
 #emsm-app .mbc-more>summary::-webkit-details-marker{display:none}
 #emsm-app .mbc-more>summary .em-ic{width:20px;height:20px}
 #emsm-app .mbc-menu{position:absolute;right:0;bottom:calc(100% + 6px);z-index:30;min-width:220px;padding:6px;background:#fff;border:1px solid var(--em-line);border-radius:var(--em-r-card);box-shadow:0 16px 40px rgba(13,32,59,.18)}
 #emsm-app .mbc-menu button{display:flex;align-items:center;width:100%;min-height:44px;padding:0 12px;margin:0;border:0;border-radius:8px;background:transparent;color:var(--em-text);font-size:var(--em-fs-body);font-weight:600;text-align:left;cursor:pointer}
 #emsm-app .mbc-menu button:hover:not(:disabled){background:var(--em-mint)}
 #emsm-app .mbc-menu button:disabled{color:#97a3b4;cursor:not-allowed}
 #emsm-app .mbc-menu .mbc-danger{color:var(--em-danger-text)}
 #emsm-app .ch-find{padding:14px}
 #emsm-app .ch-find-form .primary{padding:0 14px}
 #emsm-app .ch-hold{flex-wrap:wrap;padding:10px 12px}
 #emsm-app .ch-hold-main{flex:1 1 calc(100% - 120px)}
 #emsm-app .ch-hold .ch-act{flex:1 1 100%}
 #emsm-app .slot-list{grid-template-columns:minmax(0,1fr)}
 #emsm-app .slot-row{grid-template-columns:64px minmax(0,1fr) auto;gap:10px;padding:8px 8px 8px 12px}
 #emsm-app .slot-row .qbbook{min-width:68px}
 #emsm-app .qbgroup>.qb-sticky{top:60px}
 #emsm-app .qb-jump{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
 #emsm-app .qb-jl{flex:none;min-height:40px}}
@media(max-width:360px){#emsm-app .slot-row{grid-template-columns:58px minmax(0,1fr) auto}#emsm-app .ch-find-form .primary span,#emsm-app .ch-find-form .primary .em-ic{display:none}}
/* ---- Bottom sheet details ---- */
.em-sheet-bd{animation:emFade .15s ease}
@keyframes emFade{from{opacity:0}to{opacity:1}}
.em-sheet .em-sheet-head{display:flex;align-items:center;justify-content:space-between;margin:-4px 0 6px}
.em-sheet .em-sheet-head h2{margin:0}
.em-sheet .em-sheet-head .x{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;border-radius:8px;color:var(--em-text);cursor:pointer}
.em-sheet .em-sheet-head .x .em-ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.em-sheet .em-sheet-f{border:0;margin:0 0 14px;padding:0;min-width:0}
.em-sheet .em-sheet-f legend{padding:0;margin:0 0 6px;font-size:13px;font-weight:700;color:#13213c}
.em-sheet .em-seg{display:flex;flex-wrap:wrap;gap:6px}
.em-sheet .em-seg button{min-height:40px;padding:0 12px;border:1px solid #d9e1eb;border-radius:999px;background:#fff;color:#13213c;font-size:13px;font-weight:650;cursor:pointer}
.em-sheet .em-seg button.on{background:#0a7a74;border-color:#0a7a74;color:#fff}
.em-sheet .em-sheet-dates{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.em-sheet .em-sheet-dates label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#5d6b82;font-weight:650}
.em-sheet select,.em-sheet input[type=date]{width:100%;min-height:44px;border:1px solid #d9e1eb;border-radius:8px;padding:0 10px;background:#fff;font-size:14px;color:#13213c;box-sizing:border-box}
.em-sheet .emsm-tf-btn{width:100%;min-height:44px}
.em-sheet .em-sheet-actions button{min-height:44px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}
.em-sheet .em-sheet-actions .outlinebtn{background:#fff;border:1px solid #d9e1eb;color:#13213c}
.em-sheet .em-sheet-actions .primary{background:#0a7a74;border:1px solid #0a7a74;color:#fff}
.em-sheet .emsm-dp-btn{min-height:44px;width:100%}
#emsm-app .qbresults #qblist{padding:0!important;margin:0!important}
#emsm-app .qbresults .qbgroup{padding:0!important;margin:0 0 16px!important;border:0!important;background:transparent!important;box-shadow:none!important}
#emsm-app .qbresults .qbgroup>.qb-sticky{display:block}
#emsm-app .mb-rows .mbc .mbc-mid,#emsm-app .mb-rows .mbc .mbc-top{flex-wrap:nowrap}
#emsm-app .mb-rows .mbc .mbc-mid{display:block!important}
@media(max-width:767px){#emsm-app .ch-hold{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 10px}
 #emsm-app .ch-hold-main{grid-column:1/-1}
 #emsm-app .ch-hold .ch-act{min-width:132px}}
@media(max-width:360px){#emsm-app .slot-row{grid-template-columns:66px minmax(0,1fr) auto;gap:8px}#emsm-app .slot-time b{font-size:13px}#emsm-app .slot-row .qbbook{min-width:60px;padding:0 10px}}
#emsm-app .mb-rows .mbc>div{padding:0!important;border:0!important;background:none!important;min-height:0!important;box-shadow:none!important}
#emsm-app .mb-rows .mbc>.mbc-mid{margin:6px 0 8px!important}
#emsm-app .mb-rows .mbc:is(.expired,.cancelled) .mbc-act{justify-content:flex-start}
#emsm-app .mb-rows .mbc:is(.expired,.cancelled,.admission) .mbc-act>button{flex:none}
@media(max-width:767px){#emsm-app .mb-filter-main .mb-search{grid-column:auto!important;min-width:0}}
/* Toast host must never block taps on the page (it spans the viewport on phones). */
.emsm-toasts{pointer-events:none}
.emsm-toasts .emsm-toast{pointer-events:auto}
@media(max-width:767px){.emsm-toasts{top:auto!important}}
@media(max-width:767px){#emsm-app .mb-filter-main .mb-search{grid-column:1!important;grid-row:1!important}#emsm-app .mb-filter-main .mbm-filter{grid-column:2!important;grid-row:1!important;width:auto!important}}
@media(max-width:767px){#emsm-app .mb-rows .mbc-more>summary.outlinebtn{min-height:44px!important;height:44px!important;width:44px!important}}

/* =====================================================================================
   1.10.33 PHASE 4 — Trainer workflow
   ===================================================================================== */
/* ---- Trainer Home ---- */
#emsm-app .tr-home{display:flex;flex-direction:column;gap:14px}
#emsm-app .tr-kpis{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:10px}
#emsm-app .tr-k{display:flex;flex-direction:column;justify-content:space-between;gap:4px;min-width:0;padding:12px;border:1px solid var(--em-line);border-radius:var(--em-r-card);background:#fff;text-align:left;font:inherit;color:var(--em-text)}
#emsm-app .tr-k span{font-size:12px;font-weight:700;color:var(--em-text-muted);line-height:1.25}
#emsm-app .tr-k b{font-size:24px;line-height:1.1;font-weight:800;color:var(--em-navy);overflow-wrap:anywhere}
#emsm-app .tr-k small{font-size:12px;color:var(--em-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#emsm-app .tr-k-next b{font-size:20px;white-space:nowrap}
#emsm-app button.tr-k{cursor:default;min-height:44px}
#emsm-app .tr-k-un.is-alert{cursor:pointer;background:#fff7ed;border-color:#f6c58b}
#emsm-app .tr-k-un.is-alert b{color:#b45309}
#emsm-app .tr-k-un:disabled{opacity:1}
#emsm-app .tr-today{margin:0}
#emsm-app .tr-today .v182-sectionhead{margin-bottom:8px}
#emsm-app .tcl-list{display:flex;flex-direction:column;gap:8px}
#emsm-app .tcl{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:10px 12px;border:1px solid var(--em-line);border-left:4px solid #7c3aed;border-radius:var(--em-r-card);background:#fff}
#emsm-app .tcl.low{border-left-color:#dc2626}
#emsm-app .tcl.unmarked{border-left-color:#d97706}
#emsm-app .tcl.flash{box-shadow:0 0 0 3px rgba(10,122,116,.35)}
#emsm-app .tcl-time b{display:block;font-size:14px;white-space:nowrap;color:var(--em-navy)}
#emsm-app .tcl-time small{display:block;font-size:12px;color:var(--em-text-muted);white-space:nowrap}
#emsm-app .tcl-main{min-width:0;display:flex;flex-direction:column;gap:2px}
#emsm-app .tcl-main>b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#emsm-app .tcl-main small{font-size:13px;color:var(--em-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#emsm-app .tcl-tag{display:inline-block;font-size:11px;font-weight:700;color:#0e7490;background:#ecfeff;border-radius:999px;padding:0 7px}
#emsm-app .tcl-act .attbtns{display:inline-flex}
#emsm-app .tr-links{display:flex;flex-direction:column;gap:8px}
#emsm-app .tr-link{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:10px 14px;border:1px solid var(--em-line);border-radius:var(--em-r-card);background:#fff;font:inherit;color:var(--em-text);text-align:left;cursor:pointer}
#emsm-app .tr-link>span{flex:1;min-width:0;display:flex;flex-direction:column}
#emsm-app .tr-link b{font-size:14px;font-weight:750}
#emsm-app .tr-link small{font-size:12px;color:var(--em-text-muted)}
#emsm-app .tr-link .em-ic{width:20px;height:20px;color:var(--em-teal-text);flex:none}
#emsm-app .tr-times{border:1px solid var(--em-line);border-radius:var(--em-r-card);background:#fff}
#emsm-app .tr-times>summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 14px;cursor:pointer;list-style:none;font-weight:750;font-size:14px}
#emsm-app .tr-times>summary::-webkit-details-marker{display:none}
#emsm-app .tr-times>summary span{flex:1}
#emsm-app .tr-times>summary em{font-style:normal;font-size:12px;font-weight:700;color:var(--em-text-muted)}
#emsm-app .tr-times>summary .em-ic{width:18px;height:18px;transition:transform .15s}
#emsm-app .tr-times[open]>summary .em-ic{transform:rotate(180deg)}
#emsm-app #trTimesBody{padding:0 12px 12px}

/* ---- My Availability: collapsible time groups ---- */
#emsm-app .timeperiod{display:block!important;padding:0!important;grid-template-columns:none!important}
#emsm-app .timeperiod>summary{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;cursor:pointer;list-style:none}
#emsm-app .timeperiod>summary::-webkit-details-marker{display:none}
#emsm-app .periodmain{flex:1;min-width:0;display:flex;flex-direction:column}
#emsm-app .periodmain b{font-size:15px}
#emsm-app .periodmain small{font-size:12px;color:var(--em-text-muted);margin-top:2px}
#emsm-app .periodcount{flex:none;font-size:12px;font-weight:700;color:var(--em-text-muted);background:#eef2f6;border-radius:999px;padding:3px 10px;white-space:nowrap}
#emsm-app .periodcount.has{color:var(--em-teal-text);background:#e6f6f4}
#emsm-app .periodcount.has-new{color:#145be8;background:#eaf2ff}
#emsm-app .periodchev{display:inline-flex;flex:none}
#emsm-app .periodchev .em-ic{width:18px;height:18px;transition:transform .15s}
#emsm-app .timeperiod[open] .periodchev .em-ic{transform:rotate(180deg)}
#emsm-app .periodbody{padding:0 14px 14px}
#emsm-app .periodbody .selectperiod{justify-content:flex-start;padding:0 0 10px;font-size:13px;min-height:44px;align-items:center}
#emsm-app .tr-exlink{margin-top:14px}

/* ---- tab rows: soft edge fade on the side with more content ---- */
#emsm-app .em-fade{position:relative;min-width:0}
#emsm-app .em-fade::before,#emsm-app .em-fade::after{content:"";position:absolute;top:0;bottom:0;width:28px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:2}
#emsm-app .em-fade::before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
#emsm-app .em-fade::after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0))}
#emsm-app .em-fade.fade-l::before,#emsm-app .em-fade.fade-r::after{opacity:1}
#emsm-app .em-fade>.v186-density{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap;max-width:100%}
#emsm-app .em-fade>.v186-density::-webkit-scrollbar{display:none}
#emsm-app .em-fade>.v186-density button{flex:none;white-space:nowrap}

/* ---- Students: desktop keeps the old buttons; the overflow menu is phone-only ---- */
#emsm-app .stu-ovf{display:none}
#emsm-app .stu-call{display:block}
@media(max-width:767px){
 #emsm-app .tr-kpis{gap:8px}
 #emsm-app .tr-k{padding:10px}
 #emsm-app .tr-k b{font-size:22px}
 #emsm-app .tr-k-next b{font-size:18px}
 #emsm-app .tcl{grid-template-columns:70px minmax(0,1fr);padding:10px 12px}
 #emsm-app .tcl-act{grid-column:1/-1}
 #emsm-app .tcl-act .attbtns{display:flex;width:100%}
 #emsm-app .tcl-act .attbtn{flex:1;min-height:44px}
 #emsm-app .tcl-act .att{display:inline-block}
 #emsm-app .timeperiod .periodslots{display:grid;grid-template-columns:1fr 1fr}
 #emsm-app .stu-toolbar{padding:10px 12px;gap:8px}
 #emsm-app .stu-toolbar>.em-fade{flex:1 1 100%}
 /* compact student card (~140px) */
 #emsm-app .stu-card{grid-template-columns:64px minmax(0,1fr) 44px;grid-template-areas:"time main ovf" "act act act";gap:4px 10px;padding:10px 6px 10px 12px;align-items:start}
 #emsm-app .stu-card>.stu-time{grid-area:time}
 #emsm-app .stu-card>.stu-main{grid-area:main;gap:1px}
 #emsm-app .stu-card>.stu-ovf{grid-area:ovf;display:block;justify-self:end}
 #emsm-app .stu-card>.stu-act{grid-area:act;gap:0}
 #emsm-app .stu-card>.stu-act.no-today{display:none}
 #emsm-app .stu-card .stu-btns{display:none}
 #emsm-app .stu-card .stu-time b{font-size:14px}
 #emsm-app .stu-card .stu-time .stu-daily{display:none}
 #emsm-app .stu-card .stu-main>b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 #emsm-app .stu-card .stu-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
 #emsm-app .stu-card .stu-ph{display:none}
 #emsm-app .stu-card .stu-dl,#emsm-app .stu-card .stu-bar{display:none}
 #emsm-app .stu-card .stu-pend{display:flex;align-items:center;gap:4px;font-size:12px;color:#b45309}
 #emsm-app .stu-card .stu-pend .em-ic{width:14px;height:14px;flex:none}
 #emsm-app .stu-card .stu-stats{gap:2px 10px;margin-top:2px}
 #emsm-app .stu-card .stu-stats .att{background:none!important;border:0;padding:0;font-size:12px;font-weight:700;border-radius:0}
 #emsm-app .stu-card .stu-stats .att.none{color:#b45309}
 #emsm-app .stu-card .stu-stats .stu-pct{font-size:12px}
 #emsm-app .stu-card .stu-stats .lowbadge{display:none}
 #emsm-app .stu-card .stu-todaybox{display:block}
 #emsm-app .stu-card .stu-todaybox>small{display:none}
 #emsm-app .stu-card .stu-todaybox .attbtns{display:flex;width:100%}
 #emsm-app .stu-card .stu-todaybox .attbtn{flex:1;min-height:44px}
 #emsm-app .stu-card .stu-todaybox .att{display:block}
 #emsm-app .stu-ovf>summary.stu-ovf-b{list-style:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:10px;background:none;color:var(--em-text-muted);cursor:pointer}
 #emsm-app .stu-ovf>summary::-webkit-details-marker{display:none}
 #emsm-app .stu-ovf[open]>summary{background:var(--em-mint)}
 #emsm-app .stu-ovf .em-ic{width:20px;height:20px}
 #emsm-app .stu-ovf .stu-menu{right:0;left:auto;min-width:210px}
 #emsm-app .stu-ovf .stu-menu :is(button,a){min-height:44px;display:flex;align-items:center}
}
@media(min-width:768px){#emsm-app .stu-card .stu-sm{display:none}}

/* ---- Mobile calendar: month button, 4 fitting period tabs, trainer toolbar ---- */
#emsm-app .cal-mjump .emsm-dp-btn{padding:0 8px;gap:6px;white-space:nowrap}
#emsm-app .cal-mtabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:visible}
#emsm-app .cal-mtabs button{min-width:0;justify-content:center;padding:0 6px;gap:5px;min-height:40px;white-space:nowrap}
#emsm-app .cal-mtabs .pl-s{display:none;font-style:normal}
#emsm-app .cal-mtabs .pl-f{font-style:normal}
@media(max-width:420px){#emsm-app .cal-mtabs .pl-f{display:none}#emsm-app .cal-mtabs .pl-s{display:inline}#emsm-app .cal-mtabs button{padding:0 4px;gap:4px;font-size:13px}#emsm-app .cal-mtabs button span{padding:1px 6px}}
@media(max-width:767px){
 #emsm-app .v186-cal.is-trainer .v186-tools .v186-search,#emsm-app .v186-cal.is-trainer #trainerfilter,#emsm-app .v186-cal.is-trainer .tt-title small{display:none!important}
 #emsm-app .v186-cal.is-trainer .v186-tools{gap:8px}
 #emsm-app .v186-cal.is-trainer .v186-tools select{min-width:0;flex:1 1 40%}
}

#emsm-app .stu-card .stu-stats{flex-wrap:nowrap}
@media(max-width:767px){
 #emsm-app .stu-card .stu-stats{flex-wrap:nowrap;white-space:nowrap;overflow:hidden}
 #calbookings.tr-hide-m,#emsm-app #calbookings.tr-hide-m{display:none!important}
}
@media(max-width:380px){
 #emsm-app .cal-mjump .emsm-dp-btn svg{display:none}
 #emsm-app .cal-mtoday{padding:0 10px}
}
@media(max-width:340px){
 .emsm-mnav-lbl{font-size:10px!important;letter-spacing:-.15px}
 .emsm-mnav-item{padding-left:2px!important;padding-right:2px!important}
}
@media(max-width:767px){#emsm-app .cal-mjump .emsm-dp-btn{height:44px!important;min-height:44px}}

/* =====================================================================================
   1.10.34 PHASE 5 — final polish
   ===================================================================================== */
/* ---- Activity ---- */
#emsm-app .act-panel{padding:0;overflow:visible}
#emsm-app .act-bar{display:flex;gap:8px;padding:12px 14px;border-bottom:1px solid var(--em-line)}
#emsm-app .act-bar .act-search{flex:1;min-width:0}
#emsm-app .act-bar select{width:170px;flex:none}
#emsm-app .act-dh{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;margin:0;padding:8px 14px;background:#f4f7fa;border-bottom:1px solid var(--em-line);font-size:13px;font-weight:750;color:var(--em-navy)}
#emsm-app .act-dh em{font-style:normal;font-size:12px;font-weight:700;color:var(--em-text-muted)}
#emsm-app .act-row{display:flex;gap:12px;align-items:flex-start;padding:10px 14px;border-bottom:1px solid #eef2f6}
#emsm-app .act-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#eef2f6;color:#475569}
#emsm-app .act-ic .em-ic{width:16px;height:16px}
#emsm-app .act-ic.ok{background:#e7f6f3;color:#0a7770}#emsm-app .act-ic.bad{background:#fdecec;color:#b42318}#emsm-app .act-ic.warn{background:#fff4e0;color:#b45309}#emsm-app .act-ic.info{background:#eaf2ff;color:#145be8}
#emsm-app .act-main{min-width:0;display:flex;flex-direction:column;gap:2px}
#emsm-app .act-main b{font-size:14px;color:var(--em-navy)}
#emsm-app .act-main p{margin:0;font-size:13px;color:#3a4a61;overflow-wrap:anywhere}
#emsm-app .act-main small{font-size:12px;color:var(--em-text-muted)}
#emsm-app .act-foot{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px}
#emsm-app .act-count{margin:0;font-size:12px;color:var(--em-text-muted)}
@media(max-width:767px){#emsm-app .act-dh{top:60px}#emsm-app .act-bar{flex-direction:column}#emsm-app .act-bar select{width:100%}#emsm-app .act-foot .outlinebtn{width:100%}}

/* ---- Notifications ---- */
.emsm-notif .nf-day h4{margin:0;padding:8px 16px;background:#f4f7fa;font-size:12px;font-weight:750;color:var(--em-navy);position:sticky;top:0;z-index:2}
.emsm-notif .emsm-notif-item.has-go{cursor:pointer}
.emsm-notif .emsm-notif-item.has-go:hover,.emsm-notif .emsm-notif-item.has-go:focus-visible{background:var(--em-mint);outline:none}
.emsm-notif .nf-n{display:inline-block;font-size:11px;font-weight:800;color:#145be8;background:#eaf2ff;border-radius:999px;padding:0 7px;margin-left:4px}
.emsm-notif .nf-open{color:var(--em-teal-text);font-weight:700}
.emsm-notif .nf-group>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;cursor:pointer;list-style:none;border-bottom:1px solid #f1f4f8}
.emsm-notif .nf-group>summary::-webkit-details-marker{display:none}
.emsm-notif .nf-group>summary b{flex:1;font-size:13px;color:#14213d}
.emsm-notif .nf-group>summary em{font-style:normal;font-size:12px;font-weight:800;color:#145be8;background:#eaf2ff;border-radius:999px;padding:1px 8px}
.emsm-notif .nf-group.unread>summary b:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#0f938d;margin-right:7px;vertical-align:middle}
.emsm-notif .nf-group .emsm-notif-item{padding-left:28px}
.emsm-notif .em-empty{margin:16px}
#emsm-app .em-flash{box-shadow:0 0 0 3px rgba(15,147,141,.4)!important;transition:box-shadow .3s}

/* ---- Trainers & Counsellors: table on desktop, 56px rows on phones ---- */
#emsm-app .team-count{margin:0 0 8px;font-size:12px}
#emsm-app .team-tablewrap{background:#fff;border:1px solid var(--em-line);border-radius:var(--em-r-card);overflow:auto}
#emsm-app .team-table{width:100%;border-collapse:collapse;font-size:14px}
#emsm-app .team-table th{position:sticky;top:0;background:#f4f7fa;text-align:left;padding:0;border-bottom:1px solid var(--em-line);font-size:12px;font-weight:750;color:var(--em-text-muted);text-transform:none}
#emsm-app .team-table .th-sort{display:flex;align-items:center;gap:6px;width:100%;min-height:40px;padding:0 14px;border:0;background:none;font:inherit;color:inherit;cursor:pointer;text-align:left}
#emsm-app .team-table .th-sort.on{color:var(--em-navy)}
#emsm-app .team-table .th-sort:hover{background:#eaf0f5}
#emsm-app .team-table .th-arr{font-size:9px}
#emsm-app .team-table td{padding:0 14px;height:52px;border-bottom:1px solid #eef2f6;vertical-align:middle}
#emsm-app .team-tr{cursor:pointer}
#emsm-app .team-tr:hover,#emsm-app .team-tr:focus-visible{background:var(--em-mint);outline:none}
#emsm-app .team-tr.is-off{opacity:.7}
#emsm-app .team-tr.is-off .team-avatar{filter:grayscale(1)}
#emsm-app .team-name{display:flex;align-items:center;gap:10px}
#emsm-app .team-name .team-avatar,#emsm-app .team-row .team-avatar{width:32px;height:32px;min-width:32px;border-radius:10px;font-size:13px}
#emsm-app .team-mail{color:#3a4a61}
#emsm-app .team-on{font-size:13px;color:var(--em-teal-text);font-weight:700}
#emsm-app .team-rows{display:none}
@media(max-width:767px){
 #emsm-app .team-tablewrap{display:none}
 #emsm-app .team-rows{display:flex;flex-direction:column;background:#fff;border:1px solid var(--em-line);border-radius:var(--em-r-card);overflow:hidden}
 #emsm-app .team-row{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;height:56px;padding:0 12px;border:0;border-bottom:1px solid #eef2f6;border-radius:0;background:#fff;text-align:left;font:inherit;color:var(--em-text);cursor:pointer}
 #emsm-app .team-row:last-child{border-bottom:0}
 #emsm-app .team-row.is-off{opacity:.72}
 #emsm-app .team-row.is-off .team-avatar{filter:grayscale(1)}
 #emsm-app .team-row .team-person{flex:1;min-width:0;display:flex;flex-direction:column}
 #emsm-app .team-row .team-person b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 #emsm-app .team-row .team-person small{font-size:12px;color:var(--em-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 #emsm-app .team-badges{display:flex;gap:4px;flex:none}
 #emsm-app .team-toolbar #teamRole{display:none}
 #emsm-app .team-toolbar{grid-template-columns:1fr 1fr}
 #emsm-app .team-toolbar .team-search{grid-column:1/-1}
}

/* ---- Reports: density + readable text (charts unchanged) ---- */
#emsm-app .rep-body:not(.rep-open) [data-extra]{display:none}
#emsm-app .rep-toggle{margin-top:10px}
#emsm-app .rep-col small{font-size:12px}
#emsm-app .rep-heat th,#emsm-app .rep-heat td small{font-size:12px}
#emsm-app .rep-legend{font-size:13px}
#emsm-app .rep-val{font-size:13px}
@media(max-width:767px){
 #emsm-app .rep-bar{padding:12px;gap:10px}
 #emsm-app .rep-bar .v186-density{display:grid!important;grid-template-columns:1fr 1fr;gap:6px}
 #emsm-app .rep-bar .v186-density button{min-height:40px;font-size:13px}
 #emsm-app .rep-range{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
 #emsm-app .rep-range label{font-size:12px}
 #emsm-app .rep-sec .panelhead{flex-wrap:wrap;gap:8px;padding-bottom:6px}
 #emsm-app .rep-sec .panelhead .repcsv{min-height:44px;padding:0 14px;font-size:13px}
 #emsm-app .rep-sec .rep-body{padding:0 12px 12px}
 #emsm-app .rep-bars{gap:12px}
 #emsm-app .rep-brow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name val" "track track";gap:4px 10px}
 #emsm-app .rep-brow .rep-name{grid-area:name;font-size:14px}
 #emsm-app .rep-brow .rep-val{grid-area:val;font-size:12px}
 #emsm-app .rep-brow .rep-track{grid-area:track;height:14px}
 #emsm-app .rep-fill{padding-left:0;list-style:none;gap:12px}
 #emsm-app .rep-fill li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name pct" "bar bar" "note note"}
 #emsm-app .rep-fill li .rep-name{grid-area:name}
 #emsm-app .rep-fill li b{grid-area:pct;font-size:13px}
 #emsm-app .rep-fill li .rep-mini{grid-area:bar}
 #emsm-app .rep-fill li small{grid-area:note;font-size:12px}
 #emsm-app .rep-col small{font-size:12px}
 #emsm-app .rep-cols{height:150px}
 #emsm-app table.rep-heat{font-size:12px}
 #emsm-app .rep-table tr{padding:8px 12px;margin-bottom:8px}
}
@media(max-width:767px){
 #emsm-app table.rep-table:not(.rep-heat) tr{display:grid!important;grid-template-columns:1fr 1fr;gap:0 16px}
 #emsm-app table.rep-table:not(.rep-heat) td{padding:4px 0!important}
 #emsm-app table.rep-table:not(.rep-heat) td:first-child,#emsm-app table.rep-table:not(.rep-heat) td:last-child{grid-column:1/-1}
 #emsm-app table.rep-table:not(.rep-heat) td:first-child{border-bottom:1px solid #eef2f6!important;margin-bottom:2px}
 #emsm-app table.rep-table:not(.rep-heat) td:first-child::before{display:none}
 #emsm-app table.rep-table:not(.rep-heat) td:first-child{justify-content:flex-start;text-align:left}
}

/* ---- Hold Extensions ---- */
#emsm-app .hx-strip{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;margin:0 0 12px;padding:10px 14px;background:#fff;border:1px solid var(--em-line);border-radius:var(--em-r-card);font-size:13px;color:var(--em-text-muted)}
#emsm-app .hx-strip b{font-size:16px;color:var(--em-navy)}
#emsm-app .hold-ext-card.hx{display:flex;flex-direction:column;gap:6px;padding:12px 14px;grid-template-columns:none}
#emsm-app .hx-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#emsm-app .hx-top>b{font-size:15px;color:var(--em-navy);flex:1;min-width:0}
#emsm-app .hx-cd{font-size:13px;font-weight:700;color:#b45309;background:#fff4e0;border-radius:999px;padding:2px 10px;white-space:nowrap}
#emsm-app .hx-cd.urgent{color:#b42318;background:#fdecec}
#emsm-app .hold-ext-card.urgent{border-left:4px solid #dc2626}
#emsm-app .hx-slot{display:flex;flex-direction:column;gap:1px}
#emsm-app .hx-slot b{font-size:14px;color:var(--em-navy)}
#emsm-app .hx-slot span{font-size:13px;color:var(--em-text-muted)}
#emsm-app .hx-meta{font-size:12px;color:var(--em-text-muted)}
#emsm-app .hold-ext-card.hx .hold-ext-actions{margin-top:2px}
#emsm-app .hold-ext-card.hx .hold-ext-actions button{min-height:40px}
@media(max-width:767px){#emsm-app .hold-ext-card.hx .hold-ext-actions button{flex:1}#emsm-app .hold-ext-card.hx .hold-ext-actions button{min-height:44px}}

/* ---- Slot Approvals ---- */
#emsm-app .em-empty-sm{padding:12px 14px;min-height:0}
#emsm-app .apv-bar{display:flex;gap:8px;align-items:center;margin:4px 0 8px}
#emsm-app .apv-bar .apv-search{flex:1;min-width:0}
#emsm-app .apv-list{border-top:1px solid #eef2f6}
#emsm-app .apv-tr{border-bottom:1px solid #eef2f6}
#emsm-app .apv-tr>summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 4px;cursor:pointer;list-style:none}
#emsm-app .apv-tr>summary::-webkit-details-marker{display:none}
#emsm-app .apv-name{flex:1;min-width:0;font-size:14px;font-weight:750;color:var(--em-navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#emsm-app .apv-meta{font-size:12px;color:var(--em-text-muted);white-space:nowrap}
#emsm-app .apv-chev .em-ic{width:18px;height:18px;transition:transform .15s}
#emsm-app .apv-tr[open] .apv-chev .em-ic{transform:rotate(180deg)}
#emsm-app .apv-tr .approved-chips{padding:0 4px 12px;gap:8px}
#emsm-app .apv-tr .availability-chip.is-approved{min-height:44px}
#emsm-app :is(.regwithdraw,.regdel,.reviewremove){min-width:44px!important;min-height:44px!important;width:44px!important;height:44px!important}
#emsm-app .apv-none[hidden]{display:none}
#emsm-app .hold-ext-card.hx{align-items:stretch;text-align:left;justify-items:stretch}
#emsm-app .hold-ext-card.hx>*{text-align:left}
#emsm-app .hold-ext-card.hx .hold-ext-actions{justify-content:flex-start}

/* ---- Settings: no hero, one note, compact reset cards ---- */
#emsm-app .set-note{margin:0 16px 4px;font-size:13px}
#emsm-app .resetcard .reseticon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#fdecec;color:#b42318;font-size:0}
#emsm-app .resetcard .reseticon .em-ic{width:18px;height:18px}
@media(max-width:767px){
 #emsm-app .resetgrid{grid-template-columns:1fr!important;gap:10px!important;margin-top:10px!important}
 #emsm-app .resetcard{padding:14px!important;gap:6px!important}
 #emsm-app .resetcard p{margin:0}
}

/* ---- Final consistency pass: 12px text floor, desktop link-rows, table headers ---- */
#emsm-app :is(.cal-mtime small,.role-badge,.calbook-main small,.cal-mchip,.calbook-when,.status,.cal-mday small,.availability-chip small,.cal-mghead span,.rep-col small,.v182-avatar,.ext-note,.team-tab span,.qbcnt,.availability-counts span,.bk-row small,.stu-toolbar .v186-density em,.v186-density button,.rep-heat th,.team-table th,.periodcount,.nf-n){font-size:12px}
#emsm-app .timecheck span{font-size:12px;padding-left:4px;padding-right:4px;white-space:nowrap}
#emsm-app .cal-mghead b{font-size:13px}
@media(min-width:768px){
 #emsm-app .tr-links{flex-direction:row;flex-wrap:wrap}
 #emsm-app .tr-link{width:auto;min-width:300px;max-width:480px;flex:0 1 auto}
 #emsm-app .tr-exlink{max-width:480px}
}
#emsm-app .team-table .th-arr .em-ic{width:12px;height:12px;transform:rotate(180deg)}
#emsm-app .team-table .th-arr.desc .em-ic{transform:none}
#emsm-app :is(.v186-legend span,.team-tab,.team-tab em,.hold-ext-actions small,.availability-group-main small,.availability-group-meta strong,.availability-group-meta em,.submitnote,.miniok,th,.emsm-dp-btn .ph){font-size:12px}
#calall:empty,#emsm-app #calall:empty{display:none!important}

/* =====================================================================
   1.10.35 — Student availability (MWF / TTS / Full Day) and trainer categories
   Same tokens as the rest of the app; nothing here introduces a new visual language.
   ===================================================================== */
#emsm-app .sch-badge,.modal .sch-badge,.team-drawer .sch-badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:800;line-height:1.5;white-space:nowrap;border:1px solid transparent}
:is(#emsm-app,.modal,.team-drawer) .sch-mwf{background:#e0f2fe;color:#075985;border-color:#bae6fd}
:is(#emsm-app,.modal,.team-drawer) .sch-tts{background:#fef3c7;color:#92400e;border-color:#fde68a}
:is(#emsm-app,.modal,.team-drawer) .sch-full_day{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}
:is(#emsm-app,.modal,.team-drawer) .sch-legacy{background:#f1f5f9;color:#334155;border-color:#e2e8f0}
#emsm-app .cat-chips{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 2px;min-width:0}
#emsm-app .cat-chip{display:inline-flex;align-items:center;border-radius:6px;padding:1px 7px;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap;border:1px solid transparent}
#emsm-app .cat-lv{background:#eef2f7;color:#334155;border-color:#dbe3ec}
#emsm-app .cat-sp{background:#e8f7f3;color:#0f6b5c;border-color:#c5eadf}
#emsm-app .slot-main .cat-chips{display:flex}
#emsm-app .slot-free.is-partial{color:var(--em-success-text);font-weight:800}
#emsm-app .tr-cats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}
#emsm-app .tr-cats small{font-size:12px;font-weight:700;color:var(--em-text-muted)}
#emsm-app .tr-cats .cat-chips{margin:0}
#emsm-app .mbc-tl{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
#emsm-app .mb-when .sch-badge{margin-top:4px;align-self:flex-start}
#emsm-app td.when .sch-badge{margin-top:4px}
#emsm-app .stu-time .sch-badge{margin-top:4px}
#emsm-app .stu-sch-t{font-weight:700}
#emsm-app .team-cats{white-space:normal;min-width:190px}
#emsm-app .team-cats .cat-chips{margin:0 0 4px}
#emsm-app .team-cats .cat-edit{display:block;padding:2px 0;min-height:0;font-size:13px}
#emsm-app .team-person .cat-chips{margin-top:4px}
#emsm-app .v186-cell{position:relative}
#emsm-app .v186-cell .cal-part{position:absolute;right:3px;top:3px;width:9px;height:9px;border-radius:50%;background:#0d9488;font-size:0;line-height:0;overflow:hidden;box-shadow:0 0 0 1.5px #fff}
.team-drawer .occ-l,#emsm-app .occ-l{display:flex;align-items:center;gap:8px;margin:5px 0;flex-wrap:wrap}
.team-drawer .occ-free{color:var(--em-success-text);font-weight:800;margin:6px 0 0}
/* Student availability radios (Add Student Details) */
.modal .bd-sched{border:0;margin:0 0 12px;padding:0;min-width:0}
.modal .bd-sched legend{font-weight:600;font-size:14px;padding:0;margin-bottom:6px}
.modal .sch-radios{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.modal .sch-r{position:relative;display:flex;align-items:center;border:1px solid var(--em-border);border-radius:12px;padding:8px 12px;min-height:56px;background:#fff;cursor:pointer;margin:0;box-sizing:border-box}
.modal .sch-r input{position:absolute;inset:0;opacity:0;margin:0;width:100%;height:100%;cursor:pointer}
.modal .sch-r span{display:flex;flex-direction:column;gap:1px;min-width:0}
.modal .sch-r b{font-size:14px;color:var(--em-text)}
.modal .sch-r small{font-size:12px;color:var(--em-text-muted);white-space:nowrap}
.modal .sch-r.on{border-color:var(--em-teal);background:#e8f7f3;box-shadow:0 0 0 1px var(--em-teal)}
.modal .sch-r:focus-within{outline:2px solid var(--em-teal);outline-offset:2px}
.modal .bd-sched[disabled] .sch-r{cursor:default;opacity:.75}
@media(max-width:560px){.modal .sch-radios{grid-template-columns:1fr}.modal .sch-r{flex-direction:row;min-height:48px}.modal .sch-r span{flex-direction:row;align-items:baseline;gap:10px}}
/* Add Student Details actions: Do Later (tertiary) · Save Details (secondary) · Admission (primary) */
.modal .bd-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}
.modal .bd-actions #bdlater{margin-right:auto}
.modal .bd-actions button{min-height:44px;margin:0}
@media(max-width:560px){.modal .bd-actions{display:grid;grid-template-columns:1fr 1fr}.modal .bd-actions #bdlater{margin-right:0}.modal .bd-actions #bdadm{grid-column:1/-1}}
/* Availability choice sheet when both MWF and TTS are free */
.sch-sheet .sch-opts{display:grid;gap:8px;padding:6px 0 10px}
.sch-sheet .sch-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px;padding:10px 14px;border:1px solid var(--em-border);border-radius:12px;background:#fff;text-align:left;cursor:pointer}
.sch-sheet .sch-opt b{font-size:16px;color:var(--em-text)}
.sch-sheet .sch-opt small{font-size:13px;color:var(--em-text-muted)}
.sch-sheet .sch-opt:hover,.sch-sheet .sch-opt:focus-visible{border-color:var(--em-teal);background:#e8f7f3}
/* Trainer categories modal (TL) */
/* 1.10.36: keep Do Later / Save Details / Admission reachable whenever the form is taller than the screen */
.modal .booking-details .bd-actions{position:sticky;bottom:-26px;z-index:30;background:#fff;padding:12px 0 calc(34px + env(safe-area-inset-bottom));margin-top:10px;box-shadow:0 -10px 14px -10px rgba(15,23,42,.18)}
.modal .booking-details .bd-sched{position:relative;z-index:0}
@media(max-width:850px){body:has(.booking-details) .emsm-toasts{top:12px!important;bottom:auto!important}}

/* ---- 1.10.37 Layering scale (one place; replaces ad-hoc 99999 / 1000050 values) ----
   page chrome < menus < modals < notification panel < sheets < drawer < toasts < pickers.
   Modals stay above WordPress's own admin bar (z-index 99999) because they are appended to <body> later. */
:root{--em-z-sticky:20;--em-z-header:60;--em-z-mnav:9990;--em-z-menu:9995;--em-z-modal:99999;--em-z-notif:100050;--em-z-sheet:100060;--em-z-drawer:100100;--em-z-toast:100200;--em-z-picker:100300}
/* Menus lifted out of their card by emMenuPlace(): fixed, above page chrome, never clipped by a card/panel */
.em-menu-fixed{position:fixed!important;right:auto!important;bottom:auto!important;margin:0!important;z-index:var(--em-z-menu)!important;max-width:calc(100vw - 16px);box-sizing:border-box}

/* ---- 1.10.37 Trainers & Counsellors: table/rows span the whole grid (was trapped in one of 3 columns) ---- */
.team-grid>.team-tablewrap,.team-grid>.team-rows{grid-column:1/-1;min-width:0}
.team-tablewrap{width:100%;overflow-x:auto}
.team-table{width:100%}
.team-table td,.team-table th{vertical-align:middle}
.team-table td .cat-chips,.team-table td .tcat-chips{display:flex;flex-wrap:wrap;gap:4px}
.team-shell{max-width:none}

/* ---- 1.10.37 Typography: one base size for the app AND for body-level overlays (modals, sheets, toasts, drawers) ---- */
#emsm-app,.modal,.em-sheet-bd,.team-drawer-backdrop,.emsm-toasts,.emsm-notif,.emsm-pick-panel,.emsm-navdrawer-bd{font-size:var(--em-fs-body);line-height:1.45}
#emsm-app .tb-head h2{font-size:18px;font-weight:700;line-height:1.25}
#emsm-app .tb-head p,#emsm-app p.muted{font-size:var(--em-fs-label);line-height:1.4}
#emsm-app .ext-history summary{font-size:var(--em-fs-body)}
#emsm-app .team-person b{font-size:13px}

/* ---- 1.10.37 Page width: use wide screens without going edge to edge ---- */
@media(min-width:768px){#emsm-app .emsm-main>header,#emsm-app #emsm-content{max-width:1600px}
 #emsm-app:is([data-view=calendar],[data-view=reports],[data-view=trainerattendance],[data-view=team],[data-view=activity]) :is(.emsm-main>header,#emsm-content){max-width:1760px}}

/* ---- 1.10.38 Trainers & Counsellors: compact cards from 1100px down (no sideways table scroll), long data wraps ---- */
#emsm-app .team-mail{overflow-wrap:anywhere;min-width:170px;max-width:320px}
#emsm-app .team-name b{overflow-wrap:anywhere}
@media(max-width:1100px){
 #emsm-app .team-tablewrap{display:none}
 #emsm-app .team-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;background:transparent;border:0;border-radius:0;overflow:visible}
 #emsm-app .team-row{display:flex;gap:10px;width:100%;background:#fff;text-align:left;font:inherit;color:var(--em-text);cursor:pointer;height:auto;min-height:64px;align-items:flex-start;padding:12px;border:1px solid var(--em-line);border-radius:var(--em-r-card);box-sizing:border-box}
 #emsm-app .team-row:last-child{border-bottom:1px solid var(--em-line)}
 #emsm-app .team-row:focus-visible{outline:2px solid var(--em-teal);outline-offset:1px}
 #emsm-app .team-row .team-person{gap:3px;flex:1;min-width:0;display:flex;flex-direction:column}
 #emsm-app .team-row.is-off{opacity:.72}
 #emsm-app .team-row .team-person b{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 #emsm-app .team-row .team-person small{white-space:normal;overflow:visible;overflow-wrap:anywhere}
 #emsm-app .team-row .cat-chips,#emsm-app .team-row .team-person>.muted{margin-top:4px}
 #emsm-app .team-row .cat-edit{align-self:flex-start;padding:4px 0;min-height:32px}
 #emsm-app .team-row .team-badges{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:6px}
}
@media(max-width:700px){#emsm-app .team-rows{grid-template-columns:minmax(0,1fr)}}

/* ---- 1.10.38 Dialog polish ---- */
/* Edit Categories: long names/emails wrap inside the dialog instead of widening it */
/* Toast over a full-screen sheet keeps the sheet's close button reachable */
@media(max-width:850px){body:has(.booking-details) .emsm-toasts{left:12px!important;right:64px!important;width:auto!important}}
/* Edit Categories: two compact columns on phones, actions stay reachable while the options scroll */
/* Toast vs centred dialogs on tablets: pin it left so it never sits on the dialog's close button */
@media(min-width:600px) and (max-width:1100px){body:has(.booking-details) .emsm-toasts{left:12px!important;right:auto!important;width:min(340px,calc(100vw - 24px))!important}}

/* Primary page title: 24px on laptops growing to 28px on large monitors; phones keep the 20px app bar title */
@media(min-width:768px){#emsm-app{--em-fs-title:clamp(24px,calc(14px + .75vw),28px)}}

/* compact card: chips and the Edit categories action share a line, badges sit tight */
#emsm-app .team-row .team-catrow{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:4px}
#emsm-app .team-row .team-catrow .cat-chips{margin:0}
#emsm-app .team-row .team-catrow .muted{font-size:12px}
#emsm-app .team-row .team-catrow .cat-edit{min-height:28px;padding:2px 0;font-size:13px}
@media(max-width:1100px){#emsm-app .team-row{padding:10px 12px;min-height:60px}#emsm-app .team-row .team-badges{gap:2px}}


/* ---- 1.10.38 Edit Categories: compact selectable cards (presentation only) ---- */
.catdlg .dialog{width:min(580px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;overflow-wrap:anywhere;min-width:0;box-sizing:border-box;padding:24px 24px 0;position:relative}
.catdlg .dialog .x{position:absolute;top:16px;right:16px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}
.catdlg .revieweyebrow{display:block;font-size:12px;letter-spacing:.08em;padding-right:48px}
.catdlg .dialog h2{font-size:23px;line-height:1.2;font-weight:700;margin:6px 0 2px;padding-right:48px}
.catdlg .cat-email{margin:0;font-size:14px;line-height:1.4;color:var(--em-text-muted)}
.catdlg .cat-help{margin:10px 0 0;font-size:14px;line-height:1.4;color:var(--em-text)}
.catdlg .cat-f{border:0;margin:20px 0 0;padding:0;min-width:0}
.catdlg .cat-f legend{font-weight:700;font-size:13px;color:var(--em-text-muted);margin:0 0 10px;padding:0}
.catdlg .cat-opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.catdlg .cat-opt{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;min-height:46px;padding:0 14px;margin:0;border:1px solid var(--em-border);border-radius:10px;background:#fff;color:var(--em-text);text-align:left;cursor:pointer;box-sizing:border-box;transition:border-color .15s,background-color .15s}
.catdlg .cat-opt input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}
.catdlg .cat-box{flex:none;position:relative;width:20px;height:20px;border:1.5px solid #aab6c4;border-radius:6px;background:#fff;box-sizing:border-box;transition:background-color .15s,border-color .15s}
.catdlg .cat-lbl{font-size:14px;font-weight:600;min-width:0;overflow-wrap:anywhere}
.catdlg .cat-opt:hover{border-color:#8fc9c1;background:#f7fbfa}
.catdlg .cat-opt:has(input:checked){border-color:var(--em-teal);background:#e8f6f3}
.catdlg .cat-opt:has(input:checked) .cat-lbl{font-weight:700;color:var(--em-navy)}
.catdlg .cat-opt:has(input:checked) .cat-box{background:var(--em-teal);border-color:var(--em-teal)}
.catdlg .cat-opt:has(input:checked) .cat-box::after{content:"";position:absolute;left:5.5px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.catdlg .cat-opt:has(input:focus-visible){outline:2px solid var(--em-teal);outline-offset:2px}
.catdlg .cat-count{margin:14px 0 0;font-size:13px;color:var(--em-text-muted)}
.catdlg .adm-err{margin:10px 0 0}
.catdlg .confirm-actions{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#fff;margin:16px -24px 0;padding:14px 24px 20px;border-top:1px solid var(--em-line)}
.catdlg .confirm-actions button{min-height:46px}
.catdlg .primary.yes:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:560px){.catdlg .dialog{padding:20px 20px 0}.catdlg .cat-opts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catdlg .confirm-actions{margin:14px -20px 0;padding:12px 20px 16px}.catdlg .dialog h2{font-size:21px}}
@media(max-width:340px){.catdlg .cat-opts{grid-template-columns:minmax(0,1fr)}}
.catdlg .dialog:focus{outline:none}
