/* ValueHosting billing — modern client portal + admin shell.
   Relies on the site style.css for fonts (Inter/Sora) and color tokens. */

:root{
  --bz-bg:#f4f6fb; --bz-surface:#ffffff; --bz-ink:#0f172a; --bz-slate:#475569;
  --bz-muted:#64748b; --bz-line:#e7ebf2; --bz-line2:#eef1f7;
  --bz-blue:#f2740c; --bz-indigo:#ff8a1e; --bz-bluebg:#fff4e9;
  --bz-grad:linear-gradient(135deg,#f2740c,#ff8a1e);
  --bz-radius:14px; --bz-radius-lg:18px;
  --bz-shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);
  --bz-shadow-md:0 8px 24px -12px rgba(16,24,40,.18);
  --bz-side:262px;
}

*{box-sizing:border-box}
body.bz{margin:0;background:var(--bz-bg);color:var(--bz-slate);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Arial,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
.bz a{color:var(--bz-blue);text-decoration:none}
.bz a:hover{text-decoration:underline}
.bz h1{font-family:'Sora',sans-serif;font-size:1.55rem;font-weight:800;letter-spacing:-.02em;color:var(--bz-ink);margin:0 0 6px}
.bz h2{font-family:'Sora',sans-serif;font-size:1.15rem;font-weight:700;color:var(--bz-ink);margin:0 0 14px;letter-spacing:-.01em}
.bz .sub{color:var(--bz-muted);margin:0 0 26px;font-size:.97rem}

/* ---------- App shell ---------- */
.bz-drawer-cb{position:absolute;opacity:0;pointer-events:none}
.bz-app{display:grid;grid-template-columns:var(--bz-side) 1fr;min-height:100vh}
/* Dark navy sidebar */
.bz-side{background:#0f172a;border-right:1px solid rgba(255,255,255,.06);
  display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh}
.bz-side-brand{display:flex;align-items:center;gap:9px;padding:6px 8px 18px;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.08)}
.bz-side-brand img{display:block}
.bz-pill{font-size:.64rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:var(--bz-indigo);padding:.25em .55em;border-radius:6px}
.bz-side-nav{display:flex;flex-direction:column;gap:3px;margin-top:14px;flex:1}
.bz-nav-item{display:flex;align-items:center;gap:11px;padding:.62em .7em;border-radius:10px;
  color:#cbd5e1;font-weight:500;font-size:.93rem;transition:background .12s,color .12s}
.bz-nav-item:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.bz-nav-item svg{width:19px;height:19px;flex:0 0 auto;color:#64748b}
.bz-nav-item:hover svg{color:#cbd5e1}
.bz-nav-item.is-active{background:rgba(242,116,12,.22);color:#fff;font-weight:600}
.bz-nav-item.is-active svg{color:#ffb066}
.bz-nav-item.ghost{color:#94a3b8;font-weight:500}
.bz-side-foot{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:3px}
.bz-user{display:flex;align-items:center;gap:10px;padding:8px;margin:4px 0}
.bz-avatar{width:34px;height:34px;border-radius:10px;background:var(--bz-grad);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.95rem;flex:0 0 auto}
.bz-user-meta{display:flex;flex-direction:column;min-width:0}
.bz-user-meta strong{color:#f1f5f9;font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bz-user-meta small{color:#94a3b8;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}

.bz-content{min-width:0;display:flex;flex-direction:column}
.bz-appbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--bz-line);height:62px;display:flex;align-items:center;gap:14px;padding:0 26px}
.bz-appbar-title{font-family:'Sora',sans-serif;font-weight:700;color:var(--bz-ink);font-size:1rem}
.bz-appbar-right{margin-left:auto}
.bz-env{font-size:.8rem;color:var(--bz-muted);background:var(--bz-bg);border:1px solid var(--bz-line);padding:.35em .8em;border-radius:999px}
.bz-burger{display:none;cursor:pointer;color:var(--bz-ink);padding:6px;margin-left:-6px}
.bz-burger svg{width:24px;height:24px}
.bz-scrim{display:none}
.bz-main{flex:1;padding:30px 26px 50px;max-width:1120px;width:100%}
.bz-foot{border-top:1px solid var(--bz-line);background:var(--bz-surface)}
.bz-foot-in{max-width:1120px;padding:16px 26px;color:var(--bz-muted);font-size:.84rem}

/* ---------- Plain (logged-out) shell ---------- */
.bz-plain{min-height:100vh;display:flex;flex-direction:column}
.bz-plain-top{display:flex;align-items:center;justify-content:space-between;padding:18px 26px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(120deg,#160f33,#3a1c63 60%,#8a2d0e)}
.bz-plain-back{color:rgba(255,255,255,.72);font-size:.9rem;font-weight:500}
.bz-plain-back:hover{color:#fff;text-decoration:none}
.bz-centered{display:flex;flex-direction:column;justify-content:center;flex:1;padding:40px 20px;width:100%;max-width:780px;margin:0 auto}

/* ---------- Cards / layout ---------- */
.bz-card{background:var(--bz-surface);border:1px solid var(--bz-line);border-radius:var(--bz-radius-lg);padding:24px;box-shadow:var(--bz-shadow);margin-bottom:20px}
.bz-grid{display:grid;gap:18px}
.bz-grid.c2{grid-template-columns:1fr 1fr}
.bz-grid.c3{grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.bz-grid.c2,.bz-grid.c3{grid-template-columns:1fr}}

/* stat tiles */
.bz-stat{background:var(--bz-surface);border:1px solid var(--bz-line);border-radius:var(--bz-radius);padding:18px 20px;box-shadow:var(--bz-shadow)}
.bz-stat .n{font-family:'Sora',sans-serif;font-size:1.7rem;font-weight:800;color:var(--bz-ink);letter-spacing:-.03em;line-height:1.1}
.bz-stat .l{color:var(--bz-muted);font-size:.85rem;margin-top:2px}

/* ---------- Tables ---------- */
table.bz-tbl{width:100%;border-collapse:separate;border-spacing:0;background:var(--bz-surface);
  border:1px solid var(--bz-line);border-radius:var(--bz-radius);overflow:hidden}
table.bz-tbl th,table.bz-tbl td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--bz-line2);font-size:.92rem;vertical-align:middle}
table.bz-tbl thead th{background:#fbfcfe;color:var(--bz-muted);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}
table.bz-tbl tbody tr:last-child td{border-bottom:none}
table.bz-tbl tbody tr:hover{background:#fafbff}
.bz-tbl .right{text-align:right}
.bz-tbl td strong{color:var(--bz-ink);font-weight:600}

/* ---------- Badges ---------- */
.bz-badge{display:inline-flex;align-items:center;gap:.45em;font-size:.74rem;font-weight:600;padding:.3em .7em;border-radius:999px;line-height:1.2}
.bz-badge i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 auto}
.bz-badge.ok{background:#ecfdf5;color:#059669}
.bz-badge.warn{background:#fffbeb;color:#d97706}
.bz-badge.info{background:#fff4e9;color:#f2740c}
.bz-badge.err{background:#fef2f2;color:#dc2626}
.bz-badge.muted{background:#f1f5f9;color:#64748b}

/* ---------- Buttons ---------- */
.bz-btn{display:inline-flex;align-items:center;gap:.5em;font-weight:600;font-size:.93rem;padding:.66em 1.25em;border-radius:10px;
  border:1.5px solid transparent;cursor:pointer;text-decoration:none;background:var(--bz-grad);color:#fff;line-height:1;
  transition:transform .12s,box-shadow .12s,filter .12s;box-shadow:0 6px 16px -10px rgba(242,116,12,.8)}
.bz-btn:hover{transform:translateY(-1px);filter:brightness(1.03);text-decoration:none;box-shadow:0 10px 22px -10px rgba(242,116,12,.85)}
.bz-btn.ghost{background:var(--bz-surface);color:var(--bz-ink);border-color:var(--bz-line);box-shadow:none}
.bz-btn.ghost:hover{border-color:var(--bz-blue);color:var(--bz-blue);filter:none}
.bz-btn.sm{padding:.45em .9em;font-size:.84rem}
.bz-btn.danger{background:var(--bz-surface);color:#dc2626;border-color:#fecaca;box-shadow:none}
.bz-btn.danger:hover{background:#fef2f2;filter:none}

/* ---------- Forms ---------- */
.bz-form{display:grid;gap:16px;max-width:440px}
.bz-form.wide{max-width:none}
.bz-form label{display:block;font-weight:600;color:var(--bz-ink);font-size:.86rem;margin-bottom:6px}
.bz-form input,.bz-form select,.bz-form textarea{width:100%;padding:.72em .9em;border:1.5px solid var(--bz-line);border-radius:10px;
  font:inherit;font-size:.97rem;color:var(--bz-ink);background:var(--bz-surface);transition:border-color .12s,box-shadow .12s}
.bz-form input:focus,.bz-form select:focus,.bz-form textarea:focus{outline:none;border-color:var(--bz-blue);box-shadow:0 0 0 4px rgba(242,116,12,.12)}
.bz-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.bz-row{grid-template-columns:1fr}}

/* ---------- Alerts ---------- */
.bz-alert{padding:13px 16px;border-radius:12px;font-size:.92rem;margin-bottom:18px;border:1px solid;display:flex;gap:8px}
.bz-alert.ok{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}
.bz-alert.err{background:#fef2f2;color:#991b1b;border-color:#fecaca}
.bz-alert:not(.ok):not(.err){background:#fff4e9;color:#1e40af;border-color:#bfdbfe}

/* ---------- Auth card ---------- */
.bz-auth{width:100%;max-width:430px;margin:0 auto}
.bz-auth .bz-card{padding:32px;box-shadow:var(--bz-shadow-md)}
.bz-auth h1{margin-bottom:6px}

/* ---------- Order / radio cards ---------- */
.bz-radio{display:flex;gap:12px;flex-wrap:wrap}
.bz-radio label{display:flex;gap:11px;align-items:flex-start;border:1.5px solid var(--bz-line);border-radius:12px;padding:14px 16px;cursor:pointer;flex:1;min-width:210px;font-weight:500;transition:border-color .12s,background .12s}
.bz-radio label:hover{border-color:#c7d2fe}
.bz-radio label:has(input:checked){border-color:var(--bz-blue);background:var(--bz-bluebg)}
.bz-radio input{width:auto;margin-top:3px;accent-color:var(--bz-blue)}
.bz-radio .t{font-weight:700;color:var(--bz-ink);display:block}
.bz-radio .d{font-size:.84rem;color:var(--bz-muted)}

.bz-summary{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--bz-line2);font-size:.94rem}
.bz-summary.total{border-bottom:none;font-family:'Sora',sans-serif;font-weight:800;font-size:1.25rem;color:var(--bz-ink);padding-top:14px}
.bz-inv-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px;align-items:flex-start;margin-bottom:22px}

.bz-link{color:var(--bz-blue);font-weight:600}
.bz-muted2{color:var(--bz-muted);font-size:.9rem}

/* ---------- Branded invoice document ---------- */
.bz-invoice{background:var(--bz-surface);border:1px solid var(--bz-line);border-radius:var(--bz-radius-lg);
  box-shadow:var(--bz-shadow);max-width:820px;padding:40px;position:relative;overflow:hidden}
.bz-invoice::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--bz-grad)}
.bz-inv-top{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;margin-bottom:30px}
.bz-inv-logo{display:block;margin-bottom:14px}
.bz-inv-from{color:var(--bz-muted);font-size:.86rem;line-height:1.7}
.bz-inv-from strong{color:var(--bz-ink);font-size:.95rem}
.bz-inv-meta{text-align:right;min-width:210px}
.bz-inv-word{font-family:'Sora',sans-serif;font-size:1.5rem;font-weight:800;letter-spacing:.12em;color:var(--bz-ink)}
.bz-inv-num{color:var(--bz-muted);font-size:.9rem;font-weight:600;letter-spacing:.02em}
.bz-inv-dates{margin-left:auto;border-collapse:collapse;font-size:.85rem}
.bz-inv-dates td{padding:2px 0 2px 16px;text-align:right;color:var(--bz-ink)}
.bz-inv-dates td:first-child{color:var(--bz-muted);font-weight:500}
.bz-inv-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bz-muted);margin-bottom:6px}
.bz-inv-billto{background:var(--bz-bg);border:1px solid var(--bz-line2);border-radius:12px;padding:16px 18px;margin-bottom:26px;font-size:.9rem;line-height:1.7;color:var(--bz-slate)}
.bz-inv-billto strong{color:var(--bz-ink)}
table.bz-inv-items{width:100%;border-collapse:collapse;margin-bottom:8px}
table.bz-inv-items thead th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--bz-muted);
  border-bottom:2px solid var(--bz-line);padding:0 4px 10px}
table.bz-inv-items td{padding:13px 4px;border-bottom:1px solid var(--bz-line2);font-size:.92rem;color:var(--bz-slate)}
table.bz-inv-items td:first-child{color:var(--bz-ink);font-weight:500}
table.bz-inv-items .r{text-align:right}
.bz-inv-totals{max-width:300px;margin-left:auto;margin-top:14px}
.bz-inv-foot{margin-top:28px;padding-top:18px;border-top:1px solid var(--bz-line2);color:var(--bz-muted);font-size:.82rem;line-height:1.7}

@media print{
  body.bz{background:#fff}
  .bz-invoice{border:none;box-shadow:none;border-radius:0;max-width:none;padding:0;margin:0}
  .bz-invoice::before{display:none}
  .bz-main{padding:0!important}
}

/* ---------- Responsive: off-canvas sidebar ---------- */
@media(max-width:900px){
  .bz-app{grid-template-columns:1fr}
  .bz-side{position:fixed;left:0;top:0;bottom:0;width:var(--bz-side);transform:translateX(-101%);
    transition:transform .25s ease;z-index:70;box-shadow:var(--bz-shadow-md)}
  .bz-drawer-cb:checked ~ .bz-app .bz-side{transform:none}
  .bz-scrim{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);opacity:0;visibility:hidden;transition:.2s;z-index:65}
  .bz-drawer-cb:checked ~ .bz-app .bz-scrim{opacity:1;visibility:visible}
  .bz-burger{display:inline-flex}
  .bz-main{padding:22px 18px 44px}
  .bz-appbar{padding:0 18px}
}
@media print{.bz-side,.bz-appbar,.bz-foot,.bz-burger,.bz-noprint{display:none!important}.bz-app{grid-template-columns:1fr}.bz-main{padding:0}}
