/* BP & Sugar Tracker — scoped styles */
.bpst{
  --bpst-paper:#EFF1EC; --bpst-card:#FBFCFA; --bpst-ink:#16211C; --bpst-soft:#5A665F;
  --bpst-line:#D6DCD4; --bpst-line2:#E5EAE3; --bpst-sys:#B23A48; --bpst-dia:#2B5F75;
  --bpst-pulse:#9A7B2E; --bpst-sugar:#6A4C93; --bpst-ok:#3E7C5A; --bpst-alert:#8E2C38;
  max-width:960px; margin:0 auto; color:var(--bpst-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:15px; line-height:1.55;
}
.bpst *{box-sizing:border-box}
.bpst h2,.bpst h3{margin:0;font-weight:700;letter-spacing:.01em}

.bpst-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11.5px;font-weight:700;color:var(--bpst-soft)}
.bpst-h1{font-size:30px;line-height:1.05;margin-top:4px}
.bpst-h1 span{color:var(--bpst-sys)}
.bpst-h3{font-size:16px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
.bpst-who{font-size:13px;color:var(--bpst-soft);margin-top:6px}

.bpst-mast{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between;
  border-bottom:2px solid var(--bpst-ink);padding-bottom:14px;margin-bottom:20px}
.bpst-tools{display:flex;gap:8px;flex-wrap:wrap}

.bpst-btn{background:var(--bpst-card);border:1px solid var(--bpst-ink);color:var(--bpst-ink);
  padding:8px 15px;border-radius:3px;cursor:pointer;text-transform:uppercase;
  letter-spacing:.08em;font-size:12.5px;font-weight:700;line-height:1;transition:background .15s,color .15s}
.bpst-btn:hover{background:var(--bpst-ink);color:var(--bpst-paper)}
.bpst-btn.primary{background:var(--bpst-ink);color:var(--bpst-paper)}
.bpst-btn.primary:hover{background:var(--bpst-sys);border-color:var(--bpst-sys)}
.bpst-btn.ghost{border-color:var(--bpst-line);color:var(--bpst-soft)}
.bpst-btn.ghost:hover{background:var(--bpst-line2);color:var(--bpst-ink)}

.bpst-card,.bpst-report{background:var(--bpst-card);border:1px solid var(--bpst-line);border-radius:3px;padding:18px}
.bpst-card{margin-bottom:20px}

.bpst-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.bpst-f{display:flex;flex-direction:column;gap:4px}
.bpst-f.bpst-wide{grid-column:1/-1}
.bpst-f > span{text-transform:uppercase;letter-spacing:.09em;font-size:10.5px;font-weight:700;color:var(--bpst-soft)}
.bpst-f input,.bpst-f select{width:100%;background:#fff;border:1px solid var(--bpst-line);
  border-radius:3px;padding:8px 9px;color:var(--bpst-ink);font-size:15px;font-family:inherit}
.bpst-f input:focus,.bpst-f select:focus{outline:2px solid var(--bpst-sys);outline-offset:1px;border-color:var(--bpst-sys)}
.bpst-sub{grid-column:1/-1;text-transform:uppercase;letter-spacing:.1em;font-size:11px;
  font-weight:700;color:var(--bpst-sys);border-bottom:1px solid var(--bpst-line2);
  padding-bottom:4px;margin-top:6px}

.bpst-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.bpst-msg{font-size:13px;color:var(--bpst-soft)}
.bpst-msg.err{color:var(--bpst-alert);font-weight:700}
.bpst-msg.ok{color:var(--bpst-ok);font-weight:700}

.bpst-range{display:flex;border:1px solid var(--bpst-ink);border-radius:3px;overflow:hidden;width:fit-content;margin-bottom:16px}
.bpst-range button{background:transparent;border:0;border-right:1px solid var(--bpst-line);
  padding:8px 16px;cursor:pointer;font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;
  font-weight:700;color:var(--bpst-soft);font-family:inherit}
.bpst-range button:last-child{border-right:0}
.bpst-range button[aria-pressed="true"]{background:var(--bpst-ink);color:var(--bpst-paper)}

.bpst-rep-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  border-bottom:1px solid var(--bpst-line);padding-bottom:12px;margin-bottom:16px;flex-wrap:wrap}
.bpst-rep-title{font-size:20px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.bpst-rep-sub{font-size:13px;color:var(--bpst-soft);margin-top:2px}
.bpst-rep-meta{text-align:right;font-size:12px;color:var(--bpst-soft)}

.bpst-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--bpst-line);
  border:1px solid var(--bpst-line);margin-bottom:20px}
.bpst-stat{background:var(--bpst-card);padding:11px 12px}
.bpst-stat .k{text-transform:uppercase;letter-spacing:.09em;font-size:10px;font-weight:700;color:var(--bpst-soft)}
.bpst-stat .v{font-size:22px;font-weight:700;margin-top:2px}
.bpst-stat .s{font-size:11px;color:var(--bpst-soft)}

.bpst-chartbox{border:1px solid var(--bpst-line);background:#fff;border-radius:3px;padding:12px;margin-bottom:16px}
.bpst-chart-label{text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-weight:700;
  color:var(--bpst-soft);margin-bottom:8px}
.bpst canvas{width:100%!important}

.bpst table{width:100%;border-collapse:collapse;margin-top:18px;font-size:13px}
.bpst th{text-transform:uppercase;letter-spacing:.09em;font-size:10.5px;font-weight:700;
  color:var(--bpst-soft);text-align:left;border-bottom:1.5px solid var(--bpst-ink);padding:7px 7px;white-space:nowrap}
.bpst td{border-bottom:1px solid var(--bpst-line2);padding:7px;vertical-align:top}
.bpst td.n{white-space:nowrap;font-variant-numeric:tabular-nums}
.bpst tr.hi td.bp{color:var(--bpst-sys);font-weight:700}
.bpst tr.hi-s td.sg{color:var(--bpst-sugar);font-weight:700}
.bpst-rowbtn{background:none;border:0;color:var(--bpst-soft);cursor:pointer;font-size:11px;
  text-transform:uppercase;letter-spacing:.07em;padding:2px 5px;border-radius:2px;font-family:inherit}
.bpst-rowbtn:hover{background:var(--bpst-line2);color:var(--bpst-ink)}
.bpst-rowbtn.del:hover{background:#F7E9EA;color:var(--bpst-alert)}

.bpst-empty{padding:36px 16px;text-align:center;color:var(--bpst-soft)}
.bpst-empty strong{display:block;font-size:16px;text-transform:uppercase;letter-spacing:.08em;color:var(--bpst-ink);margin-bottom:6px}

.bpst-refnote{margin-top:18px;border-top:1px solid var(--bpst-line);padding-top:12px;font-size:12px;color:var(--bpst-soft)}
.bpst-refnote b{color:var(--bpst-ink)}
.bpst-footnote{margin-top:16px;font-size:12px;color:var(--bpst-soft)}

.bpst-login{max-width:460px;margin:0 auto;text-align:center;background:#FBFCFA;
  border:1px solid #D6DCD4;border-radius:6px;padding:32px}
.bpst-login h3{margin:0 0 8px;font-size:20px}
.bpst-login .bpst-btn{display:inline-block;margin-top:14px;text-decoration:none}

.bpst-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(80px);
  background:var(--bpst-ink);color:var(--bpst-paper);padding:10px 18px;border-radius:4px;
  text-transform:uppercase;letter-spacing:.08em;font-size:12.5px;font-weight:700;
  opacity:0;transition:opacity .2s,transform .2s;z-index:99999;pointer-events:none}
.bpst-toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

@media (max-width:760px){
  .bpst-grid{grid-template-columns:repeat(2,1fr)}
  .bpst-stats{grid-template-columns:repeat(2,1fr)}
  .bpst-h1{font-size:24px}
}
@media print{
  .bpst-noprint{display:none!important}
  .bpst{max-width:none}
  .bpst-card,.bpst-report{border:0;padding:0}
  .bpst-chartbox{break-inside:avoid}
}
@media (prefers-reduced-motion:reduce){.bpst *{transition:none!important}}

/* ---------- full-page standalone layout ---------- */
body.bpst-fullpage-body{
  margin:0;
  background:#EFF1EC;
  color:#16211C;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.bpst-topbar{
  background:#16211C;
  color:#EFF1EC;
}
.bpst-topbar-in{
  max-width:960px;margin:0 auto;padding:12px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.bpst-brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:#EFF1EC}
.bpst-brand-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:5px;
  background:#B23A48;color:#fff;font-weight:800;font-size:19px;line-height:1;
}
.bpst-brand-name{font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:15px}
.bpst-topbar-user{display:flex;align-items:center;gap:14px;font-size:13px}
.bpst-topbar-name{color:#C7D0C8}
.bpst-topbar-out{
  color:#EFF1EC;text-decoration:none;border:1px solid #3A463F;border-radius:4px;
  padding:5px 12px;text-transform:uppercase;letter-spacing:.07em;font-size:11.5px;font-weight:700;
}
.bpst-topbar-out:hover{background:#B23A48;border-color:#B23A48;color:#fff}
.bpst-fullpage-main{max-width:960px;margin:0 auto;padding:26px 20px 40px}
.bpst-fullpage-main .bpst{margin:0}
.bpst-fullpage-foot{border-top:1px solid #D6DCD4;margin-top:20px}
.bpst-fullpage-foot-in{
  max-width:960px;margin:0 auto;padding:16px 20px;
  font-size:12px;color:#5A665F;text-align:center;
}

/* ---------- richer login-gate card (inside a normal page) ---------- */
.bpst-login{position:relative;overflow:hidden}
.bpst-login-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:12px;margin:0 auto 14px;
  background:#B23A48;color:#fff;font-size:34px;font-weight:800;line-height:1;
}
.bpst-login p{color:#5A665F;margin:6px 0 0}
.bpst-login .bpst-btn{margin-top:18px;padding:11px 26px}
