/* VAZ — Custom CSS layer (works alongside Tailwind utilities)
   Run `npm run build:css` to regenerate from src/css/input.css with the full
   utility set inlined. Until then, the Tailwind Play CDN is loaded in PHP <head>. */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=DM+Sans:wght@300;400;500;600;700&display=swap');

:root {
  --vaz-red:#C8102E; --vaz-red-dark:#9B0B22; --vaz-red-light:#E8394F;
  --vaz-navy:#1B2A6B; --vaz-navy-light:#2E44A0;
  --vaz-gold:#C9962F; --vaz-gold-light:#E8B84B;
  --vaz-cream:#FDF8F4; --vaz-ink:#1A1A2E; --vaz-muted:#6B6B7B;
}

html, body { font-family:'DM Sans', system-ui, sans-serif; color:var(--vaz-ink); background:var(--vaz-cream); }
h1,h2,h3,.font-display { font-family:'Playfair Display', serif; }

/* ===== Reusable component classes ===== */
.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--vaz-gold);color:#fff;border:none;padding:10px 20px;
  border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;
  font-family:inherit;transition:all .2s; text-decoration:none;
}
.btn-primary:hover{ background:var(--vaz-gold-light); transform:translateY(-1px); }
.btn-outline{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.45);
  padding:10px 20px;border-radius:8px;font-size:13px;font-weight:500;
  cursor:pointer;font-family:inherit;transition:all .2s; text-decoration:none;
}
.btn-outline:hover{ border-color:#fff; background:rgba(255,255,255,.1); }
.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:transparent;color:var(--vaz-navy);border:1px solid rgba(27,42,107,.3);
  padding:10px 20px;border-radius:8px;font-size:13px;font-weight:500;
  cursor:pointer;font-family:inherit;transition:all .2s; text-decoration:none;
}
.btn-ghost:hover{ background:rgba(27,42,107,.05); }

.input{
  width:100%;border:1px solid #E5E7EB;background:#fff;border-radius:8px;
  padding:10px 14px;font-size:14px;color:var(--vaz-ink);
  font-family:inherit;transition:border-color .15s, box-shadow .15s;
}
.input::placeholder{ color:var(--vaz-muted); }
.input:focus{ outline:none;border-color:var(--vaz-navy);box-shadow:0 0 0 3px rgba(27,42,107,.15); }
.label{ display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--vaz-muted);margin-bottom:6px; }

.card{ background:#fff;border:1px solid #E8E4DF;border-radius:12px;padding:16px; }

.badge{ display:inline-block;padding:2px 8px;border-radius:10px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px; }
.badge-green{ background:#EDF7EE;color:#2E7D32; }
.badge-red  { background:#FFF0F2;color:var(--vaz-red); }
.badge-amber{ background:#FFF8EC;color:var(--vaz-gold); }
.badge-navy { background:#EEF1FA;color:var(--vaz-navy); }
.badge-gray { background:#F4F1EE;color:var(--vaz-muted); }

/* ===== NAV ===== */
.vaz-nav{ background:var(--vaz-red);display:flex;align-items:center;padding:0 20px;height:56px;gap:6px;flex-wrap:wrap;position:sticky;top:0;z-index:100; }
.vaz-nav .logo-area{ display:flex;align-items:center;gap:10px;margin-right:14px;cursor:pointer;text-decoration:none; }
.vaz-nav .logo-circle{ width:34px;height:34px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center; }
.vaz-nav .logo-v{ font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--vaz-red); }
.vaz-nav .logo-text{ color:#fff;font-size:12px;font-weight:600;line-height:1.2; }
.nav-btn{ border:none;background:transparent;color:rgba(255,255,255,.78);font-size:12px;font-weight:500;padding:7px 12px;border-radius:6px;cursor:pointer;transition:all .2s;font-family:inherit;white-space:nowrap;text-decoration:none; }
.nav-btn:hover, .nav-btn.active{ background:rgba(255,255,255,.18);color:#fff; }
.nav-spacer{ flex:1; }
.nav-cta{ background:var(--vaz-gold);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;text-decoration:none; }
.nav-cta:hover{ background:var(--vaz-gold-light); }

/* ===== HERO ===== */
.hero{ position:relative;overflow:hidden;padding:64px 32px 80px;
  background:
    radial-gradient(circle at 20% 20%, rgba(232,184,75,.18), transparent 40%),
    radial-gradient(circle at 80% 30%, rgba(46,68,160,.25), transparent 45%),
    linear-gradient(135deg, #9B0B22 0%, #C8102E 55%, #1B2A6B 100%);
}
.hero::before{ content:'';position:absolute;top:-80px;right:-80px;width:320px;height:320px;background:rgba(255,255,255,.05);border-radius:50%; }
.hero::after { content:'';position:absolute;bottom:-60px;left:40px;width:220px;height:220px;background:rgba(201,150,47,.15);border-radius:50%; }
.hero-grid{ position:relative;z-index:1;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center; }
@media (max-width:880px){ .hero-grid{ grid-template-columns:1fr; } .hero{ padding:40px 20px 56px; } }
.hero-badge{ display:inline-block;background:rgba(201,150,47,.25);border:1px solid var(--vaz-gold);color:var(--vaz-gold-light);font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:6px 14px;border-radius:20px;margin-bottom:18px; }
.hero h1{ font-size:40px;color:#fff;line-height:1.15;margin-bottom:14px;letter-spacing:-.5px; }
.hero h1 span{ color:var(--vaz-gold-light); }
.hero-sub{ color:rgba(255,255,255,.82);font-size:15px;line-height:1.6;margin-bottom:28px;max-width:560px; }
.hero-actions{ display:flex;gap:12px;flex-wrap:wrap; }
@media (max-width:600px){ .hero h1{ font-size:30px; } }

/* ===== Stats bar ===== */
.stats-bar{ background:var(--vaz-navy);display:grid;grid-template-columns:repeat(4,1fr); }
.stat-cell{ padding:18px 16px;text-align:center;border-right:1px solid rgba(255,255,255,.08); }
.stat-cell:last-child{ border-right:none; }
.stat-num{ color:var(--vaz-gold-light);font-size:26px;font-weight:600;font-family:'Playfair Display',serif; }
.stat-label{ color:rgba(255,255,255,.6);font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-top:2px; }
@media (max-width:600px){ .stats-bar{ grid-template-columns:repeat(2,1fr); } .stat-cell:nth-child(2){ border-right:none; } .stat-cell:nth-child(1),.stat-cell:nth-child(2){ border-bottom:1px solid rgba(255,255,255,.08); } }

/* ===== Module grid ===== */
.section-title{ font-family:'Playfair Display',serif;font-size:24px;color:var(--vaz-ink);margin-bottom:6px; }
.section-sub{ font-size:13px;color:var(--vaz-muted);margin-bottom:24px; }
.modules-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:14px; }
@media (max-width:880px){ .modules-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .modules-grid{ grid-template-columns:1fr; } }
.module-card{ background:#fff;border:1px solid #E8E4DF;border-radius:14px;padding:20px;cursor:pointer;transition:all .25s;position:relative;overflow:hidden;text-decoration:none;color:inherit;display:block; }
.module-card::before{ content:'';position:absolute;top:0;left:0;width:4px;height:100%; }
.module-card.red::before   { background:var(--vaz-red); }
.module-card.navy::before  { background:var(--vaz-navy); }
.module-card.gold::before  { background:var(--vaz-gold); }
.module-card.green::before { background:#2E7D32; }
.module-card.teal::before  { background:#00695C; }
.module-card.purple::before{ background:#6A1B9A; }
.module-card:hover{ transform:translateY(-4px);box-shadow:0 10px 28px rgba(0,0,0,.08); }
.module-icon{ width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-size:18px; }
.icon-red   { background:#FFF0F2; }
.icon-navy  { background:#EEF1FA; }
.icon-gold  { background:#FFF8EC; }
.icon-green { background:#EDF7EE; }
.icon-teal  { background:#E8F5F3; }
.icon-purple{ background:#F5EEF9; }
.module-title{ font-size:14px;font-weight:600;color:var(--vaz-ink);margin-bottom:5px; }
.module-desc { font-size:12px;color:var(--vaz-muted);line-height:1.5; }

/* ===== Auth pages ===== */
.auth-wrap{ min-height:calc(100vh - 56px);display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:var(--vaz-cream); }
@media (max-width:880px){ .auth-wrap{ grid-template-columns:1fr; } }
.auth-side{ position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:40px;
  background:
    radial-gradient(circle at 30% 30%, rgba(232,184,75,.25), transparent 50%),
    linear-gradient(135deg, #9B0B22, #1B2A6B);
}
.auth-side .copy{ position:relative;z-index:2;color:#fff;max-width:400px; }
.auth-side h2{ font-family:'Playfair Display',serif;font-size:30px;line-height:1.2;margin-bottom:12px; }
.auth-side p{ color:rgba(255,255,255,.8);font-size:14px;line-height:1.6; }
.auth-form{ display:flex;align-items:center;justify-content:center;padding:40px 24px; }
.auth-card{ width:100%;max-width:440px;background:#fff;border:1px solid #E8E4DF;border-radius:16px;padding:32px;box-shadow:0 8px 28px rgba(26,26,46,.06); }
.auth-card h1{ font-size:24px;margin-bottom:6px; }
.auth-card .sub{ font-size:13px;color:var(--vaz-muted);margin-bottom:24px; }
.form-row{ margin-bottom:14px; }
.form-grid-2{ display:grid;grid-template-columns:1fr 1fr;gap:12px; }
@media (max-width:480px){ .form-grid-2{ grid-template-columns:1fr; } }

/* ===== Hero — metrics dashboard mock ===== */
.dash-mock{ position:relative; width:100%; max-width:480px; margin:0 auto; }
.dash-mock-frame{
  background: linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  padding:18px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 24px 48px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.12);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.dash-mock-header{
  display:flex; align-items:center; gap:6px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,.1);
  margin-bottom:14px;
}
.dash-mock-header .dot{ width:8px;height:8px;border-radius:50%; }
.dash-mock-header .dot.r{ background:#E8394F; }
.dash-mock-header .dot.y{ background:#E8B84B; }
.dash-mock-header .dot.g{ background:#4CAF50; }
.dash-mock-header .title{ flex:1; margin-left:8px; font-size:11px; color:rgba(255,255,255,.7); letter-spacing:.5px; }
.dash-mock-header .pill{
  display:inline-flex; align-items:center; gap:6px;
  font-size:10px; font-weight:600; letter-spacing:.6px;
  background:rgba(76,175,80,.18); color:#9FE5A1;
  padding:3px 10px; border-radius:999px; border:1px solid rgba(76,175,80,.3);
}
.live-dot{ width:6px;height:6px;border-radius:50%; background:#4CAF50; animation:livePulse 1.6s ease-in-out infinite; }
@keyframes livePulse{ 0%,100%{box-shadow:0 0 0 0 rgba(76,175,80,.7)} 70%{box-shadow:0 0 0 6px rgba(76,175,80,0)} }

/* Hero stat row */
.dash-hero-row{ display:flex; align-items:center; gap:18px; padding:6px 0 18px; }
.ring-wrap{ position:relative; width:118px; height:118px; flex-shrink:0; }
.ring-svg{ width:100%; height:100%; transform:rotate(-90deg); }
.ring-bg{ stroke:rgba(255,255,255,.12); }
.ring-fill{
  stroke:#E8B84B;
  stroke-linecap:round;
  stroke-dasharray: 0 100;
  animation: ringFill 1.6s cubic-bezier(.5,.1,.2,1) .2s forwards;
}
@keyframes ringFill{ from{stroke-dasharray:0 100} to{stroke-dasharray:80 100} }
.ring-pct{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif;
}
.ring-pct .n{ font-size:30px; font-weight:700; color:#fff; line-height:1; }
.ring-pct .l{ font-size:9px; color:rgba(255,255,255,.6); text-transform:uppercase; letter-spacing:1px; margin-top:2px; }

.hero-stat .num{ font-family:'Playfair Display',serif; font-size:42px; font-weight:700; color:#fff; line-height:1; }
.hero-stat .num small{ font-size:18px; font-weight:500; color:rgba(255,255,255,.55); margin-left:4px; }
.hero-stat .label{ font-size:11px; color:rgba(255,255,255,.7); text-transform:uppercase; letter-spacing:1px; margin-top:6px; }
.hero-stat .delta{ font-size:11px; color:#9FE5A1; margin-top:6px; font-weight:600; }

/* Category bars */
.dash-bars{ padding:8px 0 12px; border-top:1px solid rgba(255,255,255,.08); }
.dash-bars-title{ font-size:10px; color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:1px; margin:8px 0 10px; }
.bar-row{ display:flex; align-items:center; gap:10px; margin-bottom:9px; }
.bar-name{ width:78px; font-size:11px; color:rgba(255,255,255,.85); flex-shrink:0; }
.bar-track{ flex:1; background:rgba(255,255,255,.08); border-radius:4px; height:7px; overflow:hidden; }
.bar-fill{ height:100%; border-radius:4px; width:0; animation:barGrow 1.4s cubic-bezier(.5,.1,.2,1) forwards; }
.bar-fill.b1{ background:linear-gradient(90deg,#E8B84B,#C9962F); animation-delay:.4s; }
.bar-fill.b2{ background:linear-gradient(90deg,#E8394F,#C8102E); animation-delay:.55s; }
.bar-fill.b3{ background:linear-gradient(90deg,#4CAF50,#2E7D32); animation-delay:.7s; }
.bar-fill.b4{ background:linear-gradient(90deg,#5C7CFA,#1B2A6B); animation-delay:.85s; }
.bar-pts{ font-size:10px; color:rgba(255,255,255,.7); width:42px; text-align:right; flex-shrink:0; font-variant-numeric:tabular-nums; }
@keyframes barGrow{ from{width:0} to{width:var(--w,50%)} }

/* Sparkline footer */
.dash-foot{ display:flex; align-items:center; gap:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.08); }
.spark{ flex:1; height:36px; }
.spark-area{ fill:url(#sparkGrad); opacity:.6; }
.spark-line{
  fill:none; stroke:#E8B84B; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:300; stroke-dashoffset:300;
  animation: sparkDraw 1.8s ease forwards .5s;
}
@keyframes sparkDraw{ to{stroke-dashoffset:0} }
.foot-stats{ display:flex; flex-direction:column; align-items:flex-end; gap:2px; font-size:11px; }
.foot-stats .up{ color:#9FE5A1; font-weight:600; }
.foot-stats .lbl{ color:rgba(255,255,255,.55); font-size:10px; text-transform:uppercase; letter-spacing:.6px; }

/* Floating stat chips around the dashboard */
.float-chip{
  position:absolute; padding:8px 12px; border-radius:10px;
  background:rgba(255,255,255,.96); color:#1A1A2E;
  font-size:11px; font-weight:600; box-shadow:0 10px 24px rgba(0,0,0,.18);
  display:flex; align-items:center; gap:8px;
  animation: chipFloat 4s ease-in-out infinite;
}
.float-chip .ico{ width:22px;height:22px;border-radius:6px; display:flex;align-items:center;justify-content:center; font-size:13px; }
.float-chip.c1{ top:-12px; right:-14px; animation-delay:0s; }
.float-chip.c2{ bottom:30px; left:-22px; animation-delay:1.2s; }
.float-chip.c3{ top:46%; right:-30px; animation-delay:2.4s; }
@keyframes chipFloat{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

@media (max-width:560px){
  .float-chip.c1{ right:0; }
  .float-chip.c2{ left:0; }
  .float-chip.c3{ display:none; }
}

/* ===== Doctor SVG part-level animations ===== */
.doc-bob   { transform-origin:50% 100%; animation:bob 3.6s ease-in-out infinite; }
.doc-arm   { transform-origin:250px 230px; animation:armWave 3.6s ease-in-out infinite; }
.doc-stetho{ transform-origin:240px 250px; animation:stethSway 3.2s ease-in-out infinite; }
.doc-heart { transform-origin:center; animation:heartBeat 1.1s ease-in-out infinite; transform-box:fill-box; }
.doc-eye   { animation:blink 4.5s infinite; transform-origin:center; transform-box:fill-box; }
.paw-trail { animation:pawWalk 3s linear infinite; opacity:0; }
.paw-trail.delay-1 { animation-delay:.4s; }
.paw-trail.delay-2 { animation-delay:.8s; }
.paw-trail.delay-3 { animation-delay:1.2s; }
.pulse-ring{ position:absolute;inset:0;border-radius:9999px;background:rgba(232,184,75,.45);animation:pulseRing 2.4s ease-out infinite;pointer-events:none; }

@keyframes bob       { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
@keyframes armWave   { 0%,100%{transform:rotate(-3deg)} 50%{transform:rotate(6deg)} }
@keyframes stethSway { 0%,100%{transform:rotate(-5deg)} 50%{transform:rotate(5deg)} }
@keyframes heartBeat { 0%,100%{transform:scale(1)} 20%{transform:scale(1.18)} 40%{transform:scale(.95)} 60%{transform:scale(1.1)} }
@keyframes blink     { 0%,92%,100%{transform:scaleY(1)} 95%,98%{transform:scaleY(.1)} }
@keyframes pawWalk   { 0%{transform:translateX(0);opacity:0} 15%{opacity:1} 85%{opacity:1} 100%{transform:translateX(60px);opacity:0} }
@keyframes pulseRing { 0%{transform:scale(.6);opacity:.7} 100%{transform:scale(1.6);opacity:0} }
@keyframes fadeUp    { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
.fade-up { animation:fadeUp .6s ease both; }
.fade-up.d-1 { animation-delay:.1s; }
.fade-up.d-2 { animation-delay:.25s; }
.fade-up.d-3 { animation-delay:.4s; }

/* ===== Page hero (sub-pages) ===== */
.page-hero{
  position: relative; overflow: hidden;
  padding: 56px 28px 48px;
  background:
    radial-gradient(circle at 80% 20%, rgba(232,184,75,.18), transparent 50%),
    linear-gradient(135deg, #1B2A6B 0%, #2E44A0 100%);
  color: #fff; text-align: center;
}
.page-hero-inner{ max-width: 720px; margin: 0 auto; position: relative; z-index: 1; }
.page-hero h1{ font-size: 36px; color:#fff; margin: 12px 0 10px; }
.page-hero p{ font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.78); }
@media (max-width:600px){ .page-hero h1{ font-size: 28px; } }

/* ===== Contact page ===== */
.contact-wrap{ max-width: 1100px; margin: -32px auto 0; padding: 0 28px 48px; position: relative; z-index: 2; }
.contact-grid{ display: grid; grid-template-columns: 1fr 1.4fr; gap: 24px; align-items: stretch; }
@media (max-width:880px){ .contact-grid{ grid-template-columns: 1fr; } }

.contact-info{ display: flex; flex-direction: column; gap: 12px; }
.info-card{
  background: #fff; border:1px solid #E8E4DF; border-radius: 12px;
  padding: 16px; display:flex; gap: 14px; align-items: flex-start;
  transition: transform .2s, box-shadow .2s;
}
.info-card:hover{ transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.06); }
.info-ico{
  width: 42px; height: 42px; border-radius: 10px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
}
.info-title{ font-size: 13px; font-weight: 600; color: var(--vaz-ink); margin-bottom: 4px; }
.info-body{ font-size: 13px; color: var(--vaz-muted); line-height: 1.6; }
.info-body a{ color: var(--vaz-navy); text-decoration: none; font-weight: 500; }
.info-body a:hover{ color: var(--vaz-red); }

.contact-form{ padding: 28px; }
.contact-form h2{ font-family:'Playfair Display',serif; color: var(--vaz-ink); }

/* ===== Footer ===== */
.vaz-footer{
  background: linear-gradient(180deg, #161624 0%, #0F0F1A 100%);
  color: rgba(255,255,255,.72);
  margin-top: 64px;
  position: relative;
}
.vaz-footer::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, var(--vaz-red) 0%, var(--vaz-gold) 50%, var(--vaz-navy) 100%);
}
.vaz-footer-inner{
  max-width: 1200px; margin: 0 auto;
  padding: 56px 28px 32px;
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: 40px;
}
@media (max-width: 880px){ .vaz-footer-inner{ grid-template-columns: 1fr 1fr; gap:32px 24px; } .ft-col-brand{ grid-column: 1 / -1; } }
@media (max-width: 520px){ .vaz-footer-inner{ grid-template-columns: 1fr; padding:40px 24px 24px; } }

.ft-col a{
  color: rgba(255,255,255,.72);
  text-decoration: none;
  display: block;
  font-size: 13px;
  padding: 5px 0;
  transition: color .15s, transform .15s;
}
.ft-col a:hover{ color: var(--vaz-gold-light); transform: translateX(2px); }

.ft-heading{
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 14px;
  position: relative;
  padding-bottom: 10px;
}
.ft-heading::after{
  content:''; position:absolute; left:0; bottom:0;
  width: 28px; height: 2px; background: var(--vaz-gold);
  border-radius: 2px;
}

.ft-logo{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.ft-logo-circle{
  width:40px; height:40px; border-radius:50%;
  background: linear-gradient(135deg, #fff, #F1EFEC);
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 4px 12px rgba(232,184,75,.3);
}
.ft-logo-circle span{ font-family:'Playfair Display',serif; font-size:22px; font-weight:700; color: var(--vaz-red); }
.ft-logo-text{ color:#fff; font-size:13px; font-weight:600; line-height:1.3; }
.ft-blurb{ font-size:13px; line-height:1.7; color:rgba(255,255,255,.6); margin-bottom:18px; max-width:340px; }

.ft-social{ display:flex; gap:8px; }
.ft-social a{
  width:34px; height:34px; padding:0;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:8px; background:rgba(255,255,255,.06);
  color: rgba(255,255,255,.7); transition: all .2s;
}
.ft-social a:hover{
  background: var(--vaz-gold); color:#fff; transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(201,150,47,.4);
}

.ft-contact{
  display:flex; gap:10px; align-items:flex-start;
  font-size:12px; line-height:1.6; color:rgba(255,255,255,.7);
  padding: 6px 0;
}
.ft-contact a{ display:inline; padding:0; }
.ft-ico{
  width:28px; height:28px; border-radius:8px;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(232,184,75,.15); color: var(--vaz-gold-light);
  font-size:13px; flex-shrink:0;
}

.ft-bottom{
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 18px 28px;
  max-width: 1200px; margin: 0 auto;
  display: flex; justify-content: space-between;
  font-size: 12px; color: rgba(255,255,255,.5);
  flex-wrap: wrap; gap: 12px;
}
.ft-bottom-links{ display:flex; gap:8px; align-items:center; }
.ft-bottom-links a{ color: rgba(255,255,255,.55); text-decoration:none; }
.ft-bottom-links a:hover{ color: var(--vaz-gold-light); }
.ft-bottom-links span{ color: rgba(255,255,255,.25); }

/* ===== Toast ===== */
.toast{ position:fixed;bottom:24px;right:24px;min-width:240px;max-width:360px;padding:12px 16px;border-radius:10px;background:var(--vaz-ink);color:#fff;font-size:13px;box-shadow:0 12px 28px rgba(0,0,0,.18);transform:translateY(20px);opacity:0;transition:transform .25s ease, opacity .25s ease;z-index:200; }
.toast.show{ transform:translateY(0);opacity:1; }
.toast.success{ background:#2E7D32; }
.toast.error  { background:var(--vaz-red); }

/* ===== Portal shell (sidebar layout) ===== */
.dash-body{ background:#F4F1EE; min-height:100vh; }
.dash-shell{ display:grid; grid-template-columns: 240px 1fr; min-height:100vh; }
@media (max-width: 880px){ .dash-shell{ grid-template-columns: 1fr; } }

.dash-side{
  background: linear-gradient(180deg, #1B2A6B 0%, #161E4F 100%);
  color: rgba(255,255,255,.78);
  display:flex; flex-direction:column;
  position:sticky; top:0; height:100vh;
  border-right:1px solid rgba(255,255,255,.06);
  z-index: 50;
}
@media (max-width: 880px){
  .dash-side{
    position:fixed; top:0; left:0; height:100vh; width:260px;
    transform: translateX(-100%);
    transition: transform .25s ease;
    box-shadow: 0 0 40px rgba(0,0,0,.4);
  }
  .dash-side.open{ transform: translateX(0); }
}

.dash-side-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.45);
  opacity:0; pointer-events:none; transition:opacity .2s; z-index: 40;
}
.dash-side-overlay.show{ opacity:1; pointer-events:auto; }
@media (min-width: 881px){ .dash-side-overlay{ display:none; } }

.dash-side-brand{
  display:flex; align-items:center; gap:12px;
  padding: 18px 20px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  text-decoration:none; color:#fff;
}
.dash-side-logo{
  width:36px; height:36px; border-radius:50%;
  background:#fff; color: var(--vaz-red);
  font-family:'Playfair Display',serif; font-weight:700; font-size:18px;
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 4px 10px rgba(232,184,75,.25);
}
.dash-side-brand-text{ display:flex; flex-direction:column; line-height:1.1; }
.dash-side-brand-text .bn{ font-family:'Playfair Display',serif; font-size:18px; font-weight:700; }
.dash-side-brand-text .bs{ font-size:10px; color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:1px; margin-top:2px; }

.dash-side-nav{ flex:1; overflow-y:auto; padding: 14px 12px; }
.side-section{ margin-bottom:18px; }
.side-label{
  font-size:10px; font-weight:600; letter-spacing:1.2px;
  text-transform:uppercase; color:rgba(255,255,255,.4);
  padding: 0 10px 8px;
}
.side-link{
  display:flex; align-items:center; gap:11px;
  padding: 9px 12px; border-radius:8px;
  color: rgba(255,255,255,.78); text-decoration:none;
  font-size:13px; font-weight:500;
  transition: background .15s, color .15s, transform .15s;
  position: relative;
}
.side-link .ico{ width:20px; text-align:center; font-size:14px; flex-shrink:0; }
.side-link .lbl{ flex:1; }
.side-link:hover{ background: rgba(255,255,255,.06); color:#fff; }
.side-link.active{
  background: rgba(232,184,75,.15);
  color:#fff;
  box-shadow: inset 3px 0 0 var(--vaz-gold);
}
.side-link.active .ico{ color: var(--vaz-gold-light); }
.side-badge{
  background: var(--vaz-red); color:#fff; font-size:10px; font-weight:700;
  padding: 2px 7px; border-radius:10px; line-height:1;
}

.dash-side-foot{
  padding: 12px;
  border-top: 1px solid rgba(255,255,255,.08);
}

/* Main column */
.dash-main{ display:flex; flex-direction:column; min-width: 0; }

.dash-top{
  background:#fff;
  border-bottom: 1px solid #E8E4DF;
  height: 64px;
  padding: 0 24px;
  display:flex; align-items:center; gap:14px;
  position:sticky; top:0; z-index:30;
}
.dash-top-title{
  font-family:'Playfair Display',serif;
  font-size: 18px; color: var(--vaz-ink);
  flex: 1;
}
.dash-top-right{ display:flex; align-items:center; gap:12px; }

.dash-burger{
  display:none;
  width:40px; height:40px; padding:10px 8px;
  background:transparent; border:none; border-radius:8px; cursor:pointer;
  flex-direction:column; gap:4px;
}
.dash-burger:hover{ background:#F4F1EE; }
.dash-burger span{ display:block; width:100%; height:2px; background:var(--vaz-ink); border-radius:2px; transition:transform .2s, opacity .2s; }
.dash-burger.open span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
.dash-burger.open span:nth-child(2){ opacity:0; }
.dash-burger.open span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 880px){ .dash-burger{ display:flex; } }

.dash-bell{
  position: relative;
  width:38px; height:38px; border-radius:8px;
  background:#F4F1EE; border:none; cursor:pointer;
  font-size:16px;
}
.dash-bell:hover{ background:#E8E4DF; }
.bell-dot{
  position:absolute; top:8px; right:9px;
  width:8px; height:8px; border-radius:50%;
  background: var(--vaz-red);
  box-shadow: 0 0 0 2px #fff;
  animation: livePulse 1.8s ease-in-out infinite;
}

/* User dropdown */
.dash-user-menu{ position:relative; }
.dash-user-btn{
  display:flex; align-items:center; gap:10px;
  background:#fff; border:1px solid #E8E4DF; border-radius:10px;
  padding: 5px 10px 5px 5px; cursor:pointer; font-family:inherit;
  transition: border-color .15s, box-shadow .15s;
}
.dash-user-btn:hover, .dash-user-btn.open{
  border-color: var(--vaz-navy); box-shadow: 0 0 0 3px rgba(27,42,107,.08);
}
.user-avatar{
  width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700; color:#fff;
  font-family:'DM Sans',sans-serif;
  flex-shrink:0;
}
.avatar-red  { background: linear-gradient(135deg, var(--vaz-red),  var(--vaz-red-dark)); }
.avatar-navy { background: linear-gradient(135deg, var(--vaz-navy), #4A5BB5); }
.avatar-gold { background: linear-gradient(135deg, var(--vaz-gold), #B8801F); }
.user-info{ display:flex; flex-direction:column; line-height:1.15; text-align:left; }
.user-name{ font-size:13px; font-weight:600; color: var(--vaz-ink); }
.user-role{ font-size:10px; color: var(--vaz-muted); text-transform:uppercase; letter-spacing:.6px; margin-top:1px; }
.dash-user-btn .caret{ color: var(--vaz-muted); font-size:11px; margin-left:4px; transition: transform .15s; }
.dash-user-btn.open .caret{ transform: rotate(180deg); }
@media (max-width: 520px){ .user-info{ display:none; } }

.dash-user-dropdown{
  position:absolute; top: calc(100% + 8px); right: 0;
  width: 280px;
  background:#fff;
  border:1px solid #E8E4DF;
  border-radius: 12px;
  box-shadow: 0 18px 40px rgba(26,26,46,.14);
  overflow:hidden;
  z-index: 80;
  animation: ddIn .18s ease;
}
@keyframes ddIn{ from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:translateY(0)} }
.dropdown-head{
  display:flex; gap:12px; padding:14px;
  background: linear-gradient(135deg,#FAFAF8,#F4F1EE);
  border-bottom: 1px solid #F0EDE8;
}
.dropdown-name{ font-size:13px; font-weight:700; color:var(--vaz-ink); }
.dropdown-meta{ font-size:11px; color:var(--vaz-muted); margin-top:2px; }
.dropdown-list{ padding:6px 0; }
.dropdown-item{
  display:flex; align-items:center; gap:10px;
  padding: 10px 14px;
  color: var(--vaz-ink); text-decoration:none;
  font-size:13px;
  transition: background .12s;
}
.dropdown-item:hover{ background:#FAFAF8; }
.dropdown-item .ico{ width:20px; text-align:center; }
.dropdown-danger{ color: var(--vaz-red); }
.dropdown-danger:hover{ background:#FFF0F2; }

/* Page content area */
.dash-content{ padding: 24px 28px 48px; max-width: 1400px; width: 100%; margin: 0 auto; }
@media (max-width: 600px){ .dash-content{ padding: 18px 16px 32px; } }

/* Page header strip used inside dash-content */
.page-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap: 14px; flex-wrap: wrap;
  margin-bottom: 18px;
}
.page-head .ph-title{ font-family:'Playfair Display',serif; font-size: 26px; color: var(--vaz-ink); }
.page-head .ph-sub{ font-size: 13px; color: var(--vaz-muted); margin-top: 4px; }

/* ===== Dashboard pieces ===== */
.dash-header{ background:var(--vaz-red);padding:24px 28px;color:#fff; }
.dash-header.navy { background:var(--vaz-navy); }
.dash-header.gold { background:linear-gradient(135deg,#7B5E10,var(--vaz-gold)); }
.dash-welcome{ font-size:12px;color:rgba(255,255,255,.7);margin-bottom:2px; }
.dash-name{ font-family:'Playfair Display',serif;font-size:24px;color:#fff;margin-bottom:2px; }
.dash-role{ font-size:11px;color:var(--vaz-gold-light);font-weight:600;text-transform:uppercase;letter-spacing:.8px; }
.dash-status{ display:inline-flex;align-items:center;gap:8px;margin-top:10px;background:rgba(255,255,255,.1);border-radius:8px;padding:8px 14px; }
.status-dot{ width:8px;height:8px;border-radius:50%;background:#4CAF50; }
.status-text{ font-size:11px;color:rgba(255,255,255,.85); }
.kpi-row{ display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px 28px; }
@media (max-width:760px){ .kpi-row{ grid-template-columns:repeat(2,1fr); } }
.kpi-card{ background:#fff;border:1px solid #E8E4DF;border-radius:10px;padding:14px;text-align:center; }
.kpi-num{ font-size:26px;font-weight:700;font-family:'Playfair Display',serif;margin-bottom:2px; }
.kpi-red{ color:var(--vaz-red); } .kpi-navy{ color:var(--vaz-navy); } .kpi-gold{ color:var(--vaz-gold); } .kpi-green{ color:#2E7D32; }
.kpi-label{ font-size:10px;color:var(--vaz-muted);text-transform:uppercase;letter-spacing:.6px; }

.data-table{ width:100%;border-collapse:collapse;font-size:12px; }
.data-table th{ background:#F4F1EE;padding:10px 12px;text-align:left;font-weight:600;color:var(--vaz-muted);text-transform:uppercase;letter-spacing:.6px;font-size:10px; }
.data-table td{ padding:11px 12px;border-bottom:1px solid #F0EDE8;color:var(--vaz-ink); }
.data-table tr:hover td{ background:#FAFAF8; }
