/* ─── TOKENS ─────────────────────────────────────────────────────────────── */
/* Hovers que eram onmouseover/onmouseout inline (removidos p/ CSP sem 'unsafe-inline'). */
.admin-link:hover { color: var(--muted); }
#user-chip:hover { background: var(--gray-1); }
#user-menu button:hover { background: #F0EDE6; }
#user-menu button[data-act="logout"]:hover { background: #fef2f2; }

:root {
  --gold:       #D97706;
  --gold-hi:    #F59E0B;
  --gold-lo:    #B45309;
  --gold-fill:  #FEF3C7;
  --gold-fill2: #FFFBEB;
  --bg0: #0C0A06; --bg1: #131008; --bg2: #1C1608; --bg3: #26200F;
  --cream: #F5EDD5; --muted: #9D8B5E;
  --white: #fff;
  --gray-0: #FAFAF8; --gray-1: #F0EDE6; --gray-2: #DDD9CE; --gray-5: #7A7160;
  --ink: #1A160A;
  --f-head: 'Sora', sans-serif;
  --f-body: 'DM Sans', sans-serif;
  --r-sm:4px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-2xl:24px; --r-pill:50px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--f-body);font-size:16px;color:var(--ink);background:var(--bg0);overflow-x:hidden;}
a{text-decoration:none;}
button{font-family:var(--f-body);cursor:pointer;border:none;}
ul{list-style:none;}


/* ─── CARDS PÚBLICOS (fundo escuro) ──────────────────────────────────────── */
.pub-ic {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(217,119,6,.15);
  border-radius: var(--r-xl); padding: 1.5rem 2rem;
  margin-bottom: 1rem; display: flex; align-items: center; gap: 2rem;
  cursor: pointer; transition: all .2s;
}
.pub-ic:hover { border-color: var(--gold); background: rgba(217,119,6,.05); }
.pub-ic .ic-type { color: var(--muted); }
.pub-ic .ic-name { color: var(--cream); }
.pub-ic .im-l    { color: var(--muted); }
.pub-ic .im-v    { color: var(--cream); }
.pub-ic .im-v.ac { color: var(--gold-hi); }
.pub-ic .btn-sim {
  background: rgba(217,119,6,.15); color: var(--gold-hi);
  border: 1px solid rgba(217,119,6,.3);
}
.pub-ic .btn-sim:hover { background: var(--gold); color: var(--bg0); }
.pub-ic .ic-ico { background: rgba(217,119,6,.1); }

/* ─── LOGO ────────────────────────────────────────────────────────────────── */
.logo{display:flex;align-items:center;gap:7px;cursor:pointer;flex-shrink:0;}
.logo-icon{width:71px;height:71px;flex-shrink:0;}
.logo-text{display:flex;flex-direction:column;gap:2px;}
.logo-name{font-family:var(--f-head);font-size:39px;line-height:1;letter-spacing:-2.5px;white-space:nowrap;}
.logo-name .lw{font-weight:300;color:var(--cream);}
.logo-name .lg{font-weight:300;color:var(--gold-hi);}
.logo-name .lb{font-weight:700;color:var(--cream);}
.logo-sub{font-family:var(--f-head);font-size:10px;color:var(--muted);letter-spacing:3px;text-transform:uppercase;}
.logo-sm .logo-icon{width:44px;height:44px;}
.logo-sm .logo-name{font-size:22px;letter-spacing:-1.5px;}
.logo-sm .logo-sub{font-size:9px;}

/* ─── SCREENS ─────────────────────────────────────────────────────────────── */
.screen{display:none;}.screen.active{display:block;}

/* ─── LANDING ─────────────────────────────────────────────────────────────── */
.landing{background:var(--bg0);}

.nav{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 5rem;height:90px;
  background:rgba(12,10,6,.96);backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(217,119,6,.15);
}
.nav-links{display:flex;gap:2.5rem;}
.nav-links a{color:var(--muted);font-size:14px;transition:color .2s;}
.nav-links a:hover{color:var(--gold-hi);}
.nav-actions{display:flex;gap:10px;align-items:center;}

.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-pill);font-weight:600;transition:all .2s;}
.btn-ol {background:transparent;border:1px solid rgba(217,119,6,.4);color:var(--gold-hi);padding:8px 20px;font-size:13px;}
.btn-ol:hover{background:rgba(217,119,6,.1);}
.btn-g  {background:var(--gold);color:var(--bg0);padding:9px 22px;font-size:13px;font-weight:700;}
.btn-g:hover{background:var(--gold-hi);transform:translateY(-1px);}
.btn-gl {background:var(--gold);color:var(--bg0);padding:14px 32px;font-size:15px;font-weight:700;}
.btn-gl:hover{background:var(--gold-hi);transform:translateY(-2px);box-shadow:0 12px 40px rgba(217,119,6,.25);}
.btn-gho{background:transparent;color:var(--cream);border:1px solid rgba(255,255,255,.15);padding:14px 32px;font-size:15px;}
.btn-gho:hover{border-color:rgba(217,119,6,.4);color:var(--gold-hi);}

.hero{
  min-height:calc(100vh - 90px);
  display:flex;align-items:center;justify-content:center;
  padding:6rem 5rem;text-align:center;position:relative;overflow:hidden;
}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(217,119,6,.08) 0%,transparent 70%);pointer-events:none;}
.hero-in{position:relative;max-width:800px;}
.badge{display:inline-flex;align-items:center;gap:8px;background:rgba(217,119,6,.12);border:1px solid rgba(217,119,6,.3);color:var(--gold-hi);font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:6px 16px;border-radius:var(--r-pill);margin-bottom:2rem;}
.badge-dot{width:6px;height:6px;background:var(--gold-hi);border-radius:50%;animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(1.3);}}
.hero h1{font-family:var(--f-head);font-size:45px;font-weight:600;line-height:1.1;color:var(--cream);letter-spacing:-2px;margin-bottom:1.5rem;}
.hero h1 em{font-style:normal;color:var(--gold-hi);}
.hero-sub{font-size:18px;color:var(--muted);line-height:1.7;margin-bottom:2.5rem;max-width:560px;margin-left:auto;margin-right:auto;}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

.stats{display:flex;justify-content:center;gap:4rem;padding:3rem 5rem;border-top:1px solid rgba(217,119,6,.12);border-bottom:1px solid rgba(217,119,6,.12);}
.stat-n{font-family:var(--f-head);font-size:2rem;font-weight:700;color:var(--gold-hi);}
.stat-l{font-size:12px;color:var(--muted);margin-top:4px;}
.stats-note{max-width:680px;margin:.85rem auto 0;text-align:center;font-size:11px;line-height:1.5;color:var(--muted);padding:0 1.5rem;}

.sec{padding:6rem 5rem;}.sec-alt{background:var(--bg1);}
.sec-tag{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:1rem;}
.sec h2{font-family:var(--f-head);font-size:2.5rem;font-weight:300;color:var(--cream);letter-spacing:-1px;margin-bottom:1rem;}
.sec h2 em{font-style:normal;font-weight:700;color:var(--gold-hi);}
.sec-desc{color:var(--muted);font-size:15px;line-height:1.7;max-width:520px;margin-bottom:4rem;}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;}
.step{background:rgba(255,255,255,.02);border:1px solid rgba(217,119,6,.12);border-radius:var(--r-xl);padding:2rem;}
.step-n{width:44px;height:44px;border-radius:var(--r-md);background:rgba(217,119,6,.12);display:flex;align-items:center;justify-content:center;font-family:var(--f-head);font-size:18px;font-weight:700;color:var(--gold-hi);margin-bottom:1.25rem;}
.step h3{font-family:var(--f-head);font-size:1.05rem;font-weight:600;color:var(--cream);margin-bottom:.75rem;}
.step p{font-size:14px;color:var(--muted);line-height:1.7;}

.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:4rem;}
.feat{background:var(--bg2);border:1px solid rgba(217,119,6,.1);border-radius:20px;padding:2.5rem;transition:border-color .2s;}
.feat:hover{border-color:rgba(217,119,6,.3);}
.feat-ic{width:52px;height:52px;border-radius:14px;background:rgba(217,119,6,.1);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:1.5rem;}
.feat h3{font-family:var(--f-head);font-size:1.1rem;font-weight:600;color:var(--cream);margin-bottom:.75rem;}
.feat p{font-size:14px;color:var(--muted);line-height:1.7;}

.rates-card{border:1px solid rgba(217,119,6,.2);border-radius:var(--r-2xl);padding:3rem;display:flex;align-items:center;gap:4rem;background:var(--bg2);}
.rates-l{flex:1;}
.rates-l h2{font-size:2rem;margin-bottom:1rem;}
.rates-l p{color:var(--muted);font-size:14px;line-height:1.7;margin-bottom:1.5rem;}
.rates-g{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.rate-box{background:rgba(217,119,6,.08);border:1px solid rgba(217,119,6,.18);border-radius:var(--r-lg);padding:1.25rem;text-align:center;}
.rate-v{font-family:var(--f-head);font-size:1.8rem;font-weight:700;color:var(--gold-hi);}
.rate-l{font-size:12px;color:var(--muted);margin-top:4px;}

.cta-sec{text-align:center;}
.cta-sec h2{font-size:3rem;margin-bottom:1rem;}
.cta-sec p{color:var(--muted);margin-bottom:2rem;font-size:15px;}

footer{background:var(--bg1);border-top:1px solid rgba(217,119,6,.12);padding:3rem 5rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;}
.foot-copy p{font-size:12px;color:var(--muted);margin-top:8px;}
.foot-disc{font-size:12px;color:var(--muted);max-width:400px;text-align:right;line-height:1.6;}

/* ─── APP ─────────────────────────────────────────────────────────────────── */
.app{display:flex;min-height:100vh;background:var(--gray-0);}

.sidebar{width:260px;min-height:100vh;flex-shrink:0;background:var(--bg0);position:fixed;top:0;left:0;display:flex;flex-direction:column;z-index:50;}
.sb-head{padding:1.25rem 1.5rem;border-bottom:1px solid rgba(217,119,6,.12);}
.sb-user{padding:1.25rem 1.5rem;}
.sb-greet{font-size:14px;color:var(--muted);font-weight:500;margin-bottom:12px;}
.bal-card{background:rgba(217,119,6,.08);border:1px solid rgba(217,119,6,.18);border-radius:var(--r-lg);padding:1rem;}
.bal-lbl{font-size:11px;color:var(--muted);margin-bottom:3px;}
.bal-val{font-family:var(--f-head);font-size:1.5rem;font-weight:700;color:var(--cream);}
.btn-dep{width:100%;margin-top:10px;background:var(--gold);color:var(--bg0);border:none;padding:9px;border-radius:var(--r-md);font-size:13px;font-weight:700;cursor:pointer;font-family:var(--f-body);transition:background .2s;}
.btn-dep:hover{background:var(--gold-hi);}
.sb-nav{padding:.5rem .75rem;}
.ni{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;color:var(--muted);font-size:14px;cursor:pointer;transition:all .2s;margin-bottom:2px;}
.ni:hover{background:rgba(217,119,6,.08);color:var(--cream);}
.ni.active{background:rgba(217,119,6,.12);color:var(--gold-hi);}
.ni-ic{font-size:16px;width:20px;text-align:center;}
.sb-foot{margin-top:auto;padding:1.25rem 1.5rem;border-top:1px solid rgba(217,119,6,.1);font-size:13px;}
.sb-foot a{color:var(--gold);}

.main{margin-left:260px;flex:1;padding:2rem 2.5rem;min-height:100vh;}

.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-lg);padding:1rem 1.5rem;margin-bottom:2rem;}
.bc{font-size:14px;color:var(--gray-5);}
.bc b{color:var(--ink);font-weight:500;}
.bc .sep{margin:0 8px;}
.topbar-r{display:flex;align-items:center;gap:12px;}
.btn-dl{background:var(--gold);color:var(--bg0);padding:8px 18px;border-radius:var(--r-pill);font-size:13px;font-weight:700;border:none;cursor:pointer;}
.ava{width:36px;height:36px;background:var(--bg0);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--gold-hi);}

.ph{margin-bottom:1.75rem;}
.ph h1{font-family:var(--f-head);font-size:1.6rem;font-weight:700;color:var(--ink);}
.ph p{font-size:14px;color:var(--gray-5);margin-top:4px;}

/* Card padrão da área logada — mesmo design do painel (borda + cabeçalho com
   título). Espaçamento entre cards fica por conta dos containers (flex gap). */
.card{background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-xl);overflow:hidden;}
.card-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:1rem 1.5rem;border-bottom:1px solid var(--gray-1);}
.card-title{font-family:var(--f-head);font-size:15px;font-weight:700;color:var(--ink);}
.card-body{padding:1.25rem 1.5rem;}

.met-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem;}
.met{background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-xl);padding:1.5rem;}
.met-l{font-size:12px;color:var(--gray-5);margin-bottom:8px;}
.met-v{font-family:var(--f-head);font-size:1.6rem;font-weight:700;color:var(--ink);}
.met-s{font-size:12px;color:var(--gold-lo);font-weight:600;margin-top:6px;}

.sort-bar{display:flex;align-items:center;gap:12px;margin-bottom:1.5rem;}
.sort-bar label{font-size:13px;color:var(--gray-5);}
.sort-sel{background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-md);padding:7px 12px;font-size:13px;color:var(--ink);font-family:var(--f-body);cursor:pointer;}

.ic{background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-xl);padding:1.5rem 2rem;margin-bottom:1rem;display:flex;align-items:center;gap:2rem;cursor:pointer;transition:all .2s;}
.ic:hover{border-color:var(--gold);box-shadow:0 4px 24px rgba(217,119,6,.1);}
.ic-ico{width:44px;height:44px;background:var(--gold-fill2);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.ic-inf{flex:1;}
.ic-type{font-size:11px;color:var(--gray-5);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;}
.ic-name{font-weight:600;font-size:15px;color:var(--ink);}
.ic-mets{display:flex;gap:3rem;}
.im-l{font-size:11px;color:var(--gray-5);margin-bottom:3px;}
.im-v{font-size:14px;font-weight:600;color:var(--ink);}
.im-v.ac{color:var(--gold-lo);}
.btn-sim{background:var(--gold-fill);color:var(--gold-lo);border:1px solid rgba(180,83,9,.2);padding:9px 20px;border-radius:var(--r-pill);font-size:13px;font-weight:700;white-space:nowrap;transition:all .2s;}
.btn-sim:hover{background:var(--gold);color:var(--bg0);}

.det-layout{display:grid;grid-template-columns:1fr 340px;gap:1.5rem;}
.det-card{background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-xl);padding:2rem;margin-bottom:1.5rem;}
.det-type{font-size:12px;color:var(--gray-5);margin-bottom:6px;}
.det-name{font-family:var(--f-head);font-size:1.4rem;font-weight:700;color:var(--ink);margin-bottom:1.5rem;}
.rate-show{display:flex;align-items:flex-end;gap:1.5rem;background:var(--gold-fill2);border:1px solid rgba(217,119,6,.15);border-radius:var(--r-lg);padding:1.5rem;margin-bottom:1.5rem;}
.rate-big{font-family:var(--f-head);font-size:2.5rem;font-weight:700;color:var(--gold-lo);}
.rate-per{font-size:14px;color:var(--gray-5);margin-left:4px;}
.rate-bdg{background:var(--gold);color:var(--bg0);padding:5px 12px;border-radius:var(--r-pill);font-size:13px;font-weight:700;}
.prog-bg{background:var(--gray-1);border-radius:var(--r-pill);height:8px;overflow:hidden;}
.prog-fill{background:linear-gradient(90deg,var(--gold),var(--gold-hi));height:100%;border-radius:var(--r-pill);}
.prog-lbs{display:flex;justify-content:space-between;margin-top:6px;}
.prog-sold{font-size:13px;font-weight:600;color:var(--gold-lo);}
.prog-tot{font-size:13px;color:var(--gray-5);}
.info-grid{display:grid;grid-template-columns:1fr 1fr;}
.ir{padding:12px 0;border-bottom:1px solid var(--gray-1);}
.ir-l{font-size:12px;color:var(--gray-5);margin-bottom:4px;}
.ir-v{font-size:14px;font-weight:500;color:var(--ink);}
.ir-v.ac{color:var(--gold-lo);font-weight:700;}
.ir-v.lk{color:var(--gold-hi);cursor:pointer;}

.inv-bar{position:sticky;bottom:1.5rem;background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-xl);padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 -4px 30px rgba(0,0,0,.08);}
.inv-lbl{font-size:12px;color:var(--gray-5);margin-bottom:4px;}
.inv-inp-w{display:flex;align-items:center;gap:8px;}
.inv-pfx{font-size:15px;color:var(--gray-5);}
.inv-fld{border:1px solid var(--gray-2);border-radius:var(--r-md);padding:8px 12px;font-size:1.1rem;font-weight:600;font-family:var(--f-head);color:var(--ink);width:140px;}
.btn-inv{background:var(--gold);color:var(--bg0);padding:14px 40px;border-radius:var(--r-pill);font-size:15px;font-weight:700;transition:all .2s;}
.btn-inv:hover{background:var(--gold-hi);transform:translateY(-1px);}

.pan-title{font-weight:600;font-size:1rem;color:var(--ink);margin-bottom:1rem;}
.fq{background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-lg);padding:1rem 1.25rem;margin-bottom:.75rem;cursor:pointer;}
.fq-h{display:flex;align-items:center;justify-content:space-between;}
.fq-t{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--ink);}
.fq-tg{color:var(--gold);font-size:18px;line-height:1;}
.fq-b{display:none;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-1);}
.fq-b.open{display:block;}
.fq-r{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--gray-1);}
.fq-r:last-child{border-bottom:none;}
.fq-k{font-size:13px;color:var(--gray-5);}
.fq-v{font-size:13px;font-weight:500;color:var(--ink);text-align:right;max-width:56%;}
.irt{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px;}
.irt th{background:var(--gray-0);padding:8px 12px;text-align:left;color:var(--gray-5);font-weight:500;}
.irt td{padding:9px 12px;border-bottom:1px solid var(--gray-1);}
.irt tr.hl td{background:var(--gold-fill);color:var(--gold-lo);font-weight:700;}
.doc-r{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--gray-1);}
.doc-r:last-child{border-bottom:none;}
.doc-l{display:flex;align-items:center;gap:10px;}
.doc-tag{background:#E53E3E;color:#fff;font-size:9px;font-weight:700;padding:2px 5px;border-radius:3px;}
.doc-nm{font-size:13px;color:var(--ink);}
.doc-op{font-size:13px;font-weight:700;color:var(--gold-lo);cursor:pointer;}

.empty{background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-xl);padding:3rem;text-align:center;}
.emp-ic{font-size:3rem;margin-bottom:1rem;}
.emp-t{font-size:1.1rem;font-weight:600;margin-bottom:.5rem;}
.emp-s{color:var(--gray-5);font-size:14px;}

.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:200;display:none;align-items:center;justify-content:center;}
.modal-bg.open{display:flex;}
.modal-box{background:var(--white);border-radius:20px;padding:2.5rem;width:480px;max-width:90vw;text-align:center;}
.modal-em{font-size:3rem;margin-bottom:1rem;}
.modal-box h3{font-family:var(--f-head);font-size:1.4rem;margin-bottom:.75rem;color:var(--ink);}
.modal-box p{color:var(--gray-5);font-size:14px;line-height:1.6;margin-bottom:1.5rem;}
.btn-cancel{background:none;border:none;color:var(--gray-5);cursor:pointer;font-size:14px;width:100%;padding:8px;margin-top:8px;}
.modal-risk{display:flex;gap:.5rem;align-items:flex-start;text-align:left;margin:0 0 1.25rem;padding:.7rem .8rem;background:rgba(245,158,11,.10);border:1px solid rgba(217,119,6,.30);border-radius:12px;font-size:13px;line-height:1.45;color:var(--gray-5);cursor:pointer;}
.modal-risk input{margin-top:.15rem;width:16px;height:16px;accent-color:var(--color-primary,#F59E0B);flex:0 0 auto;cursor:pointer;}
.modal-risk strong{color:var(--ink);}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVO — BREAKPOINTS
   1200px → desktop médio
    900px → tablet / mobile (ponto principal)
    480px → mobile pequeno
    360px → mobile mínimo
═══════════════════════════════════════════════════════════ */

/* ── 1200px: desktop médio ── */
@media (max-width: 1200px) {
  .nav  { padding: 0 2.5rem; }
  .hero { padding: 5rem 3rem; }
  .sec  { padding: 5rem 3rem; }
  footer { padding: 2.5rem 3rem; }
  .met-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── 900px: tablet / ponto principal ── */
@media (max-width: 900px) {

  /* NAV */
  .nav { padding: 0 1.25rem; height: 68px; }
  .nav-links { display: none; }
  .logo-name { font-size: 26px; letter-spacing: -1.5px; }
  .logo-sub  { font-size: 8px; }
  .logo .logo-icon { width: 44px; height: 44px; }

  /* HERO */
  .hero { padding: 3rem 1.5rem 2rem; min-height: auto; }
  .hero h1 { font-size: 2.1rem; letter-spacing: -1px; }
  .hero-sub { font-size: 15px; }
  .hero-cta { flex-direction: column; align-items: center; }
  .btn-gl, .btn-gho { width: 100%; text-align: center; justify-content: center; }

  /* STATS */
  .stats { gap: 1.5rem; padding: 2rem 1.5rem; flex-wrap: wrap; justify-content: center; }
  .stat-n { font-size: 1.5rem; }

  /* SECTIONS */
  .sec { padding: 3rem 1.5rem; }
  .sec h2 { font-size: 2rem; }

  /* STEPS */
  .steps { grid-template-columns: 1fr; gap: 1rem; }

  /* FEATURES */
  .feat-grid { grid-template-columns: 1fr; gap: 1rem; margin-top: 2rem; }

  /* RATES CARD */
  .rates-card { flex-direction: column; gap: 2rem; padding: 1.5rem; }
  .rates-g { grid-template-columns: 1fr 1fr; }

  /* FOOTER */
  footer { flex-direction: column; gap: 1.5rem; padding: 2rem 1.5rem; text-align: center; }
  .foot-disc { text-align: center; max-width: 100%; }

  /* OPORTUNIDADES PÚBLICAS */
  .pub-ic { flex-direction: column; align-items: flex-start; gap: 1rem; padding: 1.25rem; }
  .pub-ic .ic-mets { flex-wrap: wrap; gap: 1rem; }
  .pub-ic .btn-sim { width: 100%; text-align: center; }

  /* APP SHELL */
  .app { flex-direction: column; }

  /* SIDEBAR → vira bottom nav no mobile */
  .sidebar {
    width: 100%; min-height: auto; position: fixed;
    top: auto; bottom: 0; left: 0;
    flex-direction: row; align-items: center;
    padding: 0; z-index: 100;
    border-top: 1px solid rgba(217,119,6,.15);
    border-bottom: none;
    overflow-x: auto;
  }
  .sb-head  { display: none; }
  .sb-user  { display: none; }
  .sb-foot  { display: none; }
  .sb-nav {
    display: flex !important;
    flex-direction: row;
    justify-content: space-around;
    width: 100%;
    padding: 0;
    overflow-x: auto;
  }
  /* Esconde rótulos de seção (só ícones no bottom nav) */
  .sb-nav > .ni-sec-label { display: none; }
  .ni {
    flex-direction: column; align-items: center; justify-content: center;
    padding: 6px 4px; border-radius: 0; gap: 2px;
    font-size: 9px; flex: 1; min-width: 52px;
    white-space: nowrap;
  }
  .ni .ni-ic { font-size: 22px; width: auto; text-align: center; }
  .ni.active { border-left: none; border-top: 2px solid var(--gold); }

  /* MAIN → espaço para bottom nav */
  .main { margin-left: 0; padding: 1rem 1rem 5.5rem; }

  /* TOPBAR */
  .topbar { padding: 0.75rem 1rem; margin-bottom: 1.25rem; flex-wrap: wrap; gap: .5rem; }
  .bc { font-size: 12px; }
  .topbar-r span { display: none; }

  /* METRIC GRID (app) */
  .met-grid { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .met-v { font-size: 1.25rem; }

  /* INVEST CARDS */
  .ic { flex-direction: column; align-items: flex-start; gap: 1rem; padding: 1rem 1.25rem; }
  .ic-mets { flex-wrap: wrap; gap: .75rem; }
  .btn-sim { width: 100%; text-align: center; }

  /* DETAIL LAYOUT */
  .det-layout { grid-template-columns: 1fr; }

  /* INFO GRID (detail) */
  .info-grid { grid-template-columns: 1fr 1fr; }

  /* INVEST BAR */
  .inv-bar {
    flex-direction: column; align-items: stretch; gap: 1rem;
    bottom: 4.5rem; /* acima do bottom nav */
    padding: 1rem 1.25rem;
  }
  .inv-fld { width: 100%; }
  .inv-inp-w { flex: 1; }
  .btn-inv { width: 100%; }

  /* MODAL */
  .modal-box { padding: 1.5rem; width: 95vw; }

  /* PRODUTO CARDS (precatórios/debêntures) */
  .prod-ic {
    flex-direction: column; align-items: flex-start; gap: 1rem;
    padding: 1rem;
  }
  .prod-ic-mets { flex-wrap: wrap; gap: .75rem; }
}

/* ── 480px: mobile pequeno ── */
@media (max-width: 480px) {
  .hero h1 { font-size: 1.75rem; }
  .hero-sub { font-size: 14px; }
  .logo-name { font-size: 22px; }
  .logo .logo-icon { width: 36px; height: 36px; }
  .nav-actions .btn-ol { display: none; }

  /* Seções landing */
  .sec h2 { font-size: 1.6rem; }
  .sec-desc { font-size: 14px; }
  .rate-show { flex-direction: column; gap: 0.75rem; }
  .rate-big  { font-size: 2rem; }

  /* Stats */
  .stats { gap: 1rem; }

  /* App métricas */
  .met-grid { grid-template-columns: 1fr 1fr; }
  .met-v { font-size: 1.1rem; }

  /* Info grid: 1 coluna */
  .info-grid { grid-template-columns: 1fr; }

  /* Rates */
  .rates-g { grid-template-columns: 1fr 1fr; }
}

/* ── 360px: mobile mínimo ── */
@media (max-width: 360px) {
  .hero h1 { font-size: 1.5rem; }
  .met-grid { grid-template-columns: 1fr; }
  .rates-g  { grid-template-columns: 1fr; }
  .nav { padding: 0 1rem; }
  .ni { min-width: 44px; font-size: 8px; }
  .ni .ni-ic { font-size: 20px; }
}

/* ─── GRIDS UTILITÁRIOS RESPONSIVOS ─────────────────────────────────────── */
.grid-2 {
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:1rem;margin-bottom:1rem;
}
.grid-2-last { margin-bottom:1.5rem; }
@media(max-width:480px){
  .grid-2,.grid-2-last { grid-template-columns:1fr; }
}

/* ─── CADASTRO ───────────────────────────────────────────────────────────── */
.cad-wrap { min-height:100vh; background:var(--gray-0); padding:2rem 1rem 4rem; }

/* ── KYC Timeline ── */
.cad-inner { max-width:680px; margin:0 auto; }
.cad-header { display:flex; align-items:center; gap:1rem; margin-bottom:1.75rem; }
.cad-back { width:36px; height:36px; background:var(--white); border:1px solid var(--gray-2); border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:18px; flex-shrink:0; }
.cad-title { font-family:var(--f-head); font-size:1.5rem; font-weight:700; color:var(--ink); }
.cad-subtitle { font-size:13px; color:var(--gray-5); margin-top:2px; }

.kyc-timeline {
  display:flex; align-items:flex-start; margin-bottom:2rem; padding:0 4px;
}
.kyc-tl-item {
  display:flex; flex-direction:column; align-items:center; flex-shrink:0; width:80px;
}
.kyc-tl-circle {
  width:40px; height:40px; border-radius:50%;
  background:var(--gray-1); border:2px solid var(--gray-2);
  display:flex; align-items:center; justify-content:center;
  transition:all .3s; position:relative; z-index:1;
}
.kyc-tl-num  { font-size:15px; font-weight:700; color:var(--gray-5); line-height:1; }
.kyc-tl-check { display:none; font-size:15px; font-weight:700; color:#fff; line-height:1; }
.kyc-tl-label {
  font-size:10px; font-weight:600; color:var(--gray-5);
  margin-top:7px; text-align:center; line-height:1.3;
  transition:color .3s; white-space:nowrap;
}
.kyc-tl-line {
  flex:1; height:2px; background:var(--gray-2);
  margin-top:20px; border-radius:2px; transition:background .4s;
}

/* ── States ── */
.kyc-tl-item.active .kyc-tl-circle {
  background:var(--gold); border-color:var(--gold);
  box-shadow:0 0 0 5px rgba(212,160,23,.18);
  transform:scale(1.1);
}
.kyc-tl-item.active .kyc-tl-num   { color:#fff; }
.kyc-tl-item.active .kyc-tl-label { color:var(--gold-lo); font-weight:700; font-size:11px; }

.kyc-tl-item.done .kyc-tl-circle  { background:#16a34a; border-color:#16a34a; }
.kyc-tl-item.done .kyc-tl-num     { display:none; }
.kyc-tl-item.done .kyc-tl-check   { display:block; }
.kyc-tl-item.done .kyc-tl-label   { color:#16a34a; }

.kyc-tl-line.done { background:#16a34a; }

@media(max-width:400px){
  .kyc-tl-item { width:60px; }
  .kyc-tl-circle { width:34px; height:34px; }
  .kyc-tl-line { margin-top:17px; }
  .kyc-tl-label { font-size:9px; }
}

.cad-card { background:var(--white); border:1px solid var(--gray-2); border-radius:var(--r-xl); padding:2rem; margin-bottom:1.25rem; }
.cad-section-title { font-family:var(--f-head); font-size:1rem; font-weight:700; color:var(--ink); margin-bottom:1.25rem; display:flex; align-items:center; gap:8px; }

.cad-field { margin-bottom:1.25rem; }
.cad-label { font-size:13px; font-weight:600; color:var(--ink); margin-bottom:6px; display:block; }
.cad-label .req { color:var(--gold); margin-left:2px; }
.cad-input {
  width:100%; border:1px solid var(--gray-2); border-radius:var(--r-lg);
  padding:11px 14px; font-size:15px; font-family:var(--f-body); color:var(--ink);
  background:var(--white); transition:border-color .2s; outline:none;
}
.cad-input:focus { border-color:var(--gold); }
.cad-input.error { border-color:#dc2626; }
.cad-hint { font-size:12px; color:var(--gray-5); margin-top:4px; }

.cad-row2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.cad-row3 { display:grid; grid-template-columns:2fr 1fr 1fr; gap:1rem; }

/* Upload areas */
.upload-area {
  border:2px dashed var(--gray-2); border-radius:var(--r-lg);
  padding:1.5rem 1rem; text-align:center; cursor:pointer;
  transition:all .2s; background:var(--gray-0); position:relative; overflow:hidden;
}
.upload-area:hover { border-color:var(--gold); background:var(--gold-fill2); }
.upload-area.has-file { border-color:#16a34a; border-style:solid; background:#f0fdf4; }
.upload-area.drag-over { border-color:var(--gold); background:var(--gold-fill2); transform:scale(1.01); }
.upload-icon { font-size:2rem; margin-bottom:8px; transition:all .2s; }
.upload-label { font-size:14px; font-weight:600; color:var(--ink); }
.upload-hint  { font-size:12px; color:var(--gray-5); margin-top:4px; }
.upload-file-name { font-size:12px; color:#16a34a; font-weight:600; margin-top:6px; }
.upload-area input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.upload-thumb { width:100%; max-height:130px; object-fit:contain; border-radius:8px; display:none; margin-bottom:8px; }
.upload-remove-btn {
  display:none; position:relative; z-index:2; margin-top:8px;
  padding:4px 14px; font-size:12px; font-weight:600;
  background:transparent; border:1px solid #dc2626; color:#dc2626;
  border-radius:var(--r-pill); cursor:pointer; font-family:var(--f-body); transition:all .2s;
}
.upload-remove-btn:hover { background:#dc2626; color:#fff; }
.upload-check {
  display:none; position:absolute; top:8px; right:8px;
  background:#16a34a; color:#fff; border-radius:50%;
  width:22px; height:22px; font-size:11px; font-weight:700;
  align-items:center; justify-content:center;
}
.upload-area.has-file .upload-check { display:flex; }

/* Password strength */
.pwd-strength-bar { height:4px; border-radius:4px; margin-top:6px; background:var(--gray-2); overflow:hidden; }
.pwd-strength-fill { height:100%; border-radius:4px; transition:width .3s, background .3s; width:0; }
.pwd-strength-label { font-size:11px; margin-top:4px; font-weight:600; }

/* Botão mostrar/ocultar senha */
.cad-pwd-wrap { position:relative; }
.cad-pwd-wrap .cad-input { padding-right:44px; }
.pwd-toggle {
  position:absolute; top:11px; right:8px;
  display:flex; align-items:center; justify-content:center;
  width:30px; height:30px; padding:0; border:none; background:none;
  color:var(--gray-5); cursor:pointer; border-radius:6px;
  transition:color .15s, background .15s;
}
.pwd-toggle:hover { color:var(--ink); background:var(--gray-1); }
.pwd-toggle:focus-visible { outline:2px solid var(--gold); outline-offset:1px; }
.pwd-toggle .ic-eye-off { display:none; }
.pwd-toggle.is-showing .ic-eye { display:none; }
.pwd-toggle.is-showing .ic-eye-off { display:block; }

/* Indicador de confirmação de senha */
.pwd-match-label { font-size:11px; margin-top:6px; font-weight:600; min-height:14px; }
.pwd-match-label.ok  { color:#16a34a; }
.pwd-match-label.err { color:#dc2626; }
.cad-input.match-ok  { border-color:#16a34a; }
.cad-input.match-err { border-color:#dc2626; }

/* Botão de sair da conta (vermelho — impressão de saída) */
.sb-foot a.btn-sair {
  display:inline-flex; align-items:center; gap:7px;
  font-size:14px; font-weight:600; text-decoration:none;
  color:#fff; background:#dc2626;
  border:1px solid #dc2626; border-radius:8px;
  padding:10px 20px; transition:background .2s, color .2s, border-color .2s;
}
.sb-foot a.btn-sair:hover { background:transparent; color:#fca5a5; border-color:#dc2626; }

/* Selfie / câmera */
.camera-area {
  border:2px dashed var(--gray-2); border-radius:var(--r-lg);
  overflow:hidden; background:#111; position:relative;
  min-height:300px; display:flex; align-items:center; justify-content:center;
}
.camera-placeholder { text-align:center; padding:2rem; }
.camera-placeholder .cam-icon { font-size:3.5rem; margin-bottom:1rem; }
.camera-placeholder p { font-size:14px; color:var(--muted); }
/* :where() zera a especificidade do ID: as classes runtime de csp-style.js
   (mostrar/ocultar câmera e preview) precisam vencer estas regras. */
:where(#selfie-video) { width:100%; display:none; }
:where(#selfie-canvas) { display:none; }
:where(#selfie-preview) { width:100%; display:none; border-radius:var(--r-lg); }
.cam-face-guide {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:260px; height:160px; border:3px dashed rgba(255,200,0,.85);
  border-radius:14px; pointer-events:none; z-index:10; display:none;
}
.cam-face-guide::after {
  content:'Rosto + documento dentro do quadro';
  position:absolute; bottom:-28px; left:50%; transform:translateX(-50%);
  font-size:11px; color:rgba(255,200,0,.9); white-space:nowrap; font-weight:700;
  text-shadow:0 1px 3px rgba(0,0,0,.7);
}
.cam-active .cam-face-guide { display:block; }
.cam-controls { display:flex; gap:10px; justify-content:center; margin-top:1rem; flex-wrap:wrap; }
.btn-cam {
  background:var(--gold); color:var(--bg0); border:none;
  padding:12px 26px; border-radius:var(--r-pill); font-size:14px;
  font-weight:700; cursor:pointer; font-family:var(--f-body); transition:all .2s;
}
.btn-cam:hover { background:var(--gold-hi); }
.btn-cam:disabled { opacity:.5; cursor:not-allowed; }
.btn-cam.outline { background:transparent; border:1px solid var(--gray-2); color:var(--ink); }
.btn-cam.outline:hover { background:var(--gray-1); }
.btn-cam.danger { background:#dc2626; color:#fff; border:none; }

/* Nav buttons */
.cad-nav { display:flex; justify-content:space-between; align-items:center; margin-top:1.5rem; gap:1rem; }
.btn-cad-next { background:var(--gold); color:var(--bg0); border:none; padding:13px 32px; border-radius:var(--r-pill); font-size:15px; font-weight:700; cursor:pointer; font-family:var(--f-body); transition:all .2s; }
.btn-cad-next:hover { background:var(--gold-hi); }
.btn-cad-back { background:transparent; border:1px solid var(--gray-2); color:var(--gray-5); padding:13px 24px; border-radius:var(--r-pill); font-size:14px; cursor:pointer; font-family:var(--f-body); }

/* Success */
.cad-success { text-align:center; padding:3rem 1rem; }
.cad-success .success-icon { font-size:4rem; margin-bottom:1rem; }
.cad-success h2 { font-family:var(--f-head); font-size:1.6rem; font-weight:700; color:var(--ink); margin-bottom:0.75rem; }
.cad-success p { color:var(--gray-5); font-size:15px; line-height:1.7; max-width:420px; margin:0 auto 2rem; }

@media (max-width:600px) {
  .cad-row2 { grid-template-columns:1fr; }
  .cad-row3 { grid-template-columns:1fr; }
  .cad-inner { padding:0; }
  .cad-card { border-radius:var(--r-lg); padding:1.25rem; }
  .cad-wrap { padding:1rem .75rem 5rem; }
  .cad-title { font-size:1.2rem; }
  .cad-nav { flex-direction:column; }
  .btn-cad-next, .btn-cad-back { width:100%; text-align:center; }
}

/* ─── MODAL DEPOSITO ───────────────────────────────────────────────────────── */
.modal-dep-bg {
  position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:400;
  display:none;align-items:center;justify-content:center;padding:1rem;
}
.modal-dep-bg.open { display:flex; }
.modal-dep-box {
  background:var(--white);border-radius:24px;width:780px;max-width:100%;
  max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.3);
}
.modal-dep-header {
  display:flex;align-items:center;justify-content:space-between;
  padding:1.5rem 2rem;border-bottom:1px solid var(--gray-1);
}
.modal-dep-title { font-family:var(--f-head);font-size:1.2rem;font-weight:700;color:var(--ink); }
.modal-dep-close {
  width:36px;height:36px;border-radius:50%;background:var(--gray-1);
  border:none;font-size:20px;cursor:pointer;color:var(--gray-5);
  display:flex;align-items:center;justify-content:center;
}
.modal-dep-body { display:grid;grid-template-columns:1fr 1fr;gap:0; }
.dep-left { padding:2rem;border-right:1px solid var(--gray-1); }
.dep-right { padding:2rem; }
.dep-section-title { font-family:var(--f-head);font-size:15px;font-weight:700;color:var(--ink);margin-bottom:1.25rem;text-align:center; }
.dep-info-item {
  display:flex;align-items:flex-start;gap:10px;
  font-size:13px;color:var(--ink);line-height:1.5;margin-bottom:1rem;
}
.dep-info-item .dep-ic { color:var(--gold);font-size:16px;flex-shrink:0;margin-top:1px; }
.dep-bank-row {
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 0;border-bottom:1px solid var(--gray-1);font-size:13px;
}
.dep-bank-row:last-child { border-bottom:none; }
.dep-bank-label { color:var(--gray-5);font-weight:500; }
.dep-bank-value { font-weight:700;color:var(--ink);display:flex;align-items:center;gap:6px; }
.btn-copy {
  background:none;border:none;cursor:pointer;color:var(--gold);font-size:16px;
  padding:2px 4px;border-radius:4px;transition:background .15s;
}
.btn-copy:hover { background:var(--gold-fill); }
.dep-pix-box {
  background:var(--gray-0);border:1px solid var(--gray-2);border-radius:16px;
  padding:1.25rem;text-align:center;margin-top:1rem;
}
.dep-pix-title { font-size:14px;font-weight:700;color:var(--ink);margin-bottom:1rem; }
.dep-qr {
  width:160px;height:160px;margin:0 auto 1rem;
  border:1px solid var(--gray-2);border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:var(--white);
}
.dep-qr img { width:100%;height:100%;object-fit:contain; }
.dep-chave-btn {
  display:flex;align-items:center;justify-content:space-between;
  background:var(--white);border:1.5px solid var(--blue,#2563eb);border-radius:10px;
  padding:10px 14px;font-size:13px;font-weight:600;color:var(--ink);
  cursor:pointer;width:100%;font-family:var(--f-body);transition:background .15s;
}
.dep-chave-btn:hover { background:var(--gold-fill2); }
.dep-chave-btn .copy-ic { color:var(--gold);font-size:16px; }
.dep-status-check {
  margin-top:1.5rem;text-align:center;font-size:13px;color:var(--gray-5);
}
.dep-status-dot { display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gray-2);margin-right:6px;vertical-align:middle; }
.dep-status-dot.checking { background:var(--gold);animation:pulse 1s infinite; }
.dep-status-dot.confirmed { background:#16a34a; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.4} }
@media(max-width:640px) {
  .modal-dep-body { grid-template-columns:1fr; }
  .dep-left { border-right:none;border-bottom:1px solid var(--gray-1); }
}

/* ── ABAS PRECATÓRIOS (investor side) ── */
.idx-prec-tab {
  padding:7px 20px;border-radius:50px;border:1.5px solid var(--gray-2);
  background:var(--white);color:var(--ink);font-size:13px;font-weight:600;cursor:pointer;
  font-family:var(--f-body);transition:all .15s;
}
.idx-prec-tab:hover { border-color:var(--gold);color:var(--gold-lo); }
.idx-prec-tab.active { background:var(--gold);border-color:var(--gold);color:#fff; }

/* ── CARD PRODUTO (Precatório / Debênture) na listagem ── */
.prod-ic {
  background:var(--white);border:1px solid var(--gray-2);border-radius:16px;
  padding:1.25rem 1.5rem;margin-bottom:.85rem;cursor:pointer;
  display:flex;align-items:center;gap:1.5rem;transition:box-shadow .2s;flex-wrap:wrap;
}
.prod-ic:hover { box-shadow:0 4px 20px rgba(0,0,0,.08); }
.prod-ic-ico { width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0; }
.prod-ic-inf { flex:1;min-width:0; }
.prod-ic-type { font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;margin-bottom:3px; }
.prod-ic-name { font-weight:700;font-size:15px;font-family:var(--f-head); }
.prod-ic-sub  { font-size:12px;color:var(--gray-5);margin-top:2px; }

/* ─── TELA DE DETALHE DA OFERTA — layout "ficha operacional" ─────────────── */
.off-header{
  display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap;
}
.off-back{
  background:var(--gray-1);border:none;width:36px;height:36px;border-radius:50%;
  font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--ink);transition:background .15s;
}
.off-back:hover{background:var(--gray-2);}
.off-head-text{flex:1;min-width:200px;}
.off-title{font-family:var(--f-head);font-size:1.6rem;font-weight:700;color:var(--ink);line-height:1.15;}
.off-identity{font-size:13px;color:var(--gray-5);margin-top:4px;}
.off-status-pill{
  font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;
  padding:6px 14px;border-radius:var(--r-pill);white-space:nowrap;
}
.off-status-aberta     { background:var(--gold-fill); color:var(--gold-lo); border:1px solid rgba(180,83,9,.25); }
.off-status-captacao   { background:var(--gold-fill2); color:var(--gold-lo); border:1px solid rgba(217,119,6,.25); }
.off-status-vencida    { background:#fef2cd; color:#92400e; border:1px solid #f59e0b40; }
.off-status-liquidada  { background:#dcfce7; color:#166534; border:1px solid #16a34a40; }
.off-status-inadimplente{ background:#fee2e2; color:#991b1b; border:1px solid #dc262640; }

.off-layout{display:grid;grid-template-columns:1fr 360px;gap:1.5rem;align-items:start;}
.off-main{display:flex;flex-direction:column;gap:1rem;min-width:0;}

.off-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;}
.off-metric{
  background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-lg);
  padding:.9rem 1rem;
}
.off-metric-ic{font-size:18px;margin-bottom:6px;}
.off-metric-label{font-size:11px;color:var(--gray-5);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;}
.off-metric-value{font-family:var(--f-head);font-size:1.05rem;font-weight:700;color:var(--ink);line-height:1.2;word-break:break-word;}

.off-card{background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-xl);padding:1.25rem 1.5rem;}
.off-card-title{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:.9rem;}
.off-card-title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap;}
.off-card-title-row .off-card-title{margin:0;}
.off-card-aside{font-size:13px;font-weight:700;color:var(--gold-lo);}
.off-link{color:var(--gold-hi);font-size:13px;font-weight:600;}
.off-link:hover{color:var(--gold);}

/* Linha do tempo */
.off-timeline{
  list-style:none;display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;position:relative;padding:0;margin:0;
}
.off-timeline::before{
  content:"";position:absolute;left:8%;right:8%;top:18px;height:2px;background:var(--gray-2);z-index:0;
}
.off-step{position:relative;text-align:center;padding:0 8px;z-index:1;}
.off-step-dot{
  width:18px;height:18px;border-radius:50%;background:var(--gray-2);color:transparent;
  margin:0 auto 8px;display:flex;align-items:center;justify-content:center;
  border:3px solid var(--white);box-shadow:0 0 0 2px var(--gray-2);font-size:0;
  transition:background .2s,box-shadow .2s;
}
.off-step.done .off-step-dot   { background:var(--gold-hi); box-shadow:0 0 0 2px var(--gold-hi); }
.off-step.current .off-step-dot{ background:var(--gold);    box-shadow:0 0 0 2px var(--gold), 0 0 0 6px rgba(217,119,6,.18); }
.off-step.warn .off-step-dot   { background:#f59e0b; box-shadow:0 0 0 2px #f59e0b; }
.off-step.danger .off-step-dot { background:#dc2626; box-shadow:0 0 0 2px #dc2626; }
.off-step-label{font-size:12px;font-weight:600;color:var(--gray-5);margin-bottom:2px;}
.off-step.done .off-step-label,
.off-step.current .off-step-label,
.off-step.warn .off-step-label,
.off-step.danger .off-step-label{color:var(--ink);}
.off-step-date{font-size:12px;color:var(--gray-5);}
.off-timeline-status{
  margin-top:1rem;
  padding:.7rem .9rem;
  background:var(--gray-0);
  border:1px solid var(--gray-1);
  border-radius:var(--r-md);
  font-size:12px;
  color:var(--gray-5);
  font-weight:600;
}

/* Captação */
.off-cap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:.9rem;}
.off-cap-l{font-size:11px;color:var(--gray-5);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;}
.off-cap-v{font-family:var(--f-head);font-size:.95rem;font-weight:700;color:var(--ink);}
.off-cap-v.ac{color:var(--gold-lo);}

/* Nota fiscal + Dados do título */
.off-nf-grid,.off-td-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem;}
.off-nf-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:8px 0;border-bottom:1px solid var(--gray-1);}
.off-nf-row:nth-last-child(-n+2){border-bottom:none;}
.off-nf-l{font-size:12px;color:var(--gray-5);}
.off-nf-v{font-size:13px;font-weight:600;color:var(--ink);text-align:right;word-break:break-word;max-width:60%;}
.off-nf-v.ac{color:var(--gold-lo);}
.off-nf-v.mono{font-family:'SF Mono','Menlo','Consolas',monospace;font-size:11.5px;font-weight:500;}

/* Simulador (coluna direita) */
.off-side{position:sticky;top:1.5rem;}
.off-sim{background:var(--white);border:1px solid var(--gray-2);border-radius:var(--r-xl);padding:1.5rem;box-shadow:0 4px 20px rgba(0,0,0,.04);}
.off-sim-title{font-family:var(--f-head);font-size:1.05rem;font-weight:700;color:var(--ink);margin-bottom:1rem;}
.off-sim-input-wrap{display:flex;align-items:center;gap:8px;background:var(--gray-0);border:1px solid var(--gray-2);border-radius:var(--r-md);padding:10px 14px;margin-bottom:.9rem;}
.off-sim-pfx{font-size:14px;color:var(--gray-5);font-weight:600;}
.off-sim-input{flex:1;border:none;background:transparent;font-family:var(--f-head);font-size:1.4rem;font-weight:700;color:var(--ink);outline:none;width:100%;min-width:0;}
.off-sim-fracao{display:flex;align-items:center;justify-content:space-between;background:var(--gold-fill2);border:1px solid rgba(217,119,6,.18);border-radius:var(--r-md);padding:8px 12px;margin-bottom:1rem;}
.off-sim-fracao-l{font-size:12px;color:var(--gray-5);font-weight:600;}
.off-sim-fracao-v{font-family:var(--f-head);font-size:1rem;font-weight:700;color:var(--gold-lo);}
.off-sim-rows{display:flex;flex-direction:column;gap:0;margin-bottom:1rem;}
.off-sim-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:8px 0;border-bottom:1px solid var(--gray-1);font-size:13px;color:var(--ink);}
.off-sim-row:last-child{border-bottom:none;}
.off-sim-row > :first-child{color:var(--gray-5);}
.off-sim-row > :last-child{font-weight:700;font-family:var(--f-head);}
.off-sim-row .neg{color:#b91c1c;}
.off-sim-row .ac{color:var(--gold-lo);}
.off-sim-row.total{border-top:1px solid var(--gray-2);border-bottom:none;margin-top:4px;padding-top:10px;}
.off-sim-row.total > :first-child{color:var(--ink);font-weight:600;}
.off-sim-row.total > :last-child{font-size:1.1rem;}
.off-sim-row.sub > :last-child{color:var(--gold-lo);font-weight:600;font-family:var(--f-body);}
.off-sim-btn{
  width:100%;background:var(--gold);color:var(--bg0);border:none;
  padding:14px 22px;border-radius:var(--r-pill);font-size:15px;font-weight:700;
  cursor:pointer;font-family:var(--f-body);transition:all .15s;
}
.off-sim-btn:hover{background:var(--gold-hi);transform:translateY(-1px);}
.off-sim-note{font-size:11px;color:var(--gray-5);margin-top:10px;text-align:center;line-height:1.4;}

/* Responsivo: tablet → grid 2x2 nas métricas; mobile → 1 col + sim abaixo */
@media (max-width: 1100px){
  .off-layout{grid-template-columns:1fr;}
  .off-side{position:static;}
  .off-metrics{grid-template-columns:repeat(2,1fr);}
  .off-cap-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width: 640px){
  .off-title{font-size:1.3rem;}
  .off-card{padding:1rem 1.1rem;}
  .off-metrics{grid-template-columns:1fr 1fr;gap:.5rem;}
  .off-cap-grid{grid-template-columns:1fr 1fr;}
  .off-timeline{grid-template-columns:1fr 1fr;gap:1.5rem 0;}
  .off-timeline::before{display:none;}
  .off-nf-grid,.off-td-grid{grid-template-columns:1fr;}
  .off-nf-v{max-width:65%;}
}

/* ── LOADER GLOBAL — logo girando; bloqueia tudo MENOS o menu ──
   Desktop: começa em left:260px (largura da sidebar) → a coluna esquerda
   nunca é coberta e segue clicável. Mobile (≤900px): o menu vira bottom-nav
   (z-index:100); o overlay fica abaixo dele (z-index:95) para não bloqueá-lo. */
.loader-overlay {
  display:none;
  position:fixed; top:0; right:0; bottom:0; left:260px;
  z-index:300;
  background:rgba(6,6,8,.55);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
  align-items:center; justify-content:center;
}
.loader-overlay.show { display:flex; }
.loader-box  { text-align:center; user-select:none; }
.loader-logo {
  width:64px; height:64px; display:block; margin:0 auto;
  animation:bd-spin 1s linear infinite;
  filter:drop-shadow(0 6px 20px rgba(245,158,11,.5));
}
.loader-txt  {
  margin-top:14px; color:#FBBF24; font-size:13px;
  font-weight:600; letter-spacing:.05em;
}
@keyframes bd-spin { from { transform:rotate(0); } to { transform:rotate(360deg); } }
@media (max-width:900px) { .loader-overlay { left:0; z-index:95; } }
@media (prefers-reduced-motion:reduce) { .loader-logo { animation-duration:2.4s; } }


/* ── Campanha de rotação de senha (migration 013) ──
   Banner fixo exibido enquanto clientes.senha_rotacao_pendente = 1. */
.aviso-rotacao{
  position:fixed; left:0; right:0; bottom:0; z-index:99999;
  background:#0F0C04; color:#fff;
  border-top:3px solid #F59E0B;
  padding:13px 18px; text-align:center;
  font-family:'DM Sans','Segoe UI',Arial,sans-serif; font-size:14px; line-height:1.5;
  box-shadow:0 -4px 18px rgba(0,0,0,.35);
}
.aviso-rotacao strong{ color:#FBBF24; }

/* Botão "reenviar" do banner de confirmação de e-mail (mesma faixa do aviso). */
.aviso-reenviar{
  margin-left:10px; background:#FBBF24; color:#0F0C04; border:none;
  border-radius:50px; padding:7px 16px; font-weight:700; font-size:13px;
  cursor:pointer; font-family:inherit;
}
.aviso-reenviar:hover{ background:#F59E0B; }


/* ── Tela de reenvio de documentos (link por e-mail) ── */
.rv-oculto{ display:none; }
.rv-state{ text-align:center; padding:2.5rem 2rem; }
.rv-state-icon{ font-size:44px; margin-bottom:.75rem; }
.rv-state h2{ margin:.25rem 0 .5rem; font-family:'Sora',sans-serif; }
.rv-state p{ color:#555; margin:.25rem 0; }
.rv-state-dica{ font-size:.9rem; color:#777; margin-top:.75rem !important; }
.rv-state .btn-cad-next{ margin-top:1.25rem; }
.rv-motivo{
  background:#fffbeb; border-left:4px solid #D97706; border-radius:8px;
  padding:.9rem 1.1rem; margin:0 0 1.25rem; color:#78350f; font-size:.95rem;
}
.rv-motivo-titulo{
  font-size:.7rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.5px; color:#D97706; margin-bottom:.35rem;
}
