/* =========================================================================
   ÁVILLA BORGARELLI — DESIGN SYSTEM
   Folha de estilos compartilhada por todo o site público e painel admin.
   Paleta: Azul-marinho (#0d2744 / #0a1e35) + Dourado (#C9A84C / #8B6914)
   ========================================================================= */

:root{
  --navy:        #0d2744;
  --navy-deep:   #0a1e35;
  --navy-light:  #1a3a5c;
  --navy-soft:   #284b6e;
  --gold:        #C9A84C;
  --gold-deep:   #8B6914;
  --gold-pale:   #F5E6B8;
  --cream:       #F5F0E8;
  --paper:       #FAF8F4;
  --ink:         #20242c;
  --ink-soft:    rgba(32,36,44,.6);
  --ink-faint:   rgba(32,36,44,.35);
  --line:        rgba(20,30,45,.09);
  --shadow-sm:   0 2px 10px -2px rgba(13,39,68,.08);
  --shadow-md:   0 12px 28px -8px rgba(13,39,68,.16);
  --shadow-lg:   0 28px 60px -16px rgba(13,39,68,.28);
  --shadow-gold: 0 10px 30px -8px rgba(201,168,76,.35);
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset finos / utilitários globais ---------- */
.no-scrollbar::-webkit-scrollbar{ display:none; }
.no-scrollbar{ -ms-overflow-style:none; scrollbar-width:none; }
*{ scrollbar-color: rgba(139,105,20,.25) transparent; }
::-webkit-scrollbar{ width:6px; height:6px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:rgba(139,105,20,.25); border-radius:10px; }
::-webkit-scrollbar-thumb:hover{ background:rgba(139,105,20,.45); }
[x-cloak]{ display:none !important; }

/* ---------- Tipografia decorativa ---------- */
.brand-divider{ display:flex; align-items:center; justify-content:center; gap:14px; }
.brand-divider .ln{ height:1px; flex:0 0 64px; background:linear-gradient(90deg,transparent,var(--gold)); }
.brand-divider .ln.r{ background:linear-gradient(90deg,var(--gold),transparent); }

/* ---------- Animações compartilhadas ---------- */
@keyframes av-float{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-8px); } }
@keyframes av-fade-up{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:translateY(0); } }
@keyframes av-fade-in{ from{ opacity:0; } to{ opacity:1; } }
@keyframes av-scale-in{ from{ opacity:0; transform:scale(.96); } to{ opacity:1; transform:scale(1); } }
@keyframes av-shimmer{ 0%{ background-position:-400px 0; } 100%{ background-position:400px 0; } }
@keyframes av-pulse-ring{ 0%{ box-shadow:0 0 0 0 rgba(201,168,76,.45); } 100%{ box-shadow:0 0 0 10px rgba(201,168,76,0); } }
@keyframes av-spin{ to{ transform:rotate(360deg); } }
.av-float{ animation:av-float 6s ease-in-out infinite; }
.av-fade-up{ animation:av-fade-up .6s var(--ease) forwards; }
.av-fade-in{ animation:av-fade-in .5s var(--ease) forwards; }
.av-scale-in{ animation:av-scale-in .25s var(--ease) forwards; }

/* ---------- Botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-weight:700; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  padding:.85rem 1.6rem; border-radius:.7rem; transition:all .25s var(--ease);
  cursor:pointer; border:1px solid transparent; white-space:nowrap;
}
.btn:disabled{ opacity:.5; cursor:not-allowed; }
.btn-gold{ background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%); color:#fff; box-shadow:var(--shadow-gold); }
.btn-gold:hover{ filter:brightness(1.07); transform:translateY(-1px); box-shadow:0 14px 34px -10px rgba(201,168,76,.5); }
.btn-navy{ background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%); color:var(--cream); box-shadow:0 10px 26px -8px rgba(13,39,68,.45); }
.btn-navy:hover{ filter:brightness(1.15); transform:translateY(-1px); }
.btn-ghost{ background:transparent; color:var(--ink-soft); border-color:var(--line); }
.btn-ghost:hover{ color:var(--ink); border-color:rgba(139,105,20,.35); background:rgba(201,168,76,.06); }
.btn-outline-gold{ background:transparent; color:var(--gold-deep); border-color:rgba(139,105,20,.35); }
.btn-outline-gold:hover{ background:rgba(201,168,76,.08); border-color:var(--gold-deep); }
.btn-danger-ghost{ background:transparent; color:#b34242; border-color:rgba(179,66,66,.25); }
.btn-danger-ghost:hover{ background:rgba(220,38,38,.08); border-color:#dc2626; }

/* ---------- Inputs ---------- */
.field-label{ display:block; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:6px; }
.field{
  width:100%; background:#fff; border:1.5px solid var(--line); color:var(--ink);
  font-size:13.5px; border-radius:11px; padding:11px 14px; transition:all .2s var(--ease);
  font-family:'Manrope','Inter',sans-serif;
}
.field::placeholder{ color:var(--ink-faint); }
.field:hover{ border-color:rgba(20,30,45,.16); }
.field:focus{ outline:none; border-color:var(--gold-deep); background:#fff; box-shadow:0 0 0 4px rgba(201,168,76,.14); }
.field-icon-wrap{ position:relative; }
.field-icon-wrap i{ position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--ink-faint); transition:color .2s; pointer-events:none; }
.field-icon-wrap .field{ padding-left:40px; }
.field-icon-wrap:focus-within i{ color:var(--gold-deep); }

/* ---------- Cards ---------- */
.av-card{
  background:#fff; border:1px solid var(--line); border-radius:16px;
  position:relative; overflow:hidden; transition:all .3s var(--ease);
  box-shadow:0 1px 2px rgba(13,39,68,.04);
}
.av-card:hover{ transform:translateY(-3px); border-color:rgba(201,168,76,.35); box-shadow:var(--shadow-md); }
.av-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  opacity:0; transition:opacity .3s;
}
.av-card:hover::before{ opacity:1; }
.av-card-flush{ background:#fff; border:1px solid var(--line); border-radius:16px; }

/* ---------- Badges ---------- */
.av-badge{ display:inline-flex; align-items:center; gap:5px; font-size:9.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:3px 9px; border-radius:6px; }
.av-badge-gold{ background:rgba(201,168,76,.12); color:var(--gold-deep); border:1px solid rgba(201,168,76,.25); }
.av-badge-green{ background:rgba(16,185,129,.1); color:#0a8a63; border:1px solid rgba(16,185,129,.2); }
.av-badge-red{ background:rgba(220,38,38,.08); color:#c0392b; border:1px solid rgba(220,38,38,.18); }
.av-badge-gray{ background:rgba(32,36,44,.05); color:var(--ink-faint); border:1px solid var(--line); }

/* ---------- Slide-over panels & sheets ---------- */
.sheet-bg{ background:rgba(10,18,30,.55); backdrop-filter:blur(6px); }
.sheet-panel{ background:var(--paper); border-left:1px solid var(--line); box-shadow:-20px 0 60px -20px rgba(13,39,68,.3); }

/* ---------- Modais ---------- */
.av-modal-card{ background:#fff; border-radius:18px; box-shadow:0 40px 90px -20px rgba(13,39,68,.45); overflow:hidden; }
.av-modal-overlay{ background:rgba(10,18,30,.6); backdrop-filter:blur(8px); }

/* ---------- Toast ---------- */
.av-toast-stack{ position:fixed; top:20px; right:20px; z-index:999999; pointer-events:none; display:flex; flex-direction:column; gap:8px; }
.av-toast{ pointer-events:auto; background:#fff; border:1px solid var(--line); padding:14px 18px; border-radius:12px; box-shadow:var(--shadow-lg); display:flex; align-items:center; gap:10px; min-width:260px; }

/* ---------- Sidebar nav (admin shell) ---------- */
.sidebar-link{ display:flex; align-items:center; gap:12px; padding:10px 14px; border-radius:11px; font-size:13.5px; font-weight:600; transition:all .2s var(--ease); color:rgba(32,36,44,.5); position:relative; }
.sidebar-link i{ font-size:1.1rem; transition:transform .2s var(--ease); }
.sidebar-link:hover{ color:var(--ink); background:rgba(201,168,76,.08); }
.sidebar-link:hover i{ transform:translateX(1px); }
.sidebar-link.active{
  color:#fff; font-weight:700;
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);
  box-shadow:0 8px 18px -8px rgba(139,105,20,.55), inset 0 1px 0 rgba(255,255,255,.18);
}
.sidebar-link.active i{ color:#fff; }
.sidebar-link.active:hover{ background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%); transform:none; }

.av-sidebar{ box-shadow:1px 0 0 rgba(20,30,45,.05), 10px 0 30px -16px rgba(13,39,68,.14); position:relative; z-index:5; }
.av-section-label{ display:flex; align-items:center; gap:7px; font-size:10px; text-transform:uppercase; letter-spacing:.16em; font-weight:800; color:rgba(32,36,44,.32); padding:0 14px; margin-bottom:9px; }
.av-section-label .dot{ width:5px; height:5px; border-radius:50%; background:var(--gold); opacity:.7; }

.av-icon-btn{ width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(32,36,44,.42); background:#fff; border:1px solid var(--line); transition:all .25s var(--ease); }
.av-icon-btn:hover{ color:var(--gold-deep); border-color:rgba(201,168,76,.4); box-shadow:var(--shadow-sm); transform:translateY(-1px); }

/* ---------- Tabela / linhas de lista ---------- */
.av-row{ background:#fff; border:1px solid var(--line); border-radius:12px; transition:all .2s var(--ease); }
.av-row:hover{ border-color:rgba(201,168,76,.3); background:#FBF8F1; }

/* ---------- Empty / loading states ---------- */
.av-empty{ padding:4rem 1rem; text-align:center; border:1.5px dashed var(--line); border-radius:14px; color:var(--ink-faint); }
.av-spinner{ display:inline-block; animation:av-spin .8s linear infinite; }

/* Skeleton loading (placeholder pulsante enquanto os dados carregam via fetch) */
.av-skeleton{
    background:linear-gradient(90deg,#F2EFE7 25%,#FBF9F4 37%,#F2EFE7 63%);
    background-size:800px 100%;
    animation:av-shimmer 1.4s ease infinite;
    border-radius:8px;
}
.av-skeleton-card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px; }

/* ---------- Public-site specific helpers ---------- */
.navy-bg{ background:radial-gradient(circle at 30% 20%, var(--navy) 0%, var(--navy-deep) 60%, #071527 100%); }
.glow-orb{ filter:blur(90px); opacity:.35; border-radius:50%; pointer-events:none; }
.gold-text-gradient{ background:linear-gradient(135deg,var(--gold-pale),var(--gold) 60%,var(--gold-deep)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.glass-panel{ background:rgba(255,255,255,.04); backdrop-filter:blur(16px); border:1px solid rgba(255,255,255,.09); }
.glass-panel-light{ background:rgba(255,255,255,.65); backdrop-filter:blur(14px); border:1px solid rgba(255,255,255,.6); }

/* ---------- Reveal-on-scroll (sem dependências externas) ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-delay-1{ transition-delay:.08s; } .reveal-delay-2{ transition-delay:.16s; } .reveal-delay-3{ transition-delay:.24s; }
.reveal-delay-4{ transition-delay:.32s; } .reveal-delay-5{ transition-delay:.4s; } .reveal-delay-6{ transition-delay:.48s; }
