:root{
  --bg:#f6f8fb;
  --card:#fff;
  --text:#20242b;
  --muted:#747b87;
  --border:#e7e9ee;
  --shadow:0 14px 34px rgba(16,24,40,.08);
  --shadow-soft:0 8px 22px rgba(16,24,40,.06);
  --rz:#d7352a;
  --rz-dark:#ad291f;
  --rz-soft:#fff3f1;
  --ok:#19a852;
  --warn:#f08c00;
  --danger:#e03131;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Google Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.45}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}
.topbar{height:78px;background:#fff;border-bottom:3px solid var(--rz);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:50;box-shadow:0 8px 28px rgba(215,53,42,.08)}
.brand{display:flex;align-items:center;gap:12px;font-weight:900}.brand img{height:50px;width:auto;display:block}.hamburger{width:46px;height:46px;border:0;background:#fff;border-radius:12px;font-size:25px;cursor:pointer;color:#1f242c;display:none}.top-actions{display:flex;gap:12px;align-items:center}.top-actions a,.icon-btn,.lang-btn,.user-chip{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px}.icon-btn,.lang-btn{padding:0 14px;border:1px solid var(--border);background:#fff;font-weight:800;box-shadow:0 4px 12px rgba(16,24,40,.04)}.icon-btn{width:48px;color:var(--rz);font-size:20px}.lang-btn{gap:6px}.user-chip{gap:10px;padding:0 10px 0 6px;font-weight:800}.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#111827,#4b5563);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px}.logout-link{color:#5d6675;font-weight:700}.container{max-width:1280px;margin:30px auto;padding:0 18px}.footer{padding:22px 18px;text-align:center;background:#14171d;color:#c9ced6;font-size:14px}.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:var(--shadow-soft)}h1{font-size:42px;line-height:1.05;margin:0 0 14px}h2,h3{line-height:1.2}.muted{color:var(--muted)}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.btn,button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:var(--rz);color:#fff;padding:12px 16px;font-weight:900;cursor:pointer;box-shadow:0 8px 16px rgba(215,53,42,.18)}.btn:hover,button:hover{background:var(--rz-dark)}.btn.small{padding:8px 12px;font-size:14px}.btn.secondary{background:#fff;color:var(--rz);border:1px solid rgba(255,255,255,.72);box-shadow:none}.btn.danger{background:#8b2b31}.btn.ok{background:var(--ok)}button:disabled,.btn.disabled{background:#d7dbe1;color:#767d89;cursor:not-allowed;box-shadow:none}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:12px;padding:13px 14px;background:#fff;color:#20242b;outline:none}input:focus,select:focus,textarea:focus{border-color:#a9bad6;box-shadow:0 0 0 4px rgba(59,130,246,.10)}label{display:block;font-weight:800;margin:12px 0 7px}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-soft)}.table th,.table td{padding:13px;border-bottom:1px solid var(--border);text-align:left}.table th{background:#f9fafb;font-size:13px;color:#475467}.pill{display:inline-block;border-radius:999px;padding:6px 10px;background:#eef4ff;color:#175cd3;font-size:12px;font-weight:900}.pill.green{background:#ecfdf3;color:#027a48}.pill.red{background:#fef3f2;color:#b42318}.pill.gray{background:#f2f4f7;color:#344054}.alert{padding:14px 16px;border-radius:14px;margin-bottom:16px;border:1px solid transparent}.alert.success{background:#ecfdf3;color:#027a48;border-color:#abefc6}.alert.error{background:#fef3f2;color:#b42318;border-color:#fecdca}.alert.info{background:#eef4ff;color:#175cd3;border-color:#b2ccff}.empty{padding:26px;text-align:center;color:var(--muted)}

/* Admin / simple pages */
.sidebar-layout{display:grid;grid-template-columns:240px 1fr;gap:22px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat strong{font-size:26px}.actions{display:flex;gap:8px;flex-wrap:wrap}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center}

/* Red Zone customer dashboard - faithful mockup layout */
.role-customer{background:#f7f9fc}.role-customer .container{max-width:none;margin:0;padding:0}.role-customer .topbar{height:78px;margin-left:292px;padding:0 30px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px)}.role-customer .topbar .brand{display:none}.role-customer .hamburger{display:inline-flex;align-items:center;justify-content:center}.app-layout{display:grid;grid-template-columns:292px minmax(0,1fr);min-height:calc(100vh - 78px)}.app-content{min-width:0;padding:36px 32px 40px;max-width:1060px;width:100%;margin:0 auto}.sidebar{position:fixed;left:0;top:0;bottom:0;width:292px;background:#fff;border-right:1px solid var(--border);padding:20px 18px 24px;box-shadow:14px 0 32px rgba(16,24,40,.04);z-index:60;display:flex;flex-direction:column;gap:7px}.side-logo{height:72px;display:flex;align-items:center;margin:0 0 18px}.side-logo img{height:58px;max-width:240px}.sidebar a{display:flex;align-items:center;gap:12px;padding:15px 16px;border-radius:12px;color:#30343b;font-weight:700;font-size:16px;transition:.18s ease}.sidebar a:hover,.sidebar a.active{background:linear-gradient(90deg,#fff2f0,#fff);color:var(--rz)}.sidebar .primary-action{justify-content:center;background:linear-gradient(135deg,var(--rz),#e94439);color:#fff;font-weight:900;box-shadow:0 10px 22px rgba(215,53,42,.22);margin-bottom:12px}.sidebar .primary-action:hover,.sidebar .primary-action.active{background:linear-gradient(135deg,var(--rz-dark),var(--rz));color:#fff}.sidebar-backdrop{display:none}.welcome-title{margin:0 0 6px;font-size:26px}.welcome-subtitle{margin:0 0 22px;color:var(--muted);font-size:17px}.welcome-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.hero-card{min-height:260px;border-radius:18px;padding:34px;color:#fff;background:linear-gradient(90deg,rgba(5,7,12,.82),rgba(5,7,12,.28)),url('../img/hero-gym.svg') center/cover;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;box-shadow:var(--shadow);overflow:hidden}.hero-card h2{font-size:29px;margin:0 0 18px;max-width:420px}.hero-card p{margin:0 0 22px;color:#f6f7f9;font-size:16px}.subscription-card{border-radius:18px;padding:28px;background:linear-gradient(135deg,var(--rz),#e23a2e);color:#fff;box-shadow:0 18px 40px rgba(215,53,42,.26);min-height:260px;display:flex;flex-direction:column;justify-content:center}.subscription-card p{display:flex;justify-content:space-between;gap:18px;margin:10px 0;font-size:16px}.subscription-card strong{text-align:right}.subscription-card .muted{color:#ffe1dd}.sub-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.sub-head h3{margin:0;font-size:20px}.sub-head span{background:#37b24d;color:#fff;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:900}.sub-head .pending{background:#fff;color:var(--rz)}.subscription-card .btn.secondary{margin-top:14px;width:100%;border-color:rgba(255,255,255,.7);color:#fff;background:rgba(255,255,255,.07)}
.booking-shell{margin-top:16px}.booking-head{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--border);border-radius:16px 16px 0 0;padding:22px 24px;box-shadow:var(--shadow-soft)}.booking-head h2{margin:0;font-size:24px}.booking-head h2 span{color:#20242b}.booking-head .btn{background:var(--rz)}.notice{margin:22px 0;background:#fff5ce;border:1px solid #f5df88;color:#89690a;padding:22px 26px;border-radius:12px;font-size:19px}.booking-panel{display:grid;grid-template-columns:1.1fr .9fr;gap:0;background:#fff;border:1px solid var(--border);border-radius:18px;padding:26px;box-shadow:var(--shadow)}.calendar-card{padding-right:34px;border-right:1px solid var(--border)}.filter-card{padding-left:34px}.calendar-title{display:flex;align-items:center;justify-content:space-between;font-size:22px;margin-bottom:20px}.cal-arrow{width:42px;height:42px;border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:34px;color:#8a9099;background:#fff;transition:.18s ease}.cal-arrow:hover{color:#fff;background:var(--rz);border-color:var(--rz)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;text-align:center}.calendar-weekdays{color:#8d939d;font-weight:900;margin-bottom:14px}.month-days{align-items:center}.day{min-height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;color:#2d333b;font-weight:600;transition:.16s ease}.day:hover{background:#f1f3f6}.day i{position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:transparent}.day.has i{background:var(--ok)}.day.few i{background:var(--warn)}.day.full i{background:var(--danger)}.day.selected{background:linear-gradient(135deg,var(--rz),#e65f55);color:#fff;box-shadow:0 9px 20px rgba(215,53,42,.28)}.day.selected i{background:#fff}.muted-day{opacity:.18}.filter-card h3{margin:4px 0 20px;font-size:20px}.filter-form label{font-size:15px;color:#3b414b}.legend{display:flex;flex-direction:column;gap:14px;margin-top:28px;color:#6c7480;font-size:15px}.legend i{display:inline-flex;width:14px;height:14px;border-radius:50%;margin-right:8px;vertical-align:-2px}.ok-dot{background:var(--ok)}.few-dot{background:var(--warn)}.full-dot{background:var(--danger)}.section-title{margin:28px 0 16px;font-size:22px}.slot-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.slot-card{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow-soft);min-height:122px}.slot-icon{width:64px;height:64px;border-radius:10px;background:linear-gradient(135deg,var(--rz),#e84035);display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;font-weight:900}.slot-card.is-few .slot-icon{background:linear-gradient(135deg,#ef8600,#ffc32c)}.slot-card.is-full .slot-icon{background:linear-gradient(135deg,#9aa2ad,#d3d8df)}.slot-main h3{margin:0 0 7px;font-size:17px}.slot-main p{margin:4px 0}.time-line{color:#1f2937;font-weight:700}.slot-action{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:112px}.slot-action .btn{background:var(--rz);padding:10px 14px}.slot-action .btn.danger{background:#87262b}.seats{font-weight:900;font-size:14px;white-space:nowrap}.seats.green{color:var(--ok)}.seats.orange{color:var(--warn)}.seats.red{color:var(--danger)}.empty-card{grid-column:1/-1;background:#fff;border:1px solid var(--border);border-radius:14px;padding:42px;text-align:center;color:#555;font-size:20px;box-shadow:var(--shadow-soft)}.booking-info-strip{margin-top:26px;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-soft);overflow:hidden}.booking-info-strip div{padding:22px 24px;border-right:1px solid var(--border)}.booking-info-strip div:last-child{border-right:0}.booking-info-strip b{display:block;margin-bottom:8px}.booking-info-strip span{display:block;color:var(--muted);font-size:14px}

@media(max-width:1050px){.role-customer .topbar{margin-left:0}.role-customer .topbar .brand{display:flex}.app-layout{grid-template-columns:1fr}.sidebar{transform:translateX(-105%);transition:.25s ease}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-backdrop{display:block;opacity:0;pointer-events:none;position:fixed;inset:0;background:rgba(16,24,40,.36);z-index:55;transition:.25s ease}.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}.app-content{padding:26px 18px 34px}.topbar{padding:0 16px}.hamburger{display:inline-flex;align-items:center;justify-content:center}.top-actions .logout-link,.top-actions .user-chip span:not(.avatar){display:none}.welcome-grid,.booking-panel,.slot-list,.booking-info-strip{grid-template-columns:1fr}.calendar-card{border-right:0;border-bottom:1px solid var(--border);padding:0 0 24px}.filter-card{padding:24px 0 0}.slot-card{grid-template-columns:74px minmax(0,1fr);}.slot-action{grid-column:1/-1;align-items:flex-start;flex-direction:row;justify-content:space-between}.booking-info-strip div{border-right:0;border-bottom:1px solid var(--border)}.booking-info-strip div:last-child{border-bottom:0}}
@media(max-width:720px){.topbar{height:auto;min-height:86px;display:grid;grid-template-columns:46px 1fr;gap:10px}.brand{justify-content:center}.brand img{height:54px}.top-actions{grid-column:1/-1;justify-content:center;flex-wrap:wrap}.container{margin:0 auto;padding:0 14px 24px}.app-content{padding:18px 14px 30px}.welcome-title{font-size:22px}.welcome-grid{display:none}.booking-head{background:#ddd;border-radius:8px 8px 0 0;padding:16px 14px}.booking-head h2{font-size:22px}.btn-calendar{padding:11px 12px}.notice{font-size:18px;padding:18px 20px}.booking-panel{padding:20px 16px;border-radius:14px}.calendar-title{font-size:21px}.calendar-grid{gap:8px}.calendar-weekdays{font-size:15px}.day{min-height:48px;font-size:16px}.filter-card h3{font-size:18px}.section-title{font-size:21px}.slot-card{grid-template-columns:1fr;border:2px solid #dceff3;border-radius:10px;background:#f7f7f7}.slot-card.is-few,.slot-card.is-full{border-color:#f5ccd1}.slot-icon{width:120px;height:24px;border-radius:999px;font-size:0}.slot-main h3{font-size:22px;color:#235c66}.slot-card.is-few .slot-main h3,.slot-card.is-full .slot-main h3{color:#7d2d34}.slot-main p{font-size:20px}.slot-action{display:block}.slot-action .btn,.slot-action button{margin-top:10px;font-size:18px}.seats{display:block;margin:8px 0}.sidebar{width:min(86vw,320px)}.side-logo img{height:54px}}
@media(max-width:850px){.hero,.grid-2,.grid-3,.sidebar-layout,.stats{grid-template-columns:1fr}.table{display:block;overflow-x:auto}h1{font-size:32px}}

/* Fixes: menu overlay and mobile sidebar */
.sidebar-open{overflow:hidden;}
.sidebar-open .sidebar{z-index:1000;}
.sidebar-open .sidebar-backdrop{z-index:999;}
@media(max-width:1050px){.sidebar{z-index:1000}.sidebar-backdrop{z-index:999}.topbar{z-index:900}}


/* Desktop/admin fixes */
.role-admin .topbar .brand{display:flex}
.role-admin .topbar{margin-left:0}
.role-admin .container{max-width:1600px}
.role-admin .sidebar-layout{grid-template-columns:260px minmax(0,1fr);align-items:start;width:100%}
.role-admin .sidebar-layout > div:not(.sidebar){min-width:0;width:100%}
.role-admin .sidebar{position:static;width:auto;min-height:calc(100vh - 160px);height:auto;box-shadow:var(--shadow-soft);border:1px solid var(--border);border-radius:18px;padding:14px;background:#fff}
.role-admin .sidebar a{font-size:15px;padding:14px 16px}
.role-admin .card{width:100%;max-width:none}
.role-admin .grid-3{grid-template-columns:repeat(3,minmax(220px,1fr))}
.role-admin .grid-2{grid-template-columns:repeat(2,minmax(260px,1fr))}
.role-admin .top-actions .icon-btn,.role-admin .top-actions .lang-btn{display:none}
.role-customer .top-actions .icon-btn,.role-customer .top-actions .lang-btn{display:none}
@media(max-width:850px){.role-admin .sidebar-layout{grid-template-columns:1fr}.role-admin .sidebar{min-height:auto}.role-admin .grid-3,.role-admin .grid-2{grid-template-columns:1fr}}

/* Mobile header/menu final fix */
@media(max-width:720px){
  .topbar,
  .role-customer .topbar,
  .role-admin .topbar{
    height:82px;
    min-height:82px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 54px minmax(46px,1fr);
    align-items:center;
    gap:10px;
    padding:12px 18px;
    overflow:hidden;
  }
  .role-customer .topbar .brand,
  .role-admin .topbar .brand,
  .topbar .brand{
    display:flex;
    justify-content:flex-start;
    min-width:0;
    overflow:hidden;
  }
  .brand img,
  .role-customer .brand img,
  .role-admin .brand img{
    height:42px;
    max-width:170px;
    width:auto;
    object-fit:contain;
    object-position:left center;
  }
  .hamburger{
    grid-column:2;
    grid-row:1;
    width:54px;
    height:54px;
    border-radius:16px;
    box-shadow:0 12px 28px rgba(215,53,42,.14);
    font-size:28px;
    z-index:2;
  }
  .top-actions{
    grid-column:3;
    grid-row:1;
    justify-content:flex-end;
    gap:0;
    min-width:0;
  }
  .top-actions .logout-link,
  .top-actions .user-chip span:not(.avatar),
  .top-actions a:not(.user-chip):not(.btn){display:none!important;}
  .top-actions .user-chip{
    padding:0;
    min-height:auto;
    width:46px;
    height:46px;
    border-radius:50%;
    overflow:hidden;
  }
  .avatar{width:46px;height:46px;font-size:18px;flex:0 0 46px;}
  .sidebar{
    top:0;
    width:min(86vw,340px);
    padding-top:18px;
    border-radius:0 22px 22px 0;
  }
  .side-logo{height:auto;margin-bottom:18px;}
  .side-logo img{height:46px;max-width:210px;}
}

.upcoming-panel{background:linear-gradient(135deg,#d7352a,#9e211a);color:#fff;border-radius:20px;padding:22px;margin:24px 0;box-shadow:0 18px 42px rgba(215,53,42,.22)}
.upcoming-panel .muted{color:rgba(255,255,255,.82)}
.upcoming-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.upcoming-panel-head h2{margin:0}.upcoming-panel .btn.secondary{background:#fff;color:#d7352a;border-color:#fff}
.upcoming-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.upcoming-item{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);border-radius:15px;padding:14px;display:flex;flex-direction:column;gap:4px}
.upcoming-item small,.upcoming-item span{color:rgba(255,255,255,.86)}.mini-link{text-decoration:underline;font-weight:700;margin-top:4px}.workout-notes{margin-top:10px;background:#fff8e8;border:1px solid #ffe2a8;color:#5f4300;border-radius:12px;padding:10px 12px;font-size:14px}.wait-badge{display:inline-flex;background:#f1f3f5;color:#495057;border-radius:999px;padding:7px 10px;font-weight:700;font-size:13px}.report-filter .inline-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.report-filter input,.report-filter select{max-width:220px}.grid-full{grid-column:1/-1}
@media(max-width:720px){.upcoming-list{grid-template-columns:1fr}.upcoming-panel{margin:18px 0;padding:18px}.upcoming-panel-head{align-items:flex-start;flex-direction:column}.slot-action{align-items:flex-start!important}.slot-action .btn,.slot-action button{width:100%;text-align:center;justify-content:center}}

/* Upcoming workouts alignment + readable calendar/booked buttons */
.slot-action .btn.secondary{
  background:#ffffff!important;
  color:var(--rz)!important;
  border:1px solid rgba(215,53,42,.35)!important;
  box-shadow:0 8px 16px rgba(215,53,42,.10)!important;
}
.slot-action .pill.green{
  background:#e9fbef!important;
  color:#0f8b46!important;
  border:1px solid #b8efcc;
  font-weight:900;
}
.upcoming-panel{
  background:linear-gradient(135deg,#fff,#fff7f6)!important;
  color:var(--text)!important;
  border:1px solid #ffd9d5;
  border-left:7px solid var(--rz);
  border-radius:20px;
  padding:22px;
  margin:24px 0 28px;
  box-shadow:0 18px 42px rgba(215,53,42,.12);
}
.upcoming-panel .muted,.upcoming-panel p{color:var(--muted)!important;margin:4px 0 0}
.upcoming-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.upcoming-panel-head h2{margin:0;font-size:24px;color:var(--text)}
.upcoming-panel .btn.secondary{background:var(--rz)!important;color:#fff!important;border:0!important;white-space:nowrap}
.upcoming-list{display:grid;grid-template-columns:1fr;gap:12px;margin:14px 0}
.upcoming-item{
  background:#fff!important;
  border:1px solid var(--border)!important;
  border-radius:16px;
  padding:14px;
  display:grid!important;
  grid-template-columns:70px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  box-shadow:0 8px 20px rgba(16,24,40,.06);
}
.upcoming-date{width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,var(--rz),#e94439);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.upcoming-date span{font-size:24px;font-weight:900;color:#fff!important}
.upcoming-date small{font-size:11px;color:#fff!important;margin-top:5px;max-width:58px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upcoming-details{display:flex;flex-direction:column;gap:3px;min-width:0}
.upcoming-details strong{font-size:18px;color:var(--text)}
.upcoming-details span,.upcoming-details small{color:var(--muted)!important;font-size:14px}
.calendar-link{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--rz);border:1px solid rgba(215,53,42,.28);border-radius:10px;padding:10px 12px;font-weight:900;white-space:nowrap}
.upcoming-empty{background:#fff;border:1px dashed #ffd0cc;border-radius:14px;padding:18px;color:var(--muted)}
.notification-btn{margin-top:4px}
@media(max-width:720px){
  .upcoming-panel{padding:18px 16px;margin:20px 0;border-left-width:5px}
  .upcoming-panel-head{align-items:flex-start;flex-direction:column;gap:10px}
  .upcoming-panel-head h2{font-size:24px;line-height:1.15}
  .upcoming-panel .btn.secondary{width:100%}
  .upcoming-item{grid-template-columns:56px minmax(0,1fr);gap:12px;padding:13px}
  .upcoming-date{width:52px;height:52px;border-radius:14px}
  .upcoming-date span{font-size:20px}
  .calendar-link{grid-column:1/-1;width:100%;padding:12px;margin-top:4px}
  .upcoming-details strong{font-size:17px}
  .upcoming-details span,.upcoming-details small{font-size:14px;line-height:1.3}
  .slot-action .btn.secondary{width:100%;justify-content:center;background:#fff!important;color:var(--rz)!important}
}

/* Compact customer bookings page - replaces wide table on mobile/desktop */
.bookings-page{max-width:980px}
.page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.bookings-card{background:#fff;border:1px solid var(--border);border-radius:22px;padding:16px;box-shadow:var(--shadow-soft);margin-bottom:18px;overflow:hidden}
.bookings-card h2{margin:4px 6px 14px;font-size:20px}
.compact-booking-list{display:grid;gap:12px}
.compact-booking-item{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px;border:1px solid #edf0f4;border-radius:18px;background:linear-gradient(180deg,#fff,#fbfcfe)}
.compact-booking-item.confirmed{border-left:5px solid var(--ok)}
.compact-booking-item.cancelled{border-left:5px solid #cfd5dd;opacity:.82}
.compact-booking-item.waiting{border-left:5px solid var(--warn)}
.booking-emoji{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--rz),#e94439);display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 10px 22px rgba(215,53,42,.16)}
.booking-summary{min-width:0}.booking-summary strong{display:block;font-size:20px;line-height:1.15;margin-bottom:3px}.booking-summary small{display:block;color:var(--muted);font-size:15px;margin-bottom:10px}
.booking-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.booking-meta-grid span{background:#f7f8fa;border:1px solid #eef0f4;border-radius:12px;padding:8px 10px;font-size:14px;color:#1f2937}.booking-meta-grid b{display:block;color:#7b8390;font-size:11px;text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px}
.booking-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:185px}.status-pill,.queue-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:8px 11px;font-weight:900;font-size:13px;white-space:nowrap}.status-pill.ok{background:#e9fbef;color:#0f8b46}.status-pill.off{background:#f2f4f7;color:#667085}.queue-pill{background:#fff7e6;color:#b56400}.booking-actions .calendar-link{padding:9px 11px}.booking-actions .btn.small{padding:9px 12px}

/* More compact upcoming workouts on the dashboard */
.upcoming-panel.compact,.upcoming-panel{max-width:100%;}
.upcoming-panel .upcoming-list{gap:10px}.upcoming-panel .upcoming-item{padding:12px 13px;border-radius:14px}.upcoming-panel .calendar-link{font-size:14px;padding:9px 11px}.upcoming-panel .upcoming-date{width:54px;height:54px;border-radius:14px}.upcoming-panel .upcoming-date span{font-size:21px}.upcoming-panel .upcoming-details strong{font-size:17px}.upcoming-panel .upcoming-details span,.upcoming-panel .upcoming-details small{font-size:13px}

@media(max-width:720px){
  .bookings-page{padding-top:20px!important}.page-title-row{flex-direction:column;gap:10px}.page-title-row .btn{width:100%}.bookings-card{padding:12px;border-radius:18px}.compact-booking-list{gap:10px}.compact-booking-item{grid-template-columns:44px minmax(0,1fr);gap:10px;padding:12px;border-radius:16px}.booking-emoji{width:40px;height:40px;border-radius:12px;font-size:19px}.booking-summary strong{font-size:18px}.booking-summary small{font-size:14px;margin-bottom:8px}.booking-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.booking-meta-grid span{font-size:13px;padding:7px 8px}.booking-actions{grid-column:1/-1;min-width:0;justify-content:stretch;display:grid;grid-template-columns:1fr 1fr;gap:8px}.booking-actions .status-pill{grid-column:1/-1}.booking-actions .calendar-link,.booking-actions .btn.small{width:100%;justify-content:center;margin:0}.compact-booking-item.cancelled .booking-actions{grid-template-columns:1fr}
  .upcoming-panel .upcoming-item{grid-template-columns:48px minmax(0,1fr);padding:11px}.upcoming-panel .upcoming-date{width:46px;height:46px}.upcoming-panel .upcoming-date span{font-size:18px}.upcoming-panel .calendar-link{grid-column:1/-1;margin-top:0;padding:10px}.upcoming-panel-head h2{font-size:22px}.upcoming-panel-head p{font-size:14px;line-height:1.35}.notification-btn{width:100%}
}

/* Admin slots manager - compact table by date */
.admin-slots-page .page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}
.admin-slots-page .page-head h2{margin-bottom:4px}.compact-admin-card{margin-bottom:18px}.admin-slot-create-grid{grid-template-columns:1.2fr 1fr 1fr repeat(5,minmax(120px,.8fr));align-items:end}.admin-slot-single-grid{grid-template-columns:repeat(3,minmax(180px,1fr));align-items:end}.admin-slot-create-action{display:flex;align-items:end}.admin-slot-create-action button{width:100%;min-height:48px}.inline-actions{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}.inline-check{display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:800}.inline-check input{width:auto}.slots-manager-card{padding:0;overflow:hidden}.slots-manager-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;padding:22px;border-bottom:1px solid var(--border)}.slots-manager-head h3{margin:0 0 4px}.slots-filter{display:grid;grid-template-columns:150px 150px minmax(180px,1fr) 130px auto;gap:10px;align-items:end;max-width:780px}.slots-filter input,.slots-filter select,.bulk-bar select{padding:11px 12px}.bulk-bar{display:flex;gap:10px;align-items:center;padding:14px 22px;background:#fbfbfc;border-bottom:1px solid var(--border)}.bulk-bar select{max-width:220px}.slot-day-block{border-bottom:1px solid var(--border)}.slot-day-title{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 22px;background:linear-gradient(90deg,#fff,#f8fafc)}.slot-day-title strong{display:block;font-size:17px}.slot-day-title span{display:block;color:var(--muted);font-size:13px;margin-top:2px}.slot-table-wrap{overflow-x:auto}.slots-table{box-shadow:none;border-radius:0}.slots-table th,.slots-table td{padding:11px 14px;vertical-align:middle}.slots-table th:first-child,.slots-table td:first-child{width:36px}.slots-table input[type="checkbox"]{width:auto}.small-text{font-size:12px}.seat-count{font-weight:900;color:#16a34a}.seat-count.is-full{color:#dc2626}.actions{white-space:nowrap}.actions .btn{margin-left:6px}
@media(max-width:1100px){.admin-slot-create-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}.slots-manager-head{display:block}.slots-filter{margin-top:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.slots-filter button{grid-column:auto}}
@media(max-width:720px){.admin-slots-page .page-head{display:block}.admin-slot-create-grid,.admin-slot-single-grid,.slots-filter{grid-template-columns:1fr}.slots-manager-head,.bulk-bar,.slot-day-title{padding:16px}.bulk-bar{display:grid;grid-template-columns:1fr}.slot-day-title{align-items:flex-start;flex-direction:column}.slots-table th,.slots-table td{padding:10px 12px;font-size:14px}.actions .btn{margin:3px 0}.slots-manager-card{border-radius:16px}}

/* Admin slots v3 - calendar-first compact manager */
.admin-slots-calendar-page{max-width:1180px;width:100%;margin:0 auto;padding:6px 0 40px}
.admin-slots-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.admin-slots-top h2{margin:0 0 6px;font-size:28px}.admin-slots-top p{margin:0}
.slots-calendar-layout{display:grid;grid-template-columns:430px minmax(0,1fr);gap:18px;align-items:stretch;margin-bottom:18px}
.admin-calendar-card-v2,.selected-day-card,.day-slots-table-card,.compact-edit-card{border-radius:22px;box-shadow:0 16px 36px rgba(16,24,40,.07)}
.admin-calendar-card-v2{padding:20px}.admin-calendar-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.admin-calendar-title strong{font-size:21px}.calendar-nav{width:42px;height:42px;border-radius:14px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:34px;line-height:1;color:#5f6672;background:#fff;transition:.16s ease}.calendar-nav:hover{background:var(--rz);color:#fff;border-color:var(--rz)}
.admin-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.admin-month-grid.weekdays{margin-bottom:10px}.admin-month-grid.weekdays span{text-align:center;font-size:12px;font-weight:900;color:#8a929f}.cal-empty{min-height:52px}.admin-cal-day{min-height:54px;border-radius:16px;border:1px solid transparent;display:flex;align-items:center;justify-content:center;position:relative;background:#fff;color:#242a33;font-weight:900;transition:.16s ease}.admin-cal-day:hover{background:#fff6f5;border-color:#ffd4cf;color:var(--rz)}.admin-cal-day.today{border-color:#d9dfe8}.admin-cal-day.selected{background:linear-gradient(135deg,var(--rz),#e85449);color:#fff;box-shadow:0 12px 25px rgba(215,53,42,.22);border-color:transparent}.admin-cal-day em{position:absolute;right:5px;top:5px;min-width:20px;height:20px;border-radius:999px;background:#edf7f0;color:#149448;font-style:normal;font-size:11px;display:flex;align-items:center;justify-content:center;padding:0 5px}.admin-cal-day.selected em{background:rgba(255,255,255,.22);color:#fff}.admin-cal-day i{position:absolute;bottom:6px;width:5px;height:5px;background:#31b35b;border-radius:50%}.calendar-help{display:flex;justify-content:space-between;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);font-size:12px;color:#7a8290}.calendar-help i{display:inline-block;width:8px;height:8px;background:#31b35b;border-radius:50%;margin-right:5px}.calendar-help b{color:#20242b}
.selected-day-card{padding:22px}.selected-day-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--rz);font-weight:900}.selected-day-header h3{font-size:24px;margin:5px 0 0}.date-badge{width:72px;height:72px;border-radius:18px;background:linear-gradient(135deg,#20242b,#3e4653);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;flex:0 0 auto}.date-badge span{font-size:28px;font-weight:900}.date-badge small{font-size:12px;margin-top:6px;font-weight:900}.day-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.day-stats-row div{background:#f8fafc;border:1px solid #edf0f4;border-radius:16px;padding:13px 12px}.day-stats-row strong{display:block;font-size:21px;line-height:1.05}.day-stats-row span{font-size:12px;color:#727b89;font-weight:800}.day-filter-row{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:10px;margin:0 0 16px}.day-filter-row select{padding:11px 12px}.slot-tool-details{border:1px solid #edf0f4;border-radius:18px;background:#fbfcfe;overflow:hidden}.slot-tool-details summary{cursor:pointer;padding:14px 16px;font-weight:900;color:#1f2937;list-style:none}.slot-tool-details summary::-webkit-details-marker{display:none}.quick-slot-form{display:grid;grid-template-columns:1.2fr 1fr 1fr 92px 105px 105px auto;gap:10px;padding:0 16px 16px;align-items:end}.quick-slot-form input{padding:11px 12px}.quick-slot-form button{height:45px;white-space:nowrap}
.compact-edit-card{margin-bottom:18px}.compact-edit-card h3{margin:0 0 14px}.compact-edit-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;align-items:end}.compact-edit-form label{margin:0 0 6px;font-size:13px}.compact-edit-form input,.compact-edit-form textarea{padding:11px 12px}.notes-field{grid-column:1 / span 4}.edit-actions{grid-column:5 / span 2;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.edit-actions .inline-check{margin-right:auto}
.day-slots-table-card{padding:0;overflow:hidden}.day-table-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,#fff,#fbfcff)}.day-table-head h3{margin:0 0 4px}.day-table-head p{margin:0}.repeat-details{position:relative}.repeat-details summary{list-style:none;cursor:pointer;border:1px solid #ffd7d3;background:#fff4f2;color:var(--rz);border-radius:12px;padding:10px 14px;font-weight:900}.repeat-details summary::-webkit-details-marker{display:none}.repeat-details[open] summary{background:var(--rz);color:#fff}.repeat-form{position:absolute;right:0;top:48px;z-index:20;width:560px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px;box-shadow:0 18px 44px rgba(16,24,40,.16)}.repeat-form input{padding:10px 11px}.repeat-form button{grid-column:1/-1}.compact-bulk-bar{display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid var(--border);background:#fff}.compact-bulk-bar select{width:210px;padding:10px 11px}.admin-slot-cards{padding:14px 16px 18px;display:grid;gap:10px}.admin-slot-row{display:grid;grid-template-columns:28px 95px minmax(0,1fr) 82px 82px 100px auto;gap:12px;align-items:center;background:#fff;border:1px solid #ebeff5;border-radius:16px;padding:12px 14px;box-shadow:0 6px 16px rgba(16,24,40,.035)}.admin-slot-row.is-full{border-color:#ffd2d0}.admin-slot-row.is-closed{opacity:.72;background:#fafafa}.admin-slot-row input[type="checkbox"]{width:16px;height:16px}.slot-time-box{border-radius:14px;background:#f6f8fb;border:1px solid #e8ecf2;text-align:center;padding:9px 8px}.slot-time-box strong{display:block;font-size:18px}.slot-time-box span{display:block;color:#788190;font-size:13px}.slot-main-info{min-width:0}.slot-main-info strong{display:block;font-size:18px}.slot-main-info span{display:block;color:#6d7582;font-size:14px}.slot-main-info small{display:block;margin-top:3px;color:#8a929f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.slot-seats,.slot-waiting{text-align:center}.slot-seats strong,.slot-waiting strong{display:block;font-size:18px}.slot-seats span,.slot-waiting span{font-size:12px;color:#7a8290;font-weight:800}.slot-status{text-align:center}.row-actions{display:flex;gap:8px;justify-content:flex-end}.row-actions .btn.secondary{background:#fff;color:var(--rz);border:1px solid #ffd4cf}.row-actions .btn.danger{background:#982e34;color:#fff}.sidebar-layout > .admin-slots-calendar-page{min-width:0}
@media(max-width:1240px){.slots-calendar-layout{grid-template-columns:1fr}.quick-slot-form{grid-template-columns:repeat(3,1fr)}.quick-slot-form button{grid-column:1/-1}.admin-slot-row{grid-template-columns:28px 90px minmax(0,1fr) 75px 75px 95px}.row-actions{grid-column:3/-1}.compact-edit-form{grid-template-columns:repeat(3,1fr)}.notes-field{grid-column:1/-1}.edit-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:860px){.admin-slots-calendar-page{padding:0}.admin-slots-top{display:block}.admin-slots-top .btn{margin-top:12px}.day-stats-row{grid-template-columns:repeat(2,1fr)}.day-filter-row{grid-template-columns:1fr}.quick-slot-form{grid-template-columns:1fr}.day-table-head{display:block}.repeat-details{margin-top:12px}.repeat-form{position:static;width:100%;grid-template-columns:1fr;margin-top:10px}.compact-bulk-bar{display:grid;grid-template-columns:1fr}.compact-bulk-bar select{width:100%}.admin-slot-row{grid-template-columns:24px 78px minmax(0,1fr);align-items:flex-start}.slot-seats,.slot-waiting,.slot-status{grid-column:auto;text-align:left}.row-actions{grid-column:1/-1;justify-content:stretch}.row-actions .btn{flex:1}.admin-month-grid{gap:6px}.admin-cal-day{min-height:46px;border-radius:13px}.calendar-help{display:block}.calendar-help span{display:block;margin:4px 0}}
@media(max-width:640px){.admin-calendar-card-v2,.selected-day-card,.day-slots-table-card,.compact-edit-card{border-radius:16px}.admin-calendar-card-v2,.selected-day-card{padding:16px}.selected-day-header h3{font-size:20px}.date-badge{width:60px;height:60px}.date-badge span{font-size:23px}.day-table-head{padding:16px}.admin-slot-cards{padding:12px}.admin-slot-row{padding:11px;gap:10px}.slot-main-info strong{font-size:16px}.slot-time-box strong{font-size:16px}.slot-main-info small{white-space:normal}.compact-edit-form{grid-template-columns:1fr}.notes-field,.edit-actions{grid-column:1}.edit-actions{justify-content:stretch}.edit-actions .btn,.edit-actions button{flex:1}}

/* Admin slots UX fix: compact, readable forms with lesson selection */
.role-admin .selected-day-card{overflow:visible;}
.role-admin .slot-tool-details{overflow:visible;}
.role-admin .quick-slot-form{
  display:grid;
  grid-template-columns:2fr 1.2fr 1fr 90px 120px 120px auto;
  gap:10px;
  align-items:end;
}
.role-admin .quick-slot-form input,
.role-admin .quick-slot-form select,
.role-admin .quick-slot-form button{
  min-width:0;
  height:46px;
  white-space:nowrap;
}
.role-admin .quick-slot-form select{font-weight:800;}
.role-admin .day-slots-table-card{overflow:visible;}
.role-admin .repeat-details{position:relative;}
.role-admin .repeat-form{
  position:static;
  width:100%;
  max-width:820px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  box-shadow:none;
}
.role-admin .repeat-form input,
.role-admin .repeat-form select,
.role-admin .repeat-form button{
  min-width:0;
  height:44px;
}
.role-admin .repeat-form select{font-weight:800;}
.role-admin .repeat-form button{grid-column:1/-1;}
.role-admin .compact-edit-form select{min-width:0;}
.role-admin .day-table-head{align-items:flex-start;}
.role-admin .repeat-details summary{display:inline-flex;align-items:center;justify-content:center;}
@media(max-width:1350px){
  .role-admin .quick-slot-form{grid-template-columns:repeat(3,minmax(0,1fr));}
  .role-admin .quick-slot-form button{grid-column:1/-1;}
}
@media(max-width:900px){
  .role-admin .quick-slot-form,
  .role-admin .repeat-form{grid-template-columns:1fr;}
  .role-admin .quick-slot-form button,
  .role-admin .repeat-form button{grid-column:auto;}
}


/* Customer profile page */
.profile-page .page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}
.profile-page .page-title-row h1{font-size:32px;margin:0 0 6px}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.profile-card h2{margin:0 0 14px;font-size:22px}
.profile-card input{background:#fff}
@media(max-width:860px){.profile-grid{grid-template-columns:1fr}.profile-page .page-title-row h1{font-size:28px}}

/* Admin weekly bookings calendar */
.admin-bookings-calendar-page{min-width:0;padding-bottom:30px}.booking-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.booking-page-head h2{margin:0 0 5px;font-size:28px}.booking-page-head p{margin:0}.booking-today-btn{border:1px solid #ffd5d1!important;background:#fff!important;color:var(--rz)!important}.booking-week-toolbar{display:grid;grid-template-columns:58px 1fr 58px;align-items:center;max-width:760px;margin:0 auto 20px;padding:0;overflow:hidden;border-radius:15px}.week-nav-arrow{height:64px;display:flex;align-items:center;justify-content:center;font-size:40px;color:var(--rz);font-weight:400;background:#fff}.week-nav-arrow:hover{background:#fff5f4}.week-range{text-align:center;font-size:22px;font-weight:800;border-left:1px solid var(--border);border-right:1px solid var(--border)}.week-range span{margin:0 12px;color:#4f5968}.booking-title-filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}.booking-filter-chip{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:10px;background:#edf0f4;color:#343b47;font-weight:800;border:2px solid transparent}.booking-filter-chip.active{border-color:#17202d;box-shadow:0 5px 14px rgba(16,24,40,.12)}.booking-filter-chip.chip-1{background:#19a9c4;color:#fff}.booking-filter-chip.chip-2{background:#923783;color:#fff}.booking-filter-chip.chip-3{background:#222;color:#fff}.booking-filter-chip.chip-4{background:#d46577;color:#fff}.booking-filter-chip.chip-5{background:#4e86b9;color:#fff}.booking-week-board{padding:18px;overflow-x:auto}.booking-week-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px;border:1px solid #dfe3e9;background:#fff}.booking-day-column{min-width:0;border-right:1px solid #dfe3e9}.booking-day-column:last-child{border-right:0}.booking-day-column.is-today .booking-day-head{background:#fff3f1}.booking-day-head{height:86px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;border-bottom:1px solid #dfe3e9;color:#0968d7}.booking-day-head strong{font-size:22px}.booking-day-head span{font-size:18px;font-weight:800}.booking-day-slots{padding:5px;display:flex;flex-direction:column;gap:5px;min-height:320px}.booking-slot-tile{position:relative;display:flex;flex-direction:column;gap:3px;min-height:116px;padding:12px 9px;border-radius:6px;color:#fff;overflow:hidden;transition:.15s ease;border:2px solid transparent}.booking-slot-tile:hover{transform:translateY(-1px);filter:brightness(1.04)}.booking-slot-tile.is-open{background:#4e86b9}.booking-slot-tile.is-full{background:#0a8852}.booking-slot-tile.is-past{background:#8c929d}.booking-slot-tile.is-selected{border-color:#111827;box-shadow:0 0 0 3px rgba(17,24,39,.15)}.booking-slot-time{font-size:15px;white-space:nowrap}.booking-slot-tile strong{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-slot-count{font-size:17px;margin-top:auto}.booking-slot-tile em{font-style:normal;font-size:11px;background:rgba(255,255,255,.22);padding:3px 6px;border-radius:999px;align-self:flex-start}.booking-empty-day{display:flex;align-items:center;justify-content:center;text-align:center;min-height:120px;color:#a0a6b0;font-size:13px}.booking-legend{display:flex;justify-content:flex-end;gap:18px;flex-wrap:wrap;margin:12px 2px 22px;color:#667080;font-size:13px}.booking-legend span{display:flex;align-items:center;gap:7px}.booking-legend i{width:12px;height:12px;border-radius:3px}.legend-open{background:#4e86b9}.legend-full{background:#0a8852}.legend-past{background:#8c929d}.booking-details-card{scroll-margin-top:95px;padding:24px}.booking-details-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--border);padding-bottom:18px;margin-bottom:18px}.booking-details-head h3{font-size:26px;margin:4px 0}.booking-details-head p{margin:0;color:var(--muted)}.booking-close-details{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#f3f4f6;font-size:25px;color:#525b69}.booking-summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.booking-summary-row>div{background:#f8fafc;border:1px solid #e9edf2;border-radius:14px;padding:14px}.booking-summary-row strong{display:block;font-size:24px}.booking-summary-row span{color:var(--muted);font-size:13px}.booking-detail-columns{display:grid;grid-template-columns:1.6fr 1fr;gap:22px}.booking-detail-columns h4{font-size:18px;margin:0 0 12px}.booking-attendee-list,.booking-waitlist-list{display:grid;gap:9px}.booking-attendee{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid #e9edf2;border-radius:14px;padding:11px 12px;background:#fff}.booking-attendee.is-cancelled{opacity:.62;background:#fafafa}.attendee-avatar{width:42px;height:42px;border-radius:50%;background:#253043;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}.attendee-main{min-width:0}.attendee-main strong,.attendee-main span{display:block}.attendee-main span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attendee-meta{text-align:right}.attendee-meta small{display:block;margin-top:4px;color:var(--muted)}.attendee-actions{display:flex;gap:6px}.booking-waitlist-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #e9edf2;border-radius:14px;padding:11px}.wait-position{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff1ef;color:var(--rz);font-weight:900}.booking-waitlist-item strong,.booking-waitlist-item div span{display:block}.booking-waitlist-item div span{font-size:12px;color:var(--muted)}.empty.compact{padding:18px;border:1px dashed #dfe3e9;border-radius:14px;background:#fafbfc}
@media(max-width:1100px){.booking-detail-columns{grid-template-columns:1fr}.booking-attendee{grid-template-columns:42px minmax(0,1fr) auto}.attendee-actions{grid-column:2/-1;justify-content:flex-end}}
@media(max-width:760px){.booking-page-head{align-items:center}.booking-page-head h2{font-size:23px}.booking-week-toolbar{grid-template-columns:48px 1fr 48px}.week-nav-arrow{height:56px}.week-range{font-size:17px}.booking-week-board{padding:10px;border-radius:15px}.booking-title-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.booking-filter-chip{white-space:nowrap;min-height:40px}.booking-details-card{padding:16px}.booking-summary-row{grid-template-columns:1fr 1fr}.booking-summary-row>div:last-child{grid-column:1/-1}.booking-attendee{grid-template-columns:38px minmax(0,1fr)}.attendee-meta{grid-column:2;text-align:left}.attendee-actions{grid-column:1/-1;justify-content:stretch}.attendee-actions .btn{flex:1}.booking-details-head h3{font-size:22px}}

/* ===== Refined admin weekly bookings UI ===== */
.admin-bookings-calendar-page{
  --calendar-blue:#3978b8;
  --calendar-green:#168653;
  --calendar-gray:#8b9099;
  --calendar-red:#d9382c;
  min-width:0;
  width:100%;
  max-width:1540px;
  margin:0 auto;
  padding:6px 4px 40px;
}
.booking-page-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:0 0 16px;
  padding:18px 22px;
  border-radius:18px;
  background:linear-gradient(135deg,#202a39,#354154);
  color:#fff;
  box-shadow:0 12px 30px rgba(24,33,48,.16);
}
.booking-page-head h2{font-size:26px;margin:0 0 4px;color:#fff}
.booking-page-head p{margin:0;color:rgba(255,255,255,.72)}
.booking-today-btn{
  background:#fff!important;
  border:0!important;
  color:var(--rz)!important;
  min-width:92px;
  min-height:42px;
  box-shadow:0 7px 18px rgba(0,0,0,.14);
}
.booking-week-toolbar{
  max-width:620px;
  margin:0 auto 16px;
  border:1px solid #e1e5eb;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(24,33,48,.07);
}
.week-nav-arrow{height:58px;font-size:34px;color:var(--rz);text-decoration:none}
.week-range{font-size:19px;letter-spacing:.1px;color:#202938}
.booking-title-filters{
  display:flex;
  flex-wrap:nowrap;
  gap:9px;
  overflow-x:auto;
  padding:2px 2px 10px;
  margin:0 0 10px;
  scrollbar-width:thin;
}
.booking-filter-chip{
  flex:0 0 auto;
  min-height:40px;
  padding:0 16px;
  border-radius:999px;
  font-size:13px;
  box-shadow:0 5px 14px rgba(24,33,48,.08);
}
.booking-filter-chip.active{box-shadow:0 0 0 3px rgba(31,41,55,.16),0 6px 16px rgba(24,33,48,.10)}
.booking-week-board{
  padding:0;
  border:1px solid #e0e5ec;
  border-radius:20px;
  background:#fff;
  overflow:auto;
  box-shadow:0 16px 36px rgba(24,33,48,.09);
}
.booking-week-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(165px,1fr));
  min-width:1155px;
  border:0;
  background:#f3f5f8;
}
.booking-day-column{
  min-width:0;
  border-right:1px solid #dde2e9;
  background:#f7f8fa;
}
.booking-day-column:last-child{border-right:0}
.booking-day-head{
  position:sticky;
  top:0;
  z-index:5;
  height:76px;
  gap:2px;
  background:#fff;
  border-bottom:1px solid #dfe4eb;
  box-shadow:0 4px 12px rgba(24,33,48,.04);
}
.booking-day-column.is-today .booking-day-head{
  background:linear-gradient(180deg,#fff4f2,#fff);
}
.booking-day-column.is-today .booking-day-head strong,
.booking-day-column.is-today .booking-day-head span{color:var(--rz)}
.booking-day-head strong{font-size:17px;color:#1769c2}
.booking-day-head span{font-size:15px;color:#1769c2}
.booking-day-slots{
  min-height:430px;
  padding:7px;
  gap:7px;
  background:linear-gradient(180deg,#f8f9fb,#f1f3f6);
}
.booking-slot-tile{
  min-height:108px;
  padding:11px 11px 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.26);
  box-shadow:0 5px 12px rgba(31,41,55,.12);
  text-decoration:none;
}
.booking-slot-tile:hover{transform:translateY(-2px);box-shadow:0 9px 18px rgba(31,41,55,.18)}
.booking-slot-tile.is-open{background:linear-gradient(145deg,#4f89bd,#3976ad)}
.booking-slot-tile.is-full{background:linear-gradient(145deg,#15915b,#087446)}
.booking-slot-tile.is-past{background:linear-gradient(145deg,#979ca5,#7d838d)}
.booking-slot-tile.is-selected{
  border-color:#fff;
  box-shadow:0 0 0 3px #202938,0 8px 18px rgba(31,41,55,.25);
}
.booking-slot-time{font-size:13px;font-weight:700;opacity:.94}
.booking-slot-tile strong{
  font-size:15px;
  line-height:1.25;
  white-space:normal;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.booking-slot-count{font-size:15px;font-weight:800}
.booking-slot-tile em{font-size:10px;font-weight:800;background:rgba(255,255,255,.20)}
.booking-empty-day{min-height:160px;padding:20px 8px;color:#a5abb5}
.booking-legend{
  justify-content:flex-start;
  margin:13px 4px 24px;
  padding-left:3px;
  font-size:12px;
}
.booking-legend i{width:11px;height:11px;border-radius:50%}
.booking-details-card{
  border-radius:20px;
  padding:22px;
  box-shadow:0 14px 34px rgba(24,33,48,.09);
}
.booking-details-head{margin-bottom:16px;padding-bottom:16px}
.booking-details-head h3{font-size:24px}
.booking-summary-row>div{
  background:linear-gradient(180deg,#fbfcfd,#f5f7fa);
  border-radius:12px;
  padding:13px 14px;
}
.booking-attendee,.booking-waitlist-item{border-radius:12px;box-shadow:0 4px 12px rgba(24,33,48,.04)}

@media(min-width:1250px){
  .booking-week-grid{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr))}
  .booking-week-board{overflow:visible}
  .booking-day-slots{min-height:460px}
}

@media(max-width:900px){
  .admin-bookings-calendar-page{padding:0 0 28px}
  .booking-page-head{padding:15px 16px;border-radius:15px}
  .booking-page-head h2{font-size:22px}
  .booking-page-head p{font-size:12px}
  .booking-week-grid{grid-template-columns:repeat(7,152px);min-width:1064px}
  .booking-day-head{height:68px}
  .booking-day-slots{min-height:360px}
  .booking-slot-tile{min-height:98px}
  .booking-detail-columns{grid-template-columns:1fr}
}

@media(max-width:600px){
  .booking-page-head{align-items:center;gap:10px}
  .booking-page-head h2{font-size:19px}
  .booking-page-head p{display:none}
  .booking-today-btn{min-width:72px;min-height:38px;font-size:12px}
  .booking-week-toolbar{grid-template-columns:44px 1fr 44px;margin-bottom:12px}
  .week-nav-arrow{height:50px;font-size:30px}
  .week-range{font-size:15px}
  .booking-title-filters{margin-bottom:8px}
  .booking-filter-chip{min-height:37px;padding:0 14px;font-size:12px}
  .booking-week-board{border-radius:15px}
  .booking-week-grid{grid-template-columns:repeat(7,142px);min-width:994px}
  .booking-day-head{height:63px}
  .booking-day-head strong{font-size:15px}
  .booking-day-head span{font-size:13px}
  .booking-day-slots{padding:5px;gap:5px}
  .booking-slot-tile{min-height:94px;padding:9px 8px;border-radius:8px}
  .booking-slot-time{font-size:12px}
  .booking-slot-tile strong,.booking-slot-count{font-size:14px}
  .booking-legend{gap:12px;margin-bottom:16px}
  .booking-details-card{padding:15px;border-radius:15px}
  .booking-summary-row{grid-template-columns:1fr 1fr;gap:8px}
  .booking-summary-row>div:last-child{grid-column:1/-1}
}


/* ===== Customer layout/menu/history fix v3 ===== */
/* The sidebar is fixed, so reserve its space explicitly instead of relying on
   grid auto-placement (which could place dashboard content underneath it). */
.role-customer .app-layout{
  display:block!important;
  min-height:calc(100vh - 78px);
  padding-left:292px;
  transition:padding-left .24s ease;
}
.role-customer .app-content{
  display:block;
  min-width:0;
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:36px 32px 48px;
}
.role-customer .sidebar{
  transform:translateX(0);
  transition:transform .24s ease, box-shadow .24s ease;
}
.role-customer .topbar{
  transition:margin-left .24s ease;
}
.role-customer.sidebar-collapsed .sidebar{
  transform:translateX(-105%);
  box-shadow:none;
}
.role-customer.sidebar-collapsed .topbar{
  margin-left:0;
}
.role-customer.sidebar-collapsed .app-layout{
  padding-left:0;
}
.role-customer.sidebar-collapsed .app-content{
  max-width:1240px;
}

/* Logout is POST-only so browser history can never accidentally log a user out. */
.logout-form,.sidebar-logout-form{margin:0;padding:0}
.logout-form{display:flex;align-items:center}
.logout-button{
  appearance:none;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0 8px!important;
  color:#5d6675!important;
  font-weight:700!important;
  min-height:42px;
}
.logout-button:hover{color:var(--rz)!important}
.sidebar-logout-form{width:100%}
.sidebar-logout-button{
  width:100%;
  justify-content:flex-start!important;
  gap:12px;
  padding:15px 16px!important;
  border-radius:12px!important;
  color:#30343b!important;
  background:transparent!important;
  box-shadow:none!important;
  font-weight:700!important;
  font-size:16px!important;
}
.sidebar-logout-button:hover{background:linear-gradient(90deg,#fff2f0,#fff)!important;color:var(--rz)!important}

@media(max-width:1050px){
  .role-customer .app-layout,
  .role-customer.sidebar-collapsed .app-layout{padding-left:0!important}
  .role-customer .topbar,
  .role-customer.sidebar-collapsed .topbar{margin-left:0!important}
  .role-customer .sidebar,
  .role-customer.sidebar-collapsed .sidebar{transform:translateX(-105%)}
  .role-customer.sidebar-open .sidebar{transform:translateX(0)!important}
  .role-customer .app-content{max-width:900px;padding:26px 18px 36px}
  .role-customer.sidebar-open{overflow:hidden}
}

@media(max-width:720px){
  .role-customer .app-content{padding:18px 14px 30px}
  .role-customer .top-actions .logout-form{display:none!important}
  .sidebar-logout-button{font-size:16px!important}
}

/* ===== Customer subscriptions / packages layout fix ===== */
.role-customer .customer-plans-page{
  min-width:0;
  width:100%;
  max-width:1180px;
  margin:0 auto;
}
.role-customer .customer-plans-page > h2{
  margin:0 0 20px;
  font-size:30px;
}
.role-customer .customer-plans-page .grid.grid-3{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.role-customer .customer-plans-page .plan-card{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  border-radius:18px;
  padding:22px;
}
.role-customer .customer-plans-page .plan-card h3{margin:0;font-size:21px}
.role-customer .customer-plans-page .plan-card h2{margin:4px 0 0;font-size:30px;color:var(--rz)}
.role-customer .customer-plans-page .plan-card p{margin:0}
.role-customer .customer-plans-page .plan-card form{margin-top:auto;padding-top:8px}
.role-customer .customer-plans-page .plan-card .btn{width:100%}
@media(max-width:980px){
  .role-customer .customer-plans-page .grid.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .role-customer .customer-plans-page{padding-left:14px;padding-right:14px}
  .role-customer .customer-plans-page > h2{font-size:24px}
  .role-customer .customer-plans-page .grid.grid-3{grid-template-columns:1fr}
}


/* ===== Customer memberships page (separate from package purchase page) ===== */
.customer-memberships-page{width:100%;max-width:1180px;margin:0 auto}
.memberships-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}
.memberships-title-row .eyebrow,.membership-kicker{display:block;color:var(--rz);font-weight:900;font-size:12px;letter-spacing:.12em;margin-bottom:7px}
.memberships-title-row h1{margin:0 0 7px;font-size:32px;line-height:1.08}.memberships-title-row p{margin:0;color:#747d8b}
.membership-current-card{border-radius:22px;padding:24px;margin-bottom:20px;background:linear-gradient(135deg,#d93028 0%,#ee3e31 58%,#c92924 100%);color:#fff;box-shadow:0 18px 38px rgba(217,48,40,.18)}
.membership-current-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.membership-current-top h2{margin:0;font-size:28px}.membership-current-card .membership-kicker{color:#ffe4e0}
.membership-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}.membership-facts>div{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:15px;padding:14px}.membership-facts small{display:block;opacity:.78;margin-bottom:4px}.membership-facts strong{font-size:17px}
.membership-state,.payment-state{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900;white-space:nowrap}.membership-state.active{background:#e9fbef;color:#0c8743}.membership-current-card .membership-state.active{background:#fff;color:#128543}.membership-state.pending{background:#fff4de;color:#ac6b00}.membership-state.ended{background:#f1f3f6;color:#667085}.payment-state.is-paid{background:#eefaf2;color:#168548}.payment-state.is-pending{background:#fff6df;color:#a76b00}.payment-state.is-failed{background:#fff0ef;color:#c72e29}
.memberships-history-card{padding:0;overflow:hidden;border-radius:22px}.section-head-row{padding:21px 22px;border-bottom:1px solid #edf0f4}.section-head-row h2{margin:0 0 4px;font-size:22px}.section-head-row p{margin:0;color:#7d8592;font-size:14px}
.membership-list{display:grid}.membership-row-card{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.8fr) auto;gap:20px;align-items:center;padding:18px 22px;border-bottom:1px solid #edf0f4}.membership-row-card:last-child{border-bottom:0}.membership-row-main strong{display:block;font-size:18px;margin-bottom:5px}.membership-row-main span{color:#7c8491;font-size:14px}.membership-row-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px}.membership-row-meta small{display:block;color:#8b929d;margin-bottom:3px}.membership-row-meta strong{font-size:14px}.membership-row-status{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.membership-empty-state{padding:34px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:9px}.membership-empty-state strong{font-size:20px}.membership-empty-state span{color:#7d8592}.membership-empty-state .btn{margin-top:8px}
@media(max-width:900px){.memberships-title-row{align-items:flex-start}.membership-facts{grid-template-columns:repeat(2,1fr)}.membership-row-card{grid-template-columns:1fr}.membership-row-status{justify-content:flex-start}.membership-row-meta{max-width:460px}}
@media(max-width:640px){.memberships-title-row{display:block}.memberships-title-row .btn{width:100%;margin-top:16px}.memberships-title-row h1{font-size:26px}.membership-current-card{padding:18px}.membership-current-top h2{font-size:23px}.membership-current-top{display:block}.membership-current-top .membership-state{margin-top:10px}.membership-facts{grid-template-columns:1fr 1fr;gap:8px}.membership-row-card{padding:15px}.membership-row-meta{grid-template-columns:1fr}.membership-row-status{align-items:flex-start}}

/* ===== Admin slots quick-create v4 + lesson/trainer catalogues ===== */
.role-admin .admin-slots-calendar-page{max-width:1320px}
.role-admin .slots-calendar-layout{grid-template-columns:minmax(330px,390px) minmax(0,1fr);gap:20px}
.role-admin .selected-day-card{min-width:0}
.role-admin .quick-create-panel{background:#fff;border:1px solid #e8ebf0;border-radius:18px;box-shadow:0 8px 24px rgba(16,24,40,.04)}
.role-admin .quick-create-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid transparent}
.role-admin .quick-create-panel[open]>summary{border-bottom-color:#edf0f4}
.role-admin .quick-create-panel>summary span{font-size:16px;font-weight:900}
.role-admin .quick-create-panel>summary small{font-size:12px;color:#8a929f;font-weight:700}
.role-admin .quick-create-toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px 2px}
.role-admin .catalog-manage-link{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;background:#fff5f3;color:var(--rz);border:1px solid #ffd8d3;font-size:12px;font-weight:900}
.role-admin .catalog-manage-link:hover{background:var(--rz);color:#fff}
.role-admin .quick-slot-form.quick-slot-form-v2{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;padding:14px 16px 16px;align-items:end}
.role-admin .quick-slot-form-v2 .quick-field{min-width:0}
.role-admin .quick-slot-form-v2 .quick-field label{margin:0 0 6px;font-size:12px;color:#5f6875;font-weight:900}
.role-admin .quick-slot-form-v2 .quick-field input,
.role-admin .quick-slot-form-v2 .quick-field select{height:46px;min-width:0;padding:10px 12px;background:#fff}
.role-admin .quick-slot-form-v2 .quick-field small{display:block;margin-top:5px;font-size:11px}
.role-admin .quick-slot-form-v2 .quick-field small a{color:var(--rz);font-weight:800}
.role-admin .quick-slot-form-v2 .lesson-field{grid-column:span 4}
.role-admin .quick-slot-form-v2 .trainer-field{grid-column:span 3}
.role-admin .quick-slot-form-v2 .room-field{grid-column:span 3}
.role-admin .quick-slot-form-v2 .capacity-field{grid-column:span 2}
.role-admin .quick-slot-form-v2 .time-field{grid-column:span 3}
.role-admin .quick-slot-form-v2 .quick-create-action{grid-column:span 6;display:flex;align-items:flex-end}
.role-admin .quick-slot-form-v2 .quick-create-action button{width:100%;height:46px;white-space:nowrap}
.role-admin .compact-edit-form select{width:100%}
.role-admin .repeat-form{max-width:880px;grid-template-columns:repeat(4,minmax(0,1fr))}
.role-admin .repeat-form>div{min-width:0}
.role-admin .repeat-form label{margin:0 0 5px;font-size:12px;color:#667085}

/* catalogue pages */
.catalog-admin-page{min-width:0;width:100%;max-width:1280px;margin:0 auto;padding-bottom:40px}
.catalog-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}
.catalog-page-head h2{margin:3px 0 5px;font-size:30px}.catalog-page-head p{margin:0}
.catalog-layout{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.4fr);gap:18px;align-items:start}
.catalog-form-card h3,.catalog-list-head h3{margin:0 0 4px}
.catalog-form{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.catalog-field{min-width:0}.catalog-field.full,.catalog-form-actions.full{grid-column:1/-1}
.catalog-field label{margin:0 0 6px;font-size:13px}.catalog-field input,.catalog-field textarea{width:100%}
.catalog-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.catalog-form-actions>div{display:flex;gap:8px;flex-wrap:wrap}
.catalog-list-card{padding:0;overflow:hidden}.catalog-list-head{padding:20px 22px;border-bottom:1px solid var(--border)}.catalog-list-head p{margin:0}
.catalog-list{display:grid}.catalog-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:14px 18px;border-bottom:1px solid #edf0f4}.catalog-row:last-child{border-bottom:0}
.catalog-icon{width:48px;height:48px;border-radius:14px;background:#fff1ef;display:flex;align-items:center;justify-content:center;font-size:22px}.catalog-icon.trainer{background:#eef4ff}
.catalog-main{min-width:0}.catalog-main strong,.catalog-main span,.catalog-main small{display:block}.catalog-main strong{font-size:17px}.catalog-main span{color:#667085;font-size:13px;margin-top:2px}.catalog-main small{color:#8a929f;font-size:12px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.catalog-row .row-actions{justify-content:flex-end}

@media(max-width:1240px){
  .role-admin .slots-calendar-layout{grid-template-columns:1fr}
}
@media(max-width:1120px){
  .role-admin .quick-slot-form.quick-slot-form-v2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .role-admin .quick-slot-form-v2 .lesson-field,.role-admin .quick-slot-form-v2 .trainer-field,.role-admin .quick-slot-form-v2 .room-field,.role-admin .quick-slot-form-v2 .capacity-field,.role-admin .quick-slot-form-v2 .time-field,.role-admin .quick-slot-form-v2 .quick-create-action{grid-column:auto}
  .role-admin .quick-slot-form-v2 .quick-create-action{grid-column:1/-1}
  .catalog-layout{grid-template-columns:1fr}
}
@media(max-width:760px){
  .role-admin .quick-create-panel>summary{align-items:flex-start;flex-direction:column}
  .role-admin .quick-slot-form.quick-slot-form-v2{grid-template-columns:1fr}
  .role-admin .quick-slot-form-v2 .quick-create-action{grid-column:auto}
  .role-admin .quick-create-toolbar{display:grid;grid-template-columns:1fr 1fr}
  .role-admin .catalog-manage-link{justify-content:center;text-align:center}
  .role-admin .repeat-form{grid-template-columns:1fr}
  .catalog-page-head{align-items:flex-start;flex-direction:column}.catalog-page-head .btn{width:100%}
  .catalog-form{grid-template-columns:1fr}.catalog-field.full,.catalog-form-actions.full{grid-column:auto}.catalog-form-actions{align-items:stretch;flex-direction:column}.catalog-form-actions>div{display:grid;grid-template-columns:1fr}.catalog-form-actions .btn,.catalog-form-actions button{width:100%}
  .catalog-row{grid-template-columns:44px minmax(0,1fr) auto}.catalog-row .row-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.catalog-row .row-actions .btn{width:100%;justify-content:center}
}

/* ===== Admin customer CRM / history ===== */
.admin-customers-page,.customer-detail-page{min-width:0;width:100%;padding-bottom:36px}
.customer-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.customer-page-head h2{font-size:30px;margin:4px 0}.customer-page-head p{margin:0}.eyebrow{display:block;color:var(--rz);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:900}
.customer-overview-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.customer-stat{background:#fff;border:1px solid var(--border);border-radius:16px;padding:17px 19px;box-shadow:var(--shadow-soft)}.customer-stat span{display:block;color:var(--muted);font-size:13px;font-weight:700}.customer-stat strong{display:block;margin-top:3px;font-size:28px}
.customer-create-card{padding:0;margin-bottom:16px;overflow:hidden}.customer-create-card>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;cursor:pointer}.customer-create-card>summary::-webkit-details-marker{display:none}.customer-create-card>summary span:first-child strong,.customer-create-card>summary span:first-child small{display:block}.customer-create-card>summary span:first-child strong{font-size:16px}.customer-create-card>summary span:first-child small{margin-top:3px;color:var(--muted);font-size:12px}.customer-create-open{color:var(--rz);font-size:12px;font-weight:900}.customer-create-card[open] .customer-create-open{font-size:0}.customer-create-card[open] .customer-create-open:after{content:'Κλείσιμο';font-size:12px}.customer-create-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 18px 18px;border-top:1px solid var(--border)}.customer-create-form>div{min-width:0}.customer-create-form label{font-size:12px;margin:0 0 6px}.customer-create-form input{height:44px;width:100%}.customer-create-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:2px}.customer-create-actions .inline-check{margin:0;display:flex;align-items:center;gap:7px}.customer-create-actions .inline-check input{width:auto;height:auto}.catalog-row .row-actions form{margin:0}.catalog-row .row-actions form button{margin:0}
.customer-search{display:flex;align-items:flex-end;gap:10px;padding:15px 17px;margin-bottom:16px}.customer-search-field{flex:1}.customer-search-field label{margin:0 0 6px;font-size:13px}.customer-search-field input{height:44px}.customer-search button,.customer-reset{height:44px}.customer-reset{background:#fff!important;color:#596273!important;border:1px solid var(--border)!important;box-shadow:none!important}
.customer-list{padding:0;overflow:hidden}.customer-list-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--border)}.customer-list-head h3{margin:0}.customer-table-wrap{overflow:auto}.customer-table{box-shadow:none;border-radius:0;min-width:960px}.customer-person{display:flex;align-items:center;gap:11px;min-width:230px}.customer-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:13px;background:linear-gradient(135deg,#202938,#4a5568);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}.customer-person strong,.customer-person small{display:block}.customer-person small{margin-top:2px;color:var(--muted);font-size:12px}.customer-view-btn{white-space:nowrap}
.customer-detail-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;padding:20px 22px}.customer-detail-identity{display:flex;align-items:center;gap:16px;min-width:0}.customer-detail-avatar{width:68px;height:68px;border-radius:20px;background:linear-gradient(135deg,#1f2937,#4b5563);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900;flex:0 0 68px}.customer-detail-identity h2{font-size:29px;margin:3px 0 4px}.customer-detail-identity p{margin:0;color:var(--muted)}.customer-back{color:var(--rz);font-size:13px;font-weight:800}.customer-detail-actions{display:flex;gap:8px;flex-wrap:wrap}.customer-detail-actions .btn.secondary{color:#4d5665;border:1px solid var(--border);background:#fff}
.customer-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.customer-metric{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px 17px;box-shadow:var(--shadow-soft)}.customer-metric span,.customer-metric small{display:block;color:var(--muted)}.customer-metric span{font-size:12px;font-weight:800}.customer-metric strong{display:block;font-size:24px;margin:5px 0 1px}.customer-metric small{font-size:11px}
.customer-main-grid{display:grid;grid-template-columns:.9fr 1.4fr;gap:16px;margin-bottom:16px}.section-card-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.section-card-title h3{font-size:20px;margin:3px 0 0}.active-membership-block{border-radius:16px;background:linear-gradient(135deg,#d7352a,#e7463c);color:#fff;padding:18px}.active-membership-block h4{font-size:22px;margin:10px 0 16px}.membership-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.membership-kpis span{background:rgba(255,255,255,.12);border-radius:11px;padding:10px}.membership-kpis small,.membership-kpis strong{display:block}.membership-kpis small{font-size:10px;color:#ffe4e1}.membership-kpis strong{font-size:13px;margin-top:3px}.customer-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.customer-edit-grid label{font-size:12px}.customer-notes-field{grid-column:1/-1}.customer-info-panel button{margin-top:12px}
.customer-history-section{margin-bottom:16px}.customer-upcoming-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.customer-upcoming-item{display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #e9edf2;border-radius:14px;padding:11px 13px;background:#fff}.upcoming-date{width:54px;height:54px;border-radius:13px;background:#fff3f1;color:var(--rz);display:flex;flex-direction:column;align-items:center;justify-content:center}.upcoming-date strong{font-size:20px;line-height:1}.upcoming-date span{font-size:10px;margin-top:4px}.customer-upcoming-item>div:nth-child(2) strong,.customer-upcoming-item>div:nth-child(2) span{display:block}.customer-upcoming-item>div:nth-child(2) span{font-size:12px;color:var(--muted);margin-top:3px}.customer-history-table-wrap{overflow:auto}.customer-history-table{box-shadow:none;min-width:900px}.customer-history-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stacked-history-list{display:grid;gap:9px}.stacked-history-item{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid #e9edf2;border-radius:14px;padding:12px 13px}.stacked-history-item>div:first-child{min-width:0}.stacked-history-item strong,.stacked-history-item span{display:block}.stacked-history-item>div:first-child span{margin-top:3px;color:var(--muted);font-size:12px}.stacked-history-meta{text-align:right;flex:0 0 auto}.stacked-history-meta .pill{margin-top:5px}.stacked-history-meta small{display:block;color:var(--muted);margin-top:4px}
@media(max-width:1180px){.customer-metric-grid{grid-template-columns:repeat(3,1fr)}.customer-main-grid{grid-template-columns:1fr}.customer-upcoming-list{grid-template-columns:1fr}}
@media(max-width:850px){.customer-create-form{grid-template-columns:1fr 1fr}.customer-overview-stats,.customer-metric-grid,.customer-history-grid{grid-template-columns:1fr 1fr}.customer-detail-header{align-items:flex-start}.customer-search{flex-wrap:wrap}.customer-search-field{flex-basis:100%}.customer-main-grid{grid-template-columns:1fr}}
@media(max-width:600px){.customer-create-form{grid-template-columns:1fr}.customer-create-actions{align-items:stretch;flex-direction:column}.customer-create-actions button{width:100%}.customer-overview-stats,.customer-metric-grid,.customer-history-grid{grid-template-columns:1fr}.customer-detail-header{flex-direction:column}.customer-detail-actions{width:100%}.customer-detail-actions .btn{flex:1}.customer-edit-grid{grid-template-columns:1fr}.customer-notes-field{grid-column:auto}.customer-upcoming-item{grid-template-columns:52px minmax(0,1fr)}.customer-upcoming-item>.pill{grid-column:2;justify-self:start}.membership-kpis{grid-template-columns:1fr}.customer-search button,.customer-reset{flex:1}}

/* Admin: assign memberships/packages to customers */
.customer-assign-membership-card{margin-bottom:16px;overflow:visible}
.membership-assign-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.1fr 1fr 1fr;gap:12px;align-items:end}
.membership-assign-grid label,.admin-membership-quick-grid label{font-size:12px;color:#475467;margin-top:0}
.membership-assign-grid input,.membership-assign-grid select,.admin-membership-quick-grid input,.admin-membership-quick-grid select{min-height:46px}
.membership-assign-footer{display:flex;align-items:center;gap:18px;justify-content:space-between;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.assign-summary{font-weight:800;color:#475467;background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:10px 12px;white-space:nowrap}
.assign-checks{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-left:auto}
.assign-checks label,.admin-membership-quick-footer label{display:inline-flex;align-items:center;gap:7px;margin:0;font-size:13px;color:#475467}
.assign-checks input,.admin-membership-quick-footer input{width:auto;margin:0}
.admin-memberships-page{min-width:0;width:100%;padding-bottom:36px}
.admin-page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}
.admin-page-heading h2{margin:3px 0 0}
.admin-membership-quick-card{margin-bottom:18px}
.admin-membership-quick-grid{display:grid;grid-template-columns:1.5fr 1.5fr 1fr 1fr 1.1fr 1fr 1fr;gap:12px;align-items:end}
.admin-membership-quick-footer{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.admin-memberships-table-card{padding:0;overflow:hidden}
.admin-memberships-table-card .table{box-shadow:none;border-radius:0}
.customer-list-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}
.customer-assign-btn{background:#fff;color:var(--rz);border:1px solid #f4c8c4;box-shadow:none}
.customer-assign-btn:hover{background:var(--rz-soft);color:var(--rz-dark)}
@media(max-width:1250px){
  .membership-assign-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-membership-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:850px){
  .membership-assign-grid,.admin-membership-quick-grid{grid-template-columns:1fr 1fr}
  .membership-assign-footer,.admin-membership-quick-footer{align-items:stretch;flex-direction:column}
  .assign-checks{margin-left:0}
  .membership-assign-footer button,.admin-membership-quick-footer button{width:100%}
  .assign-summary{white-space:normal;width:100%}
}
@media(max-width:560px){
  .membership-assign-grid,.admin-membership-quick-grid{grid-template-columns:1fr}
  .assign-checks{display:grid;grid-template-columns:1fr}
}

/* ===== Minimal public welcome/login landing ===== */
.simple-landing{background:#f6f8fb;min-height:100vh}
.simple-landing .topbar{position:relative;height:84px;padding:0 30px;justify-content:flex-start;box-shadow:0 5px 22px rgba(16,24,40,.035);border-bottom:3px solid var(--rz)}
.simple-landing .brand img{height:54px}
.simple-landing .top-actions{display:none}
.simple-landing .container{max-width:none;margin:0;padding:0}
.simple-landing .footer{display:none}
.simple-landing .alert{max-width:520px;margin:22px auto 0}
.landing-shell{min-height:calc(100vh - 84px);display:grid;place-items:center;padding:42px 20px;background:radial-gradient(circle at 50% 0,rgba(215,53,42,.08),transparent 33%),#f6f8fb}
.landing-login-card{width:min(100%,520px);background:#fff;border:1px solid var(--border);border-radius:24px;padding:38px;box-shadow:0 24px 60px rgba(16,24,40,.10)}
.landing-kicker{font-size:12px;letter-spacing:.16em;font-weight:900;color:var(--rz);margin-bottom:12px}
.landing-login-card h1{font-size:38px;line-height:1.08;margin:0 0 12px;letter-spacing:-.025em}
.landing-intro{margin:0 0 28px;color:var(--muted);font-size:17px;line-height:1.55}
.landing-login-form{display:grid;gap:16px}
.landing-login-form label{margin:0 0 7px;font-size:14px}
.landing-login-form input{height:52px;border-radius:13px;background:#fbfcfe}
.landing-login-btn{width:100%;min-height:52px;border-radius:13px;font-size:16px;margin-top:2px}
@media(max-width:720px){
  .simple-landing .topbar{display:flex;min-height:82px;height:82px;padding:0 18px;justify-content:center}
  .simple-landing .brand{justify-content:center}
  .simple-landing .brand img{height:50px;max-width:220px}
  .landing-shell{min-height:calc(100vh - 82px);padding:26px 16px;align-items:start;padding-top:54px}
  .landing-login-card{padding:28px 22px;border-radius:20px}
  .landing-login-card h1{font-size:31px}
  .landing-intro{font-size:16px;margin-bottom:24px}
}

/* Admin own profile */
.admin-profile-page{min-width:0;width:100%}
.admin-profile-page h1{margin:0 0 7px}
.admin-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.admin-profile-card{padding:24px;border-radius:20px}
.admin-profile-card-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.admin-profile-card-head h2{margin:1px 0 4px;font-size:21px}
.admin-profile-card-head p{margin:0;font-size:14px}
.admin-profile-icon{width:44px;height:44px;flex:0 0 44px;display:flex;align-items:center;justify-content:center;border-radius:13px;background:#fff2f0;border:1px solid #ffd8d3;font-size:20px}
.admin-profile-form{display:grid;gap:9px}
.admin-profile-form label{margin-top:5px;font-size:13px;font-weight:800;color:#344054}
.admin-profile-form input{min-height:48px}
.admin-profile-form button{margin-top:10px;justify-self:start;min-width:180px}
.role-admin .top-actions .user-chip{display:inline-flex;align-items:center;gap:9px}
.role-admin .top-actions .avatar{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#202938;color:#fff;font-size:13px;font-weight:900}
@media(max-width:1000px){.admin-profile-grid{grid-template-columns:1fr}}
@media(max-width:600px){.admin-profile-card{padding:18px}.admin-profile-form button{width:100%}.role-admin .top-actions .user-chip span:not(.avatar){display:none}}

/* ===== Admin dashboard widgets v1 ===== */
.admin-dashboard-page{min-width:0;width:100%;padding-bottom:38px}
.admin-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.admin-dashboard-head h1{margin:2px 0 5px;font-size:32px;letter-spacing:-.025em}
.admin-dashboard-head p{margin:0}
.dashboard-date-badge{width:66px;height:66px;border-radius:18px;background:#202938;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;box-shadow:0 12px 28px rgba(16,24,40,.14)}
.dashboard-date-badge span{font-size:26px;font-weight:900}.dashboard-date-badge small{font-size:10px;margin-top:5px;font-weight:900;letter-spacing:.08em}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.dashboard-kpi{min-width:0;display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px 19px;color:#1f242c;box-shadow:var(--shadow-soft);transition:.18s ease}
.dashboard-kpi:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(16,24,40,.09);border-color:#f1c9c5}
.dashboard-kpi-icon{width:44px;height:44px;flex:0 0 44px;border-radius:13px;background:#fff2f0;color:var(--rz);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900}
.dashboard-kpi small{display:block;color:#7c8491;font-weight:700;font-size:12px;margin-bottom:2px}.dashboard-kpi strong{display:block;font-size:25px;line-height:1.05}
.dashboard-widget-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:18px;align-items:start}
.dashboard-widget{padding:0;overflow:hidden;border-radius:20px}
.dashboard-widget-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px 22px;border-bottom:1px solid #edf0f4}
.dashboard-widget-head h2{margin:2px 0 0;font-size:22px}.widget-kicker{display:block;color:var(--rz);font-size:10px;font-weight:900;letter-spacing:.13em}.widget-link{font-size:13px;font-weight:900;color:var(--rz);white-space:nowrap;margin-top:6px}
.booking-widget-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#edf0f4;border-bottom:1px solid #edf0f4}
.booking-widget-summary>div{background:#fafbfc;padding:15px 18px;min-width:0}.booking-widget-summary strong{display:block;font-size:23px}.booking-widget-summary span{display:block;color:#7c8491;font-size:12px;font-weight:700;margin-top:2px}
.occupancy-mini i,.upcoming-capacity i,.package-bar-row i{display:block;height:5px;border-radius:999px;background:#edf0f4;overflow:hidden;margin-top:8px}.occupancy-mini i b,.upcoming-capacity i b,.package-bar-row i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#32a852,#74c981)}
.dashboard-upcoming-list{display:grid}.dashboard-upcoming-item{display:grid;grid-template-columns:50px minmax(0,1fr) 90px;gap:13px;align-items:center;padding:13px 18px;border-bottom:1px solid #edf0f4;color:#20242b;transition:.15s ease}.dashboard-upcoming-item:last-child{border-bottom:0}.dashboard-upcoming-item:hover{background:#fff9f8}
.upcoming-date-box{width:48px;height:48px;border-radius:12px;background:#fff2f0;color:var(--rz);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.upcoming-date-box strong{font-size:18px}.upcoming-date-box span{font-size:10px;font-weight:900;margin-top:3px}
.upcoming-main{min-width:0}.upcoming-main>strong{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-main>span{display:block;color:#7c8491;font-size:12px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upcoming-capacity{text-align:right}.upcoming-capacity>strong{display:block;font-size:15px;color:#1f9b4c}.upcoming-capacity>span{display:block;font-size:10px;color:#808894;font-weight:800;margin-top:1px}.upcoming-capacity.is-full>strong,.upcoming-capacity.is-full>span{color:var(--rz)}.upcoming-capacity.is-full i b{background:var(--rz)}
.dashboard-empty-state{padding:30px 20px;text-align:center;color:#8b929d}.dashboard-empty-state.compact{padding:18px 0}
.report-period-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 18px 0}.report-period-card{border:1px solid #e7ebf0;border-radius:16px;padding:15px;background:#fff}.report-period-card.monthly{background:#fff7f5;border-color:#ffe0dc}.report-period-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:13px}.report-period-title strong{font-size:14px}.report-period-title span{font-size:11px;color:#89919d;font-weight:800}
.report-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.report-mini-grid>div{padding:10px 8px;border-radius:11px;background:#f7f9fb;text-align:center}.monthly .report-mini-grid>div{background:#fff}.report-mini-grid strong{display:block;font-size:21px}.report-mini-grid span{display:block;font-size:9px;color:#7f8792;margin-top:3px;font-weight:800;line-height:1.2}
.package-report-block{padding:20px 20px 22px}.package-report-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.package-report-head strong{font-size:15px}.package-report-head span{font-size:11px;color:#89919d;font-weight:800}.package-bars{display:grid;gap:13px}.package-bar-row>div{display:flex;justify-content:space-between;gap:10px;align-items:center}.package-bar-row span{font-size:12px;color:#505866;font-weight:700}.package-bar-row strong{font-size:12px}.package-bar-row i{height:7px;margin-top:6px}.package-bar-row i b{background:linear-gradient(90deg,var(--rz),#ef6358)}
@media(max-width:1180px){.dashboard-widget-grid{grid-template-columns:1fr}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.admin-dashboard-head{align-items:flex-start}.dashboard-date-badge{width:56px;height:56px;border-radius:15px}.dashboard-kpis{grid-template-columns:1fr 1fr;gap:9px}.dashboard-kpi{padding:13px;gap:9px}.dashboard-kpi-icon{width:37px;height:37px;flex-basis:37px;font-size:16px}.dashboard-kpi strong{font-size:20px}.dashboard-kpi small{font-size:10px}.dashboard-widget-head{padding:16px;display:block}.widget-link{display:inline-block;margin-top:8px}.booking-widget-summary{grid-template-columns:1fr 1fr}.booking-widget-summary>div:last-child{grid-column:1/-1}.dashboard-upcoming-item{grid-template-columns:44px minmax(0,1fr) 70px;padding:12px}.upcoming-date-box{width:42px;height:42px}.report-period-cards{grid-template-columns:1fr;padding:13px 13px 0}.package-report-block{padding:17px 14px 19px}.admin-dashboard-head h1{font-size:27px}}
@media(max-width:480px){.dashboard-kpis{grid-template-columns:1fr}.report-mini-grid span{font-size:8px}.dashboard-upcoming-item{grid-template-columns:42px minmax(0,1fr);}.upcoming-capacity{grid-column:2;text-align:left;display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center}.upcoming-capacity i{grid-column:1/-1;width:100%;margin-top:0}}

/* ===== Trainer ↔ workout type relations ===== */
.relation-field{margin-top:4px}
.relation-field-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:9px}
.relation-field-head label{margin:0!important}
.relation-field-head small{color:#87909d;font-size:11px;font-weight:700}
.relation-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.relation-check{display:flex;align-items:center;gap:10px;min-width:0;padding:11px 12px;border:1px solid #e5e9ef;border-radius:12px;background:#fff;cursor:pointer;transition:.18s ease}
.relation-check:hover{border-color:#f0aaa2;background:#fffafa}
.relation-check:has(input:checked){border-color:#e3342b;background:#fff3f1;box-shadow:0 0 0 2px rgba(227,52,43,.06)}
.relation-check input{width:17px!important;height:17px;flex:0 0 auto;margin:0;accent-color:#e3342b}
.relation-check span{display:block;min-width:0}.relation-check strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.relation-check small{display:block;color:#9299a5;font-size:10px;margin-top:2px}
.relation-check.is-inactive{opacity:.6}
.relation-empty{padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px dashed #d8dee7;color:#667085;font-size:13px}.relation-empty a{color:var(--rz);font-weight:900}
.relation-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.relation-tag{display:inline-flex!important;align-items:center;width:auto!important;padding:4px 8px;border-radius:999px;background:#eef4ff;color:#2d5c9c!important;font-size:11px!important;font-weight:800;line-height:1.2}
.relation-tag.workout-tag{background:#fff2ef;color:#a43a32!important}.relation-tag.empty-tag{background:#f1f3f5;color:#7c8591!important}
.catalog-row-relations{align-items:flex-start}.catalog-row-relations>.pill,.catalog-row-relations>.row-actions{margin-top:5px}
.js-trainer-select:disabled{background:#f4f6f8;color:#8d96a2;cursor:not-allowed}
@media(max-width:700px){.relation-check-grid{grid-template-columns:1fr}.relation-field-head{align-items:flex-start;flex-direction:column;gap:3px}}


/* ===== Dashboard waitlist widget ===== */
.dashboard-waitlist-widget{margin-top:18px;padding:0;overflow:hidden;border-radius:20px}
.waitlist-widget-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#edf0f4;border-bottom:1px solid #edf0f4}
.waitlist-widget-summary>div{background:#fafbfc;padding:15px 20px}
.waitlist-widget-summary strong{display:block;font-size:22px;color:#202938}.waitlist-widget-summary span{display:block;margin-top:2px;color:#7c8491;font-size:12px;font-weight:700}
.dashboard-waitlist-list{display:grid}
.dashboard-waitlist-row{display:grid;grid-template-columns:54px minmax(150px,.9fr) minmax(220px,1.5fr) auto;gap:14px;align-items:center;padding:13px 20px;border-bottom:1px solid #edf0f4;color:#20242b;transition:.15s ease}
.dashboard-waitlist-row:last-child{border-bottom:0}.dashboard-waitlist-row:hover{background:#fff9f8}
.dashboard-wait-position{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff1ef;color:var(--rz);font-weight:900;font-size:14px}
.dashboard-wait-person,.dashboard-wait-class{min-width:0}.dashboard-wait-person strong,.dashboard-wait-class strong{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-wait-person span,.dashboard-wait-class span{display:block;margin-top:3px;color:#7c8491;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-wait-status{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:7px 10px;border-radius:999px;background:#fff2ef;color:var(--rz);font-size:10px;font-weight:900;white-space:nowrap}
.dashboard-wait-status.is-notified{background:#fff5db;color:#9a6a00}
@media(max-width:760px){.waitlist-widget-summary{grid-template-columns:1fr 1fr}.waitlist-widget-summary>div:last-child{grid-column:1/-1}.dashboard-waitlist-row{grid-template-columns:46px minmax(0,1fr) auto;gap:10px;padding:12px 14px}.dashboard-wait-class{grid-column:2/-1}.dashboard-wait-status{grid-row:1;grid-column:3;min-width:auto}.dashboard-wait-position{width:40px;height:40px}.dashboard-wait-person strong,.dashboard-wait-class strong{font-size:13px}}
@media(max-width:480px){.waitlist-widget-summary{grid-template-columns:1fr}.waitlist-widget-summary>div:last-child{grid-column:auto}.dashboard-wait-status{font-size:9px;padding:6px 8px}}


/* ===== Waitlist manager v3 ===== */
.waitlist-dashboard-head p{margin:5px 0 0;color:#8a919c;font-size:12px;font-weight:650}
.waitlist-widget-summary>div.has-open-waitlist{background:#effbf3}.waitlist-widget-summary>div.has-open-waitlist strong{color:#178442}
.dashboard-waitlist-list.modern .dashboard-waitlist-row{grid-template-columns:54px minmax(160px,.85fr) minmax(220px,1.2fr) minmax(130px,auto)}
.dashboard-waitlist-row.has-spot{background:#fbfffc;box-shadow:inset 3px 0 0 #31a65a}.dashboard-waitlist-row.has-spot:hover{background:#f3fbf6}
.dashboard-wait-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.dashboard-open-seat{display:inline-flex;padding:6px 9px;border-radius:999px;background:#e9f8ee;color:#168141;font-size:10px;font-weight:900;white-space:nowrap}
.admin-waitlist-page{min-width:0;padding:24px 28px 50px}.waitlist-page-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}.waitlist-page-head h1{margin:4px 0 2px;font-size:30px}.waitlist-page-head p{margin:0}.waitlist-notify-all{white-space:nowrap}
.waitlist-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.waitlist-kpis>div{background:#fff;border:1px solid #e7ebf0;border-radius:16px;padding:16px 18px;box-shadow:0 4px 14px rgba(24,31,44,.035)}.waitlist-kpis span{display:block;color:#7d8591;font-size:11px;font-weight:850}.waitlist-kpis strong{display:block;font-size:26px;margin:4px 0 2px}.waitlist-kpis small{display:block;color:#9aa1aa;font-size:10px}.waitlist-kpis .has-availability{border-color:#bfe8ca;background:#f4fcf6}.waitlist-kpis .has-availability strong{color:#1d8d48}
.waitlist-filter-card{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(150px,.7fr) minmax(140px,.55fr) minmax(140px,.55fr) auto;gap:10px;align-items:end;padding:14px;margin-bottom:16px}.waitlist-filter-field{min-width:0}.waitlist-filter-field label{display:block;font-size:10px;font-weight:900;color:#6f7885;margin:0 0 5px}.waitlist-filter-card input,.waitlist-filter-card select{width:100%;min-height:40px;border:1px solid #dfe4ea;border-radius:10px;padding:8px 10px;background:#fff}.waitlist-filter-actions{display:flex;gap:7px;align-items:center;white-space:nowrap}
.waitlist-list-card{padding:0;overflow:visible}.waitlist-list-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;border-bottom:1px solid #ebedf1}.waitlist-list-head>div strong{display:block;font-size:15px}.waitlist-list-head>div span{display:block;color:#8b929d;font-size:11px;margin-top:2px}.waitlist-auto-note{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#ebf8ef;color:#1c8746;font-size:10px;font-weight:900;white-space:nowrap}
.waitlist-admin-list{display:grid}.waitlist-admin-row{position:relative;display:grid;grid-template-columns:62px minmax(160px,.9fr) minmax(210px,1.15fr) 92px 120px minmax(160px,auto);gap:14px;align-items:center;padding:15px 18px;border-bottom:1px solid #eceff3;background:#fff}.waitlist-admin-row:last-child{border-bottom:0}.waitlist-admin-row.has-open-spot{background:#fbfffc;box-shadow:inset 3px 0 0 #2faa59}.waitlist-rank{width:50px;height:50px;border-radius:15px;background:#fff2ef;color:var(--rz);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.waitlist-rank span{font-weight:950;font-size:16px}.waitlist-rank small{font-size:8px;margin-top:4px;font-weight:850;letter-spacing:.04em}
.waitlist-person,.waitlist-workout{min-width:0}.waitlist-person strong,.waitlist-workout strong{display:block;font-size:13px;color:#252c35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.waitlist-person>a:hover strong{color:var(--rz)}.waitlist-person span,.waitlist-workout span{display:block;color:#6f7885;font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.waitlist-person small,.waitlist-workout small{display:block;color:#9aa1ac;font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.waitlist-capacity{text-align:center}.waitlist-capacity>strong{display:block;font-size:16px}.waitlist-capacity>span:not(.open-spot-pill){display:block;font-size:9px;color:#8c939e;font-weight:800}.open-spot-pill{display:inline-flex;margin-top:4px;padding:5px 7px;border-radius:999px;background:#e8f8ee;color:#178343;font-size:9px;font-weight:900;white-space:nowrap}.waitlist-state{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.waitlist-state small{color:#969da7;font-size:9px}.waitlist-status-pill{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:9px;font-weight:950;white-space:nowrap}.status-waiting{background:#fff1ef;color:#b13f35}.status-notified{background:#fff5d9;color:#936400}.status-booked{background:#eaf8ee;color:#177c3f}.status-cancelled{background:#f1f3f5;color:#68717d}
.waitlist-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.waitlist-mail-btn{background:#249d50!important;border-color:#249d50!important}.waitlist-edit-details{position:relative}.waitlist-edit-details>summary{list-style:none;cursor:pointer;border:1px solid #dde2e8;border-radius:9px;padding:8px 10px;background:#fff;color:#4f5966;font-size:10px;font-weight:900;white-space:nowrap}.waitlist-edit-details>summary::-webkit-details-marker{display:none}.waitlist-edit-details[open]>summary{border-color:#e5aaa4;color:var(--rz);background:#fff8f7}.waitlist-edit-form{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:390px;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;background:#fff;border:1px solid #e1e5ea;border-radius:14px;box-shadow:0 18px 45px rgba(20,28,40,.15)}.waitlist-edit-form label{font-size:10px;font-weight:900;color:#606976}.waitlist-edit-form label.full{grid-column:1/-1}.waitlist-edit-form select,.waitlist-edit-form input,.waitlist-edit-form textarea{display:block;width:100%;margin-top:5px;border:1px solid #dfe4e9;border-radius:9px;padding:8px 9px;background:#fff}.waitlist-edit-form label small{display:block;color:#989fa9;font-size:8px;margin-top:3px}.waitlist-edit-form button{justify-self:start}
@media(max-width:1220px){.waitlist-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.waitlist-filter-card{grid-template-columns:1fr 1fr 1fr}.waitlist-filter-field.wide{grid-column:1/-1}.waitlist-filter-actions{grid-column:1/-1}.waitlist-admin-row{grid-template-columns:54px minmax(145px,.9fr) minmax(190px,1fr) 80px 110px}.waitlist-row-actions{grid-column:2/-1;justify-content:flex-start}.dashboard-waitlist-list.modern .dashboard-waitlist-row{grid-template-columns:50px minmax(140px,.8fr) minmax(200px,1fr) auto}}
@media(max-width:760px){.admin-waitlist-page{padding:16px 13px 36px}.waitlist-page-head{align-items:flex-start;flex-direction:column}.waitlist-page-head h1{font-size:25px}.waitlist-kpis{grid-template-columns:1fr 1fr;gap:8px}.waitlist-kpis>div{padding:13px}.waitlist-kpis strong{font-size:22px}.waitlist-filter-card{grid-template-columns:1fr 1fr}.waitlist-filter-field.wide,.waitlist-filter-actions{grid-column:1/-1}.waitlist-list-head{align-items:flex-start;flex-direction:column}.waitlist-admin-row{grid-template-columns:48px minmax(0,1fr) auto;gap:9px;padding:13px}.waitlist-rank{width:44px;height:44px;border-radius:13px}.waitlist-person{grid-column:2}.waitlist-workout{grid-column:2/-1}.waitlist-capacity{grid-column:3;grid-row:1/3}.waitlist-state{grid-column:2}.waitlist-row-actions{grid-column:2/-1;justify-content:flex-start;flex-wrap:wrap}.waitlist-edit-form{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:75vh;overflow:auto}.dashboard-waitlist-list.modern .dashboard-waitlist-row{grid-template-columns:44px minmax(0,1fr) auto}.dashboard-wait-meta{grid-column:2/-1;align-items:flex-start;flex-direction:row;flex-wrap:wrap}}
@media(max-width:480px){.waitlist-kpis{grid-template-columns:1fr}.waitlist-filter-card{grid-template-columns:1fr}.waitlist-filter-field.wide,.waitlist-filter-actions{grid-column:auto}.waitlist-filter-actions{flex-wrap:wrap}.waitlist-admin-row{grid-template-columns:44px minmax(0,1fr)}.waitlist-capacity{grid-column:2;grid-row:auto;text-align:left;display:flex;align-items:center;gap:7px}.waitlist-state{grid-column:2}.waitlist-row-actions{grid-column:2}.waitlist-workout{grid-column:2}.waitlist-person{grid-column:2}.waitlist-edit-form{grid-template-columns:1fr}.waitlist-edit-form label.full{grid-column:auto}}
.waitlist-customer-state{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.waitlist-open-message{display:inline-flex;padding:6px 8px;border-radius:999px;background:#e8f8ee;color:#178343;font-size:9px;font-weight:900;white-space:nowrap}@media(max-width:700px){.waitlist-customer-state{align-items:flex-start}}


/* Admin settings: branding + SMTP */
.admin-settings-page{min-width:0;padding:34px 34px 48px;width:100%;max-width:1320px;margin:0 auto}.settings-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.settings-head h1{font-size:32px;margin:4px 0 6px}.settings-grid{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(460px,1.2fr);gap:20px;align-items:start}.settings-card{padding:0;overflow:hidden}.settings-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#fbfcfe)}.settings-card-head>div{display:flex;align-items:center;gap:12px}.settings-card-head h2{margin:0 0 3px;font-size:20px}.settings-card-head p{margin:0;color:var(--muted);font-size:13px}.settings-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#fff1ef;color:var(--rz);font-weight:900}.settings-form{padding:22px}.settings-form label{font-size:13px;margin-top:0;margin-bottom:7px}.settings-form>input,.settings-form>select,.settings-row{margin-bottom:16px}.settings-row.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.brand-preview{display:flex;align-items:center;gap:14px;border:1px solid var(--border);background:#f8fafc;border-radius:14px;padding:13px;margin-bottom:12px}.brand-preview img{width:124px;height:64px;object-fit:contain;background:#fff;border-radius:10px;padding:6px;border:1px solid #edf0f4}.brand-preview div{display:flex;flex-direction:column;gap:4px}.brand-preview small{color:var(--muted)}.inline-check{display:flex!important;align-items:center;gap:9px;font-weight:700!important;margin:12px 0 18px!important}.inline-check input{width:auto}.smtp-state{font-size:11px;font-weight:900;padding:6px 9px;border-radius:999px}.smtp-state.on{background:#eafaf0;color:#137a3d}.smtp-state.off{background:#f1f3f5;color:#68707c}.smtp-switch{display:flex!important;align-items:center;gap:10px;margin:0 0 20px!important}.smtp-switch input{display:none}.smtp-switch span{width:42px;height:24px;border-radius:99px;background:#cdd2da;position:relative;transition:.2s}.smtp-switch span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:.2s}.smtp-switch input:checked+span{background:var(--rz)}.smtp-switch input:checked+span:after{transform:translateX(18px)}.smtp-test-form{border-top:1px solid var(--border);padding:18px 22px 22px;background:#fafbfc;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.smtp-test-form label{margin:0 0 7px;font-size:13px}.smtp-test-form .btn{height:47px}.side-logo img,.brand img{object-fit:contain}.landing-kicker{max-width:100%;overflow-wrap:anywhere}
@media(max-width:1050px){.admin-settings-page{padding:26px 18px 36px}.settings-grid{grid-template-columns:1fr}}
@media(max-width:720px){.admin-settings-page{padding:18px 14px 30px}.settings-row.two,.smtp-test-form{grid-template-columns:1fr}.settings-card-head{align-items:flex-start}.brand-preview{align-items:flex-start;flex-direction:column}.brand-preview img{width:160px}.smtp-test-form .btn{width:100%}}

/* Admin sidebar current-page state */
.role-admin .sidebar a.active,
.role-admin .sidebar a[aria-current="page"]{
  background:linear-gradient(90deg,#fff0ee 0%,#fff8f7 100%);
  color:var(--rz);
  box-shadow:inset 4px 0 0 var(--rz);
}
.role-admin .sidebar a.active:hover,
.role-admin .sidebar a[aria-current="page"]:hover{
  background:linear-gradient(90deg,#ffe9e6 0%,#fff6f4 100%);
  color:var(--rz-dark);
}


/* Admin direct booking + simplified lessons (no rooms/trainers) */
.admin-quick-booking-card{padding:18px 20px;margin-bottom:18px;border:1px solid #eadfdc;background:linear-gradient(135deg,#fff 0%,#fff9f8 100%)}
.admin-quick-booking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.admin-quick-booking-head h3{margin:3px 0 2px;font-size:21px}.admin-quick-booking-head p{margin:0}.admin-override-badge{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;background:#fff0ed;color:var(--rz);border:1px solid #ffd3ce;font-size:11px;font-weight:900;letter-spacing:.05em;white-space:nowrap}
.admin-quick-booking-form{display:grid;grid-template-columns:minmax(210px,1.1fr) minmax(280px,1.6fr) minmax(180px,.8fr) auto;gap:10px;align-items:end}.admin-quick-booking-form label{font-size:12px;font-weight:900;color:#5d6673}.admin-quick-booking-form select,.admin-quick-booking-form button{height:46px}.admin-quick-booking-form button{white-space:nowrap}
.selected-class-admin-add{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);gap:18px;align-items:end;padding:15px 16px;margin:0 0 20px;border:1px solid #ffd9d5;background:#fff9f8;border-radius:14px}.selected-class-admin-add>div strong,.selected-class-admin-add>div small{display:block}.selected-class-admin-add>div small{margin-top:4px;color:var(--muted)}.selected-class-admin-add form{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(150px,.8fr) auto;gap:9px}.selected-class-admin-add select,.selected-class-admin-add button{height:44px}.over-capacity-stat{background:#fff3ef!important;border-color:#ffd2ca!important}.over-capacity-stat strong{color:#c8342b}
.role-admin .quick-slot-form.quick-slot-form-v2.no-trainer-fields{grid-template-columns:minmax(220px,2fr) minmax(100px,.65fr) minmax(130px,.8fr) minmax(130px,.8fr) auto}.role-admin .quick-slot-form-v2.no-trainer-fields .lesson-field,.role-admin .quick-slot-form-v2.no-trainer-fields .capacity-field,.role-admin .quick-slot-form-v2.no-trainer-fields .time-field,.role-admin .quick-slot-form-v2.no-trainer-fields .quick-create-action{grid-column:auto}.role-admin .quick-slot-form-v2.no-trainer-fields .quick-create-action{display:flex;align-items:end}.role-admin .quick-slot-form-v2.no-trainer-fields .quick-create-action button{width:100%}
.compact-edit-form.no-trainer-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.repeat-form.no-trainer-fields{width:680px;grid-template-columns:repeat(3,1fr)}
@media(max-width:1100px){.admin-quick-booking-form{grid-template-columns:1fr 1fr}.admin-quick-booking-form button{width:100%}.selected-class-admin-add{grid-template-columns:1fr}.role-admin .quick-slot-form.quick-slot-form-v2.no-trainer-fields{grid-template-columns:repeat(2,1fr)}.role-admin .quick-slot-form-v2.no-trainer-fields .quick-create-action{grid-column:1/-1}}
@media(max-width:760px){.admin-quick-booking-head{display:block}.admin-override-badge{margin-top:9px}.admin-quick-booking-form,.selected-class-admin-add form,.role-admin .quick-slot-form.quick-slot-form-v2.no-trainer-fields,.compact-edit-form.no-trainer-fields{grid-template-columns:1fr}.repeat-form.no-trainer-fields{width:100%;grid-template-columns:1fr}.selected-class-admin-add{padding:13px}.booking-summary-row{grid-template-columns:1fr 1fr}}

.booking-summary-row{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:760px){.booking-summary-row{grid-template-columns:1fr 1fr}}

/* Admin quick booking flow: date -> lesson -> slot */
.admin-booking-step-form{
  grid-template-columns:minmax(220px,1.25fr) minmax(155px,.7fr) minmax(190px,.9fr) minmax(210px,1fr) minmax(165px,.75fr) auto;
  gap:12px;
}
.admin-booking-step-form .booking-flow-field{min-width:0}
.admin-booking-step-form input[type="date"],
.admin-booking-step-form select,
.admin-booking-step-form button{height:48px;min-width:0;width:100%}
.admin-booking-step-form input[type="date"]{padding:0 13px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);font:inherit;box-sizing:border-box}
.admin-booking-step-form select:disabled{background:#f4f5f7;color:#a1a7b0;cursor:not-allowed}
.admin-booking-step-form button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.booking-step-number{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:5px;border-radius:50%;background:#fff0ed;color:var(--rz);border:1px solid #ffd5cf;font-size:11px;font-weight:900;vertical-align:middle}
.booking-slot-help{display:block;min-height:16px;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.35}
@media(max-width:1380px){
  .admin-booking-step-form{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-booking-step-form button{align-self:end}
}
@media(max-width:900px){
  .admin-booking-step-form{grid-template-columns:1fr 1fr}
  .admin-booking-step-form .customer-field{grid-column:1/-1}
}
@media(max-width:620px){
  .admin-booking-step-form{grid-template-columns:1fr}
  .admin-booking-step-form .customer-field{grid-column:auto}
}

/* Admin mobile layout fix: off-canvas sidebar must not reserve page height */
@media(max-width:1050px){
  body.role-admin .sidebar-layout{
    display:block;
    width:100%;
  }
  body.role-admin .sidebar{
    position:fixed!important;
    left:0;
    top:0;
    bottom:0;
    width:min(86vw,340px);
    height:100%;
    min-height:0!important;
    max-height:100%;
    overflow-y:auto;
    overscroll-behavior:contain;
    transform:translateX(-105%);
    transition:transform .25s ease;
    z-index:1000;
    border-radius:0 22px 22px 0;
    box-shadow:18px 0 42px rgba(16,24,40,.18);
  }
  body.role-admin.sidebar-open .sidebar{
    transform:translateX(0);
  }
  body.role-admin .sidebar-layout > *:not(.sidebar):not(.sidebar-backdrop){
    min-width:0;
    width:100%;
  }
  body.role-admin .sidebar-backdrop{
    display:block;
    opacity:0;
    pointer-events:none;
    position:fixed;
    inset:0;
    background:rgba(16,24,40,.36);
    z-index:999;
    transition:opacity .25s ease;
  }
  body.role-admin.sidebar-open .sidebar-backdrop{
    opacity:1;
    pointer-events:auto;
  }
}

@media(max-width:720px){
  body.role-admin .container{
    margin:0 auto;
    padding:0 14px 24px;
  }
  body.role-admin .admin-settings-page{
    padding-top:18px;
  }
}

/* Admin slots: no new lessons on weekends; existing slots are still visible. */
.admin-cal-day.is-weekend:not(.selected){background:#f4f5f7;color:#8b929c;border-color:#eef0f3;}
.admin-cal-day.is-weekend:not(.selected):hover{background:#eceef2;color:#697280;}
.admin-cal-day.is-weekend.selected{background:#636b78;box-shadow:0 8px 19px rgba(60,70,85,.15);}
.weekend-create-warning{margin:0 16px 16px;border:1px solid #f2d6cc;background:#fff8f4;color:#874d30;border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.5;font-weight:650;}
.weekdays-repeat-help{grid-column:1/-1;border:1px solid #e8ebf0;background:#f7f8fa;border-radius:11px;padding:10px 12px;color:#5d6471;font-size:13px;line-height:1.4;}
