/* ═══════════════════════════════════════════════════
   EMPODEREM-SE CONSIGNADOS — DESIGN SYSTEM v3
   Tokens · Base · Components · Layouts · Responsive
   ═══════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Jost:wght@300;400;500;600&display=swap');

/* ── Tokens ── */
:root {
  --rosa:        #C2185B;
  --rosa-vivo:   #E91E8C;
  --rosa-esc:    #880E4F;
  --rosa-10:     rgba(194,24,91,.10);
  --rosa-20:     rgba(194,24,91,.20);
  --rosa-pale:   #FCE4EC;
  --ouro:        #B8974A;
  --ouro-claro:  #D4AF6A;
  --ouro-10:     rgba(184,151,74,.10);
  --ouro-pale:   #FDF8F0;
  --creme:       #FAF7F4;
  --creme-2:     #F3EDE8;
  --branco:      #FFFFFF;
  --texto:       #2D1F1F;
  --texto-2:     #5A4A4A;
  --cinza:       #7A6E6E;
  --cinza-2:     #A89898;
  --cinza-3:     #E8E0DC;
  --cinza-4:     #F0ECEA;
  --dark-1:      #0d0508;
  --dark-2:      #1a0a12;
  --dark-3:      #2d1020;

  --grad-rosa:   linear-gradient(135deg,#C2185B 0%,#E91E8C 100%);
  --grad-ouro:   linear-gradient(135deg,#B8974A 0%,#D4AF6A 100%);
  --grad-dark:   linear-gradient(145deg,#1a0a12 0%,#2d1020 55%,#1a0812 100%);

  --shadow-sm:   0 2px 8px rgba(194,24,91,.07);
  --shadow-md:   0 4px 24px rgba(194,24,91,.12);
  --shadow-lg:   0 8px 48px rgba(194,24,91,.16);
  --shadow-card: 0 2px 16px rgba(45,31,31,.08);

  --font-d: 'Cormorant Garamond',Georgia,serif;
  --font-b: 'Jost',system-ui,sans-serif;

  --r-sm:4px; --r-md:10px; --r-lg:16px; --r-xl:24px; --r-f:9999px;
  --nav-h: 68px;
  --side-w: 256px;
  --ease: cubic-bezier(.4,0,.2,1);
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-b);background:var(--creme);color:var(--texto);min-height:100vh;overflow-x:hidden;line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font-family:inherit;border:none;background:none}
input,select,textarea{font-family:inherit;outline:none}
::selection{background:var(--rosa-pale);color:var(--rosa-esc)}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--cinza-3);border-radius:3px}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 22px;border-radius:var(--r-md);font-size:.875rem;font-weight:600;letter-spacing:.05em;transition:all .25s var(--ease);position:relative;overflow:hidden;white-space:nowrap;text-decoration:none}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.55;pointer-events:none}
.btn-primary{background:var(--grad-rosa);color:#fff;box-shadow:var(--shadow-md)}
.btn-primary:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}
.btn-ouro{background:var(--grad-ouro);color:#fff;box-shadow:0 4px 20px rgba(184,151,74,.3)}
.btn-ouro:hover{box-shadow:0 8px 32px rgba(184,151,74,.45);transform:translateY(-2px)}
.btn-outline{background:transparent;border:1.5px solid var(--cinza-3);color:var(--texto)}
.btn-outline:hover{border-color:var(--rosa);color:var(--rosa)}
.btn-ghost{background:transparent;color:var(--cinza)}
.btn-ghost:hover{color:var(--rosa);background:var(--rosa-10)}
.btn-lg{padding:15px 34px;font-size:.95rem;border-radius:var(--r-lg)}
.btn-sm{padding:7px 14px;font-size:.78rem}
.btn-full{width:100%}
.btn-icon{padding:9px;border-radius:var(--r-md);aspect-ratio:1}

/* ── Cards ── */
.card{background:var(--branco);border-radius:var(--r-lg);box-shadow:var(--shadow-card);border:1px solid var(--cinza-3)}
.card-hover{transition:transform .25s,box-shadow .25s}
.card-hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.card-body{padding:24px}
.card-head{padding:16px 24px;border-bottom:1px solid var(--cinza-3);display:flex;align-items:center;justify-content:space-between}
.card-title{font-size:.92rem;font-weight:600;color:var(--texto)}

/* ── Badges ── */
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--r-f);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.badge-rosa{background:var(--rosa-pale);color:var(--rosa)}
.badge-ouro{background:var(--ouro-pale);color:var(--ouro)}
.badge-verde{background:#E8F5E9;color:#388E3C}
.badge-cinza{background:var(--cinza-4);color:var(--cinza)}
.badge-dev{background:#EDE7F6;color:#5E35B1}

/* ── Form ── */
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:.7rem;font-weight:700;letter-spacing:.12em;color:var(--ouro);text-transform:uppercase}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1.5px solid var(--cinza-3);border-radius:var(--r-md);font-size:.9rem;color:var(--texto);background:var(--creme);transition:border .2s,box-shadow .2s;appearance:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--rosa);box-shadow:0 0 0 3px var(--rosa-10)}
.field input::placeholder{color:var(--cinza-2)}

/* ── App shell ── */
.app-shell{display:grid;grid-template-rows:var(--nav-h) 1fr;min-height:100vh}

/* App top nav */
.app-topbar{height:var(--nav-h);background:var(--branco);border-bottom:1px solid var(--cinza-3);display:flex;align-items:center;padding:0 16px;gap:10px;position:sticky;top:0;z-index:100;transition:box-shadow .3s}
.app-topbar.scrolled{box-shadow:var(--shadow-sm)}
.app-brand{display:flex;align-items:center;gap:8px;text-decoration:none}
.app-brand-name{font-family:var(--font-d);font-size:1.2rem;font-weight:300;color:var(--rosa);line-height:1}
.app-brand-sub{font-size:.5rem;letter-spacing:.2em;color:var(--ouro);text-transform:uppercase;display:block}

/* Sidebar */
.app-body{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:calc(100vh - var(--nav-h))}
.app-sidebar{background:var(--branco);border-right:1px solid var(--cinza-3);position:sticky;top:var(--nav-h);height:calc(100vh - var(--nav-h));overflow-y:auto;transition:transform .3s var(--ease);padding:12px 0}
.sb-section-label{padding:10px 20px 4px;font-size:.64rem;font-weight:700;letter-spacing:.16em;color:var(--cinza-2);text-transform:uppercase}
.sb-link{display:flex;align-items:center;gap:10px;padding:9px 20px;font-size:.86rem;font-weight:500;color:var(--texto-2);transition:all .15s;text-decoration:none;border-right:3px solid transparent}
.sb-link:hover{color:var(--rosa);background:var(--rosa-10)}
.sb-link.active{color:var(--rosa);background:var(--rosa-10);font-weight:600;border-right-color:var(--rosa)}
.sb-icon{width:20px;text-align:center;font-size:.95rem;flex-shrink:0}
.sb-divider{height:1px;background:var(--cinza-3);margin:8px 16px}

/* App content */
.app-content{padding:clamp(16px,2.5vw,32px);background:var(--cinza-4);min-width:0}

/* ── Metric cards ── */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:20px}
.metric{background:var(--branco);border-radius:var(--r-lg);padding:20px;border:1px solid var(--cinza-3);display:flex;flex-direction:column;gap:4px}
.metric-ico{font-size:1.4rem;margin-bottom:4px}
.metric-val{font-family:var(--font-d);font-size:1.85rem;font-weight:600;color:var(--rosa);line-height:1}
.metric-val.ouro{color:var(--ouro)}
.metric-val.verde{color:#4CAF50}
.metric-lbl{font-size:.75rem;color:var(--cinza)}

/* ── Progress ── */
.prog{height:6px;background:var(--cinza-3);border-radius:3px;overflow:hidden}
.prog-fill{height:100%;background:var(--grad-rosa);border-radius:3px;transition:width .6s var(--ease)}

/* ── Toast ── */
#toasts{position:fixed;top:18px;right:18px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{background:var(--branco);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:13px 17px;display:flex;align-items:center;gap:10px;font-size:.84rem;font-weight:500;max-width:320px;pointer-events:all;animation:toastIn .3s var(--ease)}
.toast.s{border-left:4px solid var(--ouro)}
.toast.e{border-left:4px solid var(--rosa)}
.toast.i{border-left:4px solid #64b5f6}
@keyframes toastIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}

/* ── Spinner ── */
.spin{width:17px;height:17px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;animation:rot .65s linear infinite;display:inline-block;flex-shrink:0}
@keyframes rot{to{transform:rotate(360deg)}}

/* ── Sidebar mobile overlay ── */
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(45,31,31,.5);z-index:99;backdrop-filter:blur(4px);opacity:0;transition:opacity .3s;pointer-events:none}
.sb-overlay.on{opacity:1;pointer-events:all}

/* ── Grid utils ── */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}

/* ── Table ── */
.tbl-wrap{overflow-x:auto;border-radius:var(--r-lg)}
table{width:100%;border-collapse:collapse;background:var(--branco);border-radius:var(--r-lg)}
thead th{padding:11px 15px;text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.1em;color:var(--ouro);text-transform:uppercase;border-bottom:1px solid var(--cinza-3);white-space:nowrap}
tbody td{padding:12px 15px;font-size:.84rem;color:var(--texto-2);border-bottom:1px solid var(--cinza-4)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--cinza-4)}

/* ── Animations ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes orbPulse{0%,100%{transform:scale(1) translate(0,0)}33%{transform:scale(1.05) translate(15px,-20px)}66%{transform:scale(.95) translate(-10px,15px)}}

/* ── Responsive ── */
@media(max-width:960px){
  .g4{grid-template-columns:1fr 1fr}
  .g3{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .app-body{grid-template-columns:1fr}
  .app-sidebar{position:fixed;left:0;top:0;bottom:0;height:100vh;z-index:100;transform:translateX(-100%)}
  .app-sidebar.open{transform:translateX(0)}
  .sb-overlay{display:block}
  .app-content{padding:14px}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .metrics{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .metrics{grid-template-columns:1fr}
  .metric-val{font-size:1.5rem}
}
