:root{
  --bg:#0A0A0A;
  --surface:#131313;
  --surface-2:#161616;
  --border:rgba(255,255,255,0.08);
  --border-soft:rgba(255,255,255,0.06);
  --gold:#C9A227;
  --gold-soft:rgba(201,162,39,0.12);
  --white:#F2F0EA;
  --text:#E7E5DC;
  --text-dim:#9A9A92;
  --text-faint:#71716A;
  --green:#5E9E78;
  --red:#C57A6E;
  --radius:14px;
  --radius-sm:10px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  font-size:14px;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.head{font-family:'Space Grotesk',system-ui,sans-serif;color:var(--white);margin:0;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;}
button{cursor:pointer;}
::selection{background:var(--gold);color:#0A0A0A;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:#222;border-radius:99px;}

.app{display:flex;min-height:100vh;}

/* ---------------- Sidebar ---------------- */
.sidebar{
  width:248px;flex:none;padding:26px 14px;display:flex;flex-direction:column;gap:3px;
  border-right:1px solid var(--border-soft);position:sticky;top:0;height:100vh;overflow-y:auto;
}
.brand{display:flex;align-items:center;gap:10px;padding:6px 12px 26px 12px;}
.brand-mark{width:34px;height:34px;border-radius:9px;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--gold);font-size:14px;flex:none;}
.brand-name{font-size:15px;font-weight:600;color:var(--white);line-height:1.1;}
.brand-sub{font-size:11px;color:var(--text-faint);}

.navlink{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;font-size:13.5px;font-weight:500;color:var(--text-dim);}
.navlink svg{flex:none;}
.navlink:hover{background:rgba(255,255,255,0.04);color:var(--white);}
.navlink.active{background:var(--gold-soft);color:var(--gold);font-weight:600;}
.navlink.active svg{stroke:var(--gold);}
.nav-spacer{flex:1;}

.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--border-soft);margin-top:6px;}
.sidebar-user .name{font-size:12.5px;font-weight:600;color:var(--white);}
.sidebar-user .email{font-size:10.5px;color:var(--text-faint);}
.logout-btn{margin-left:auto;background:transparent;border:none;color:var(--text-faint);}
.logout-btn:hover{color:var(--red);}

/* mobile topbar / bottom nav */
.mobile-topbar{display:none;}
.bottom-nav{display:none;}

/* ---------------- Main ---------------- */
.main{flex:1;min-width:0;padding:32px 40px 60px 40px;}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px;}
.page-title{font-size:26px;font-weight:600;}
.page-sub{font-size:13px;color:var(--text-faint);margin-top:4px;}

.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:700;}
.btn-gold{background:var(--gold);color:#0A0A0A;}
.btn-gold:hover{background:#DDB63A;}
.btn-ghost{background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-weight:600;}
.btn-ghost:hover{border-color:rgba(201,162,39,0.4);}
.btn-danger{background:transparent;color:var(--red);}

.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:22px;}
.card:hover{border-color:rgba(255,255,255,0.1);}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr));}.grid-2{grid-template-columns:1fr;}}
@media (max-width:640px){.grid-4{grid-template-columns:1fr 1fr;}}

.stat-label{font-size:11.5px;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.3px;}
.stat-value{font-family:'Space Grotesk',sans-serif;font-size:26px;font-weight:700;color:var(--white);margin-top:10px;}
.stat-sub{font-size:11.5px;color:var(--text-faint);margin-top:3px;}
.progress{height:6px;background:rgba(255,255,255,0.07);border-radius:99px;overflow:hidden;margin-top:12px;}
.progress > span{display:block;height:100%;background:var(--gold);}

.pill{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:8px 15px;font-size:12.5px;color:var(--text);}
.pill b{color:var(--gold);}

.tag{font-size:11px;font-weight:700;padding:4px 10px;border-radius:99px;}
.tag-alta{color:#D98F86;background:rgba(217,143,134,0.12);}
.tag-media{color:#D9C08F;background:rgba(217,192,143,0.12);}
.tag-baixa{color:#9AA6D9;background:rgba(154,166,217,0.12);}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-soft);margin-bottom:20px;flex-wrap:wrap;}
.tab{background:transparent;border:none;padding:10px 16px;font-size:13px;font-weight:600;color:var(--text-dim);border-bottom:2px solid transparent;}
.tab:hover{color:var(--white);}
.tab.active{color:var(--gold);border-color:var(--gold);}
.tab .count{color:var(--text-faint);font-weight:500;}

.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px;}
.filter-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-size:12px;font-weight:600;color:var(--text);}
.filter-chip.active{background:var(--gold-soft);border-color:var(--gold);color:var(--gold);}

.list{display:flex;flex-direction:column;gap:8px;}
.row-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:14px 16px;}
.row-card:hover{border-color:rgba(255,255,255,0.12);}

.checkbox-btn{background:transparent;border:none;padding:0;flex:none;}
.checkbox-box{width:20px;height:20px;border-radius:6px;border:1.6px solid rgba(255,255,255,0.25);display:flex;align-items:center;justify-content:center;}
.checkbox-box.done{background:var(--gold);border-color:var(--gold);}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:12px;color:var(--text-dim);font-weight:600;}
.field input,.field select,.field textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--white);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);}
.field-full{grid-column:1 / -1;}

.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:none;align-items:center;justify-content:center;z-index:50;padding:20px;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface-2);border:1px solid var(--border);border-radius:16px;padding:26px;width:100%;max-width:460px;max-height:88vh;overflow-y:auto;}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.modal-close{background:transparent;border:none;color:var(--text-faint);font-size:18px;}

.bars{display:flex;align-items:flex-end;gap:12px;height:120px;}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end;}
.bar{width:100%;max-width:30px;background:var(--gold);border-radius:6px 6px 3px 3px;opacity:.85;}
.bar-label{font-size:10.5px;color:var(--text-faint);}

.empty{padding:28px;text-align:center;color:var(--text-faint);font-size:13px;}

.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top,#141414,#0A0A0A 60%);}
.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:36px;}
.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:26px;}
.auth-error{background:rgba(197,122,110,0.12);border:1px solid rgba(197,122,110,0.35);color:#D98F86;padding:10px 14px;border-radius:10px;font-size:12.5px;margin-bottom:16px;}
.auth-foot{margin-top:20px;text-align:center;font-size:13px;color:var(--text-faint);}
.auth-foot a{color:var(--gold);font-weight:600;}

@media (max-width:960px){
  .sidebar{display:none;}
  .mobile-topbar{
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 18px;border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--bg);z-index:10;
  }
  .main{padding:18px 16px 96px 16px;}
  .bottom-nav{
    display:flex;align-items:center;justify-content:space-around;
    position:fixed;left:0;right:0;bottom:0;height:68px;background:#101010;border-top:1px solid var(--border-soft);z-index:20;padding-bottom:6px;
  }
  .bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;color:var(--text-dim);}
  .bottom-nav a.active{color:var(--gold);}
  .form-grid{grid-template-columns:1fr;}
  .page-header{align-items:stretch;}
}

.dropdown-wrap{position:relative;}
.dropdown-menu{
  display:none;position:absolute;right:0;top:calc(100% + 8px);min-width:210px;background:var(--surface-2);
  border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:0 20px 40px rgba(0,0,0,0.5);z-index:30;
}
.dropdown-menu.open{display:block;}
.dropdown-item{display:block;width:100%;text-align:left;background:transparent;border:none;border-radius:8px;padding:9px 10px;font-size:13px;color:var(--text);}
.dropdown-item:hover{background:rgba(255,255,255,0.05);}
.dropdown-item.active{color:var(--gold);font-weight:700;}

.fab{
  position:fixed;right:20px;bottom:88px;width:54px;height:54px;border-radius:16px;background:var(--gold);
  border:none;display:none;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(201,162,39,0.35);z-index:25;
}
@media (max-width:960px){.fab{display:flex;}}
