/*
  TERN — app.css
  Breakpoints: --mobile 640px · --tablet 768px · --desktop 1024px
*/

/* ── Variables ── */
:root {
  --bg:#07111d; --bg2:#0c1e2e; --bg3:#0e2a3d;
  --border:rgba(45,212,191,0.12); --border2:rgba(45,212,191,0.22);
  --accent:#2dd4bf; --accent2:#7dd3fc; --purple:#a78bfa; --sky:#38bdf8;
  --text:#f0f9ff; --text2:#94b8cc; --text3:#4a7a94;
  --danger:#f87171; --success:#4ade80; --warn:#fbbf24;
  --ff:'Plus Jakarta Sans',sans-serif; --mono:'JetBrains Mono',monospace;
  --r:14px; --r2:20px;
}

/* ── Reset ── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
*, *::before, *::after { transition:background-color .25s ease,border-color .25s ease,color .15s ease }
.spinner,.dot,.progress-fill { transition:none }
.result-section,.summary-section { transition:none; animation:fadeUp .4s ease both }

/* ── Base ── */
html { scroll-behavior:smooth; overflow-x:hidden }
body { background:var(--bg); color:var(--text); font-family:var(--ff); font-size:15px; line-height:1.6; overflow-x:hidden; min-height:100vh; display:flex; flex-direction:column }
main { flex:1; overflow-x:hidden }
.wrap { position:relative; z-index:1; max-width:960px; margin:0 auto; padding:0 20px; width:100% }
.wrap-sm { max-width:480px }
.wrap-lg { max-width:1100px }
body::before { content:''; position:fixed; inset:0; background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(45,212,191,0.07) 0%,transparent 60%),radial-gradient(ellipse 50% 40% at 90% 80%,rgba(125,211,252,0.04) 0%,transparent 50%); pointer-events:none; z-index:0 }
body::after { content:''; position:fixed; inset:0; background-image:linear-gradient(rgba(45,212,191,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(45,212,191,0.025) 1px,transparent 1px); background-size:52px 52px; pointer-events:none; z-index:0 }

/* ── Nav ── */
nav { border-bottom:1px solid var(--border); backdrop-filter:blur(12px); background:rgba(7,17,29,0.88); position:sticky; top:0; z-index:100 }
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:60px; max-width:960px; margin:0 auto; padding:0 20px }
.logo { font-size:20px; font-weight:800; color:var(--text); text-decoration:none; letter-spacing:-0.03em; display:flex; align-items:center }
.nav-right { display:flex; align-items:center; gap:10px }
.nav-link { color:var(--text2); text-decoration:none; font-size:13px; font-weight:500; padding:6px 12px; border-radius:8px; transition:color .2s,background .2s; background:none; border:none; cursor:pointer; font-family:var(--ff) }
.nav-link:hover { color:var(--text); background:rgba(45,212,191,0.07) }
.nav-link.active { color:var(--accent) }
.plan-pill { font-size:11px; font-weight:700; padding:3px 10px; border-radius:100px; letter-spacing:.05em; text-transform:uppercase }
.plan-trial     { background:rgba(45,212,191,0.07); color:var(--text2); border:1px solid rgba(45,212,191,0.15) }
.plan-soloist   { background:rgba(45,212,191,0.10); color:#2dd4bf; border:1px solid rgba(45,212,191,0.25) }
.plan-storyteller { background:rgba(56,189,248,0.10); color:#38bdf8; border:1px solid rgba(56,189,248,0.25) }
.plan-newsroom  { background:rgba(167,139,250,0.10); color:#a78bfa; border:1px solid rgba(167,139,250,0.25) }
.plan-basic     { background:rgba(45,212,191,0.1); color:var(--accent); border:1px solid rgba(45,212,191,0.2) }
.plan-pro       { background:rgba(56,189,248,0.1); color:var(--sky); border:1px solid rgba(56,189,248,0.2) }
.plan-agency    { background:rgba(167,139,250,0.1); color:var(--purple); border:1px solid rgba(167,139,250,0.2) }
.btn-nav { background:var(--accent); color:var(--bg); border:none; border-radius:8px; padding:7px 16px; font-size:13px; font-weight:700; cursor:pointer; text-decoration:none; transition:opacity .2s,transform .15s }
.btn-nav:hover { opacity:.88; transform:translateY(-1px) }
.avatar { width:32px; height:32px; border-radius:50%; background:rgba(45,212,191,0.15); border:1px solid rgba(45,212,191,0.3); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:var(--accent); flex-shrink:0 }
.avatar-lg { width:44px; height:44px; font-size:15px }
.user-chip { display:flex; align-items:center; gap:8px; padding:4px 10px 4px 4px; background:rgba(45,212,191,0.05); border:1px solid var(--border); border-radius:100px }
.user-chip-name { font-size:13px; font-weight:500; color:var(--text2); max-width:120px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }

/* ── Buttons ── */
.btn { display:inline-flex; align-items:center; gap:8px; border:none; border-radius:var(--r); padding:13px 24px; font-family:var(--ff); font-size:14px; font-weight:700; cursor:pointer; transition:transform .15s,opacity .15s,box-shadow .15s; text-decoration:none }
.btn:disabled { opacity:.45; cursor:not-allowed }
.btn-primary { background:var(--accent); color:var(--bg) }
.btn-primary:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 8px 28px rgba(45,212,191,0.25) }
.btn-ghost   { background:rgba(45,212,191,0.07); color:var(--accent); border:1px solid var(--border) }
.btn-ghost:hover:not(:disabled) { background:rgba(45,212,191,0.12); border-color:var(--border2) }
.btn-outline { background:transparent; color:var(--text2); border:1px solid var(--border) }
.btn-outline:hover { border-color:var(--border2); color:var(--text) }
.btn-danger  { background:rgba(248,113,113,0.1); color:var(--danger); border:1px solid rgba(248,113,113,0.2); padding:6px 12px; font-size:12px }
.btn-danger:hover { background:rgba(248,113,113,0.18) }
.btn-google  { background:var(--bg2); color:var(--text); border:1px solid var(--border); width:100%; justify-content:center; gap:10px }
.btn-google:hover { border-color:var(--border2) }
.btn-sm { padding:8px 14px; font-size:12px }
.btn-xs { padding:5px 10px; font-size:11px }

/* ── Cards ── */
.card    { background:var(--bg2); border:1px solid var(--border); border-radius:var(--r2); padding:32px; position:relative }
.card-sm { background:var(--bg2); border:1px solid var(--border); border-radius:var(--r); padding:20px; position:relative }
.card::before,.card-sm::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(45,212,191,0.15),transparent); border-radius:inherit }

/* ── Forms ── */
.field { margin-bottom:18px }
.field label { display:block; font-size:12px; font-weight:600; color:var(--text2); margin-bottom:7px; letter-spacing:.05em; text-transform:uppercase }
input[type=text],input[type=email],input[type=password],input[type=search],textarea,select { width:100%; background:var(--bg3); border:1px solid var(--border); border-radius:var(--r); padding:13px 16px; font-family:var(--ff); font-size:14px; color:var(--text); outline:none; transition:border-color .2s,box-shadow .2s }
input::placeholder,textarea::placeholder { color:var(--text3) }
input:focus,textarea:focus,select:focus { border-color:rgba(45,212,191,0.4); box-shadow:0 0 0 3px rgba(45,212,191,0.08) }
select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234a7a94' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; cursor:pointer }
.input-row { display:flex; gap:10px }
.input-row input,.input-row select { flex:1 }
.divider { display:flex; align-items:center; gap:12px; margin:20px 0; color:var(--text3); font-size:12px }
.divider::before,.divider::after { content:''; flex:1; height:1px; background:var(--border) }

/* ── Alerts ── */
.alert { border-radius:var(--r); padding:14px 18px; font-size:13px; margin-bottom:18px }
.alert-error   { background:rgba(248,113,113,0.08); border:1px solid rgba(248,113,113,0.2); color:var(--danger) }
.alert-success { background:rgba(74,222,128,0.08); border:1px solid rgba(74,222,128,0.2); color:var(--success) }
.alert-info    { background:rgba(45,212,191,0.06); border:1px solid var(--border); color:var(--text2) }
.alert-warn    { background:rgba(251,191,36,0.07); border:1px solid rgba(251,191,36,0.2); color:var(--warn) }

/* ── Badge ── */
.badge { display:inline-flex; align-items:center; gap:7px; background:rgba(45,212,191,0.07); border:1px solid rgba(45,212,191,0.18); border-radius:100px; padding:5px 14px; font-size:11px; color:var(--accent); letter-spacing:.07em; text-transform:uppercase; font-weight:600 }
.badge-precision { font-size:10px; font-weight:600; padding:2px 8px; border-radius:999px; letter-spacing:.04em; display:inline-flex; align-items:center; vertical-align:middle; margin-right:4px }
.badge-precision.std  { background:rgba(45,212,191,0.1); color:var(--accent); border:1px solid rgba(45,212,191,0.2) }
.badge-precision.alta { background:rgba(167,139,250,0.1); color:var(--purple); border:1px solid rgba(167,139,250,0.2) }
.dot { width:6px; height:6px; background:var(--accent); border-radius:50%; animation:blink 2.5s ease infinite }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.25} }
.section-tag { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin-bottom:12px }
.save-badge { background:rgba(74,222,128,0.1); color:var(--success); font-size:11px; font-weight:700; padding:2px 8px; border-radius:100px; border:1px solid rgba(74,222,128,0.2) }

/* ── Progress ── */
.progress-wrap { background:rgba(45,212,191,0.08); border-radius:100px; height:6px; overflow:hidden; margin:10px 0 6px }
.progress-fill { height:100%; background:linear-gradient(90deg,var(--accent),var(--accent2)); border-radius:100px; transition:width .5s ease }
.progress-fill.warn   { background:linear-gradient(90deg,var(--warn),#f97316) }
.progress-fill.danger { background:linear-gradient(90deg,var(--danger),#f97316) }

/* ── Status / spinner ── */
.status-box { display:none; align-items:center; gap:12px; margin-top:18px; padding:14px 18px; background:rgba(45,212,191,0.05); border:1px solid var(--border); border-radius:var(--r); font-family:var(--mono); font-size:13px; color:var(--accent) }
.status-box.error { background:rgba(248,113,113,0.05); border-color:rgba(248,113,113,0.2); color:var(--danger) }
.spinner { width:15px; height:15px; border:2px solid rgba(45,212,191,0.2); border-top-color:var(--accent); border-radius:50%; animation:spin .7s linear infinite; flex-shrink:0 }
@keyframes spin { to { transform:rotate(360deg) } }

/* ── Rate limit banner ── */
.rate-limit-banner { display:none; margin-top:18px; background:rgba(251,191,36,0.05); border:1px solid rgba(251,191,36,0.2); border-radius:var(--r2); padding:22px 26px }
.rl-title { font-size:14px; font-weight:700; color:var(--warn); margin-bottom:4px }
.rl-sub   { font-size:12px; color:var(--text3); margin-bottom:16px }
.rl-countdown { font-family:var(--mono); font-size:2rem; font-weight:500; color:var(--warn) }
.rl-grid  { display:flex; gap:12px; flex-wrap:wrap; margin-top:14px }
.rl-cell  { flex:1; min-width:110px; background:rgba(0,0,0,0.2); border-radius:10px; padding:10px 14px }
.rl-cell-label { font-size:10px; color:var(--text3); text-transform:uppercase; letter-spacing:.07em; margin-bottom:3px }
.rl-cell-val   { font-family:var(--mono); font-size:13px; color:var(--text2) }

/* ── Limit notice ── */
.limit-notice { display:flex; align-items:flex-start; gap:8px; margin-top:10px; padding:10px 14px; background:rgba(251,191,36,0.08); border:1px solid rgba(251,191,36,0.25); border-radius:var(--r); font-size:12px; color:var(--text2); line-height:1.5 }
.limit-notice a { color:var(--accent); text-decoration:underline }
.limit-icon { font-size:14px; flex-shrink:0; margin-top:1px }

/* ── Modal ── */
.modal-bg { display:none; position:fixed; inset:0; background:rgba(4,10,18,0.88); z-index:200; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(4px) }
.modal-bg.open { display:flex }
.modal { background:var(--bg2); border:1px solid var(--border2); border-radius:var(--r2); padding:32px; width:100%; max-width:560px; max-height:85vh; overflow-y:auto; position:relative }
.modal-close { position:absolute; top:16px; right:16px; background:none; border:none; color:var(--text3); font-size:20px; cursor:pointer; padding:4px 8px; line-height:1 }
.modal-close:hover { color:var(--text) }
.modal-transcript { background:var(--bg3); color:var(--text) }

/* ── Verse ── */
.verse-card { background:rgba(14,42,61,0.5); border:1px solid rgba(45,212,191,0.1); border-left:3px solid var(--accent); border-radius:var(--r); padding:16px 20px; margin-top:20px }
.verse-label { font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin-bottom:6px }
.verse-text  { font-size:13px; color:var(--text2); line-height:1.65; font-style:italic }
.verse-ref   { font-size:11px; color:var(--text3); margin-top:5px; font-family:var(--ff); font-style:normal; letter-spacing:.04em }

/* ── History items ── */
.history-item { display:flex; align-items:flex-start; gap:14px; padding:14px 0; border-bottom:1px solid var(--border); max-width:100%; overflow:hidden }
.history-item:last-child { border-bottom:none }
.history-icon { width:36px; height:36px; border-radius:10px; background:rgba(45,212,191,0.08); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:14px }
.history-meta { flex:1; min-width:0; max-width:100%; overflow:hidden }
.history-preview { font-size:13px; color:var(--text2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:4px; max-width:100% }
.history-detail  { font-size:11px; color:var(--text3); font-family:var(--mono) }
.history-actions { display:flex; gap:6px; flex-shrink:0 }

/* ── Tabs ── */
.tab-bar { display:flex; gap:4px; background:rgba(12,30,46,0.6); border-radius:12px; padding:4px; margin-bottom:24px; width:fit-content }
.tab-btn { padding:8px 18px; border-radius:9px; font-size:13px; font-weight:500; cursor:pointer; border:none; background:none; color:var(--text3); transition:all .2s; font-family:var(--ff) }
.tab-btn.active { background:var(--bg2); color:var(--text); border:1px solid var(--border) }

/* ── Settings tabs ── */
.settings-tab-bar { display:flex; gap:0; border-bottom:1px solid var(--border); margin-bottom:28px }
.settings-tab { padding:10px 20px; font-size:13px; font-weight:500; color:var(--text3); cursor:pointer; border:none; background:none; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .2s,border-color .2s; font-family:var(--ff); text-decoration:none }
.settings-tab:hover,.settings-tab.active { color:var(--accent); border-bottom-color:var(--accent) }

/* ── File upload ── */
.file-drop { border:2px dashed var(--border); border-radius:var(--r); padding:40px 24px; text-align:center; cursor:pointer; transition:border-color .2s,background .2s }
.file-drop:hover,.file-drop.dragover { border-color:var(--accent); background:rgba(45,212,191,0.04) }
.file-drop-icon { font-size:32px; margin-bottom:12px }
.file-drop-text { font-size:14px; color:var(--text2) }
.file-drop-hint { font-size:12px; color:var(--text3); margin-top:6px; font-family:var(--mono) }
.file-selected  { display:flex; align-items:center; gap:10px; padding:12px 16px; background:rgba(45,212,191,0.06); border:1px solid var(--border2); border-radius:var(--r); margin-top:12px; font-size:13px; color:var(--text2) }

/* ── Plans grid ── */
.plans-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:24px }
.plan-card  { background:var(--bg2); border:1px solid var(--border); border-radius:var(--r2); padding:28px; position:relative; transition:border-color .2s,transform .2s }
.plan-card:hover { transform:translateY(-2px); border-color:var(--border2) }
.plan-card.popular { border-color:rgba(56,189,248,0.35) }
.plan-popular-tag { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--sky); color:var(--bg); font-size:10px; font-weight:800; padding:3px 12px; border-radius:100px; letter-spacing:.07em; text-transform:uppercase; white-space:nowrap }
.plan-price { font-size:2.6rem; font-weight:800; color:var(--text); letter-spacing:-0.03em; margin:12px 0 4px; line-height:1 }
.plan-price sup { font-size:1.1rem; font-weight:500; color:var(--text2); vertical-align:super }
.plan-price sub { font-size:.85rem; font-weight:400; color:var(--text3) }
.plan-note { font-size:12px; color:var(--text3); line-height:1.6; margin-bottom:16px }
.plan-features { list-style:none; margin:18px 0 24px; display:flex; flex-direction:column; gap:10px }
.plan-features li { font-size:13px; color:var(--text2); display:flex; align-items:center; gap:9px }
.plan-features li::before { content:''; width:16px; height:16px; background:rgba(45,212,191,0.12); border:1px solid var(--border2); border-radius:50%; flex-shrink:0; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l3 3 5-6' stroke='%232dd4bf' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:center }

/* ── Plan buttons ── */
.btn-plan { display:block; width:100%; text-align:center; padding:.75rem 1.5rem; border-radius:var(--r); font-weight:600; font-size:.9rem; transition:transform .15s,box-shadow .15s,opacity .15s; text-decoration:none }
.btn-plan-soloist    { background:transparent; color:var(--accent); border:1.5px solid rgba(45,212,191,0.45) }
.btn-plan-soloist:hover { background:rgba(45,212,191,0.07); border-color:var(--accent) }
.btn-plan-storyteller { background:var(--accent); color:var(--bg); border:1.5px solid var(--accent); box-shadow:0 4px 20px rgba(45,212,191,0.25) }
.btn-plan-storyteller:hover { transform:translateY(-2px); box-shadow:0 6px 28px rgba(45,212,191,0.35) }
.btn-plan-newsroom   { background:transparent; color:var(--accent); border:1.5px solid rgba(45,212,191,0.45) }
.btn-plan-newsroom:hover { background:rgba(45,212,191,0.07); border-color:var(--accent) }

/* ── Billing toggle ── */
.billing-toggle { display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:8px }
.billing-toggle span { font-size:13px; font-weight:500; color:var(--text3) }
.billing-toggle span.active { color:var(--text) }
.toggle-switch { width:44px; height:24px; background:rgba(45,212,191,0.15); border:1px solid var(--border); border-radius:100px; cursor:pointer; position:relative; transition:background .2s }
.toggle-switch.on { background:rgba(45,212,191,0.3); border-color:var(--accent) }
.toggle-knob { width:18px; height:18px; background:var(--text3); border-radius:50%; position:absolute; top:2px; left:3px; transition:transform .2s,background .2s }
.toggle-switch.on .toggle-knob { transform:translateX(20px); background:var(--accent) }

/* ── Features grid ── */
.features-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; margin-top:20px }
.feature-card { background:rgba(12,30,46,0.6); border:1px solid var(--border); border-radius:var(--r2); padding:24px; transition:border-color .2s }
.feature-card:hover { border-color:var(--border2) }
.feature-icon  { width:44px; height:44px; border-radius:12px; background:rgba(45,212,191,0.1); border:1px solid var(--border2); display:flex; align-items:center; justify-content:center; font-size:20px; margin-bottom:14px }
.feature-icon svg,.how-icon svg { color:var(--accent); stroke:var(--accent) }
.feature-title { font-size:14px; font-weight:700; color:var(--text); margin-bottom:7px }
.feature-desc  { font-size:13px; color:var(--text3); line-height:1.65 }

/* ── Dashboard grid ── */
.dash-grid { display:grid; grid-template-columns:1fr 290px; gap:24px; align-items:start }
.stat-row  { display:flex; gap:20px; flex-wrap:wrap; margin-top:14px }
.stat { font-family:var(--mono); font-size:12px; color:var(--text3) }
.stat strong { color:var(--accent) }

/* ── Result area ── */
.result-section { display:none; margin-top:24px; animation:fadeUp .4s ease both }
textarea.transcript-box { min-height:200px; resize:vertical; font-family:var(--mono); font-size:13px; line-height:1.75 }
.result-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; flex-wrap:wrap; gap:8px }
.summary-section { display:none; margin-top:20px; animation:fadeUp .4s ease both }
.summary-box { background:rgba(45,212,191,0.04); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:var(--r); padding:16px 20px; font-size:14px; color:var(--text2); line-height:1.7 }

/* ── Footer ── */
footer { border-top:1px solid var(--border); padding:40px 0; margin-top:80px; position:relative; z-index:1 }
.footer-inner { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:32px; max-width:960px; margin:0 auto; padding:0 20px }
.footer-brand { display:flex; flex-direction:column; gap:8px }
.footer-link  { color:var(--text3); text-decoration:none; font-size:13px; transition:color .2s }
.footer-link:hover { color:var(--accent) }
.footer-copy  { font-size:12px; color:var(--text3) }
.footer-powered { text-align:center; padding:20px; border-top:1px solid var(--border) }
.powered-label  { display:block; font-size:11px; font-weight:600; color:var(--text3); letter-spacing:.08em; text-transform:uppercase; margin-bottom:14px }
.powered-logos  { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:24px }
.powered-item   { opacity:.55; display:inline-flex; align-items:center; transition:opacity .2s }
.powered-item:hover { opacity:.85 }

/* ── Admin ── */
.admin-grid-4 { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-bottom:28px }
.stat-card  { background:var(--bg2); border:1px solid var(--border); border-radius:var(--r); padding:20px }
.stat-label { font-size:11px; font-weight:600; color:var(--text3); text-transform:uppercase; letter-spacing:.07em; margin-bottom:8px }
.stat-value { font-size:2rem; font-weight:800; color:var(--text); letter-spacing:-0.02em; line-height:1 }
.stat-value.green  { color:var(--success) }
.stat-value.accent { color:var(--accent) }
.stat-value.purple { color:var(--purple) }
.admin-stat-value { font-size:1.75rem; font-weight:700; color:var(--text); line-height:1 }
.admin-stat-label { font-size:.75rem; color:var(--text3); text-transform:uppercase; letter-spacing:.06em; margin-top:4px }
.admin-chip { display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:999px; font-size:.8rem; font-weight:500 }
.admin-chip-green  { background:rgba(74,222,128,0.12); color:#4ade80 }
.admin-chip-red    { background:rgba(248,113,113,0.12); color:#f87171 }
.admin-chip-yellow { background:rgba(251,191,36,0.12); color:#fbbf24 }
.admin-chip-teal   { background:rgba(45,212,191,0.12); color:#2dd4bf }
.mono-cell { font-family:var(--mono); font-size:12px; color:var(--text3) }
.admin-section-title { font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--text3); margin-bottom:1rem; padding-bottom:.5rem; border-bottom:1px solid var(--border) }
.table-wrap { background:var(--bg2); border:1px solid var(--border); border-radius:16px; overflow:hidden; margin-bottom:24px }
table { width:100%; border-collapse:collapse; font-size:13px }
th { text-align:left; padding:12px 16px; font-weight:500; font-size:11px; color:var(--text3); border-bottom:1px solid var(--border); text-transform:uppercase; letter-spacing:.05em }
td { padding:12px 16px; border-bottom:1px solid var(--border); color:var(--text2); vertical-align:middle }
tr:last-child td { border-bottom:none }
tr:hover td { background:rgba(45,212,191,0.02) }
.admin-table { width:100%; border-collapse:collapse; font-size:.875rem }
.admin-table th { font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--text3); padding:.5rem 1rem; text-align:left; border-bottom:1px solid var(--border) }
.admin-table td { padding:.75rem 1rem; border-bottom:1px solid var(--border); color:var(--text); vertical-align:middle }
.admin-table tr:last-child td { border-bottom:none }
.admin-table tr:hover td { background:rgba(45,212,191,0.03) }

/* ── Recording ── */
.record-container { display:flex; flex-direction:column; align-items:center; gap:20px; padding:36px 16px }
.record-timer  { font-size:52px; font-weight:500; font-family:var(--mono); color:var(--text); letter-spacing:6px; line-height:1 }
.record-status { font-size:14px; color:var(--text2); font-weight:500 }
.btn-record { background:var(--accent); color:#07111d; border:none; padding:12px 28px; border-radius:var(--r); font-size:15px; font-weight:700; cursor:pointer; font-family:var(--ff); transition:opacity .2s }
.btn-record:hover { opacity:.88 }
.btn-stop { background:#e53e3e; color:#fff; border:none; padding:12px 28px; border-radius:var(--r); font-size:15px; font-weight:700; cursor:pointer; font-family:var(--ff); transition:opacity .2s }
.btn-stop:hover { opacity:.88 }
.record-hint { font-size:12px; color:var(--text3); text-align:center; line-height:1.6; max-width:340px }

/* ── Mobile preview (landing) ── */
.mobile-preview-inner { display:flex; align-items:center; gap:60px; max-width:1100px; margin:0 auto }
.mobile-preview-text { flex:1 }
.mobile-features { list-style:none; padding:0; margin:0 0 28px; display:flex; flex-direction:column; gap:10px }
.mobile-features li { color:var(--text2); padding-left:20px; position:relative; font-size:15px }
.mobile-features li::before { content:''; position:absolute; left:0; top:8px; width:6px; height:6px; border-radius:50%; background:var(--accent) }
.mobile-mockup { flex-shrink:0 }
.phone-frame { width:220px; height:440px; border-radius:36px; border:6px solid var(--border2); background:var(--bg); overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,.2); position:relative }
.phone-frame::before { content:''; position:absolute; top:12px; left:50%; transform:translateX(-50%); width:60px; height:6px; background:var(--border2); border-radius:3px; z-index:1 }
.phone-screen { width:100%; height:100%; overflow:hidden }
.phone-screen img { width:100%; height:100%; object-fit:cover; object-position:top }

/* ── Hero ── */
.hero-social-proof { font-size:.875rem; color:var(--text3); margin-top:1rem; letter-spacing:.02em }
.hero-mockup { margin-top:3rem; max-width:900px; margin-left:auto; margin-right:auto }
#hero h1,#how h2,#how h3,#features h2,#pricing h2,section > .wrap > h2 { font-family:'DM Serif Display',Georgia,serif; font-weight:400; letter-spacing:-.01em; line-height:1.2 }
#hero h1 { font-size:clamp(2.4rem,5.5vw,4rem) !important; letter-spacing:-.02em !important }

/* ── Podcast search ── */
.podcast-result-item { cursor:pointer; transition:background .15s }
.podcast-result-item:hover { background:rgba(45,212,191,0.08) !important }
.podcast-result-item-disabled { cursor:default }
#podcast-search-wrap { max-width:100%; overflow:hidden }
#podcast-results { max-width:100%; overflow-x:hidden }

/* ── Security section (ts-*) ── */
.ts-root{background:#0B2545;border-radius:20px;padding:3rem 2.5rem;font-family:'Plus Jakarta Sans',sans-serif;position:relative;overflow:hidden}
.ts-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(45,212,191,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(45,212,191,.04) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}
.ts-glow{position:absolute;top:-80px;right:-80px;width:320px;height:320px;background:radial-gradient(circle,rgba(45,212,191,.10) 0%,transparent 65%);pointer-events:none}
.ts-glow2{position:absolute;bottom:-60px;left:-60px;width:260px;height:260px;background:radial-gradient(circle,rgba(29,158,117,.07) 0%,transparent 65%);pointer-events:none}
.ts-inner{position:relative;z-index:1}
.ts-top{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;margin-bottom:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(45,212,191,.15)}
.ts-eyebrow{display:inline-flex;align-items:center;gap:7px;background:rgba(45,212,191,.1);border:1px solid rgba(45,212,191,.25);border-radius:100px;padding:5px 14px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#2dd4bf;margin-bottom:1rem}
.ts-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:#2dd4bf;animation:ts-pulse 2s ease-in-out infinite}
@keyframes ts-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}
.ts-h{font-family:'DM Serif Display',serif;font-size:34px;font-weight:400;line-height:1.2;color:#f0f9ff;margin-bottom:.75rem}
.ts-h em{color:#2dd4bf;font-style:normal}
.ts-p{font-size:14px;color:rgba(240,249,255,.70);line-height:1.8;max-width:380px}
.ts-shield{width:100px;height:100px;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center}
.ts-shield svg{width:100px;height:100px}
.ts-badges{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ts-badge{background:rgba(255,255,255,.04);border:1px solid rgba(45,212,191,.2);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;transition:border-color .2s,background .2s}
.ts-badge:hover{border-color:rgba(45,212,191,.5);background:rgba(45,212,191,.04)}
.ts-badge-score{display:flex;align-items:baseline;gap:2px;line-height:1}
.ts-badge-letter{font-family:'DM Serif Display',serif;font-size:80px;color:#2dd4bf;line-height:.9}
.ts-badge-plus{font-family:'DM Serif Display',serif;font-size:42px;color:#2dd4bf;margin-top:8px}
.ts-badge-divider{width:40px;height:1px;background:rgba(45,212,191,.3)}
.ts-badge-name{font-size:13px;font-weight:600;color:#f0f9ff;letter-spacing:.02em}
.ts-badge-detail{font-size:11.5px;color:rgba(240,249,255,.65);line-height:1.6}
.ts-badge-pill{background:rgba(45,212,191,.12);border:1px solid rgba(45,212,191,.25);border-radius:100px;padding:3px 12px;font-size:11px;font-weight:600;color:#2dd4bf;letter-spacing:.05em;text-transform:uppercase}
.ts-footer{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid rgba(45,212,191,.1);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.ts-footer-left{display:flex;align-items:center;gap:10px}
.ts-footer-icon{width:32px;height:32px;background:rgba(45,212,191,.1);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ts-footer-txt{font-size:12.5px;color:rgba(240,249,255,.70);line-height:1.5}
.ts-footer-txt strong{color:rgba(240,249,255,.90);font-weight:600}
.ts-footer-badge{display:flex;align-items:center;gap:6px;background:rgba(29,158,117,.15);border:1px solid rgba(29,158,117,.3);border-radius:100px;padding:6px 14px;white-space:nowrap}
.ts-footer-live-dot{width:7px;height:7px;border-radius:50%;background:#1D9E75;animation:ts-pulse 2s ease-in-out infinite}
.ts-footer-live-txt{font-size:11px;font-weight:600;color:#5DCAA5;letter-spacing:.05em;text-transform:uppercase}

/* ── Light theme ── */
body.theme-light { --bg:#F8F7F4; --bg2:#FFFFFF; --bg3:#F1EFE8; --text:#0B2545; --text2:#3D5A73; --text3:#5F6B7A; --border:rgba(11,37,69,0.10); --border2:rgba(11,37,69,0.20); --accent:#1D9E75 }
body.theme-light nav { background:rgba(248,247,244,0.95) !important; border-bottom-color:rgba(11,37,69,0.08) !important }
body.theme-light body::before { background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(13,148,136,0.05) 0%,transparent 60%) }
body.theme-light body::after  { background-image:linear-gradient(rgba(11,37,69,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(11,37,69,0.025) 1px,transparent 1px) }
body.theme-light .card,body.theme-light .card-sm { background:#fff; border-color:rgba(11,37,69,0.10) }
body.theme-light input,body.theme-light textarea,body.theme-light select { background:#fff; color:#0B2545; border-color:rgba(11,37,69,0.15) }
body.theme-light .feature-card { background:rgba(255,255,255,0.85); border-color:rgba(11,37,69,0.10) }
body.theme-light #how,body.theme-light #features,body.theme-light #pricing { background:rgba(241,239,232,0.60) !important }
body.theme-light .btn-ghost { background:rgba(13,148,136,0.07); color:var(--accent); border-color:rgba(13,148,136,0.2) }
body.theme-light .tab-bar { background:rgba(11,37,69,0.06) }
body.theme-light .badge { background:rgba(13,148,136,0.07); border-color:rgba(13,148,136,0.18) }
body.theme-light .verse-card { background:rgba(13,148,136,0.04); border-color:rgba(13,148,136,0.15) }
body.theme-light .summary-box { background:rgba(13,148,136,0.04) }
body.theme-light footer { border-top-color:rgba(11,37,69,0.10) }
body.theme-light .nav-logo path { stroke:#0d9488 }
body.theme-light .nav-logo text:first-of-type { fill:#0B2545 }
body.theme-light #hero h1 { color:#0B2545 }
body.theme-light .modal { background:#ffffff; border-color:rgba(11,37,69,0.12) }
body.theme-light .modal-close { color:#4a6080 }
body.theme-light .modal-close:hover { color:#0B2545 }
body.theme-light .modal-bg { background:rgba(11,37,69,0.55) }
body.theme-light .modal-transcript { background:#f8f7f4; color:#0B2545; border-color:rgba(11,37,69,0.15) !important }
body.theme-light .btn-record { color:#fff }

/* ── Gray theme ── */
body.theme-gray { --bg:#e8ecf0; --bg2:#d4d9de; --bg3:#c8ced4; --border:rgba(0,0,0,0.12); --border2:rgba(0,0,0,0.2); --text:#1a1a2e; --text2:#4a5568; --text3:#718096 }
body.theme-gray input,body.theme-gray textarea,body.theme-gray select { background:#e0e4e8; color:#1a1a2e }
body.theme-gray .card,body.theme-gray .card-sm { background:#d4d9de }

/* ── Animations ── */
@keyframes fadeUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }

/* ── Responsive ── */
@media(max-width:1024px) {
  .plans-grid { grid-template-columns:repeat(2,1fr) }
}
@media(max-width:768px) {
  .mobile-preview-inner { flex-direction:column-reverse; gap:32px }
  .phone-frame { width:180px; height:360px }
  .phone-frame::before { width:48px }
  .hero-mockup { display:none }
  footer .wrap > div:first-child { grid-template-columns:1fr 1fr !important }
}
@media(max-width:640px) {
  .dash-grid  { grid-template-columns:1fr }
  .plans-grid { grid-template-columns:1fr }
  .card { padding:20px 16px }
  .card-sm { width:100%; max-width:100%; box-sizing:border-box; overflow:hidden }
  .wrap,.wrap-sm,.wrap-lg { padding:0 14px }
  .input-row { flex-direction:column; width:100%; box-sizing:border-box }
  .input-row input,.input-row button { width:100%; box-sizing:border-box }
  .settings-tab-bar { flex-wrap:wrap }
  .settings-tab { font-size:12px; padding:8px 14px }
  .plan-card { padding:20px 16px }
  .history-item { gap:10px }
  .tab-bar { overflow-x:auto; width:100%; scrollbar-width:none }
  .tab-bar::-webkit-scrollbar { display:none }
  .tab-btn { flex:1; min-width:0; padding:8px 10px; font-size:12px }
  .btn-group { flex-direction:column; gap:8px }
  .options-row > div { min-width:0 !important; width:100% !important }
  #podcast-search-wrap { width:100%; box-sizing:border-box }
  #podcast-results { max-width:100%; box-sizing:border-box; overflow-x:hidden }
  #podcast-search-btn { max-width:100%; box-sizing:border-box; white-space:normal }
  .ts-top { grid-template-columns:1fr; gap:1.5rem }
  .ts-shield { display:none }
  .ts-h { font-size:26px }
  .ts-badges { grid-template-columns:1fr 1fr; gap:.75rem }
  .ts-badge-letter { font-size:60px }
  .ts-badge-plus { font-size:32px }
  .ts-footer { flex-direction:column; align-items:flex-start; gap:.75rem }
}
@media(max-width:480px) {
  footer .wrap > div:first-child { grid-template-columns:1fr !important }
}
@media(max-width:400px) {
  .wrap,.wrap-sm,.wrap-lg { padding:0 12px }
  .card { padding:16px 12px }
  .plan-card { padding:16px 12px }
  .settings-tab { font-size:11px; padding:7px 10px }
  .btn,.btn-primary,.btn-outline { font-size:13px; padding:10px 14px }
  input[type=text],input[type=email],input[type=password],input[type=search],textarea,select { width:100% !important; box-sizing:border-box }
  .badge-precision { font-size:9px; padding:1px 6px }
  .history-icon { width:32px !important; height:32px !important }
  .plan-price { font-size:1.5rem }
}
/* ── Locked features ── */
.locked-feature { opacity:.65; cursor:pointer; position:relative; }
.locked-feature:hover { opacity:.85; border-color:var(--accent) !important; }
