/* The Teaching Studio - Client Dashboard
   Brand tokens pulled from the main site style.css */
:root{
  --primary:#04054f;
  --secondary:#5c77fe;
  --text:#313162;
  --btn:#f5840c;
  --btn-hover:#c86802;
  --dark:#09090f;
  --panel:#141420;
  --light:#f5f5fa;
  --line:#e4e4ef;
  --ok:#1c7a44;--okbg:#e7f7ee;
  --err:#b3261e;--errbg:#fdecec;
  --warn:#9a6b00;--warnbg:#fff5e0;
  --grad:linear-gradient(to right,#f5d613 0%,#e69c64 26%,#cc41f2 50%,#9274f6 66%,#17dafd 100%);
}
/* Self-hosted Nexa display face, bundled with the dashboard (works on any domain/subdomain) */
@font-face{font-family:'Nexa';src:url('../fonts/Nexa-Bold.woff2') format('woff2'),url('../fonts/Nexa-Bold.woff') format('woff');font-weight:700;font-display:swap;}
@font-face{font-family:'Nexa';src:url('../fonts/Nexa-Heavy.woff2') format('woff2'),url('../fonts/Nexa-Heavy.woff') format('woff');font-weight:900;font-display:swap;}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font:16px/1.55 'Poppins',-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--light);}
a{color:var(--secondary);text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3{font-family:'Nexa','Poppins',sans-serif;color:var(--primary);margin:0 0 .4em;}
.gradbar{height:5px;background:var(--grad);}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 26px;border:2px solid var(--btn);background:var(--btn);color:#fff;font:600 15px 'Poppins';border-radius:24px;cursor:pointer;transition:all .25s;text-decoration:none;}
.btn:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:#fff;text-decoration:none;}
.btn.ghost{background:transparent;color:var(--primary);border-color:var(--primary);}
.btn.ghost:hover{background:var(--primary);color:#fff;}
.btn.blue{background:var(--secondary);border-color:var(--secondary);}
.btn.blue:hover{background:#3f5be0;border-color:#3f5be0;}
.btn.sm{height:38px;padding:0 16px;font-size:13px;border-radius:19px;}
.btn.danger{background:#c0392b;border-color:#c0392b;}
.btn.danger:hover{background:#a52f22;border-color:#a52f22;}
.btn[disabled]{opacity:.5;cursor:not-allowed;}

/* ---------- login / public ---------- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 16px;
  background:var(--primary) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="6" height="6"><circle cx="3" cy="3" r="1" fill="%23ffffff10"/></svg>');}
.auth-card{width:100%;max-width:440px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35);}
.auth-head{background:var(--primary);padding:26px 32px;color:#fff;}
.auth-head .logo{font-family:'Nexa';font-weight:900;font-size:20px;letter-spacing:.5px;}
.auth-head .sub{opacity:.8;font-size:13px;margin-top:2px;}
.auth-body{padding:30px 32px;}
.auth-body h1{font-size:22px;}
.link-muted{color:#8a8aa5;font-size:14px;}
.toggle-link{background:none;border:0;color:var(--secondary);cursor:pointer;font:inherit;padding:0;text-decoration:underline;}

/* ---------- form fields ---------- */
.field{margin:0 0 16px;}
.field label{display:block;font-weight:600;color:var(--primary);margin-bottom:6px;font-size:14px;}
.field input,.field select,.field textarea{width:100%;height:48px;border:1px solid var(--line);border-radius:8px;padding:0 14px;font:15px 'Poppins';color:var(--text);background:#fff;}
.field textarea{height:auto;padding:12px 14px;min-height:96px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--secondary);box-shadow:0 0 0 3px rgba(92,119,254,.15);}
.field .hint{font-size:12px;color:#8a8aa5;margin-top:4px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:560px){.row2{grid-template-columns:1fr;}}

/* ---------- messages ---------- */
.msg{padding:12px 16px;border-radius:10px;margin:0 0 16px;font-size:14px;}
.msg.ok{background:var(--okbg);color:var(--ok);}
.msg.err{background:var(--errbg);color:var(--err);}
.msg.warn{background:var(--warnbg);color:var(--warn);}

/* ---------- app shell ---------- */
.topbar{background:var(--primary);color:#fff;}
.topbar-inner{max-width:1080px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.topbar .logo{font-family:'Nexa';font-weight:900;font-size:18px;color:#fff;letter-spacing:.5px;}
.topbar .who{font-size:13px;opacity:.85;}
.topbar .who a{color:#fff;text-decoration:underline;}
.credits-strip{background:var(--panel);color:#fff;}
.credits-strip-inner{max-width:1080px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.credits-strip .amt{font-family:'Nexa';font-weight:900;font-size:26px;color:#fff;}
.credits-strip .amt small{display:block;font:400 12px 'Poppins';letter-spacing:2px;text-transform:uppercase;color:#9b9bc0;}

.subnav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;}
.subnav-inner{max-width:1080px;margin:0 auto;padding:0 12px;display:flex;gap:2px;overflow-x:auto;}
.subnav a{padding:16px 18px;font-size:14px;font-weight:600;color:var(--text);border-bottom:3px solid transparent;white-space:nowrap;}
.subnav a:hover{color:var(--primary);text-decoration:none;}
.subnav a.active{color:var(--primary);border-bottom-color:var(--btn);}

.main{max-width:1080px;margin:0 auto;padding:28px 24px 80px;}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;margin:0 0 22px;}
.panel h2{font-size:20px;}
.panel .lead{color:#6a6a86;margin:0 0 18px;font-size:14px;}

/* ---------- tables ---------- */
table.data{width:100%;border-collapse:collapse;font-size:14px;}
table.data th{text-align:left;font-weight:700;color:var(--primary);border-bottom:2px solid var(--line);padding:10px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;}
table.data td{border-bottom:1px solid var(--line);padding:12px;vertical-align:middle;}
table.data tr:last-child td{border-bottom:0;}
.badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;border-radius:20px;}
.badge.green{background:var(--okbg);color:var(--ok);}
.badge.amber{background:var(--warnbg);color:var(--warn);}
.badge.grey{background:#eee;color:#777;}
.badge.red{background:var(--errbg);color:var(--err);}
.badge.blue{background:#e8ecff;color:#3f5be0;}
.empty{color:#9a9ab0;padding:24px 0;text-align:center;font-size:14px;}

/* ---------- reserve: day rows ---------- */
.dayrow{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:12px;align-items:end;margin-bottom:12px;}
@media(max-width:640px){.dayrow{grid-template-columns:1fr 1fr;}}
.dayrow .field{margin:0;}
.rm-day{height:48px;border:1px solid var(--line);background:#fff;border-radius:8px;width:48px;cursor:pointer;color:#c0392b;font-size:20px;}
.avail-result{margin-top:14px;}
.avail-line{display:flex;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:8px;margin-bottom:8px;font-size:14px;}
.avail-line.free{background:var(--okbg);color:var(--ok);}
.avail-line.busy{background:var(--errbg);color:var(--err);}
.quote-box{background:var(--light);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-top:16px;}
.quote-box .big{font-family:'Nexa';font-weight:900;font-size:28px;color:var(--primary);}

/* ---------- pricing cards ---------- */
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:8px 0 20px;}
@media(max-width:640px){.price-grid{grid-template-columns:1fr;}}
.price-card{position:relative;background:var(--panel);color:#fff;border-radius:16px;padding:24px;border:2px solid transparent;transition:all .2s;cursor:pointer;}
.price-card:hover{border-color:var(--secondary);}
.price-card.hl{border-color:var(--btn);box-shadow:0 14px 40px rgba(245,132,12,.25);transform:translateY(-2px);}
.price-card .tag{display:inline-block;font:700 10px 'Nexa';letter-spacing:2px;text-transform:uppercase;padding:5px 12px;border-radius:20px;background:var(--grad);color:#fff;margin-bottom:14px;}
.price-card h3{color:#fff;font-size:24px;margin:0 0 4px;}
.price-card .per{font-family:'Nexa';font-weight:900;font-size:34px;color:#fff;}
.price-card .per small{font:400 13px 'Poppins';color:#9b9bc0;}
.price-card .rng{color:#b9b9d6;font-size:13px;margin-top:6px;}
.price-card .blurb{color:#9b9bc0;font-size:13px;margin-top:12px;line-height:1.5;}
.credit-worth{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;background:var(--light);border-radius:10px;padding:14px 18px;margin:0 0 22px;font-size:14px;color:var(--text);}
.credit-worth .cw-label{font-weight:600;color:var(--primary);}
.credit-worth .cw-item{color:#55557a;}
.credit-worth .cw-item strong{color:var(--primary);}
.deposit-note{background:var(--light);border-left:4px solid var(--secondary);padding:14px 18px;border-radius:8px;font-size:13.5px;color:#55557a;margin-top:6px;}

/* ---------- admin ---------- */
.admin .topbar{background:#0d0d2b;}
.admin .subnav a.active{border-bottom-color:var(--secondary);}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;}
.stat-grid.three{grid-template-columns:repeat(3,1fr);}
@media(max-width:820px){.stat-grid{grid-template-columns:1fr 1fr;}.stat-grid.three{grid-template-columns:1fr 1fr;}}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;}
.stat .n{font-family:'Nexa';font-weight:900;font-size:30px;color:var(--primary);}
.stat .l{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#8a8aa5;margin-top:2px;}
.stat.alert .n{color:var(--btn);}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.tools{display:flex;gap:8px;flex-wrap:wrap;}
hr.sep{border:0;border-top:1px solid var(--line);margin:22px 0;}
.small{font-size:13px;color:#8a8aa5;}
.right{text-align:right;}
.nowrap{white-space:nowrap;}
