/* ============================================================
   JUDÁ BJJ — DESIGN SYSTEM
   Site institucional centralizado + módulo ERP financeiro
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
img  { max-width: 100%; display: block; }
a    { color: inherit; text-decoration: none; }

/* ── Tokens ─────────────────────────────────────────────── */
:root {
  --r: 6px; --r-sm: 4px; --r-lg: 10px;

  /* Dark */
  --bg:        #0a0d14; --bg-alt: #0d1120;
  --surface:   #111724; --surface-2: #161d2e; --surface-3: #1c2438;
  --border:    rgba(255,255,255,.08); --border-hi: rgba(255,255,255,.14);
  --text:      #e8edf5; --muted: #8a96aa;
  --accent:    #c9a227; --accent-2: #e0bc6b;
  --accent-bg: rgba(201,162,39,.10); --accent-bdr: rgba(201,162,39,.24);
  --success:   #22c55e; --warning: #f59e0b; --danger: #ef4444;
  --shadow-sm: 0 1px 4px rgba(0,0,0,.3);
  --shadow:    0 4px 18px rgba(0,0,0,.36);
  --shadow-lg: 0 12px 40px rgba(0,0,0,.44);
}
html[data-theme="light"] {
  --bg: #f0f4f9; --bg-alt: #e8edf5;
  --surface: #fff; --surface-2: #f7f9fc; --surface-3: #edf1f8;
  --border: rgba(15,28,52,.10); --border-hi: rgba(15,28,52,.18);
  --text: #0f1c34; --muted: #5d6b82;
  --accent: #a07a10; --accent-2: #7a5c08;
  --accent-bg: rgba(160,122,16,.08); --accent-bdr: rgba(160,122,16,.22);
  --success: #16a34a; --warning: #b45309; --danger: #dc2626;
  --shadow-sm: 0 1px 3px rgba(15,28,52,.08);
  --shadow: 0 4px 16px rgba(15,28,52,.10);
  --shadow-lg: 0 12px 36px rgba(15,28,52,.12);
}

/* ── Body ───────────────────────────────────────────────── */
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  background: var(--bg); color: var(--text); line-height: 1.6;
}

/* ── Flash ──────────────────────────────────────────────── */
.flash-wrap { position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:1000; }
.flash { background:var(--success);color:#fff;padding:10px 18px;border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:8px;font-weight:600;font-size:.9rem; }

/* ── Container — compact + centred ─────────────────────── */
.container { width: min(960px, 88%); margin: 0 auto; }

/* ── Topbar ─────────────────────────────────────────────── */
.topbar { position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm); }
.nav    { display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:20px; }
.brand  { display:flex;align-items:center;gap:12px; }
.logo, .logo-img { width:42px;height:42px;border-radius:var(--r);border:1px solid var(--border-hi);flex-shrink:0; }
.logo { background:var(--accent);color:#0a0d14;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:900; }
.logo-img { object-fit:cover; }
.brand h1 { font-size:1.1rem;font-weight:800;letter-spacing:-.01em;line-height:1.2; }
.brand p  { font-size:.76rem;color:var(--muted);line-height:1.2;margin-top:2px; }
nav { display:flex;align-items:center;gap:2px;flex-wrap:wrap; }
nav a { padding:7px 11px;border-radius:var(--r-sm);font-size:.85rem;font-weight:600;color:var(--muted);transition:color .15s,background .15s; }
nav a:hover { color:var(--text);background:var(--surface-2); }
.small-nav-btn { padding:8px 14px !important; }

/* ── Buttons ────────────────────────────────────────────── */
.btn { display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:var(--r);border:1px solid transparent;font-size:.88rem;font-weight:700;cursor:pointer;font-family:inherit;text-decoration:none;transition:filter .15s,background .15s,border-color .15s;white-space:nowrap; }
.btn-outline   { background:transparent;color:var(--text);border-color:var(--border-hi); }
.btn-outline:hover { background:var(--surface-2); }
.btn-secondary { background:var(--surface-2);color:var(--text);border-color:var(--border); }
.btn-danger    { background:var(--danger);color:#fff; }
.accent-btn    { background:var(--accent);color:#0a0d14;font-weight:800; }
.accent-btn:hover { filter:brightness(1.1); }
.full { width:100%;justify-content:center; }

/* ── Hero ───────────────────────────────────────────────── */
body { --hero-image: none; }
.hero {
  position:relative; padding:52px 0 44px; overflow:hidden;
  background: linear-gradient(90deg,rgba(10,13,20,.94) 0%,rgba(10,13,20,.80) 44%,rgba(10,13,20,.56) 100%), var(--hero-image) center/cover no-repeat;
  border-bottom:1px solid var(--border);
}
html[data-theme="light"] .hero {
  background: linear-gradient(90deg,rgba(240,244,249,.97) 0%,rgba(240,244,249,.88) 44%,rgba(240,244,249,.66) 100%), var(--hero-image) center/cover no-repeat;
}
.hero-overlay { position:absolute;inset:0;background:radial-gradient(circle at 70% 50%,rgba(201,162,39,.09),transparent 35%);pointer-events:none; }
.hero-grid    { position:relative;display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center; }
.hero-copy    { max-width:720px; }
.tag { display:inline-block;padding:5px 12px;border:1px solid var(--accent-bdr);border-radius:var(--r-sm);background:var(--accent-bg);color:var(--accent);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:20px; }
.hero h2 { font-size:2.4rem;line-height:1.08;margin:0 0 12px;letter-spacing:-.03em; }
.hero-subtitle { font-size:.84rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0 0 12px; }
.hero p  { font-size:.94rem;line-height:1.75;color:var(--muted);max-width:580px; }
.hero-points { display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px; }
.point-card  { padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-size:.86rem;border-left:3px solid var(--accent-bdr); }
.glass-card,.hero-contact-card { background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:22px; }
.hero-contact-card h3 { font-size:1.25rem;letter-spacing:-.02em;margin:0 0 8px; }
.hero-contact-card p  { color:var(--muted);line-height:1.65;margin-bottom:14px;font-size:.9rem; }

/* ── Labels ─────────────────────────────────────────────── */
.eyebrow,.card-topline,.section-kicker { display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:10px; }

/* ── Sections ───────────────────────────────────────────── */
.section { padding:40px 0; }
.alt     { background:var(--bg-alt);border-top:1px solid var(--border);border-bottom:1px solid var(--border); }
.section-title { font-size:1.8rem;letter-spacing:-.03em;line-height:1.1;margin:0 0 12px; }
.compact-title { margin-bottom:14px; }
.section-text  { color:var(--muted);line-height:1.8;max-width:600px; }

/* ── Stats strip ────────────────────────────────────────── */
.stats-section { padding:0;border-bottom:1px solid var(--border); }
.stats-grid    { display:grid;grid-template-columns:repeat(3,1fr); }
.stat-card     { padding:20px 18px;text-align:center;border-right:1px solid var(--border); }
.stat-card:last-child { border-right:none; }
.stat-value    { font-size:1.9rem;font-weight:900;color:var(--accent);letter-spacing:-.03em; }
.stat-label    { color:var(--muted);margin-top:3px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em; }

/* ── About / detail cards ───────────────────────────────── */
.about-header-inline { margin-bottom:20px; }
.compact-about-grid  { display:grid;grid-template-columns:1fr 1fr;gap:14px; }
.premium-card,.glass-card,.contact-box,.cta-box,.modal-box,.panel { background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow); }
.detail-card { background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:8px;border-left:3px solid var(--accent-bdr); }
.detail-card strong { font-size:.95rem;font-weight:700; }
.detail-card span   { color:var(--muted);line-height:1.6;font-size:.9rem; }

/* ── Professor & Schedule ───────────────────────────────── */
.professor-schedule-grid { display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start; }
.professor-card { padding:22px; }
.professor-card h3 { font-size:1.5rem;letter-spacing:-.02em;margin:0 0 6px; }
.professor-card p  { color:var(--muted);line-height:1.75;font-size:.92rem; }
.professor-header  { display:flex;align-items:center;gap:14px;margin-bottom:14px; }
.professor-photo   { width:68px;height:68px;border-radius:var(--r);object-fit:cover;border:1px solid var(--border-hi);flex-shrink:0; }
.professor-role    { color:var(--accent);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-top:3px; }
.pretty-contact,.mini-contact { margin-top:14px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r); }
.pretty-contact p { margin:5px 0;font-size:.88rem; }
.schedule-wrap { padding-top:4px; }
.schedule { border:1px solid var(--border);border-radius:var(--r);overflow:hidden; }
.row { display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border);font-size:.9rem; }
.row:last-child     { border-bottom:none; }
.row:nth-child(even){ background:var(--surface-2); }

/* ── Extras ─────────────────────────────────────────────── */
.extras-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
.extra-card  { padding:24px;border-top:3px solid var(--accent-bdr); }
.extra-card h4 { font-size:1.1rem;font-weight:700;margin:0 0 10px; }
.extra-card p  { color:var(--muted);line-height:1.7;font-size:.92rem; }

/* ── Gallery / training ─────────────────────────────────── */
.training-two-cols     { display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;margin-top:24px; }
.training-photo-card,.training-video-card { padding:22px; }
.training-featured-gallery { max-width:100%;height:360px;margin-top:0; }
.featured-gallery { position:relative;display:block;height:360px;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:#0a0d14;text-decoration:none; }
.featured-slide { position:absolute;inset:0;opacity:0;transform:scale(1.02);transition:opacity .95s,transform 1.2s; }
.featured-slide.active { opacity:1;transform:scale(1); }
.featured-slide img { width:100%;height:100%;object-fit:cover;display:block; }
.featured-caption { position:absolute;left:14px;bottom:14px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);padding:7px 12px;border-radius:var(--r-sm);color:#fff;font-size:.86rem; }
.slide-nav { position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:var(--r-sm);border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.5);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;display:grid;place-items:center;z-index:3; }
.slide-nav:hover { background:rgba(0,0,0,.75); }
.slide-nav.prev { left:12px; } .slide-nav.next { right:12px; }
.gallery-tip { color:var(--muted);margin-top:12px;font-size:.86rem; }

/* ── Media ──────────────────────────────────────────────── */
.midia-two-cols { display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;margin-top:24px; }
.live-side-card,.recorded-side-card { padding:24px; }
.live-top { display:flex;align-items:flex-start;gap:14px;margin-bottom:18px; }
.live-badge.small-square { min-width:66px;min-height:42px;padding:7px 10px;border-radius:var(--r-sm);font-size:.7rem;line-height:1.2;background:linear-gradient(135deg,#d63b3b,#8f1111);color:#fff;font-weight:800;letter-spacing:.08em;display:flex;align-items:center;justify-content:center;text-align:center;flex-shrink:0; }
.live-side-head h4,.recorded-header h4 { margin:0 0 8px;font-size:1.25rem; }
.live-side-head p,.recorded-header p   { color:var(--muted);line-height:1.7;font-size:.9rem; }
.live-status { display:inline-block;margin-top:8px;padding:4px 10px;border-radius:var(--r-sm);background:rgba(214,59,59,.14);color:#ffb5b5;font-size:.82rem;font-weight:600; }
.side-header { margin-bottom:18px; }
.recorded-grid.side-grid { display:grid;grid-template-columns:1fr;gap:16px; }
.compact-recorded-grid { grid-template-columns:1fr 1fr; }
.recorded-item { padding:18px; }
.recorded-item h5 { margin:0 0 6px;font-size:1rem;font-weight:700; }
.recorded-item p  { color:var(--muted);line-height:1.6;font-size:.9rem;margin-bottom:14px; }
.embed-box { margin-top:16px;border-radius:var(--r);overflow:hidden;border:1px solid var(--border);background:var(--surface-2); }
.embed-box iframe { width:100%;min-height:260px;border:0;display:block; }
.embed-box video  { width:100%;display:block;max-height:340px; }
.compact-embed { margin-top:12px; }
.recorded-item .embed-box,.live-side-card .embed-box,.training-video-card .embed-box { margin-top:0; }
.empty-embed,.full-empty { margin-top:14px;padding:22px;border-radius:var(--r);background:var(--surface-2);color:var(--muted);border:1px solid var(--border);font-size:.9rem; }
.native-video-box { margin-top:0; }
.small-inline-btn { padding:8px 14px;font-size:.84rem;margin-top:14px;display:inline-flex; }
.live-home-link { margin-top:12px; }
.podcast-home-preview h5 { font-size:1.05rem;font-weight:700;margin:0 0 8px; }
.podcast-home-preview p  { color:var(--muted);font-size:.9rem;margin:0 0 12px; }

/* ── Contact ────────────────────────────────────────────── */
.cards-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.contact-box,.cta-box { padding:22px; }
.contact-box h4,.cta-box h4 { font-size:1.3rem;letter-spacing:-.02em;margin:0 0 12px; }
.contact-box p,.cta-box p   { color:var(--muted);line-height:1.65;margin-bottom:8px;font-size:.9rem; }
.maps-box { margin-top:16px;border-radius:var(--r);overflow:hidden;border:1px solid var(--border); }
.maps-box iframe { width:100%;height:200px;border:0;display:block; }

/* ── Floating WhatsApp ──────────────────────────────────── */
.floating-wa { position:fixed;right:20px;bottom:20px;z-index:40;border:none;border-radius:var(--r);padding:11px 16px;background:#22c55e;color:#fff;font-weight:800;font-size:.88rem;box-shadow:var(--shadow);cursor:pointer; }
.floating-wa:hover { filter:brightness(1.08); }

/* ── Footer ─────────────────────────────────────────────── */
.footer { border-top:1px solid var(--border);padding:22px 0;background:var(--surface); }
.footer-wrap { display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap; }
.footer strong { font-size:.95rem; }
.footer-sub { margin-top:3px;color:var(--muted);font-size:.82rem; }
.footer-right { display:flex;align-items:center;gap:16px;flex-wrap:wrap; }
.footer-right span { color:var(--muted);font-size:.84rem; }
.admin-footer-link { font-size:.82rem;color:var(--muted); }
.admin-footer-link:hover { color:var(--text); }

/* ── Modal ──────────────────────────────────────────────── */
.modal-overlay { position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);display:none;place-items:center; }
.modal-overlay.active { display:grid; }
.modal-box { width:min(520px,92%);padding:30px;position:relative;border-radius:var(--r-lg);border:1px solid var(--border-hi);background:var(--surface);box-shadow:var(--shadow-lg); }
.modal-close { position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--muted);cursor:pointer;font-size:1.2rem;line-height:1;display:grid;place-items:center; }
.modal-box h3 { font-size:1.5rem;margin-bottom:8px; }
.talk-form { display:grid;gap:14px;margin-top:18px; }
.talk-form label { display:block;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px; }
.talk-form input,.talk-form textarea { width:100%; }

/* ── Inputs ─────────────────────────────────────────────── */
label { display:block;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px; }
input,textarea,select { width:100%;background:var(--surface-2);color:var(--text);border:1px solid var(--border-hi);border-radius:var(--r);padding:10px 12px;font:inherit;font-size:.9rem;outline:none;transition:border-color .15s; }
input:focus,textarea:focus,select:focus { border-color:var(--accent); }
select { appearance:none;-webkit-appearance:none;cursor:pointer; }

/* ── Login ──────────────────────────────────────────────── */
.login-page { min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg); }
.login-card { width:min(420px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:36px;box-shadow:var(--shadow-lg);border-top:3px solid var(--accent); }
.login-card h1 { font-size:1.6rem;letter-spacing:-.02em;margin-bottom:6px; }
.login-card p  { color:var(--muted);font-size:.9rem;margin-bottom:22px; }
.login-card form { display:grid;gap:16px; }
.back-link { display:block;text-align:center;margin-top:18px;color:var(--muted);font-size:.86rem; }

/* ── Theme toggle ───────────────────────────────────────── */
.theme-toggle { position:fixed;right:20px;bottom:72px;z-index:50;width:44px;height:44px;border-radius:var(--r);border:1px solid var(--border-hi);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:var(--shadow);display:grid;place-items:center;font-size:1rem; }

/* ── Gallery page ───────────────────────────────────────── */
.gallery-page-section { padding:40px 0 56px; }
.page-top-actions { margin-bottom:28px; }
.gallery-hero { margin-bottom:32px; }
.gallery-page-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
.gallery-page-card { background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s; }
.gallery-page-card:hover { transform:translateY(-3px);box-shadow:var(--shadow); }
.gallery-photo-btn { display:block;width:100%;border:none;background:none;cursor:pointer;padding:0; }
.gallery-photo-btn img { width:100%;height:200px;object-fit:cover;display:block; }
.gallery-card-body { padding:12px 14px; }
.gallery-card-body h3 { font-size:.92rem;font-weight:700;margin-bottom:4px; }
.gallery-card-body p  { color:var(--muted);font-size:.8rem; }
.gallery-empty-state { padding:40px 20px;text-align:center;color:var(--muted); }
.gallery-lightbox { position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.92);backdrop-filter:blur(8px);display:none;place-items:center; }
.gallery-lightbox.active { display:grid; }
.gallery-lightbox-dialog { position:relative;max-width:92vw;max-height:92vh; }
.gallery-lightbox-close { position:absolute;top:-40px;right:0;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;width:36px;height:36px;border-radius:var(--r-sm);cursor:pointer;font-size:1.3rem;display:grid;place-items:center; }
.gallery-lightbox-img { max-width:90vw;max-height:80vh;border-radius:var(--r);display:block;object-fit:contain; }
.gallery-lightbox-caption { text-align:center;color:rgba(255,255,255,.7);margin-top:12px;font-size:.9rem; }

/* ── Admin panel (institucional) ────────────────────────── */
.admin-page { background:var(--bg);min-height:100vh; }
.admin-wrap { width:min(960px,90%);margin:0 auto;padding:32px 0 48px; }
.admin-header { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px; }
.admin-header h1 { font-size:1.8rem;letter-spacing:-.02em;margin-bottom:4px; }
.admin-header p  { color:var(--muted);font-size:.9rem; }
.admin-top-actions { display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0; }
.finance-shortcut-card { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;margin-bottom:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);border-left:4px solid var(--accent); }
.finance-shortcut-card strong { display:block;font-size:1rem;margin-bottom:4px; }
.finance-shortcut-card p { margin:0;color:var(--muted);font-size:.88rem; }
.admin-tabs { display:flex;gap:0;margin-bottom:0;border-bottom:2px solid var(--border); }
.tab-btn { padding:11px 17px;border:none;background:transparent;color:var(--muted);font:inherit;font-size:.88rem;font-weight:700;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s; }
.tab-btn:hover { color:var(--text); }
.tab-btn.active { color:var(--accent);border-bottom-color:var(--accent); }
.admin-card { background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--r-lg) var(--r-lg);padding:28px;display:none; }
.admin-card.active,.tab-panel.active { display:block; }
.tab-panel { display:none; }
.sticky-save-bar { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin:-28px -28px 24px;background:var(--surface-2);border-bottom:1px solid var(--border); }
.sticky-save-bar strong { font-size:.95rem; }
.save-tip { color:var(--muted);font-size:.82rem;margin-top:2px; }
.admin-form { display:grid;gap:16px; }
.admin-form h2 { font-size:1.3rem;font-weight:700;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:4px; }
.admin-form h3.subsection { font-size:1rem;font-weight:700;padding-top:16px;padding-bottom:8px;border-bottom:1px solid var(--border);color:var(--muted); }
.admin-form label { display:grid;gap:6px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted); }
.admin-two-col   { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.admin-three-col { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
.video-block { display:grid;gap:12px;padding:18px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r); }
.video-block h4 { font-size:.9rem;font-weight:700;margin-bottom:4px; }
.asset-grid  { display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:20px; }
.asset-card  { padding:20px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);display:grid;gap:12px; }
.asset-card h4 { font-size:.95rem;font-weight:700; }
.asset-empty { color:var(--muted);font-size:.88rem;padding:12px 0; }
.asset-preview { border-radius:var(--r-sm);border:1px solid var(--border); }
.logo-preview { width:56px;height:56px;object-fit:cover; }
.hero-preview { width:100%;height:110px;object-fit:cover; }
.professor-preview { width:72px;height:72px;object-fit:cover;border-radius:var(--r-sm); }
.current-file { font-size:.78rem;color:var(--muted); }
.form-grid { display:grid;gap:10px; }
.asset-form { display:grid;gap:8px; }
.schedule-admin-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:14px; }
.schedule-admin-card { padding:16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);display:grid;gap:10px; }
.schedule-admin-card strong { font-size:.88rem;font-weight:700;color:var(--accent); }
.schedule-admin-card label { font-size:.78rem; }
.admin-photo-upload { display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;margin-bottom:24px; }
.photo-list { display:grid;grid-template-columns:repeat(4,1fr);gap:14px; }
.admin-photo-item { background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden; }
.admin-photo-item img { width:100%;height:130px;object-fit:cover;display:block; }
.admin-photo-meta { padding:12px; }
.admin-photo-meta strong { font-size:.84rem;display:block;margin-bottom:4px; }
.admin-photo-meta p { color:var(--muted);font-size:.78rem;margin-bottom:10px; }
.admin-native-video { margin-top:0; }
.training-video-admin-card { display:grid;gap:12px; }
.color-input-wrap { display:flex;gap:10px;align-items:center; }
.color-input-wrap input[type="color"] { width:42px;height:38px;padding:2px;border-radius:var(--r-sm);cursor:pointer; }
.color-input-wrap input[type="text"] { flex:1; }
.map-preview-box { margin-top:18px; }
.field-help { font-size:.8rem;color:var(--muted);margin-bottom:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em; }
.page-ao-vivo { padding-top:40px; }

/* ════════════════════════════════════════════════════════
   ERP FINANCEIRO — estilo sistema de gestão profissional
   ════════════════════════════════════════════════════════ */

/* Tokens ERP */
:root {
  --erp-sidebar-w: 230px;
  --erp-sidebar-bg: #0f1520;
  --erp-sidebar-border: rgba(255,255,255,.07);
  --erp-sidebar-text: #8fa3b8;
  --erp-sidebar-active: #c9a227;
  --erp-topbar-h: 58px;
  --erp-surface:   var(--surface);
  --erp-surface2:  var(--surface-2);
  --erp-border:    var(--border);
  --erp-text:      var(--text);
  --erp-muted:     var(--muted);
  --erp-accent:    var(--accent);
  --erp-success:   var(--success);
  --erp-warning:   var(--warning);
  --erp-danger:    var(--danger);
}
html[data-theme="light"] {
  --erp-sidebar-bg: #1a2744;
  --erp-sidebar-text: #a0b4cc;
}

/* Shell */
.erp-shell { display:flex;min-height:100vh;background:var(--bg); }

/* ── Sidebar ── */
.erp-sidebar {
  width: var(--erp-sidebar-w);
  background: var(--erp-sidebar-bg);
  border-right: 1px solid var(--erp-sidebar-border);
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh;
  flex-shrink: 0; overflow: hidden;
  transition: width .25s cubic-bezier(.4,0,.2,1);
  z-index: 150;
}
.erp-sidebar-brand {
  display: flex; align-items: center; gap: 12px;
  padding: 20px 18px 18px; min-height: 74px;
  border-bottom: 1px solid var(--erp-sidebar-border);
  transition: padding .25s, justify-content .25s;
  overflow: hidden;
}
.erp-sidebar-logo {
  width: 36px; height: 36px; border-radius: 6px;
  background: var(--erp-accent); color: #0f1520;
  display: grid; place-items: center;
  font-size: 1rem; font-weight: 900; flex-shrink: 0;
}
.erp-sidebar-name  { font-size: .92rem; font-weight: 800; color: #e8edf5; line-height: 1.2; white-space: nowrap; }
.erp-sidebar-label { font-size: .72rem; color: var(--erp-sidebar-text); line-height: 1; margin-top: 2px; white-space: nowrap; }
.erp-sidebar-nav   { flex: 1; padding: 14px 10px; display: flex; flex-direction: column; gap: 2px; overflow-y: auto; overflow-x: hidden; }
.erp-nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: 6px;
  font-size: .88rem; font-weight: 600;
  color: var(--erp-sidebar-text); text-decoration: none;
  transition: background .15s, color .15s;
  white-space: nowrap; overflow: hidden;
  position: relative;
}
.erp-nav-item:hover { background: rgba(255,255,255,.05); color: #e8edf5; }
.erp-nav-item.active { background: rgba(201,162,39,.14); color: var(--erp-sidebar-active); }
.erp-nav-icon { font-size: .85rem; flex-shrink: 0; width: 18px; text-align: center; }
.erp-nav-label { transition: opacity .2s; }
.erp-sidebar-footer {
  padding: 14px 10px;
  border-top: 1px solid var(--erp-sidebar-border);
  display: flex; flex-direction: column; gap: 4px; overflow: hidden;
}
.erp-sidebar-link { display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:6px;font-size:.84rem;font-weight:600;color:var(--erp-sidebar-text);text-decoration:none;transition:background .15s,color .15s;white-space:nowrap;overflow:hidden; }
.erp-sidebar-link:hover { background:rgba(255,255,255,.05);color:#e8edf5; }
.erp-logout { color: rgba(239,68,68,.7); }
.erp-logout:hover { color: #ef4444; background: rgba(239,68,68,.08); }

/* ── Sidebar collapsed state ── */
.erp-sidebar.collapsed { width: 56px; }
.erp-sidebar.collapsed .erp-sidebar-brand { padding: 16px 10px; justify-content: center; }
.erp-sidebar.collapsed .erp-sidebar-name,
.erp-sidebar.collapsed .erp-sidebar-label { display: none; }
.erp-sidebar.collapsed .erp-nav-label { opacity: 0; width: 0; overflow: hidden; }
.erp-sidebar.collapsed .erp-nav-item { justify-content: center; padding: 12px 0; }
.erp-sidebar.collapsed .erp-sidebar-footer { align-items: center; padding: 10px 0; }
.erp-sidebar.collapsed .erp-sidebar-link { justify-content: center; padding: 10px 0; width: 56px; }

/* Tooltip nos ícones quando colapsado */
.erp-sidebar.collapsed .erp-nav-item[data-tip]:hover::after,
.erp-sidebar.collapsed .erp-sidebar-link[data-tip]:hover::after {
  content: attr(data-tip);
  position: absolute; left: calc(100% + 10px); top: 50%;
  transform: translateY(-50%);
  background: #1e2d45; color: #e8edf5;
  padding: 5px 10px; border-radius: 4px;
  font-size: .8rem; white-space: nowrap;
  z-index: 400; pointer-events: none;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  border: 1px solid rgba(255,255,255,.08);
}

/* ── Backdrop mobile ── */
.erp-sidebar-backdrop {
  display: none; position: fixed; inset: 0;
  background: rgba(0,0,0,.55); z-index: 149;
  backdrop-filter: blur(2px);
}
.erp-sidebar-backdrop.visible { display: block; }

/* ── Topbar toggle (hamburguer) ── */
.erp-topbar-toggle {
  background: none; border: none; cursor: pointer;
  color: var(--erp-muted); padding: 8px 10px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 4px; transition: background .15s, color .15s;
  font-size: 1.1rem; line-height: 1; flex-shrink: 0;
}
.erp-topbar-toggle:hover { background: var(--erp-surface2); color: var(--erp-text); }

/* ── Main area ── */
.erp-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }

/* ── Top bar ── */
.erp-topbar {
  height: var(--erp-topbar-h);
  background: var(--erp-surface);
  border-bottom: 1px solid var(--erp-border);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 24px; gap: 20px;
  position: sticky; top: 0; z-index: 80;
  box-shadow: var(--shadow-sm);
}
.erp-topbar-inner { max-width: 1060px; width: 100%; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.erp-breadcrumb { display: flex; align-items: center; gap: 6px; font-size: .84rem; }
.erp-breadcrumb-sep { color: var(--erp-muted); }
.erp-breadcrumb-cur { font-weight: 700; color: var(--erp-text); }
.erp-topbar-sub { font-size: .78rem; color: var(--erp-muted); margin-top: 2px; }
.erp-theme-btn {
  padding: 7px 14px; border: 1px solid var(--erp-border);
  background: var(--erp-surface2); color: var(--erp-muted);
  border-radius: 4px; cursor: pointer; font: inherit; font-size: .8rem; font-weight: 600;
}
.erp-theme-btn:hover { color: var(--erp-text); }
.erp-theme-dark  { display: inline; }
.erp-theme-light { display: none; }
html[data-theme="light"] .erp-theme-dark  { display: none; }
html[data-theme="light"] .erp-theme-light { display: inline; }

/* ── Content ── */
.erp-content { flex: 1; padding: 24px; overflow-y: auto; }
.erp-content > * { max-width: 1060px; margin-left: auto; margin-right: auto; }

/* ── KPI cards ── */
.erp-kpi-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 12px; margin-bottom: 20px; }
.erp-kpi-card {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 14px; border-radius: 6px;
  color: #fff; position: relative; overflow: hidden;
}
.erp-kpi-card::after { content:'';position:absolute;right:-10px;top:-10px;width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.10); }
.erp-kpi-icon { font-size: 1.5rem; flex-shrink: 0; opacity: .9; }
.erp-kpi-label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; opacity: .85; margin-bottom: 4px; }
.erp-kpi-value { font-size: 1.5rem; font-weight: 900; letter-spacing: -.02em; line-height: 1; }
.erp-kpi-blue   { background: linear-gradient(135deg, #1d6fa4, #1558a0); }
.erp-kpi-teal   { background: linear-gradient(135deg, #0e8a7a, #0a7266); }
.erp-kpi-violet { background: linear-gradient(135deg, #6b4fa8, #5a3d92); }
.erp-kpi-green  { background: linear-gradient(135deg, #1a9e55, #147a40); }
.erp-kpi-orange { background: linear-gradient(135deg, #c27a14, #a86410); }
.erp-kpi-red    { background: linear-gradient(135deg, #c23a2e, #a82e24); }

/* ── KPI grupo: contadores (sempre 3 cols compactos) ── */
.erp-kpi-counts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 10px;
}
.erp-kpi-counts .erp-kpi-card {
  flex-direction: column;
  align-items: flex-start;
  padding: 12px 14px;
  gap: 2px;
}
.erp-kpi-counts .erp-kpi-icon { font-size: .95rem; margin-bottom: 6px; }
.erp-kpi-counts .erp-kpi-label { font-size: .62rem; line-height: 1.3; }
.erp-kpi-counts .erp-kpi-value { font-size: 1.9rem; margin-top: 2px; }

/* ── KPI grupo: financeiro (3 cols desktop → 1 col mobile) ── */
.erp-kpi-finances {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}
.erp-kpi-fin {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 14px;
  border-radius: 6px;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.erp-kpi-fin::after {
  content: ''; position: absolute; right: -10px; top: -10px;
  width: 60px; height: 60px; border-radius: 50%;
  background: rgba(255,255,255,.10);
}
.erp-kpi-fin .erp-kpi-icon { font-size: 1.4rem; flex-shrink: 0; opacity: .9; }
.erp-kpi-fin-body { flex: 1; min-width: 0; }
.erp-kpi-fin-body .erp-kpi-label { font-size: .70rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; opacity: .85; margin-bottom: 4px; }
.erp-kpi-fin-body .erp-kpi-value { font-size: 1.45rem; font-weight: 900; letter-spacing: -.02em; line-height: 1; white-space: nowrap; }

/* ── Automation bar ── */
.erp-automation-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 14px 18px; margin-bottom: 18px;
  background: var(--erp-surface); border: 1px solid var(--erp-border);
  border-left: 4px solid var(--erp-accent); border-radius: 6px;
}
.erp-automation-title { font-size: .9rem; font-weight: 700; color: var(--erp-accent); margin-bottom: 3px; }
.erp-automation-desc  { font-size: .82rem; color: var(--erp-muted); }

/* ── Cards ── */
.erp-card { background: var(--erp-surface); border: 1px solid var(--erp-border); border-radius: 6px; overflow: hidden; box-shadow: var(--shadow-sm); }
.erp-card-mb { margin-bottom: 16px; }
.erp-card-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 18px; border-bottom: 1px solid var(--erp-border); background: var(--erp-surface2); }
.erp-card-title { display: flex; align-items: center; gap: 8px; font-size: .92rem; font-weight: 700; }
.erp-panels-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }

/* ── Buttons ── */
.erp-btn { display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:4px;border:1px solid transparent;font-size:.84rem;font-weight:700;cursor:pointer;font-family:inherit;text-decoration:none;transition:filter .15s,background .15s;white-space:nowrap; }
.erp-btn-accent  { background:var(--erp-accent);color:#0f1520; }
.erp-btn-accent:hover { filter:brightness(1.1); }
.erp-btn-primary { background:#1d6fa4;color:#fff; }
.erp-btn-primary:hover { filter:brightness(1.1); }
.erp-btn-ghost   { background:var(--erp-surface2);color:var(--erp-text);border-color:var(--erp-border); }
.erp-btn-ghost:hover { border-color:var(--erp-accent); }

/* ── Table ── */
.erp-table-wrap { overflow-x: auto; }
.erp-table { width:100%;border-collapse:collapse;font-size:.84rem; }
.erp-table th { padding:10px 14px;background:var(--erp-surface2);color:var(--erp-muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;text-align:left;border-bottom:1px solid var(--erp-border);white-space:nowrap; }
.erp-table td { padding:11px 14px;color:var(--erp-text);border-bottom:1px solid var(--erp-border);vertical-align:middle; }
.erp-table tbody tr:last-child td { border-bottom:none; }
.erp-table tbody tr:hover { background:var(--erp-surface2); }
.ta-r { text-align:right !important; }
.fw-600 { font-weight:600; }
.tabnum { font-variant-numeric:tabular-nums; }
.erp-sub { font-size:.78rem;color:var(--erp-muted); }
.erp-text-danger { color:var(--erp-danger); }

/* ── Badges ── */
.erp-badge { display:inline-block;padding:3px 8px;border-radius:3px;font-size:.72rem;font-weight:700;text-transform:capitalize;letter-spacing:.03em; }
.erp-badge-pago,.erp-badge-ativo   { background:rgba(34,197,94,.10);color:var(--erp-success);border:1px solid rgba(34,197,94,.2); }
.erp-badge-pendente { background:rgba(245,158,11,.10);color:var(--erp-warning);border:1px solid rgba(245,158,11,.2); }
.erp-badge-atrasado,.erp-badge-inativo { background:rgba(239,68,68,.10);color:var(--erp-danger);border:1px solid rgba(239,68,68,.2); }
.erp-count-badge { background:var(--accent-bg);color:var(--erp-accent);border:1px solid var(--accent-bdr);padding:3px 10px;border-radius:3px;font-size:.78rem;font-weight:700; }

/* ── Dot indicators ── */
.erp-dot { width:8px;height:8px;border-radius:2px;flex-shrink:0; }
.erp-dot-green  { background:var(--erp-success); }
.erp-dot-orange { background:var(--erp-warning); }
.erp-dot-red    { background:var(--erp-danger); }
.erp-dot-blue   { background:#1d6fa4; }

/* ── Empty ── */
.erp-empty { padding:32px 20px;text-align:center;color:var(--erp-muted);font-size:.88rem; }

/* ── Person cell ── */
.erp-person-cell { display:flex;align-items:center;gap:10px; }
.erp-person-cell img { width:34px;height:34px;border-radius:4px;object-fit:cover;border:1px solid var(--erp-border);flex-shrink:0; }
.erp-avatar { width:34px;height:34px;border-radius:4px;background:var(--accent-bg);border:1px solid var(--accent-bdr);color:var(--erp-accent);font-weight:700;font-size:.8rem;display:grid;place-items:center;flex-shrink:0; }

/* ── Actions ── */
.erp-actions { display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.erp-actions form { margin:0; }
.erp-act-link { background:none;border:none;padding:0;cursor:pointer;font:inherit;font-size:.8rem;font-weight:700;color:var(--erp-muted);text-decoration:none;transition:color .15s; }
.erp-act-link:hover { color:var(--erp-text); }
.erp-act-danger  { color:rgba(239,68,68,.7); } .erp-act-danger:hover  { color:var(--erp-danger); }
.erp-act-success { color:rgba(34,197,94,.8);  } .erp-act-success:hover { color:var(--erp-success); }
.erp-act-wa      { color:#25d366;              } .erp-act-wa:hover      { color:#1aad4b; }
html[data-theme="light"] .erp-act-wa { color:#188c46; }

/* ── Filter / toolbar ── */
.erp-filter-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end;padding:14px 18px; }
.erp-filter-grid label { font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--erp-muted);display:grid;gap:5px; }
.erp-filter-grid input,.erp-filter-grid select { background:var(--erp-surface2);border:1px solid var(--erp-border);color:var(--erp-text);padding:9px 11px;border-radius:4px;font:inherit;font-size:.88rem;outline:none; }
.erp-filter-grid input:focus,.erp-filter-grid select:focus { border-color:var(--erp-accent); }
.erp-filter-actions { display:flex;gap:8px;align-items:flex-end;padding-bottom:0; }
.erp-toolbar-row { display:flex;justify-content:flex-end;margin-bottom:14px; }

/* ── Form ── */
.erp-form-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:8px; }
.erp-form-grid label { font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--erp-muted);display:grid;gap:5px; }
.erp-form-grid input,.erp-form-grid select,.erp-form-grid textarea { background:var(--erp-surface2);border:1px solid var(--erp-border);color:var(--erp-text);padding:9px 11px;border-radius:4px;font:inherit;font-size:.88rem;outline:none;width:100%;transition:border-color .15s; }
.erp-form-grid input:focus,.erp-form-grid select:focus,.erp-form-grid textarea:focus { border-color:var(--erp-accent); }
.erp-full-row { grid-column:1/-1; }
.erp-form-section-label { font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--erp-muted);padding:16px 0 10px;border-bottom:1px solid var(--erp-border);margin-bottom:14px; }
.erp-form-actions { display:flex;gap:10px;justify-content:flex-end;padding-top:16px;margin-top:8px;border-top:1px solid var(--erp-border); }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 1200px) {
  .erp-kpi-grid { grid-template-columns:repeat(3,1fr); }
  .erp-filter-grid,.erp-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero-grid { grid-template-columns:1fr; } .hero-side { display:none; }
  .hero h2 { font-size:2.2rem; }
  .asset-grid { grid-template-columns:1fr 1fr; }
  .admin-three-col { grid-template-columns:1fr 1fr; }
}
@media (max-width: 900px) {
  /* Sidebar some da tela quando colapsada no mobile */
  .erp-shell { display: block; }
  .erp-main  { width: 100%; margin-left: 0; }
  .erp-sidebar {
    position: fixed; top: 0; left: 0; height: 100vh;
    width: var(--erp-sidebar-w) !important;
    transform: translateX(-100%);
    transition: transform .25s cubic-bezier(.4,0,.2,1);
    z-index: 200;
  }
  .erp-sidebar:not(.collapsed) {
    transform: translateX(0);
    box-shadow: 4px 0 32px rgba(0,0,0,.6);
  }
  .erp-panels-row { grid-template-columns:1fr; }
  .erp-kpi-grid { grid-template-columns:repeat(2,1fr); }
  .hero h2 { font-size:1.9rem; }
  .professor-schedule-grid,.cards-grid,.midia-two-cols,.training-two-cols,.compact-about-grid,.extras-grid { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:1fr 1fr 1fr; }
  .gallery-page-grid { grid-template-columns:1fr 1fr; }
  .photo-list { grid-template-columns:1fr 1fr; }
  .schedule-admin-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px) {
  .erp-content { padding:14px; }
  .erp-kpi-grid { grid-template-columns:1fr 1fr; }
  /* Financial cards: 1 col, layout horizontal (ícone | label — valor) */
  .erp-kpi-finances { grid-template-columns:1fr; gap:8px; }
  .erp-kpi-fin { padding:11px 14px; gap:12px; }
  .erp-kpi-fin-body { display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .erp-kpi-fin-body .erp-kpi-label { margin-bottom:0; font-size:.68rem; }
  .erp-kpi-fin-body .erp-kpi-value { font-size:1.25rem; }
  /* Count cards ficam 3-col sempre */
  .erp-kpi-counts { gap:8px; }
  .erp-kpi-counts .erp-kpi-card { padding:10px 10px; }
  .erp-kpi-counts .erp-kpi-value { font-size:1.6rem; }
  .erp-filter-grid,.erp-form-grid { grid-template-columns:1fr; }
  .erp-filter-actions { flex-wrap:wrap; }
  .hero { padding:44px 0 36px; } .hero h2 { font-size:1.6rem; }
  .stats-grid { grid-template-columns:1fr; }
  .stat-card { border-right:none;border-bottom:1px solid var(--border); }
  .gallery-page-grid,.photo-list { grid-template-columns:1fr; }
  .hero-points { grid-template-columns:1fr; }
  .theme-toggle { right:14px;bottom:68px; }
  .floating-wa { right:14px;bottom:14px; }
  .admin-photo-upload { grid-template-columns:1fr; }
  .schedule-admin-grid,.admin-three-col,.admin-two-col { grid-template-columns:1fr; }
}
@media (max-width: 440px) {
  .erp-kpi-grid { grid-template-columns:1fr; }
  .erp-kpi-counts .erp-kpi-card { padding:9px 8px; }
  .erp-kpi-counts .erp-kpi-label { font-size:.58rem; }
  .erp-kpi-counts .erp-kpi-value { font-size:1.4rem; }
}


/* ── Legal pages / footer links ───────────────────────── */
.footer-legal { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.legal-page-section { min-height: calc(100vh - 120px); }
.legal-wrap { width:min(980px, 90%); }
.legal-card { padding:28px; }
.legal-updated { margin-bottom:18px; }
.legal-content { display:grid; gap:14px; }
.legal-content h2 { font-size:1.02rem; margin-top:10px; color:var(--text); }
.legal-content p, .legal-content li { color:var(--muted); font-size:.92rem; line-height:1.8; }
.legal-content ul { padding-left:18px; display:grid; gap:6px; }
@media (max-width: 640px) {
  .footer-legal { gap:10px; }
  .legal-card { padding:20px; }
}


/* Footer legal */
.footer-legal-links {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.footer-legal-links a {
  font-size: .82rem;
  color: var(--muted);
  text-decoration: none;
}
.footer-legal-links a:hover {
  color: var(--text);
}
