/* ============================================================
   Bateria Monstruosa · Design System
   Coerente com o site Filhos da Santa (Patrick Hand + azul/dourado)
   com um toque "Monstruosa" (roxo/vinho de energia).
   ============================================================ */

:root{
  --ink:#2c2c2c;
  --ink-2:#6f6f6f;
  --ink-3:#a8a8a8;
  --paper:#fbfaf6;
  --card:#ffffff;
  --line:#e4e1d6;
  --blue:#2b2f74;
  --gold:#c9a227;
  --gold-2:#e6c65a;
  --red:#c0392b;
  --green:#1a7a45;
  /* cores da marca — logo Bateria Monstruosa (índigo + ouro) */
  --monster:#454081;
  --monster-2:#5a54a6;
  --flame:#d9b64a;

  --radius:16px;
  --shadow:0 6px 20px rgba(0,0,0,.08);
  --shadow-lg:0 12px 34px rgba(0,0,0,.16);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Patrick Hand', cursive;
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
h1,h2,h3,.hand-sc{font-family:'Patrick Hand SC', sans-serif;letter-spacing:.3px;}
a{color:inherit;}
img{max-width:100%;}

/* ---- App shell ---- */
.app{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--paper);position:relative;}
.topbar{
  display:flex;align-items:center;gap:10px;padding:12px 16px;
  background:linear-gradient(120deg,var(--monster) 0%,var(--blue) 100%);
  color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 10px rgba(0,0,0,.15);
}
.topbar img{width:34px;height:34px;border-radius:8px;background:#fff;padding:2px;}
.topbar .tt{font-family:'Patrick Hand SC';font-size:18px;line-height:1;}
.topbar .tt small{display:block;font-family:'Patrick Hand';font-size:11px;opacity:.85;letter-spacing:.5px;}
.topbar .spacer{flex:1;}
.topbar .iconbtn{background:rgba(255,255,255,.16);border:none;color:#fff;width:36px;height:36px;border-radius:10px;font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.topbar .iconbtn:active{transform:scale(.94);}

.content{flex:1;padding:16px 16px 92px;}

/* ---- Bottom nav ---- */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  max-width:520px;margin:0 auto;display:flex;background:var(--card);
  border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(0,0,0,.06);
}
.tabbar button{
  flex:1;border:none;background:none;padding:9px 4px 10px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-3);
  font-family:'Patrick Hand SC';font-size:11px;letter-spacing:.3px;
}
.tabbar button .ic{font-size:21px;line-height:1;}
.tabbar button.active{color:var(--monster);}
.tabbar button.active .ic{transform:translateY(-1px);}

/* ---- Cards / blocks ---- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:14px;}
.section-title{font-family:'Patrick Hand SC';font-size:20px;margin:6px 2px 12px;display:flex;align-items:center;gap:8px;}
.section-title .em{font-size:22px;}
.muted{color:var(--ink-2);}
.tiny{font-size:12px;}
.center{text-align:center;}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-family:'Patrick Hand SC';font-size:15px;padding:11px 18px;cursor:pointer;
  border:2px solid var(--line);border-radius:14px 6px 14px 6px/6px 14px 6px 14px;
  background:#fff;color:var(--ink);transition:.15s;width:100%;
}
.btn:active{transform:scale(.98);}
.btn.fill{background:var(--monster);color:#fff;border-color:var(--monster);}
.btn.blue{background:var(--blue);color:#fff;border-color:var(--blue);}
.btn.gold{background:var(--gold);color:#1b1b1b;border-color:var(--gold);}
.btn.green{background:var(--green);color:#fff;border-color:var(--green);}
.btn.red{background:var(--red);color:#fff;border-color:var(--red);}
.btn.ghost{background:transparent;}
.btn.sm{width:auto;font-size:13px;padding:7px 12px;border-radius:10px;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn-row{display:flex;gap:8px;}

/* ---- Forms ---- */
label.field{display:block;margin-bottom:12px;}
label.field .lbl{font-family:'Patrick Hand SC';font-size:13px;color:var(--ink-2);display:block;margin-bottom:4px;letter-spacing:.4px;}
input,select,textarea{
  width:100%;font-family:'Patrick Hand';font-size:16px;color:var(--ink);
  padding:11px 13px;border:2px solid var(--line);border-radius:12px;background:#fff;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--monster-2);}
textarea{min-height:90px;resize:vertical;}

/* ---- Chips / badges ---- */
.chip{display:inline-flex;align-items:center;gap:5px;font-family:'Patrick Hand SC';font-size:12px;padding:3px 10px;border-radius:20px;border:1.5px solid var(--line);background:#fff;color:var(--ink-2);}
.chip.blue{border-color:var(--blue);color:var(--blue);}
.chip.gold{border-color:var(--gold);color:#8a6d1e;}
.chip.monster{border-color:var(--monster);color:var(--monster);}
.chip.green{border-color:var(--green);color:var(--green);}
.chip.red{border-color:var(--red);color:var(--red);}

.badge-status{font-family:'Patrick Hand SC';font-size:12px;padding:3px 11px;border-radius:20px;}
.st-pending{background:#fdf3d6;color:#8a6d1e;}
.st-approved{background:#d9f2e3;color:var(--green);}
.st-rejected{background:#f7dcd8;color:var(--red);}
.st-suspended{background:#eee;color:var(--ink-2);}

/* ---- Lists ---- */
.list-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);}
.list-item:last-child{border-bottom:none;}
.avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;background:#ece9df;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;border:2px solid var(--line);}

/* ---- Empty / loading ---- */
.empty{text-align:center;color:var(--ink-3);font-size:15px;padding:34px 10px;}
.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--monster);border-radius:50%;animation:spin 1s linear infinite;margin:30px auto;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---- Toast ---- */
.toast{position:fixed;left:50%;bottom:104px;transform:translateX(-50%);z-index:200;background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;font-family:'Patrick Hand SC';font-size:14px;box-shadow:var(--shadow-lg);max-width:90%;text-align:center;opacity:0;pointer-events:none;transition:.25s;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-4px);}
.toast.err{background:var(--red);}
.toast.ok{background:var(--green);}

/* ---- Modal ---- */
.modal-bg{position:fixed;inset:0;z-index:150;background:rgba(20,10,30,.55);display:none;align-items:flex-end;justify-content:center;}
.modal-bg.show{display:flex;}
.modal{background:var(--paper);width:100%;max-width:520px;border-radius:20px 20px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));max-height:90vh;overflow:auto;box-shadow:var(--shadow-lg);}
.modal h3{margin:0 0 14px;font-size:20px;}
.modal .close{float:right;background:none;border:none;font-size:22px;cursor:pointer;color:var(--ink-3);}

/* ---- Auth pages ---- */
.auth-wrap{max-width:440px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:24px 20px;}
.auth-logo{text-align:center;margin-bottom:18px;}
.auth-logo img{width:92px;height:92px;border-radius:20px;box-shadow:var(--shadow);background:#fff;padding:6px;}
.auth-logo h1{font-size:26px;margin:12px 0 2px;background:linear-gradient(90deg,var(--monster),var(--flame));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.auth-logo p{margin:0;color:var(--ink-2);font-size:14px;}
.auth-switch{text-align:center;margin-top:16px;font-size:14px;color:var(--ink-2);}
.auth-switch a{color:var(--monster);text-decoration:none;font-family:'Patrick Hand SC';}

/* ---- Carteirinha ---- */
.badge-card{
  position:relative;border-radius:20px;overflow:hidden;color:#fff;
  background:linear-gradient(135deg,var(--monster) 0%,var(--blue) 60%,#12205e 100%);
  box-shadow:var(--shadow-lg);padding:20px 18px;
}
.badge-card::after{content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;background:radial-gradient(circle,rgba(232,98,44,.45),transparent 70%);}
.badge-top{display:flex;align-items:center;gap:10px;position:relative;z-index:2;}
.badge-top img.blogo{width:30px;height:30px;border-radius:7px;background:#fff;padding:2px;}
.badge-top .bt{font-family:'Patrick Hand SC';font-size:14px;line-height:1;}
.badge-body{display:flex;gap:14px;align-items:center;margin:16px 0 6px;position:relative;z-index:2;}
.badge-photo{width:82px;height:82px;border-radius:14px;object-fit:cover;border:3px solid rgba(255,255,255,.8);background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:34px;flex-shrink:0;}
.badge-name{font-family:'Patrick Hand SC';font-size:23px;line-height:1;}
.badge-sub{font-size:13px;opacity:.9;margin-top:4px;}
.badge-qr{background:#fff;padding:10px;border-radius:12px;display:inline-block;margin-top:8px;}
.badge-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;position:relative;z-index:2;font-size:12px;opacity:.9;}

/* ---- Stat tiles ---- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 8px;text-align:center;}
.stat .n{font-family:'Patrick Hand SC';font-size:26px;color:var(--monster);line-height:1;}
.stat .l{font-size:11px;color:var(--ink-2);margin-top:3px;}

/* ---- QR scanner ---- */
.scanner{position:relative;border-radius:16px;overflow:hidden;background:#000;aspect-ratio:1;max-width:340px;margin:0 auto;}
.scanner video{width:100%;height:100%;object-fit:cover;}
.scanner .frame{position:absolute;inset:14%;border:3px solid rgba(255,255,255,.8);border-radius:16px;box-shadow:0 0 0 2000px rgba(0,0,0,.28);}

@media (max-width:380px){
  .stats{gap:7px;}
  .stat .n{font-size:22px;}
}
