/* TorahSages — accounts UI (account control + /login + /member). Mobile-first.
 * Functional surfaces use Heebo (the sans "chrome"); headings stay in the display serif
 * (UI Design Spec: serif for voice, sans for chrome). */

/* ---- Header account control (identical bytes for all; JS hydrates) ---- */
.ts-acct{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft);text-decoration:none;
  font-size:14px;letter-spacing:.03em;white-space:nowrap;}
.ts-acct:hover{color:var(--ink);}
.ts-acct-ic{width:20px;height:20px;fill:currentColor;flex:0 0 auto;}
.ts-acct[data-state="in"] .ts-acct-label{color:var(--gold-deep);font-weight:600;}
/* Hard cap: a long first name ellipsizes instead of pushing the bar (header Log out
 * link removed 07-30 — logout lives on /member). */
.ts-acct-label{max-width:9em;overflow:hidden;text-overflow:ellipsis;}
.mast-slim .ts-acct{margin-left:6px;}
.mast-grand .ts-acct{margin-left:4px;}
@media(max-width:640px){
  .ts-acct-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);} /* icon-only on phones */
}

/* ---- /login + /member shared ---- */
.ts-auth-wrap{max-width:640px;font-family:'Heebo',system-ui,sans-serif;}
/* Sign in | Join free tabs (owner QA 07-30). data-mode on the form decides what shows:
 * signin hides the name row + join lead; join hides the signin lead. */
.ts-mode-tabs{display:flex;gap:8px;margin-bottom:16px;}
.ts-mode{flex:1;padding:9px 0;border:1px solid var(--rule);background:none;border-radius:8px;
  font-family:inherit;font-size:14px;letter-spacing:.02em;cursor:pointer;color:var(--ink-soft);}
.ts-mode.is-active{border-color:var(--gold-deep);color:var(--gold-deep);font-weight:600;background:var(--parchment);}
#ts-login-form[data-mode="signin"] .ts-name-row,
#ts-login-form[data-mode="signin"] .ts-lead-join{display:none;}
#ts-login-form[data-mode="join"] .ts-lead-signin{display:none;}
.ts-auth-wrap .title{font-family:var(--font-display);border-bottom:3px solid var(--gold);
  padding-bottom:12px;margin-bottom:20px;}
.ts-auth-card{background:var(--paper);border:1px solid var(--rule);border-radius:12px;
  padding:24px;margin-top:4px;}

/* icon chip (login steps + member access) */
.ts-icon{width:44px;height:44px;border-radius:10px;background:#efe7d3;display:flex;align-items:center;
  justify-content:center;color:var(--gold-deep);margin-bottom:14px;}
.ts-icon svg{width:22px;height:22px;fill:currentColor;}

/* ---- /login ---- */
.ts-auth-card .ts-lead{color:var(--ink-soft);font-size:15px;margin:0 0 16px;line-height:1.5;}
.ts-auth-card label{display:block;font-size:13px;font-weight:500;color:var(--ink-soft);margin:0 0 6px;
  text-transform:none;letter-spacing:0;}
.ts-auth-card input[type="email"],
.ts-auth-card input[type="text"]{width:100%;box-sizing:border-box;padding:11px 13px;font-size:15px;
  font-family:'Heebo',sans-serif;color:var(--ink);background:var(--parchment);border:1px solid var(--rule);
  border-radius:8px;margin-bottom:14px;}
.ts-auth-card input:focus{outline:none;border-color:var(--gold-deep);box-shadow:0 0 0 2px rgba(122,95,40,.18);}
#ts-code{letter-spacing:.5em;font-size:22px;text-align:center;padding-left:.5em;}
.cf-turnstile{margin:0 0 14px;}
.ts-btn{display:block;width:100%;padding:12px 18px;font-size:15px;font-weight:500;font-family:'Heebo',sans-serif;
  color:var(--paper);background:var(--gold-deep);border:0;border-radius:8px;cursor:pointer;transition:filter .15s;}
.ts-btn:hover{filter:brightness(1.08);}
.ts-linkbtn{display:block;margin:12px auto 0;background:none;border:0;color:var(--gold-deep);
  font-size:13px;font-weight:500;cursor:pointer;}
.ts-linkbtn:hover{text-decoration:underline;}
.ts-msg{min-height:1.2em;margin:14px 0 0;color:var(--ink-soft);font-size:14px;text-align:center;}

/* ---- /member ---- */
.ts-acctrow{display:flex;align-items:center;gap:14px;}
.ts-avatar{width:50px;height:50px;border-radius:50%;background:#efe7d3;border:1px solid var(--rule);
  display:flex;align-items:center;justify-content:center;color:var(--gold-deep);font-size:20px;font-weight:600;
  flex:0 0 auto;font-family:var(--font-display);}
.ts-acctinfo{flex:1;min-width:0;}
.ts-acctinfo .ts-name{font-size:18px;font-weight:600;color:var(--ink);}
.ts-acctinfo .ts-email{font-size:14px;color:var(--ink-soft);word-break:break-word;}
.ts-memberlogout{background:none;border:1px solid var(--gold-deep);color:var(--gold-deep);
  font-family:'Heebo',sans-serif;font-size:13px;font-weight:500;border-radius:8px;padding:8px 14px;
  cursor:pointer;white-space:nowrap;flex:0 0 auto;}
.ts-memberlogout:hover{background:var(--parchment);}
.ts-divider{border-top:1px solid var(--rule);margin:20px 0;}
.ts-sub{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);
  font-weight:600;margin:0 0 12px;}
.ts-access{display:flex;align-items:center;gap:14px;background:var(--parchment);border:1px solid var(--rule);
  border-radius:10px;padding:15px 16px;}
.ts-access-ic{width:42px;height:42px;border-radius:10px;background:#efe7d3;display:flex;align-items:center;
  justify-content:center;color:var(--gold-deep);flex:0 0 auto;}
.ts-access-ic svg{width:22px;height:22px;fill:currentColor;}
.ts-access-body{flex:1;min-width:0;}
.ts-access-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.ts-access-title .t{font-size:16px;font-weight:600;color:var(--ink);}
.ts-pill{font-size:12px;font-weight:600;background:#eaf3de;color:#3b6d11;padding:3px 10px;border-radius:20px;}
.ts-access-desc{font-size:14px;color:var(--ink-soft);margin-top:3px;}
.ts-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;}
.ts-cta{font-family:'Heebo',sans-serif;font-size:14px;font-weight:500;border-radius:8px;padding:10px 16px;
  cursor:pointer;text-decoration:none;display:inline-block;}
.ts-cta.p{background:var(--gold-deep);color:var(--paper);border:1px solid var(--gold-deep);}
.ts-cta.g{background:transparent;color:var(--gold-deep);border:1px solid var(--gold-deep);}
.ts-cta.g:hover{background:var(--parchment);}
.ts-receipts-table{width:100%;border-collapse:collapse;font-size:14px;}
.ts-receipts-table th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:600;padding:6px 8px;}
.ts-receipts-table td{padding:11px 8px;border-top:1px solid var(--rule);color:var(--ink);}
.ts-receipts-table td.amt,.ts-receipts-table th.amt{text-align:right;font-variant-numeric:tabular-nums;}
.ts-empty{font-size:14px;color:var(--ink-soft);}
.ts-supportlink{font-weight:700;} /* owner 07-30: make the support CTA visible */
/* /member section cards — the rest of the site at the member's fingertips (owner 07-31) */
.ts-explore{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ts-explore-card{display:block;border:1px solid var(--rule);border-radius:10px;padding:12px 14px;
  text-decoration:none;background:var(--paper);}
.ts-explore-card:hover{border-color:var(--gold-deep);}
.tsx-title{display:block;font-family:var(--font-display);font-weight:600;color:var(--gold-deep);
  font-size:15.5px;margin-bottom:2px;}
.tsx-dek{display:block;font-size:13px;color:var(--ink-soft);line-height:1.45;}
@media(max-width:520px){.ts-explore{grid-template-columns:1fr;}}

/* ---- /checkout/success + /checkout/cancel (Stage 2 §6, mockup checkout-success-cancel.html) ---- */
.checkout-card{text-align:center;padding:32px 24px;}
.checkout-ic{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;}
.checkout-ic svg{width:28px;height:28px;fill:currentColor;}
.checkout-ic.is-success{background:#eaf3de;color:#3b6d11;}
.checkout-ic.is-cancel{background:#efe7d3;color:var(--ink-faint);}
.checkout-title{font-family:var(--font-display);font-size:30px;font-weight:600;margin:0 0 6px;}
.checkout-lead{font-size:15px;color:var(--ink-soft);margin:0 auto 18px;max-width:340px;line-height:1.5;}
.checkout-btn{display:inline-block;width:auto;padding:12px 24px;}
.checkout-btn.is-ghost{background:transparent;color:var(--gold-deep);border:1px solid var(--gold-deep);}
.checkout-btn.is-ghost:hover{background:var(--parchment);}
.checkout-note{font-size:12.5px;color:var(--ink-faint);margin:16px 0 0;}
.ts-unlock-msg{font-family:'Heebo',sans-serif;font-size:13px;color:var(--gold-deep);margin-inline-start:10px;}
