/* ═══════════════════════════════════════════════════
   BizVive Gym Pro - Member Portal v7.0
   K2D font · Mobile-first · Full-screen responsive
   ═══════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden}

:root{
  --ind:#2563EB;--ind-d:#1D4ED8;--ind-l:#EFF6FF;--ind-ll:#EFF6FF;
  --gold:#B7860C;--gold-d:#9A7209;--gold-l:#FEF9E7;
  --navy:#0D1B2E;--navy-d:#091525;
  --grn:#10B981;--grn-l:#ECFDF5;--grn-b:#6EE7B7;
  --red:#DC2626;--red-l:#FEF2F2;--red-b:#FCA5A5;
  --amb:#D97706;--amb-l:#FFFBEB;
  --pur:#7c3aed;
  --s9:#0D1B2E;--s8:#152238;--s6:#3D5166;--s5:#5a7a96;
  --s4:#8BA3BC;--s2:#E2E8F2;--s1:#EDF1F7;--s05:#F8FAFC;
  --bg:#F0F4F8;--sur:#FFFFFF;
  --font:'Inter','Segoe UI',-apple-system,sans-serif;
  --r:14px;--rsm:10px;--rxs:7px;
  --sh:0 1px 4px rgba(13,27,46,.07),0 1px 2px rgba(13,27,46,.04);
  --shmd:0 4px 18px rgba(13,27,46,.09);
  --shlg:0 20px 60px rgba(13,27,46,.16);
  --ease:.18s cubic-bezier(.4,0,.2,1);
  --topbar:62px;--tabs:48px;--nav:60px;
}

/* BASE */
.bgp-wrap{font-family:var(--font);font-size:14px;color:var(--s9);line-height:1.5;-webkit-font-smoothing:antialiased;background:var(--bg);min-height:100svh;width:100%;padding-bottom:calc(var(--nav) + env(safe-area-inset-bottom,0px))}

/* LOGIN */
.bgp-login-screen{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:linear-gradient(150deg,var(--navy-d) 0%,var(--navy) 55%,#0a1428 100%)}
.bgp-login-card{width:100%;max-width:400px;background:var(--sur);border-radius:var(--r);padding:40px 32px;box-shadow:var(--shlg);border-top:3px solid var(--gold)}
.bgp-login-logo{text-align:center;margin-bottom:32px}
.bgp-login-logo-icon{width:64px;height:64px;background:linear-gradient(135deg,var(--ind) 0%,#1e40af 100%);border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 14px;box-shadow:0 8px 24px rgba(37,99,235,.35)}
.bgp-login-logo h2{font-size:22px;font-weight:800;color:var(--s9);margin-bottom:4px}
.bgp-login-logo p{font-size:13px;color:var(--s5)}
.bgp-form-group{margin-bottom:16px}
.bgp-form-group label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--s5);margin-bottom:6px}
.bgp-input{width:100%;height:46px;padding:0 14px;border:1.5px solid var(--s2);border-radius:var(--rsm);font-size:14px;color:var(--s9);background:var(--sur);font-family:var(--font);outline:none;transition:border-color var(--ease),box-shadow var(--ease);-webkit-appearance:none}
.bgp-input:focus{border-color:var(--ind);box-shadow:0 0 0 3px rgba(13,27,62,.14)}
.bgp-input::placeholder{color:var(--s4)}
textarea.bgp-input{height:auto;padding:12px 14px;resize:vertical;line-height:1.6}
.bgp-login-hint{font-size:12px;color:var(--s4);text-align:center;margin-top:14px}
#bgp-login-msg{min-height:20px;font-size:13px;font-weight:600;text-align:center;margin-top:10px}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font);font-weight:700;cursor:pointer;border:none;transition:all var(--ease);-webkit-tap-highlight-color:transparent;white-space:nowrap;text-decoration:none}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}
.btn-primary{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);color:#fff;border-radius:var(--rsm);padding:12px 22px;font-size:14px;min-height:46px;box-shadow:0 2px 8px rgba(37,99,235,.28)}
.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8 0%,#1e40af 100%);transform:translateY(-1px);box-shadow:0 6px 18px rgba(37,99,235,.35)}
.btn-primary:active:not(:disabled){transform:translateY(0)}
.btn-ghost{background:rgba(255,255,255,.15);color:#fff;border-radius:20px;padding:6px 14px;font-size:12px}
.btn-ghost:hover{background:rgba(255,255,255,.25)}
.btn-outline{background:var(--sur);color:var(--s6);border:1.5px solid var(--s2);border-radius:var(--rsm);padding:8px 14px;font-size:13px;min-height:38px}
.btn-outline:hover{background:var(--s05);border-color:var(--s4)}
.btn-green{background:var(--grn);color:#fff;border-radius:var(--rsm);padding:9px 16px;font-size:13px;min-height:40px}
.btn-green:hover:not(:disabled){background:#059669;transform:translateY(-1px)}
.btn-red{background:var(--red-l);color:var(--red);border:1.5px solid var(--red-b);border-radius:var(--rxs);padding:5px 10px;font-size:12px;min-height:30px}
.btn-red:hover{background:var(--red);color:#fff}
.btn-block{width:100%}

/* TOPBAR */
.bgp-topbar{position:sticky;top:0;z-index:100;height:var(--topbar);background:linear-gradient(180deg,var(--navy) 0%,var(--navy-d) 100%);border-bottom:3px solid var(--gold);padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 2px 12px rgba(13,27,46,.3)}
.bgp-topbar-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.bgp-avatar{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.22);border:2px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:#fff;flex-shrink:0;text-transform:uppercase}
.bgp-topbar-name{font-size:15px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bgp-topbar-sub{font-size:11px;color:rgba(255,255,255,.65);white-space:nowrap}
.bgp-topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}

/* DESKTOP TABS */
.bgp-tabs{display:none;position:sticky;top:var(--topbar);z-index:90;background:var(--sur);border-bottom:1.5px solid var(--s2);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.bgp-tabs-inner{display:flex;max-width:960px;margin:0 auto;padding:0 24px;height:var(--tabs);align-items:stretch;gap:2px}
.bgp-tab{display:flex;align-items:center;gap:7px;padding:0 18px;font-family:var(--font);font-size:13px;font-weight:700;color:var(--s4);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:all var(--ease);white-space:nowrap;-webkit-tap-highlight-color:transparent}
.bgp-tab:hover{color:var(--ind);background:var(--ind-l)}
.bgp-tab.active{color:var(--ind);border-bottom-color:var(--ind)}

/* MOBILE NAV */
.bgp-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--nav) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--sur);border-top:1.5px solid var(--s2);display:flex;z-index:200;box-shadow:0 -4px 20px rgba(0,0,0,.08)}
.bgp-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:none;font-family:var(--font);color:var(--s4);cursor:pointer;transition:color var(--ease);-webkit-tap-highlight-color:transparent;padding:6px 4px}
.bgp-nav-item .ni{font-size:22px;line-height:1;transition:transform var(--ease)}
.bgp-nav-item .nl{font-size:10px;font-weight:700;letter-spacing:.2px;text-transform:uppercase}
.bgp-nav-item.active{color:var(--ind)}
.bgp-nav-item.active .ni{transform:translateY(-2px)}

/* PAGE */
.bgp-page{display:none;padding:16px;max-width:960px;margin:0 auto;width:100%;animation:pgIn .2s ease}
.bgp-page.active{display:block}
@keyframes pgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* CARDS */
.card{background:var(--sur);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;margin-bottom:14px;width:100%}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 0;gap:8px}
.card-title{font-size:14px;font-weight:800;color:var(--s9);display:flex;align-items:center;gap:7px}
.card-sub{font-size:12px;color:var(--s4);white-space:nowrap}
.card-body{padding:14px 18px 18px}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;font-family:var(--font);white-space:nowrap}
.badge-green{background:#DCFCE7;color:#15803D}
.badge-red{background:#FEE2E2;color:#dc2626}
.badge-amber{background:#FEF3C7;color:#92400E}
.badge-ind{background:var(--ind-l);color:var(--ind-d)}
.badge-grey{background:var(--s1);color:var(--s6)}
.badge-white{background:rgba(255,255,255,.2);color:#fff}

/* TOAST */
.bgp-toast{position:fixed;top:16px;left:50%;transform:translateX(-50%) translateY(-90px);background:var(--s9);color:#fff;padding:10px 20px;border-radius:24px;font-size:13px;font-weight:700;z-index:9999;transition:transform .28s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;max-width:calc(100vw - 32px);box-shadow:var(--shmd);pointer-events:none}
.bgp-toast.show{transform:translateX(-50%) translateY(0)}
.bgp-toast.ok{background:var(--grn)}
.bgp-toast.err{background:var(--red)}

/* BOTTOM SHEET */
.sheet-bg{position:fixed;inset:0;background:rgba(15,12,41,.55);z-index:500;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;backdrop-filter:blur(2px)}
.sheet-bg.open{opacity:1;visibility:visible}
.sheet{position:fixed;bottom:0;left:0;right:0;background:var(--sur);border-radius:24px 24px 0 0;padding:12px 20px calc(20px + env(safe-area-inset-bottom,0px));max-height:92svh;overflow-y:auto;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:501}
.sheet-bg.open .sheet{transform:translateY(0)}
.sheet-handle{width:40px;height:4px;background:var(--s2);border-radius:2px;margin:0 auto 18px}
.sheet-title{font-size:17px;font-weight:800;margin-bottom:18px}

/* HOME / OVERVIEW */
.checkin-hero{border-radius:var(--r);padding:22px 20px;margin-bottom:14px;color:#fff;position:relative;overflow:hidden}
.checkin-hero::before{content:'';position:absolute;right:-20px;top:-20px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.07)}
.checkin-hero.s-none{background:linear-gradient(135deg,var(--ind) 0%,var(--pur) 100%)}
.checkin-hero.s-in{background:linear-gradient(135deg,#059669 0%,#059669 100%)}
.checkin-hero.s-done{background:linear-gradient(135deg,#3D5166 0%,#0d1b2e 100%)}
.ch-label{font-size:11px;font-weight:700;opacity:.75;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.ch-time{font-size:28px;font-weight:900;letter-spacing:-1px;line-height:1.1;margin-bottom:14px}
.ch-time span{opacity:.55;font-size:18px;margin:0 6px}
.ch-actions{display:flex;gap:10px}
.ch-btn{flex:1;padding:12px;border-radius:var(--rsm);font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;border:none;transition:all var(--ease);min-height:44px}
.ch-btn.primary{background:#fff;color:var(--ind)}
.ch-btn.primary:hover{opacity:.92}
.ch-btn.secondary{background:rgba(255,255,255,.18);color:#fff;border:1.5px solid rgba(255,255,255,.35)}
.ch-btn.secondary:hover{background:rgba(255,255,255,.28)}
.ch-btn:disabled{opacity:.5;cursor:not-allowed}
#ch-msg{font-size:13px;font-weight:600;margin-top:10px;opacity:.9;min-height:20px}

.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.stat-pill{background:var(--sur);border-radius:var(--rsm);padding:14px 10px;text-align:center;box-shadow:var(--sh)}
.stat-pill .sv{font-size:22px;font-weight:900;color:var(--ind);line-height:1;word-break:break-all}
.stat-pill .sl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--s5);margin-top:4px}
.stat-pill.g .sv{color:var(--grn)}
.stat-pill.r .sv{color:var(--red)}
.stat-pill.a .sv{color:var(--amb)}

.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.profile-cell{background:var(--s05);border:1px solid var(--s1);border-radius:var(--rxs);padding:10px 12px;min-width:0}
.pc-l{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--s4);margin-bottom:3px}
.pc-v{font-size:13px;font-weight:700;color:var(--s9);word-break:break-word}

.att-cal{display:flex;flex-wrap:wrap;gap:6px}
.att-chip{background:var(--ind-l);border:1.5px solid #C7D2FE;border-radius:9px;padding:7px 9px;text-align:center;min-width:42px}
.ac-d{font-size:15px;font-weight:800;color:var(--ind);line-height:1}
.ac-m{font-size:9px;font-weight:700;color:var(--ind);text-transform:uppercase}
.ac-t{font-size:9px;color:var(--s4);background:#fff;border-radius:6px;padding:1px 4px;margin-top:3px;display:block}

/* WORKOUT PAGE */
.day-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-bottom:14px}
.day-strip::-webkit-scrollbar{display:none}
.day-chip{flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:9px 12px;border-radius:var(--rsm);cursor:pointer;background:var(--sur);border:1.5px solid var(--s2);transition:all var(--ease);min-width:50px;-webkit-tap-highlight-color:transparent}
.dc-d{font-size:17px;font-weight:900;line-height:1}
.dc-m{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;opacity:.65;margin-top:2px}
.dc-dot{width:5px;height:5px;border-radius:50%;background:var(--grn);margin-top:4px}
.day-chip.logged{border-color:var(--grn-b);background:var(--grn-l);color:#15803d}
.day-chip.today{border-color:var(--ind);background:var(--ind-l);color:var(--ind-d)}
.day-chip.active{background:var(--ind);border-color:var(--ind);color:#fff}
.day-chip.active .dc-dot{background:#fff}
.day-chip.logged.active{background:var(--grn);border-color:var(--grn)}

.wo-session-name{width:100%;height:42px;padding:0 14px;border:1.5px solid var(--s2);border-radius:var(--rsm);font-size:14px;font-weight:700;color:var(--s9);background:var(--s05);font-family:var(--font);outline:none;margin-bottom:12px;transition:border-color var(--ease)}
.wo-session-name:focus{border-color:var(--ind);background:#fff;box-shadow:0 0 0 3px rgba(79,70,229,.1)}

.ex-card{border:1.5px solid var(--s2);border-radius:var(--rsm);margin-bottom:8px;overflow:hidden;transition:border-color var(--ease),background var(--ease);background:var(--sur)}
.ex-card.done{border-color:var(--grn-b);background:var(--grn-l)}
.ex-card.skipped{border-color:#FDE68A;background:var(--amb-l)}
.ex-card-top{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;flex-wrap:nowrap}
.ex-num{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;background:var(--s1);color:var(--s5);flex-shrink:0;transition:all var(--ease)}
.ex-card.done .ex-num{background:var(--grn);color:#fff}
.ex-card.skipped .ex-num{background:var(--amb);color:#fff}
.ex-info{flex:1;min-width:0}
.ex-name{font-size:13px;font-weight:700;color:var(--s9);word-break:break-word;line-height:1.4}
.ex-meta{font-size:11px;color:var(--s4);margin-top:2px}
.ex-actions{display:flex;gap:5px;flex-shrink:0;align-items:center;padding-top:2px}
.ex-btn{padding:5px 11px;border-radius:20px;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--font);transition:all var(--ease);border:1.5px solid;min-height:28px;-webkit-tap-highlight-color:transparent}
.ex-btn-done{border-color:var(--grn);color:var(--grn);background:#fff}
.ex-btn-done.on,.ex-btn-done:hover{background:var(--grn);color:#fff}
.ex-btn-skip{border-color:var(--amb);color:#92400E;background:#fff}
.ex-btn-skip.on,.ex-btn-skip:hover{background:var(--amb);color:#fff}
.ex-btn-del{width:28px;height:28px;padding:0;border-radius:50%;border-color:var(--red-b);color:var(--red);background:var(--red-l);display:flex;align-items:center;justify-content:center;font-size:13px}
.ex-btn-del:hover{background:var(--red);color:#fff}
.ex-skip-note{display:none;padding:0 14px 10px 54px}
.ex-skip-note.show{display:block}
.ex-skip-input{width:100%;height:34px;padding:0 10px;border:1.5px solid var(--amb);border-radius:var(--rxs);font-size:12px;font-family:var(--font);color:var(--s9);outline:none;background:#fff}

.wo-progress{margin:14px 0 4px}
.wo-progress-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.wo-plabel{font-size:12px;font-weight:600;color:var(--s5)}
.wo-pcount{font-size:12px;font-weight:800;color:var(--ind)}
.wo-ptrack{height:6px;background:var(--s2);border-radius:6px;overflow:hidden}
.wo-pfill{height:100%;background:linear-gradient(90deg,var(--ind),var(--grn));border-radius:6px;transition:width .35s ease}

.bgp-fab{position:fixed;right:20px;bottom:calc(var(--nav) + env(safe-area-inset-bottom,0px) + 14px);z-index:150;width:52px;height:52px;border-radius:50%;background:var(--ind);color:#fff;border:none;cursor:pointer;font-size:26px;box-shadow:0 4px 18px rgba(79,70,229,.45);display:flex;align-items:center;justify-content:center;transition:all var(--ease);-webkit-tap-highlight-color:transparent}
.bgp-fab:hover{background:var(--ind-d);transform:scale(1.08)}
.bgp-fab:active{transform:scale(.95)}

.ex-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.efg-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--s4);margin-bottom:5px}
.ex-form-input{width:100%;height:40px;padding:0 10px;border:1.5px solid var(--s2);border-radius:var(--rxs);font-size:14px;font-family:var(--font);color:var(--s9);outline:none;transition:border-color var(--ease);-webkit-appearance:none;background:#fff}
.ex-form-input:focus{border-color:var(--ind);box-shadow:0 0 0 3px rgba(79,70,229,.1)}
select.ex-form-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:28px}
.wo-empty{text-align:center;padding:32px 20px;color:var(--s4)}
.wo-empty .wei{font-size:40px;margin-bottom:10px;display:block}
.wo-empty .wet{font-size:15px;font-weight:700;color:var(--s5);margin-bottom:6px}
.wo-empty .wes{font-size:13px}
#wo-save-msg{font-size:13px;font-weight:600;min-height:20px;margin-top:8px;text-align:center}

.assigned-plan-banner{background:linear-gradient(135deg,var(--ind-ll),var(--ind-l));border:1.5px solid #C7D2FE;border-radius:var(--rsm);padding:12px 14px;margin-bottom:14px;display:flex;align-items:center;gap:10px}

/* WEIGHT PAGE */
.wl-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.wl-input-wrap{flex:1;min-width:120px}
.wl-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--s4);margin-bottom:5px}
.wl-big{width:100%;height:54px;border:1.5px solid var(--s2);border-radius:var(--rsm);font-size:24px;font-weight:800;font-family:var(--font);color:var(--s9);text-align:center;outline:none;transition:border-color var(--ease);-webkit-appearance:none}
.wl-big:focus{border-color:var(--ind);box-shadow:0 0 0 3px rgba(79,70,229,.1)}
.wl-units{display:none}
.wl-unit-btn{padding:0 14px;height:54px;font-size:13px;font-weight:700;font-family:var(--font);cursor:pointer;border:none;background:#fff;color:var(--s4);transition:all var(--ease)}
.wl-unit-btn.active{background:var(--ind);color:#fff}
.weight-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--rxs);border:1px solid var(--s1);margin-bottom:6px;background:var(--s05);gap:8px}
.wr-date{font-size:12px;font-weight:600;color:var(--s5)}
.wr-note{font-size:11px;color:var(--s4)}
.wr-val{font-size:16px;font-weight:800;color:var(--ind)}
.chart-wrap{height:220px;position:relative;width:100%;overflow:hidden}

/* DIET PAGE */
.diet-content{background:var(--s05);border:1px solid var(--s2);border-radius:var(--rsm);padding:14px;font-size:13px;line-height:1.9;white-space:pre-wrap;word-break:break-word;color:var(--s6)}

/* MORE PAGE */
.payment-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:var(--rsm);margin-bottom:8px}
.payment-row.paid{background:#DCFCE7;border:1.5px solid var(--grn-b)}
.payment-row.overdue{background:var(--red-l);border:1.5px solid var(--red-b)}
.pr-inv{font-size:12px;font-weight:700;word-break:break-all}
.pr-sub{font-size:11px;color:var(--s4)}
.pr-amt{font-size:15px;font-weight:900;margin-bottom:3px}

/* MISC */
.empty-state{text-align:center;padding:40px 20px;color:var(--s4)}
.empty-state .ei{font-size:40px;margin-bottom:10px;display:block}
.empty-state .et{font-size:15px;font-weight:700;color:var(--s5);margin-bottom:6px}
.empty-state .es{font-size:13px}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.sec-head h3{font-size:14px;font-weight:800}
.divider{height:1px;background:var(--s1);margin:14px 0}
.overdue-screen{background:linear-gradient(135deg,#DC2626,#dc2626);border-radius:var(--r);padding:36px 24px;text-align:center;color:#fff;margin:16px;box-shadow:0 8px 32px rgba(239,68,68,.3)}
.overdue-screen h2{font-size:20px;font-weight:900;margin:12px 0 8px}
.overdue-screen p{font-size:13px;opacity:.85;margin-bottom:20px}
.two-col{display:block}

/* RESPONSIVE */
@media(min-width:480px){.ex-form-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:768px){
  :root{--nav:0px}
  .bgp-wrap{padding-bottom:0}
  .bgp-nav{display:none!important}
  .bgp-tabs{display:block}
  .bgp-fab{bottom:28px}
  .bgp-page{padding:24px 32px}
  .two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
  .two-col>.card{margin-bottom:0}
  .profile-grid{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:1024px){.bgp-page{padding:28px 40px}}
@media(max-width:360px){
  .bgp-topbar-name{font-size:13px}
  .ch-time{font-size:22px}
  .stat-pill .sv{font-size:18px}
  .btn-ghost{padding:5px 10px;font-size:11px}
}

/* Workout section headers */
.wo-section-head{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--ind-d);background:var(--ind-l);border-radius:var(--rxs);padding:6px 12px;margin:10px 0 6px}

/* Spin animation for loading */
@keyframes spin{to{transform:rotate(360deg)}}

/* Assigned plan banner */
.assigned-plan-banner{background:linear-gradient(135deg,var(--ind-ll),var(--ind-l));border:1.5px solid #C7D2FE;border-radius:var(--rsm);padding:12px 14px;margin-bottom:14px;display:flex;align-items:center;gap:10px}

/* Overdue screen */
.overdue-screen{background:linear-gradient(135deg,#DC2626,#dc2626);border-radius:var(--r);padding:36px 24px;text-align:center;color:#fff;box-shadow:0 8px 32px rgba(239,68,68,.3)}
.overdue-screen h2{font-size:20px;font-weight:900;margin:12px 0 8px}
.overdue-screen p{font-size:13px;opacity:.85;margin-bottom:20px}

/* ── Workout history records ── */
.wo-record{background:var(--sur);border:1px solid var(--s1);border-radius:var(--rsm);padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;gap:10px}
.wo-record-left{flex:1;min-width:0}
.wo-record-date{font-size:12px;font-weight:700;color:var(--s5)}
.wo-record-name{font-size:13px;font-weight:800;color:var(--s9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wo-record-meta{font-size:11px;color:var(--s4);margin-top:2px}
.wo-record-actions{display:flex;gap:6px;flex-shrink:0}
.wo-rec-btn{width:32px;height:32px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;transition:all var(--ease);-webkit-tap-highlight-color:transparent}
.wo-rec-btn.edit{background:var(--ind-l);color:var(--ind)}
.wo-rec-btn.edit:hover{background:var(--ind);color:#fff}
.wo-rec-btn.del{background:var(--red-l);color:var(--red)}
.wo-rec-btn.del:hover{background:var(--red);color:#fff}

/* ── Weight date picker row ── */
.wl-date-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.wl-date-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--s4);white-space:nowrap}
.wl-date-input{height:38px;padding:0 12px;border:1.5px solid var(--s2);border-radius:var(--rsm);font-size:13px;font-weight:600;font-family:var(--font);color:var(--s9);background:var(--sur);outline:none;flex:1;min-width:0;-webkit-appearance:none;transition:border-color var(--ease)}
.wl-date-input:focus{border-color:var(--ind)}

/* ── Weight kg-only input ── */
.wl-kg-badge{background:var(--ind-l);color:var(--ind-d);font-size:13px;font-weight:800;padding:0 14px;height:54px;display:flex;align-items:center;border-radius:var(--rxs);flex-shrink:0;border:1.5px solid #C7D2FE}

/* ── Workout log tabs (log / history) ── */
.wo-tabs{display:flex;background:var(--s1);border-radius:var(--rsm);padding:3px;margin-bottom:14px;gap:3px}
.wo-tab{flex:1;padding:8px;border-radius:8px;font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;border:none;background:transparent;color:var(--s5);transition:all var(--ease);-webkit-tap-highlight-color:transparent}
.wo-tab.active{background:var(--sur);color:var(--ind);box-shadow:0 1px 4px rgba(0,0,0,.1)}

/* Prevent horizontal scroll on mobile */
.bgp-page{overflow-x:hidden}

/* ═══════════════════════════════════════
   v2.0 - Workout & Diet Plan UI Fixes
   Mobile-first, no overlapping, rich visuals
   ═══════════════════════════════════════ */

/* Workout Plan Cards */
.wp-section { margin-bottom: 20px; border-radius: 14px; overflow: hidden; background: #fff; box-shadow: 0 2px 12px rgba(79,70,229,.07); }
.wp-section-header { background: linear-gradient(135deg, #4338ca, #7C3AED); color: #fff; padding: 14px 18px; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 8px; cursor: pointer; }
.wp-section-header .wp-day-badge { background: rgba(255,255,255,.2); border-radius: 6px; padding: 2px 10px; font-size: 11px; font-weight: 600; }
.wp-section-body { padding: 14px; }
.wp-exercise-card { display: flex; align-items: flex-start; gap: 12px; padding: 12px; margin-bottom: 10px; background: #F8FAFC; border-radius: 10px; border-left: 3px solid #4338ca; transition: all .2s; }
.wp-exercise-card:hover { background: #e0e7ff; transform: translateX(2px); }
.wp-exercise-icon { width: 38px; height: 38px; background: linear-gradient(135deg,#4338ca,#7C3AED); border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.wp-exercise-name { font-weight: 700; font-size: 14px; color: #0d1b2e; line-height: 1.3; }
.wp-exercise-meta { font-size: 12px; color: #8BA3BC; margin-top: 3px; }
.wp-exercise-badge { display: inline-flex; align-items: center; gap: 4px; background: #4338ca; color: #fff; border-radius: 6px; padding: 2px 8px; font-size: 11px; font-weight: 700; margin-top: 6px; }
.wp-completion-chip { display: flex; align-items: center; gap: 5px; font-size: 11px; padding: 3px 10px; border-radius: 99px; font-weight: 600; }
.wp-completion-chip.done { background: #DCFCE7; color: #15803d; }
.wp-completion-chip.pending { background: #EDF1F7; color: #8BA3BC; cursor: pointer; }
.wp-completion-chip.pending:hover { background: #e0e7ff; color: #4338ca; }

/* Diet Meal Cards */
.diet-meal-card { background: #fff; border-radius: 14px; overflow: hidden; margin-bottom: 16px; box-shadow: 0 2px 12px rgba(0,0,0,.06); transition: transform .2s; }
.diet-meal-card:hover { transform: translateY(-2px); }
.diet-meal-header { padding: 14px 18px 10px; display: flex; justify-content: space-between; align-items: flex-start; }
.diet-meal-time { font-size: 11px; font-weight: 700; color: #fff; padding: 3px 10px; border-radius: 6px; }
.diet-meal-time.breakfast { background: #D97706; }
.diet-meal-time.lunch { background: #10B981; }
.diet-meal-time.dinner { background: #4338ca; }
.diet-meal-time.snack { background: #EC4899; }
.diet-meal-time.pre_workout { background: #EF4444; }
.diet-meal-time.post_workout { background: #2563eb; }
.diet-meal-name { font-size: 15px; font-weight: 700; color: #0d1b2e; }
.diet-macro-row { display: flex; gap: 8px; padding: 10px 18px 14px; flex-wrap: wrap; }
.diet-macro-pill { flex: 1; min-width: 70px; text-align: center; background: #F8FAFC; border-radius: 10px; padding: 8px 6px; }
.diet-macro-pill .val { font-size: 16px; font-weight: 800; color: #0d1b2e; }
.diet-macro-pill .lbl { font-size: 10px; color: #8BA3BC; margin-top: 2px; text-transform: uppercase; letter-spacing: .5px; }
.diet-macro-pill.cals .val { color: #D97706; }
.diet-macro-pill.protein .val { color: #4338ca; }
.diet-macro-pill.carbs .val { color: #10B981; }
.diet-macro-pill.fat .val { color: #EF4444; }
.diet-meal-items { padding: 0 18px 14px; }
.diet-item-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid #EDF1F7; font-size: 13px; }
.diet-item-row:last-child { border-bottom: none; }
.diet-item-name { font-weight: 600; color: #3D5166; }
.diet-item-qty { color: #8BA3BC; font-size: 12px; }

/* Nutrition Summary Bar */
.diet-summary-bar { background: linear-gradient(135deg,#0d1b2e,#0d1b2e); border-radius: 14px; padding: 16px 18px; margin-bottom: 18px; color: #fff; }
.diet-summary-bar .title { font-size: 12px; font-weight: 700; color: #8BA3BC; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 12px; }
.diet-summary-macros { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.diet-macro-block { text-align: center; }
.diet-macro-block .num { font-size: 20px; font-weight: 800; }
.diet-macro-block .unit { font-size: 10px; color: #8BA3BC; }
.diet-macro-block.cals .num { color: #D97706; }
.diet-macro-block.prot .num { color: #6d8ee0; }
.diet-macro-block.carb .num { color: #34D399; }
.diet-macro-block.fat .num { color: #F87171; }

/* Water Tracker */
.water-tracker { background: linear-gradient(135deg,#0284c7,#06B6D4); border-radius: 14px; padding: 16px 18px; margin-bottom: 18px; color: #fff; }
.water-tracker-title { font-size: 13px; font-weight: 700; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.water-cups { display: flex; gap: 6px; flex-wrap: wrap; }
.water-cup { width: 36px; height: 36px; background: rgba(255,255,255,.2); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; cursor: pointer; transition: all .15s; border: 2px solid transparent; }
.water-cup.filled { background: rgba(255,255,255,.9); }
.water-cup:hover { border-color: rgba(255,255,255,.6); transform: scale(1.08); }

/* Responsive fixes for diet/workout on mobile */
@media (max-width: 480px) {
  .diet-summary-macros { grid-template-columns: repeat(2,1fr); }
  .wp-exercise-card { padding: 10px; }
  .wp-exercise-name { font-size: 13px; }
  .diet-macro-row { gap: 6px; }
  .diet-macro-pill { min-width: 60px; padding: 6px 4px; }
  .diet-macro-pill .val { font-size: 14px; }
  .diet-meal-header { flex-direction: column; gap: 6px; }
}

/* Invoice Preview Modal */
.bgp-inv-preview-frame { width: 100%; border: none; min-height: 600px; }

/* Expense page responsive fixes */
@media (max-width: 768px) {
  .bgp-exp-stats-grid { grid-template-columns: repeat(2,1fr) !important; }
  .bgp-exp-top-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 480px) {
  .bgp-exp-stats-grid { grid-template-columns: 1fr 1fr !important; }
}

/* ═══════════════════════════════════════════════════════
   v2.0 - MOBILE-FIRST COMPLETE OVERHAUL
   Proper responsive layout, fluid typography, print fixes
   ═══════════════════════════════════════════════════════ */

/* ── Fluid font scale ── */
:root {
  --fs-xs: clamp(9px, 2.2vw, 11px);
  --fs-sm: clamp(11px, 2.6vw, 13px);
  --fs-md: clamp(13px, 3vw, 14px);
  --fs-lg: clamp(14px, 3.5vw, 16px);
  --fs-xl: clamp(16px, 4vw, 20px);
  --fs-2xl: clamp(20px, 5vw, 26px);
}

/* ── Base reset for mobile ── */
html { font-size: 14px; scroll-behavior: smooth; }
body { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
input, textarea, select, button { font-family: var(--font); }

/* ── Wrap - true mobile-first ── */
.bgp-wrap {
  font-size: var(--fs-md);
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
}

/* ── Topbar mobile refinements ── */
.bgp-topbar {
  height: clamp(54px, 12vw, 62px);
  padding: 0 clamp(12px, 4vw, 20px);
  -webkit-backdrop-filter: blur(0);
}
.bgp-topbar-name {
  font-size: clamp(13px, 3.5vw, 15px);
  max-width: calc(100vw - 160px);
}
.bgp-topbar-sub { font-size: clamp(10px, 2.4vw, 11px); }
.bgp-avatar {
  width: clamp(30px, 8vw, 36px);
  height: clamp(30px, 8vw, 36px);
  font-size: clamp(12px, 3vw, 14px);
}

/* ── Mobile nav - larger tap targets ── */
.bgp-nav { height: calc(clamp(56px, 14vw, 64px) + env(safe-area-inset-bottom, 0px)); }
.bgp-nav-item { padding: clamp(4px, 1.5vw, 8px) clamp(2px, 1vw, 4px); }
.bgp-nav-item .ni { font-size: clamp(20px, 5.5vw, 24px); }
.bgp-nav-item .nl { font-size: clamp(9px, 2.2vw, 11px); }

/* ── Pages - fluid padding ── */
.bgp-page { padding: clamp(10px, 3vw, 16px); }

/* ── Cards ── */
.card { border-radius: clamp(10px, 2.5vw, 14px); margin-bottom: clamp(10px, 2.5vw, 14px); }
.card-header { padding: clamp(12px, 3vw, 16px) clamp(14px, 3.5vw, 18px) 0; }
.card-body { padding: clamp(10px, 3vw, 14px) clamp(14px, 3.5vw, 18px) clamp(14px, 3.5vw, 18px); }
.card-title { font-size: clamp(13px, 3.2vw, 14px); }
.card-sub { font-size: clamp(10px, 2.4vw, 12px); }

/* ── Buttons - minimum 44px tap target ── */
.btn-primary { min-height: clamp(42px, 10vw, 46px); font-size: clamp(13px, 3.2vw, 14px); padding: 10px clamp(16px, 4vw, 22px); }
.btn-outline { min-height: clamp(36px, 9vw, 40px); font-size: clamp(12px, 3vw, 13px); }
.btn-green { min-height: clamp(38px, 9.5vw, 42px); font-size: clamp(12px, 3vw, 13px); }

/* ── Login card ── */
.bgp-login-card { padding: clamp(28px, 7vw, 40px) clamp(20px, 5vw, 32px); }
.bgp-login-logo h2 { font-size: clamp(18px, 5vw, 22px); }
.bgp-login-logo p { font-size: clamp(12px, 3vw, 13px); }
.bgp-input { height: clamp(42px, 10vw, 46px); font-size: clamp(14px, 3.5vw, 14px); }

/* ── Check-in hero ── */
.ch-time { font-size: clamp(22px, 6vw, 30px); }
.ch-btn { font-size: clamp(12px, 3.2vw, 13px); min-height: clamp(42px, 10vw, 46px); }
#ch-msg { font-size: clamp(12px, 3vw, 13px); }

/* ── Stats ── */
.stat-row { gap: clamp(6px, 2vw, 10px); margin-bottom: clamp(10px, 2.5vw, 14px); }
.stat-pill { padding: clamp(10px, 2.5vw, 14px) clamp(6px, 1.5vw, 10px); border-radius: clamp(8px, 2vw, 10px); }
.stat-pill .sv { font-size: clamp(18px, 5.5vw, 24px); }
.stat-pill .sl { font-size: clamp(8px, 2vw, 10px); }

/* ── Profile grid ── */
.profile-cell { padding: clamp(8px, 2vw, 10px) clamp(10px, 2.5vw, 12px); border-radius: clamp(6px, 1.5vw, 8px); }
.pc-l { font-size: clamp(9px, 2.2vw, 10px); }
.pc-v { font-size: clamp(12px, 3vw, 13px); }

/* ── Attendance chips ── */
.att-cal { gap: clamp(4px, 1.5vw, 6px); }
.att-chip { padding: clamp(5px, 1.5vw, 7px) clamp(7px, 2vw, 9px); min-width: clamp(38px, 10vw, 44px); border-radius: clamp(7px, 2vw, 9px); }
.ac-d { font-size: clamp(13px, 3.5vw, 15px); }
.ac-m { font-size: clamp(7px, 2vw, 9px); }
.ac-t { font-size: clamp(7px, 2vw, 9px); }

/* ── Day strip chips ── */
.day-chip { padding: clamp(7px, 2vw, 9px) clamp(10px, 2.8vw, 12px); min-width: clamp(44px, 12vw, 52px); border-radius: clamp(8px, 2vw, 10px); }
.dc-d { font-size: clamp(14px, 4vw, 17px); }
.dc-m { font-size: clamp(7px, 2vw, 9px); }

/* ── Exercise cards ── */
.ex-card { border-radius: clamp(8px, 2vw, 10px); margin-bottom: clamp(6px, 1.5vw, 8px); }
.ex-card-top { padding: clamp(10px, 2.5vw, 12px) clamp(12px, 3vw, 14px); gap: clamp(8px, 2vw, 10px); }
.ex-num { width: clamp(26px, 7vw, 30px); height: clamp(26px, 7vw, 30px); font-size: clamp(11px, 2.8vw, 13px); }
.ex-name { font-size: clamp(12px, 3.2vw, 13px); }
.ex-meta { font-size: clamp(10px, 2.5vw, 11px); }
.ex-btn { padding: clamp(4px, 1.2vw, 5px) clamp(8px, 2.5vw, 11px); font-size: clamp(10px, 2.6vw, 11px); min-height: clamp(26px, 7vw, 30px); }
.ex-btn-del { width: clamp(26px, 7vw, 30px); height: clamp(26px, 7vw, 30px); font-size: clamp(11px, 2.8vw, 13px); }

/* ── Workout session name input ── */
.wo-session-name { height: clamp(38px, 9vw, 42px); font-size: clamp(13px, 3.2vw, 14px); border-radius: clamp(8px, 2vw, 10px); }
#wo-save-msg { font-size: clamp(12px, 3vw, 13px); }

/* ── FAB ── */
.bgp-fab {
  width: clamp(48px, 13vw, 54px);
  height: clamp(48px, 13vw, 54px);
  font-size: clamp(22px, 6vw, 26px);
  right: clamp(14px, 4vw, 20px);
  bottom: calc(clamp(56px, 14vw, 64px) + env(safe-area-inset-bottom, 0px) + 12px);
}

/* ── Badges ── */
.badge { font-size: clamp(9px, 2.3vw, 11px); padding: clamp(2px, .6vw, 3px) clamp(7px, 2vw, 10px); }

/* ── Toast ── */
.bgp-toast { font-size: clamp(12px, 3.2vw, 13px); padding: clamp(9px, 2.5vw, 10px) clamp(16px, 4.5vw, 20px); }

/* ── Sheet ── */
.sheet { border-radius: clamp(18px, 5vw, 24px) clamp(18px, 5vw, 24px) 0 0; padding: 12px clamp(16px, 4.5vw, 20px) calc(20px + env(safe-area-inset-bottom, 0px)); }
.sheet-title { font-size: clamp(15px, 4vw, 17px); }

/* ── Ex form inputs ── */
.ex-form-input { height: clamp(38px, 9.5vw, 42px); font-size: clamp(13px, 3.2vw, 14px); border-radius: clamp(6px, 1.8vw, 8px); }
.efg-label { font-size: clamp(9px, 2.2vw, 10px); }

/* ── Workout tabs ── */
.wo-tab { font-size: clamp(12px, 3vw, 13px); padding: clamp(6px, 1.8vw, 8px); border-radius: clamp(6px, 1.8vw, 8px); }

/* ── Payment rows ── */
.payment-row { padding: clamp(10px, 2.5vw, 12px) clamp(12px, 3vw, 14px); border-radius: clamp(8px, 2vw, 10px); margin-bottom: clamp(6px, 1.5vw, 8px); }
.pr-inv { font-size: clamp(11px, 2.8vw, 12px); }
.pr-sub { font-size: clamp(10px, 2.5vw, 11px); }
.pr-amt { font-size: clamp(13px, 3.5vw, 15px); }

/* ── Weight log ── */
.wl-big { height: clamp(46px, 12vw, 54px); font-size: clamp(20px, 5.5vw, 24px); }
.wl-label, .wl-date-label { font-size: clamp(9px, 2.2vw, 10px); }
.wl-kg-badge { height: clamp(46px, 12vw, 54px); font-size: clamp(12px, 3.2vw, 13px); }
.weight-row { padding: clamp(8px, 2vw, 10px) clamp(12px, 3vw, 14px); border-radius: clamp(6px, 1.8vw, 8px); margin-bottom: clamp(4px, 1.2vw, 6px); }
.wr-date { font-size: clamp(11px, 2.8vw, 12px); }
.wr-val { font-size: clamp(14px, 3.8vw, 16px); }

/* ── Diet content ── */
.diet-content { font-size: clamp(12px, 3vw, 13px); border-radius: clamp(8px, 2vw, 10px); padding: clamp(12px, 3vw, 14px); }

/* ── Workout history records ── */
.wo-record { padding: clamp(10px, 2.5vw, 12px) clamp(12px, 3vw, 14px); border-radius: clamp(8px, 2vw, 10px); margin-bottom: clamp(6px, 1.5vw, 8px); }
.wo-record-date { font-size: clamp(11px, 2.8vw, 12px); }
.wo-record-name { font-size: clamp(12px, 3.2vw, 13px); }
.wo-record-meta { font-size: clamp(10px, 2.5vw, 11px); }
.wo-rec-btn { width: clamp(28px, 8vw, 34px); height: clamp(28px, 8vw, 34px); font-size: clamp(12px, 3vw, 14px); }

/* ── Diet meal cards on mobile ── */
.diet-meal-name { font-size: clamp(13px, 3.5vw, 15px); }
.diet-meal-time { font-size: clamp(9px, 2.3vw, 11px); }
.diet-item-name { font-size: clamp(12px, 3vw, 13px); }
.diet-item-qty { font-size: clamp(10px, 2.5vw, 12px); }
.diet-macro-pill .val { font-size: clamp(13px, 3.5vw, 16px); }
.diet-macro-pill .lbl { font-size: clamp(8px, 2vw, 10px); }

/* ── Nutrition bar ── */
.diet-macro-block .num { font-size: clamp(16px, 4.5vw, 20px); }
.diet-macro-block .unit { font-size: clamp(8px, 2vw, 10px); }

/* ── Small tablet (481-767px): 2-col layout ── */
@media (min-width: 481px) and (max-width: 767px) {
  .stat-row { grid-template-columns: repeat(3, 1fr); }
  .profile-grid { grid-template-columns: repeat(3, 1fr); }
  .ex-form-grid { grid-template-columns: repeat(3, 1fr); }
  .diet-summary-macros { grid-template-columns: repeat(4, 1fr); }
  .bgp-page { padding: 14px 18px; }
  .bgp-topbar-name { font-size: 15px; }
}

/* ── iPad / Tablet (768-1023px) ── */
@media (min-width: 768px) {
  :root {
    --fs-md: 14px;
    --fs-sm: 13px;
  }
  .bgp-page { padding: 22px 28px; max-width: 960px; margin: 0 auto; }
  .card-header { padding: 16px 20px 0; }
  .card-body { padding: 14px 20px 20px; }
  .bgp-topbar { height: 62px; }
  .bgp-topbar-name { font-size: 15px; max-width: none; }
  .bgp-avatar { width: 36px; height: 36px; }
  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
  .two-col > .card { margin-bottom: 0; }
  .profile-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .stat-row { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .stat-pill .sv { font-size: 22px; }
  .stat-pill .sl { font-size: 10px; }
  .btn-primary { font-size: 14px; }
  .wl-big { height: 54px; font-size: 24px; }
  .day-chip { min-width: 50px; }
}

/* ── Desktop (1024px+) ── */
@media (min-width: 1024px) {
  .bgp-page { padding: 28px 40px; }
  .profile-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ── Ultra-small phones (< 360px) ── */
@media (max-width: 359px) {
  :root { --fs-md: 12px; --fs-sm: 11px; }
  .bgp-topbar-name { font-size: 12px; max-width: calc(100vw - 130px); }
  .bgp-topbar-sub { display: none; }
  .ch-time { font-size: 20px; }
  .stat-pill .sv { font-size: 16px; }
  .stat-pill .sl { font-size: 8px; }
  .btn-ghost { padding: 4px 8px; font-size: 10px; }
  .day-chip { min-width: 38px; padding: 6px 8px; }
  .dc-d { font-size: 13px; }
  .ex-actions { gap: 3px; }
  .ex-btn { padding: 3px 7px; font-size: 9px; }
  .bgp-nav-item .nl { display: none; }
  .bgp-nav-item .ni { font-size: 22px; }
  .bgp-nav { height: calc(52px + env(safe-area-inset-bottom, 0px)); }
}

/* ═══════════════════════════════
   PRINT / PDF STYLES
   ═══════════════════════════════ */
@media print {
  /* Hide interactive chrome */
  .bgp-topbar, .bgp-nav, .bgp-tabs, .bgp-fab,
  .btn, .btn-primary, .btn-outline, .btn-green,
  .bgp-toast, .sheet-bg, #ex-sheet-bg,
  #bgp-ai-analyse-btn, .wo-rec-btn,
  .ch-actions, nav, header { display: none !important; }

  /* Reset page */
  * { box-shadow: none !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { background: #fff !important; }
  .bgp-wrap { padding: 0 !important; background: #fff !important; min-height: 0 !important; }
  .bgp-page { display: block !important; padding: 8px 0 !important; max-width: 100% !important; }

  /* Cards print cleanly */
  .card { border: 1px solid #E2E8F2 !important; border-radius: 8px !important; margin-bottom: 12px !important;
          break-inside: avoid; page-break-inside: avoid; }
  .card-header { padding: 12px 14px 0 !important; }
  .card-body { padding: 10px 14px 14px !important; }

  /* Force colours for key elements */
  .badge-green { background: #DCFCE7 !important; color: #15803D !important; }
  .badge-red   { background: #FEE2E2 !important; color: #dc2626 !important; }
  .checkin-hero { color: #000 !important; background: #EDF1F7 !important; border: 1px solid #E2E8F2 !important; }

  /* Workout log print */
  .ex-card { break-inside: avoid; border: 1px solid #E2E8F2 !important; }
  .day-strip { display: flex !important; flex-wrap: wrap !important; overflow: visible !important; }
  .day-chip { border: 1px solid #C8D5E8 !important; margin: 2px !important; }
  .day-chip.active { background: #0d1b2e !important; color: #fff !important; }

  /* Prevent orphaned content */
  h2, h3, .card-title { break-after: avoid; page-break-after: avoid; }
  .stat-row { break-inside: avoid; }

  /* Font adjustments for print */
  .bgp-wrap { font-size: 11pt !important; }
  .card-title { font-size: 12pt !important; }
  .stat-pill .sv { font-size: 16pt !important; }
  .payment-row { border: 1px solid #E2E8F2 !important; }
  .payment-row.paid { background: #F0FDF4 !important; }
}

/* ═══════════════════════════════
   AI ANALYSIS CARD STYLES
   ═══════════════════════════════ */
#bgp-ai-analysis-wrap .card-header {
  background: linear-gradient(135deg, #EDE9FE, #e0e7ff);
  border-bottom: 1px solid #c7d2fe;
}
#bgp-ai-analysis-inner {
  min-height: 80px;
}
#bgp-ai-analysis-inner strong { color: var(--ind); }

/* ═══════════════════════════════
   TABLET LANDSCAPE SPECIFIC
   ═══════════════════════════════ */
@media (min-width: 768px) and (orientation: landscape) {
  .bgp-page { padding: 18px 32px; }
  .two-col { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════
   OVERFLOW / SCROLL SAFETY
   ═══════════════════════════════ */
.bgp-page, .card, .card-body {
  word-break: break-word;
  overflow-wrap: break-word;
}
.day-strip { -webkit-overflow-scrolling: touch; }
input[type="number"] { -moz-appearance: textfield; }
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; }
select { -webkit-appearance: none; appearance: none; }

/* ── Safe area for notched phones ── */
.bgp-wrap { padding-bottom: calc(var(--nav) + env(safe-area-inset-bottom, 0px) + 4px); }
@media (min-width: 768px) {
  .bgp-wrap { padding-bottom: 0; }
}
