/* ============================================================
   PASSOS — Design System
   Navy #0A0E27 · Gold #C9A84C · Cream #FAF6EE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy:  #0A0E27;
  --navy2: #141836;
  --gold:  #C9A84C;
  --gold2: #e8c96a;
  --cream: #FAF6EE;
  --cream2:#F0EBE0;
  --muted: #7a7d96;
  --green: #22b573;
  --red:   #e05454;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Poppins', system-ui, sans-serif;
  --safe-top: env(safe-area-inset-top, 0px);
}

html, body { height: 100%; }
body { font-family: var(--sans); background: var(--cream); color: var(--navy); font-size: 15px; line-height: 1.6; }
#app { min-height: 100vh; }

/* ── Utilitários ─────────────────────────────────────────── */
.hidden   { display: none !important; }
.serif    { font-family: var(--serif); }
.gold     { color: var(--gold); }
.muted    { color: var(--muted); }
.center   { text-align: center; }
.flex     { display: flex; }
.gap-8    { gap: 8px; }
.gap-12   { gap: 12px; }
.mt-8     { margin-top: 8px; }
.mt-16    { margin-top: 16px; }
.mt-24    { margin-top: 24px; }

/* ── Loader ──────────────────────────────────────────────── */
.loader-full { position:fixed;inset:0;background:var(--navy);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;z-index:9999; }
.loader-full .logo { font-family:var(--serif);font-size:2.6rem;font-weight:700;color:var(--gold);letter-spacing:.15em; }
.loader-full .sub  { font-size:.65rem;font-weight:500;color:rgba(201,168,76,.45);letter-spacing:.25em;text-transform:uppercase; }
.loader-full .bar  { width:100px;height:2px;background:rgba(201,168,76,.12);border-radius:2px;overflow:hidden;margin-top:24px; }
.loader-full .bar-fill { height:100%;background:var(--gold);animation:loadbar 1.6s ease forwards; }
@keyframes loadbar { to { width:100%; } }

.spinner { width:28px;height:28px;border:2.5px solid rgba(201,168,76,.2);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* ── Flame SVG animation ─────────────────────────────────── */
@keyframes flicker {
  0%,100%{ transform:scaleX(1) scaleY(1) rotate(-1deg); }
  25%    { transform:scaleX(.96) scaleY(1.04) rotate(1.5deg); }
  50%    { transform:scaleX(1.03) scaleY(.97) rotate(-.5deg); }
  75%    { transform:scaleX(.97) scaleY(1.03) rotate(2deg); }
}
.flame { animation:flicker 1.9s ease-in-out infinite;transform-origin:bottom center;display:inline-block;vertical-align:middle; }

/* ── Inputs ──────────────────────────────────────────────── */
.input {
  width:100%;padding:11px 14px;
  background:#fff;border:1.5px solid rgba(10,14,39,.12);border-radius:10px;
  font-family:var(--sans);font-size:.85rem;color:var(--navy);outline:none;
  transition:border-color .18s;
}
.input:focus { border-color:var(--gold); }
.input.dark  { background:rgba(0,0,0,.25);border-color:rgba(201,168,76,.2);color:#fff; }
.input.dark::placeholder { color:rgba(255,255,255,.3); }
.input.dark:focus { border-color:rgba(201,168,76,.5); }

.field { display:flex;flex-direction:column;gap:5px; }
.field label { font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted); }
.field label.gold-label { color:rgba(201,168,76,.75); }

/* ── Buttons ─────────────────────────────────────────────── */
.btn {
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:12px 20px;border:none;border-radius:12px;
  font-family:var(--sans);font-size:.82rem;font-weight:600;cursor:pointer;
  transition:opacity .18s,transform .1s;letter-spacing:.04em;
}
.btn:active  { transform:scale(.97); }
.btn:disabled{ opacity:.5;cursor:not-allowed; }
.btn-primary { background:var(--gold);color:var(--navy); }
.btn-primary:hover { opacity:.88; }
.btn-outline { background:transparent;border:1.5px solid rgba(10,14,39,.18);color:var(--navy); }
.btn-outline:hover { border-color:var(--gold); }
.btn-danger  { background:rgba(224,84,84,.1);color:var(--red);border:1.5px solid rgba(224,84,84,.2); }
.btn-full    { width:100%; }
.btn-lg      { padding:14px 20px;font-size:.88rem; }
.btn-sm      { padding:7px 12px;font-size:.72rem;border-radius:8px; }
.btn-ghost   { background:rgba(10,14,39,.06);color:var(--navy);border:none; }
.btn-ghost:hover { background:rgba(10,14,39,.1); }
.btn-gold-ghost { background:rgba(201,168,76,.12);color:var(--gold);border:1px solid rgba(201,168,76,.2); }

/* ── Cards ───────────────────────────────────────────────── */
.card { background:#fff;border:1px solid rgba(10,14,39,.08);border-radius:16px;padding:20px; }

/* ── Alerts ──────────────────────────────────────────────── */
.alert { padding:11px 14px;border-radius:10px;font-size:.8rem;line-height:1.5; }
.alert-error   { background:rgba(224,84,84,.1);border:1px solid rgba(224,84,84,.2);color:#c0392b; }
.alert-success { background:rgba(34,181,115,.1);border:1px solid rgba(34,181,115,.2);color:#166534; }
.alert-info    { background:rgba(201,168,76,.08);border:1px solid rgba(201,168,76,.2);color:#7a5e10; }

/* ── Toast ───────────────────────────────────────────────── */
#toast-container { position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:9000;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:90%;max-width:340px; }
.toast { padding:12px 18px;border-radius:12px;font-size:.82rem;font-weight:500;color:#fff;animation:toast-in .3s ease;pointer-events:none; }
.toast.success { background:#22b573; }
.toast.error   { background:#e05454; }
.toast.info    { background:var(--navy); }
@keyframes toast-in { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }

/* ── Page wrapper ────────────────────────────────────────── */
.page { min-height:100vh;animation:fade-in .25s ease; }
@keyframes fade-in { from{opacity:0} to{opacity:1} }

/* ════════════════════════════════════════════════════════════
   AUTH PAGE
════════════════════════════════════════════════════════════ */
.auth-page {
  min-height:100vh;
  background: radial-gradient(ellipse at 50% 25%, #1c2468 0%, var(--navy) 60%);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.auth-box { width:100%;max-width:380px; }
.auth-brand { text-align:center;margin-bottom:32px; }
.auth-brand-title { font-family:var(--serif);font-size:2.6rem;font-weight:700;color:var(--gold);letter-spacing:.14em;display:block;margin-top:10px; }
.auth-brand-sub   { font-size:.6rem;font-weight:500;color:rgba(201,168,76,.45);letter-spacing:.25em;text-transform:uppercase;margin-top:5px;display:block; }
.auth-card { background:rgba(255,255,255,.05);border:1px solid rgba(201,168,76,.18);border-radius:20px;padding:28px 24px;backdrop-filter:blur(12px); }
.auth-tabs { display:flex;gap:4px;background:rgba(0,0,0,.25);border-radius:10px;padding:4px;margin-bottom:22px; }
.auth-tab  { flex:1;padding:8px;border:none;border-radius:7px;background:transparent;color:rgba(255,255,255,.45);font-family:var(--sans);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .18s; }
.auth-tab.active { background:var(--gold);color:var(--navy);font-weight:600; }
.auth-form { display:flex;flex-direction:column;gap:14px; }
.auth-link { background:none;border:none;color:rgba(201,168,76,.65);font-family:var(--sans);font-size:.72rem;cursor:pointer;text-align:right;padding:0;transition:color .18s; }
.auth-link:hover { color:var(--gold); }
.auth-back { background:none;border:none;color:rgba(255,255,255,.4);font-family:var(--sans);font-size:.75rem;cursor:pointer;text-align:center;width:100%;padding:8px;transition:color .18s;margin-top:4px; }
.auth-back:hover { color:rgba(255,255,255,.7); }
.auth-mode-header { text-align:center;margin-bottom:20px; }
.auth-mode-header h2 { font-family:var(--serif);font-size:1.3rem;color:#fff;font-weight:600; }
.auth-mode-header p  { font-size:.72rem;color:rgba(201,168,76,.5);margin-top:4px; }
.auth-hint { font-size:.72rem;color:rgba(255,255,255,.38);line-height:1.55; }
.auth-footer { text-align:center;margin-top:18px;font-size:.68rem;color:rgba(255,255,255,.2); }

/* ════════════════════════════════════════════════════════════
   APP LAYOUT (usuário)
════════════════════════════════════════════════════════════ */
.app-wrap { display:flex;flex-direction:column;min-height:100vh;background:var(--cream); }

.app-header {
  background:var(--navy);
  padding: calc(var(--safe-top) + 14px) 20px 14px;
  display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;z-index:100;
}
.app-logo { display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:1.4rem;font-weight:700;color:var(--gold);letter-spacing:.1em; }
.app-right { display:flex;align-items:center;gap:8px; }
.progress-badge { background:rgba(201,168,76,.15);border:1px solid rgba(201,168,76,.28);color:var(--gold);font-size:.65rem;font-weight:600;padding:4px 10px;border-radius:20px; }

/* Avatar / dropdown */
.avatar { width:32px;height:32px;border-radius:50%;background:var(--gold);color:var(--navy);font-family:var(--serif);font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0; }
.dropdown-wrap { position:relative; }
.dropdown { position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid rgba(10,14,39,.1);border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.14);min-width:190px;overflow:hidden;animation:dd-in .15s ease;z-index:50; }
@keyframes dd-in { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:translateY(0)} }
.dropdown-user { padding:12px 16px;border-bottom:1px solid rgba(10,14,39,.07); }
.dropdown-name  { font-size:.8rem;font-weight:600;color:var(--navy);display:block; }
.dropdown-email { font-size:.65rem;color:var(--muted);display:block;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.dropdown-item  { display:flex;align-items:center;gap:8px;width:100%;padding:11px 16px;background:none;border:none;text-align:left;font-family:var(--sans);font-size:.78rem;font-weight:500;color:var(--navy);cursor:pointer;transition:background .14s; }
.dropdown-item:hover { background:var(--cream); }
.dropdown-item.danger { color:var(--red); }
.dropdown-item.danger:hover { background:rgba(224,84,84,.06); }
.dd-backdrop { position:fixed;inset:0;z-index:40; }

/* Nav tabs */
.tabs-wrap { background:#fff;border-bottom:1px solid rgba(10,14,39,.08);display:flex;padding:0 12px; }
.tab-btn { flex:1;padding:13px 8px;background:none;border:none;border-bottom:2.5px solid transparent;font-family:var(--sans);font-size:.75rem;font-weight:600;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .18s; }
.tab-btn.active { color:var(--navy);border-bottom-color:var(--gold); }

/* Main content */
.app-content { flex:1;padding:0 0 80px; }

/* ── Aba Hoje ─────────────────────────────────────────────── */
.hoje-greeting { padding:18px 20px 8px; }
.hoje-greeting .tag { font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:3px; }
.hoje-greeting h2  { font-family:var(--serif);font-size:1.35rem;font-weight:600;color:var(--navy);line-height:1.25; }

.day-card { margin:12px 20px;border-radius:18px;overflow:hidden;position:relative;aspect-ratio:16/9; }
.day-card-bg { position:absolute;inset:0;background:linear-gradient(135deg,#0A0E27 0%,#1c2468 50%,#0d1535 100%); }
.day-card-glow { position:absolute;top:-20px;left:50%;transform:translateX(-50%);width:180px;height:180px;background:radial-gradient(circle,rgba(201,168,76,.15) 0%,transparent 70%);pointer-events:none; }
.day-card-inner { position:relative;z-index:1;padding:20px;height:100%;display:flex;flex-direction:column;justify-content:space-between; }
.day-card-num   { font-size:.6rem;font-weight:700;color:var(--gold);letter-spacing:.2em;text-transform:uppercase; }
.day-card-title { font-family:var(--serif);font-size:1.25rem;font-weight:600;color:#fff;line-height:1.3; }

.prog-wrap { margin:4px 20px 14px; }
.prog-label { display:flex;justify-content:space-between;font-size:.62rem;font-weight:500;color:var(--muted);margin-bottom:5px; }
.prog-label span:last-child { color:var(--gold);font-weight:600; }
.prog-track { height:4px;background:rgba(10,14,39,.1);border-radius:4px;overflow:hidden; }
.prog-fill  { height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));border-radius:4px;transition:width .5s ease; }

.cta-wrap { padding:0 20px; }

.next-title { font-family:var(--serif);font-size:1rem;font-weight:600;color:var(--navy);margin-bottom:10px; }
.next-item  { display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(10,14,39,.07); }
.next-num   { width:30px;height:30px;border-radius:50%;background:rgba(10,14,39,.06);display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:var(--muted);flex-shrink:0; }
.next-info  .d  { font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted); }
.next-info  .t  { font-size:.8rem;font-weight:500;color:var(--navy);line-height:1.3; }

/* ── Aba Calendário ───────────────────────────────────────── */
.cal-header { padding:14px 16px 6px; }
.cal-header .tag   { font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:3px; }
.cal-header h2     { font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--navy); }
.cal-grid { display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding:10px 14px; }
.cal-cell { aspect-ratio:1;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .13s;border:1.5px solid transparent; }
.cal-cell:hover { transform:scale(1.07); }
.cal-cell .n { font-family:var(--serif);font-size:.95rem;font-weight:700;line-height:1; }
.cal-cell .i { font-size:.55rem;margin-top:2px; }
.cal-done  { background:#0a2e1a;color:#4ade80;border-color:rgba(74,222,128,.2); }
.cal-hoje  { background:var(--navy);color:var(--gold);border-color:rgba(201,168,76,.35);box-shadow:0 0 0 3px rgba(201,168,76,.1); }
.cal-open  { background:rgba(201,168,76,.07);color:var(--navy);border-color:rgba(201,168,76,.18); }
.cal-lock  { background:rgba(10,14,39,.04);color:rgba(10,14,39,.22);border-color:rgba(10,14,39,.05);cursor:default; }
.cal-lock:hover { transform:none; }

.cal-stats { display:flex;justify-content:space-around;margin:0 14px 14px;background:#fff;border:1px solid rgba(10,14,39,.08);border-radius:14px;padding:12px 8px; }
.cal-stat .n { font-family:var(--serif);font-size:1.4rem;font-weight:700;color:var(--navy);display:block; }
.cal-stat .l { font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted); }

.cal-legend { display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 16px; }
.leg-item   { display:flex;align-items:center;gap:5px;font-size:.6rem;color:var(--muted); }
.leg-dot    { width:8px;height:8px;border-radius:3px;flex-shrink:0; }

/* ── Leitura (overlay) ────────────────────────────────────── */
.leitura-overlay { position:fixed;inset:0;background:var(--cream);z-index:200;overflow-y:auto;animation:slide-up .3s ease; }
@keyframes slide-up { from{transform:translateY(100%)} to{transform:translateY(0)} }

.leitura-header { background:var(--navy);padding:calc(var(--safe-top) + 14px) 20px 22px;position:relative; }
.leitura-back { position:absolute;top:calc(var(--safe-top) + 14px);left:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:rgba(255,255,255,.7);font-family:var(--sans);font-size:.72rem;font-weight:600;cursor:pointer;padding:5px 10px; }
.leitura-tag   { font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:rgba(201,168,76,.6);text-align:center;margin-bottom:7px; }
.leitura-title { font-family:var(--serif);font-size:1.5rem;font-weight:700;color:#fff;text-align:center;line-height:1.25; }

.leitura-body { padding:22px 20px 12px; }
.leitura-video { margin-bottom:20px;border-radius:12px;overflow:hidden;aspect-ratio:16/9;background:#000; }
.leitura-video iframe { width:100%;height:100%;border:none; }
.leitura-text { font-size:.85rem;line-height:1.78;color:#2c2f45; }
.leitura-text p  { margin-bottom:13px; }
.leitura-text h2 { font-family:var(--serif);font-size:1.2rem;color:var(--navy);margin:0 0 10px; }
.leitura-text strong { color:var(--navy);font-weight:600; }
.leitura-text em { font-family:var(--serif);font-style:italic;font-size:.95rem; }
.leitura-text blockquote { border-left:3px solid var(--gold);padding:10px 14px;margin:14px 0;background:rgba(201,168,76,.06);border-radius:0 10px 10px 0;font-family:var(--serif);font-size:.98rem;font-style:italic;color:var(--navy);line-height:1.55; }

.oracao-box  { background:var(--navy);border-radius:16px;padding:18px;margin:20px 0; }
.oracao-tag  { font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:rgba(201,168,76,.65);margin-bottom:8px; }
.oracao-text { font-family:var(--serif);font-size:.95rem;font-style:italic;color:rgba(255,255,255,.82);line-height:1.65; }

.jrnl-label { font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:7px; }
.jrnl-area  { width:100%;min-height:90px;background:#fff;border:1.5px solid rgba(10,14,39,.1);border-radius:12px;padding:11px 13px;font-family:var(--sans);font-size:.82rem;color:var(--navy);resize:none;outline:none;transition:border-color .18s; }
.jrnl-area:focus { border-color:var(--gold); }

/* ══════════════════════════════════════════════════════════
   ADMIN
══════════════════════════════════════════════════════════ */
.admin-wrap { display:flex;flex-direction:column;min-height:100vh;background:#f2ede3; }
.admin-header { background:var(--navy);padding:calc(var(--safe-top)+14px) 20px 14px;display:flex;align-items:center;justify-content:space-between; }
.admin-logo .title { font-family:var(--serif);font-size:1.3rem;font-weight:700;color:var(--gold); }
.admin-logo .sub   { font-size:.6rem;font-weight:500;color:rgba(201,168,76,.45);text-transform:uppercase;letter-spacing:.1em;margin-top:1px;display:block; }
.admin-badge { background:var(--gold);color:var(--navy);font-size:.58rem;font-weight:800;padding:3px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.1em; }

.admin-tabs { display:flex;background:#fff;border-bottom:1px solid rgba(10,14,39,.08); }
.admin-tab  { flex:1;padding:12px 8px;background:none;border:none;border-bottom:2.5px solid transparent;font-family:var(--sans);font-size:.72rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all .18s;text-align:center; }
.admin-tab.active { color:var(--navy);border-bottom-color:var(--gold); }

.admin-section { padding:16px; }

.stat-row { display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px; }
.stat-card { background:#fff;border:1px solid rgba(10,14,39,.07);border-radius:12px;padding:12px 8px;text-align:center; }
.stat-card .n { font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--navy);display:block; }
.stat-card .l { font-size:.55rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted); }

/* User list */
.user-list { display:flex;flex-direction:column;gap:7px; }
.user-item { background:#fff;border:1px solid rgba(10,14,39,.07);border-radius:12px;padding:11px 12px;display:flex;align-items:center;gap:10px; }
.user-av   { width:36px;height:36px;border-radius:50%;background:var(--navy);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:.95rem;font-weight:700;flex-shrink:0; }
.user-info { flex:1;min-width:0; }
.user-info .name  { font-size:.8rem;font-weight:600;color:var(--navy); }
.user-info .email { font-size:.65rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.user-dias { background:rgba(201,168,76,.1);border:1px solid rgba(201,168,76,.22);color:#7a5e10;font-size:.6rem;font-weight:700;padding:3px 7px;border-radius:20px;white-space:nowrap; }
.user-actions { display:flex;gap:5px;flex-shrink:0; }

/* Dev list */
.dev-list { display:flex;flex-direction:column;gap:7px; }
.dev-item { background:#fff;border:1px solid rgba(10,14,39,.07);border-radius:12px;padding:11px 12px;display:flex;align-items:center;gap:9px;cursor:pointer;transition:border-color .18s; }
.dev-item:hover { border-color:var(--gold); }
.dev-dia  { width:32px;height:32px;border-radius:50%;background:var(--navy);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;flex-shrink:0; }
.dev-empty .dev-dia { background:rgba(10,14,39,.12);color:var(--muted); }
.dev-titulo { font-size:.78rem;font-weight:500;color:var(--navy);flex:1;line-height:1.35; }
.dev-empty .dev-titulo { color:var(--muted); }
.badge-pub { font-size:.58rem;background:rgba(34,181,115,.1);color:#166534;padding:2px 7px;border-radius:20px;font-weight:700;border:1px solid rgba(34,181,115,.18);white-space:nowrap; }
.badge-draft { font-size:.58rem;background:rgba(10,14,39,.07);color:var(--muted);padding:2px 7px;border-radius:20px;font-weight:700;white-space:nowrap; }

/* Dev form */
.dev-form { background:#fff;border:1px solid rgba(10,14,39,.08);border-radius:16px;padding:20px;margin-bottom:16px; }
.dev-form h3 { font-family:var(--serif);font-size:1.15rem;color:var(--navy);margin-bottom:16px; }
.dev-form .form-row { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.dev-form .form-group { display:flex;flex-direction:column;gap:5px; }
.dev-form .form-group label { font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted); }
.form-actions { display:flex;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(10,14,39,.07); }

/* Rich text editor */
.rte-wrap   { border:1.5px solid rgba(10,14,39,.12);border-radius:10px;overflow:hidden; }
.rte-toolbar{ display:flex;flex-wrap:wrap;gap:2px;padding:8px;background:#f9f6f0;border-bottom:1px solid rgba(10,14,39,.1);position:sticky;top:0;z-index:10; }
.rte-toolbar.stuck { box-shadow:0 4px 16px rgba(0,0,0,.12); }
.rte-btn { width:28px;height:28px;border:none;border-radius:5px;background:transparent;color:var(--navy);cursor:pointer;font-size:.82rem;display:flex;align-items:center;justify-content:center;transition:background .14s; }
.rte-btn:hover  { background:rgba(10,14,39,.08); }
.rte-btn.on     { background:var(--navy);color:var(--gold); }
.rte-sep { width:1px;background:rgba(10,14,39,.1);margin:2px 4px; }
.rte-editor { min-height:200px;padding:14px;outline:none;font-size:.88rem;line-height:1.7;color:var(--navy); }
.rte-editor:empty::before { content:attr(data-ph);color:var(--muted); }
.rte-editor blockquote { border-left:3px solid var(--gold);padding-left:12px;margin:8px 0;font-style:italic; }
.rte-editor h2 { font-family:var(--serif);font-size:1.2rem;margin:8px 0 4px; }
.rte-editor a  { color:var(--gold); }

/* Capa upload/preview */
.capa-toggle { display:flex;gap:7px;margin-bottom:10px; }
.capa-toggle .btn { flex:1;font-size:.72rem;padding:8px; }
.capa-preview { border:1.5px solid rgba(10,14,39,.1);border-radius:10px;overflow:hidden;min-height:100px;display:flex;align-items:center;justify-content:center;background:var(--cream);margin-top:8px; }
.capa-preview img { max-width:100%;max-height:180px;display:block; }
.capa-preview .ph { font-size:.72rem;color:var(--muted);padding:16px; }

/* Modal */
.modal-overlay { position:fixed;inset:0;background:rgba(10,14,39,.7);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:300; }
.modal-box { background:var(--cream);border-radius:24px 24px 0 0;width:100%;max-width:440px;max-height:90vh;overflow-y:auto;animation:modal-up .28s cubic-bezier(.22,1,.36,1); }
@keyframes modal-up { from{transform:translateY(100%);opacity:0} to{transform:translateY(0);opacity:1} }
.modal-header { display:flex;align-items:flex-start;justify-content:space-between;padding:22px 22px 16px;border-bottom:1px solid rgba(10,14,39,.08); }
.modal-header h3 { font-family:var(--serif);font-size:1.25rem;font-weight:600;color:var(--navy);margin:0; }
.modal-header p  { font-size:.7rem;color:var(--muted);margin-top:2px; }
.modal-close { width:30px;height:30px;border:none;border-radius:8px;background:rgba(10,14,39,.07);color:var(--muted);cursor:pointer;flex-shrink:0;font-size:.8rem;margin-left:10px; }
.modal-body  { padding:18px 22px 28px;display:flex;flex-direction:column;gap:13px; }
.modal-actions { display:flex;gap:10px;margin-top:4px; }
.modal-actions .btn { flex:1; }

/* Força senha */
.senha-forca { display:flex;align-items:center;gap:8px; }
.sf-bar { flex:1;height:3px;border-radius:3px;transition:background .3s; }
.sf-fraca { background:var(--red); }
.sf-media { background:#f59e0b; }
.sf-forte { background:var(--green); }
.sf-label { font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);min-width:36px;text-align:right; }

/* ── Toggle publicado ────────────────────────────────────── */
.toggle-row   { display:flex;align-items:center;gap:10px; }
.toggle-sw    { position:relative;width:42px;height:23px; }
.toggle-sw input { opacity:0;width:0;height:0;position:absolute; }
.toggle-track { position:absolute;inset:0;background:rgba(10,14,39,.18);border-radius:23px;cursor:pointer;transition:background .2s; }
.toggle-track::after { content:'';position:absolute;top:2px;left:2px;width:19px;height:19px;background:#fff;border-radius:50%;transition:transform .2s; }
.toggle-sw input:checked + .toggle-track { background:var(--gold); }
.toggle-sw input:checked + .toggle-track::after { transform:translateX(19px); }
.toggle-label { font-size:.8rem;font-weight:500;color:var(--navy); }

/* Confirm dialog */
.confirm-overlay { position:fixed;inset:0;background:rgba(10,14,39,.6);display:flex;align-items:center;justify-content:center;z-index:500;padding:20px; }
.confirm-box { background:#fff;border-radius:16px;padding:24px;max-width:320px;width:100%;text-align:center; }
.confirm-box h4 { font-family:var(--serif);font-size:1.15rem;color:var(--navy);margin-bottom:8px; }
.confirm-box p  { font-size:.8rem;color:var(--muted);margin-bottom:20px;line-height:1.55; }
.confirm-actions { display:flex;gap:10px; }
.confirm-actions .btn { flex:1; }

@media (max-width: 380px) {
  .dev-form .form-row { grid-template-columns:1fr; }
  .auth-card { padding:22px 16px; }
}
