:root{
  --black:#0a0a0a;
  --charcoal:#161616;
  --charcoal2:#1f1f1f;
  --red:#e11c1c;
  --red-deep:#7a1010;
  --gold:#c9a24b;
  --gold-soft:#e8d29a;
  --white:#f7f5f2;
  --line: rgba(247,245,242,0.14);
  --fs-display: 'Oswald', sans-serif;
  --fs-body: 'Inter', sans-serif;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--black);
  color:var(--white);
  font-family:var(--fs-body);
  overflow-x:hidden;
}
::selection{background:var(--red); color:var(--white);}
a{color:inherit;}
button{font-family:inherit; cursor:pointer;}
:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.founder-solo img, .quadro-strip img{background:linear-gradient(135deg, var(--charcoal) 0%, var(--charcoal2) 100%);}

.wrap{max-width:1080px; margin:0 auto; padding:0 32px;}

/* ============ LOGIN PAGE ============ */
.login-wrap{
  min-height:100vh;
  background: radial-gradient(circle at 50% 20%, rgba(225,28,28,0.14), transparent 60%), var(--black);
  display:flex; align-items:center; justify-content:center;
}
.login-box{width:100%; max-width:420px; padding:0 24px; text-align:center;}
.login-logo{height:44px; margin:0 auto 48px; display:block;}
.login-headline{font-family:var(--fs-display); font-weight:500; font-size:26px; line-height:1.3; margin-bottom:40px; color:var(--white);}
.login-headline .accent{color:var(--gold);}
.login-form{display:flex; flex-direction:column; gap:14px;}
.login-form label{text-align:left; font-size:13px; color:rgba(247,245,242,0.6);}
.login-form input{
  background:transparent; border:1px solid var(--line); color:var(--white);
  padding:14px 16px; font-size:15px; font-family:var(--fs-body);
  border-radius:2px;
}
.login-form input:focus{border-color:var(--gold);}
.login-form button{
  background:var(--red); color:var(--white); border:none; padding:15px;
  font-family:var(--fs-display); font-size:14px; letter-spacing:.06em;
  text-transform:uppercase; margin-top:8px; border-radius:2px;
  transition:background .2s ease;
}
.login-form button:hover{background:#c41414;}
.login-note{margin-top:28px; font-size:12px; color:rgba(247,245,242,0.4); line-height:1.6;}
#status{margin-top:20px; font-size:14px; color:var(--gold-soft); line-height:1.6; min-height:20px;}

/* ============ TOPBAR ============ */
#topbar{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 32px; background:rgba(10,10,10,0.88); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.burger{width:26px; height:18px; position:relative; background:none; border:none;}
.burger span{position:absolute; left:0; width:100%; height:2px; background:var(--white); transition:.25s;}
.burger span:nth-child(1){top:0;}
.burger span:nth-child(2){top:8px;}
.burger span:nth-child(3){top:16px;}
.burger.open span:nth-child(1){top:8px; transform:rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){top:8px; transform:rotate(-45deg);}
#topbar .brand img{height:22px;}
.user-chip{display:flex; align-items:center; gap:10px; font-size:14px;}
.avatar{
  width:32px; height:32px; border-radius:50%; background:var(--charcoal2);
  border:1px solid var(--gold); display:flex; align-items:center; justify-content:center;
  font-family:var(--fs-display); font-size:13px; color:var(--gold-soft);
}
.logout-link{font-size:12px; color:rgba(247,245,242,0.5); text-decoration:none; margin-left:6px; background:none; border:none;}

/* ============ SIDE MENU ============ */
#side-menu{
  position:fixed; top:0; left:0; height:100%; width:300px; z-index:60;
  background:var(--charcoal); border-right:1px solid var(--line);
  transform:translateX(-100%); transition:transform .35s ease;
  padding:100px 0 40px; overflow-y:auto;
}
#side-menu.open{transform:translateX(0);}
#side-menu a{
  display:block; padding:16px 32px; font-family:var(--fs-display); font-size:15px;
  color:var(--white); text-decoration:none; border-bottom:1px solid var(--line);
  letter-spacing:.02em;
}
#side-menu a small{display:block; font-family:var(--fs-body); font-size:11px; color:rgba(247,245,242,0.4); margin-top:3px; text-transform:none; letter-spacing:0;}
#side-menu a.disabled{color:#5a5a5e; cursor:default;}
/* Sub-itens (ex.: "Sua Posição" e "Valuation & Economics" dentro de "Início") */
#side-menu a.parent{border-bottom:none; padding-bottom:10px;}
#side-menu .menu-children{padding:0 32px 14px 44px; border-bottom:1px solid var(--line);}
#side-menu .menu-children a{padding:10px 0 10px 18px; font-size:13.5px; color:rgba(247,245,242,0.85); border-bottom:none; border-left:1px solid var(--line);}
#side-menu .menu-children a small{font-size:10.5px;}
#side-menu .menu-children a:hover{color:var(--gold-soft); border-left-color:var(--gold);}
#side-menu .menu-children a.unavailable, #side-menu .menu-children a.unavailable:hover{color:#5a5a5e; border-left-color:var(--line); cursor:default; pointer-events:none;}
#overlay{position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:55; opacity:0; visibility:hidden; transition:.3s;}
#overlay.show{opacity:1; visibility:visible;}

/* ============ "VER COMO" (admin pré-visualiza como acionista) ============ */
#viewas-banner{
  position:fixed; top:0; left:0; right:0; z-index:56; height:40px;
  display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; padding:0 16px;
  background:linear-gradient(90deg, var(--red) 0%, var(--red-deep) 100%);
  color:var(--white); font-size:12.5px; letter-spacing:.02em; text-align:center;
}
#viewas-banner strong{font-family:var(--fs-display); font-weight:500;}
#viewas-banner button{
  background:none; border:1px solid rgba(247,245,242,0.5); color:var(--white);
  padding:4px 10px; font-size:11px; letter-spacing:.04em; text-transform:uppercase; border-radius:2px;
}
#viewas-banner button:hover{border-color:var(--white); background:rgba(247,245,242,0.12);}
body.has-viewas{padding-top:40px;}
body.has-viewas #topbar{top:40px;}
body.has-viewas #side-menu{top:40px; height:calc(100% - 40px);}

#side-menu button.side-menu-btn{
  display:block; width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:16px 32px; font-family:var(--fs-display); font-size:15px; color:var(--white);
  border-bottom:1px solid var(--line); letter-spacing:.02em;
}
#side-menu button.side-menu-btn small{display:block; font-family:var(--fs-body); font-size:11px; color:rgba(247,245,242,0.4); margin-top:3px; text-transform:none; letter-spacing:0;}
#side-menu button.side-menu-btn:hover{color:var(--gold-soft);}

#viewas-modal-overlay{
  position:fixed; inset:0; z-index:80; background:rgba(0,0,0,.7);
  display:none; align-items:center; justify-content:center; padding:24px;
}
#viewas-modal-overlay.show{display:flex;}
#viewas-modal{
  width:100%; max-width:420px; max-height:min(560px, 80vh); display:flex; flex-direction:column;
  background:var(--charcoal); border:1px solid var(--line); padding:28px 26px;
}
#viewas-search{
  margin-top:16px; background:transparent; border:1px solid var(--line); color:var(--white);
  padding:11px 13px; font-size:14px; font-family:var(--fs-body); border-radius:2px; width:100%; flex:none;
}
#viewas-search:focus{border-color:var(--gold);}
#viewas-list{margin-top:12px; overflow-y:auto; border-top:1px solid var(--line); flex:1; min-height:0;}
.viewas-row{
  display:flex; flex-direction:column; align-items:flex-start; width:100%; text-align:left;
  padding:11px 4px; background:none; border:none; border-bottom:1px solid var(--line); color:var(--white); cursor:pointer;
}
.viewas-row:hover{background:var(--charcoal2);}
.viewas-row .n{font-family:var(--fs-display); font-size:14px;}
.viewas-row .e{margin-top:2px; font-size:11.5px; color:rgba(247,245,242,0.45);}
.viewas-empty{padding:16px 4px; font-size:13px; color:rgba(247,245,242,0.45);}

/* ============ PASSWORD MODAL ============ */
#password-modal-overlay{
  position:fixed; inset:0; z-index:80; background:rgba(0,0,0,.7);
  display:none; align-items:center; justify-content:center; padding:24px;
}
#password-modal-overlay.show{display:flex;}
#password-modal{
  width:100%; max-width:380px; background:var(--charcoal); border:1px solid var(--line);
  padding:32px 28px;
}
#password-modal form{display:flex; flex-direction:column; gap:14px; margin-top:20px;}
#password-modal label{text-align:left; font-size:13px; color:rgba(247,245,242,0.6);}
#password-modal input{
  background:transparent; border:1px solid var(--line); color:var(--white);
  padding:12px 14px; font-size:14px; font-family:var(--fs-body); border-radius:2px; width:100%;
}
#password-modal input:focus{border-color:var(--gold);}
.password-modal-actions{display:flex; gap:12px; margin-top:6px;}
.password-modal-actions .admin-btn{flex:1;}

/* ============ PORTAL SECTIONS ============ */
section{padding:60px 0;}
@media (min-width:768px){ section{padding:96px 0;} }
@media (min-width:1024px){ section{padding:140px 0;} }

#hero{
  min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding-top:80px;
  background: linear-gradient(180deg, var(--black) 0%, #120404 55%, var(--black) 100%);
}
#hero h1{
  font-family:var(--fs-display); font-weight:600; font-size:clamp(34px,7vw,64px);
  line-height:1.08; letter-spacing:-0.01em; max-width:820px;
}
#hero p{margin-top:22px; color:rgba(247,245,242,0.55); font-size:16px; max-width:480px;}
.scroll-cta{
  margin-top:56px; background:none; border:1px solid var(--gold); color:var(--gold-soft);
  padding:14px 30px; font-size:13px; letter-spacing:.06em; font-family:var(--fs-display);
  text-transform:uppercase; border-radius:2px; transition:background .25s ease, color .25s ease;
}
.scroll-cta:hover{background:var(--gold); color:var(--black);}

.section-label{font-family:var(--fs-display); font-size:14px; letter-spacing:.08em; color:var(--red); text-transform:uppercase; margin-bottom:14px;}
.big-number{font-family:var(--fs-display); font-weight:600; font-size:clamp(40px,8vw,84px); line-height:1; color:var(--white);}
.big-number.gold{color:var(--gold);}
.unit{font-size:22px; color:rgba(247,245,242,0.5); font-family:var(--fs-body); margin-left:8px;}
.secondary-figure{margin-top:14px; font-size:14.5px; color:rgba(247,245,242,0.55); font-family:var(--fs-body);}
.secondary-figure strong{color:var(--gold-soft); font-family:var(--fs-display); font-weight:500;}
.info-btn{
  display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px;
  border:1px solid rgba(247,245,242,0.4); border-radius:50%; font-size:11px; margin-left:10px;
  color:rgba(247,245,242,0.6); vertical-align:middle; background:none;
}
.info-panel{
  max-width:520px; margin-top:18px; padding:16px 20px; background:var(--charcoal);
  border-left:2px solid var(--gold); font-size:13.5px; line-height:1.6; color:rgba(247,245,242,0.75);
  display:none;
}
.info-panel.show{display:block;}
.profile-switcher{display:flex; gap:10px; margin-bottom:24px; flex-wrap:wrap;}
.profile-pill{
  background:none; border:1px solid var(--line); color:rgba(247,245,242,0.6);
  padding:8px 18px; font-family:var(--fs-display); font-size:12.5px; letter-spacing:.03em;
  border-radius:20px; transition:border-color .2s ease, color .2s ease;
}
.profile-pill.active{border-color:var(--gold); color:var(--gold-soft);}

.position-breakdown{display:flex; gap:36px; margin-top:36px; flex-wrap:wrap;}
.breakdown-item{border-top:1px solid var(--line); padding-top:10px; min-width:120px;}
.breakdown-item .n{font-family:var(--fs-display); font-size:22px; color:var(--white);}
.breakdown-item .l{font-size:12px; color:rgba(247,245,242,0.5); margin-top:2px;}

#equity{background:var(--charcoal);}
.equity-figure{display:flex; align-items:baseline; flex-wrap:wrap; gap:6px;}
.equity-calc{
  margin-top:28px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  font-family:var(--fs-display); font-size:20px; color:rgba(247,245,242,0.6);
}
.equity-calc .val{color:var(--white);}
.equity-calc .op{color:var(--red);}
.database-note{margin-top:24px; font-size:12.5px; color:rgba(247,245,242,0.45); letter-spacing:.02em;}
.entenda-btn{
  margin-top:32px; background:none; border:1px solid var(--red); color:var(--white);
  padding:12px 26px; font-family:var(--fs-display); font-size:13px; letter-spacing:.06em;
  text-transform:uppercase; border-radius:2px; transition:background .25s ease;
}
.entenda-btn:hover{background:var(--red);}
.entenda-panel{
  display:none; margin-top:24px; padding:24px 28px; background:var(--black); border:1px solid var(--line);
  font-size:14.5px; line-height:1.85; color:rgba(247,245,242,0.8); max-width:640px;
}
.entenda-panel.show{display:block;}
.entenda-panel .formula{font-family:var(--fs-body); color:rgba(247,245,242,0.8); font-size:14.5px; line-height:1.8;}
.entenda-panel .formula strong{color:var(--gold-soft); font-family:var(--fs-display); font-weight:500;}
.formula-section-title{
  font-family:var(--fs-display); font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--red); margin:22px 0 8px;
}
.formula-section-title:first-child{margin-top:0;}

#valuation .wrap{display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:end;}
#valuation .wrap > div{min-width:0;}
.chart-wrap{position:relative; overflow-x:auto; padding-bottom:6px; min-width:0;}
.trend-chart{height:320px;}
.val-meta{display:flex; gap:32px; margin-top:28px; flex-wrap:wrap;}
.val-meta div{border-top:1px solid var(--line); padding-top:10px;}
.val-meta .n{font-family:var(--fs-display); font-size:19px;}
.val-meta .l{font-size:11.5px; color:rgba(247,245,242,0.45); margin-top:2px;}
@media (max-width:820px){ #valuation .wrap{grid-template-columns:1fr;} }

#indicadores{background:var(--charcoal);}
.indic-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); margin-top:48px; border:1px solid var(--line);}
.indic-card{background:var(--charcoal); padding:32px 8px 32px 26px; min-width:0;}
.indic-card h3{font-family:var(--fs-display); font-size:14px; letter-spacing:.04em; color:rgba(247,245,242,0.6); text-transform:uppercase; margin-bottom:16px; padding-right:18px;}
.indic-card .chart-wrap{position:relative; overflow-x:auto; padding-bottom:6px; min-width:0;}
.indic-card svg{height:300px;}
.tooltip{
  position:absolute; background:var(--black); border:1px solid var(--gold); padding:6px 10px;
  font-size:11.5px; white-space:nowrap; pointer-events:none; opacity:0; transition:opacity .15s;
  transform:translate(-50%,-115%); font-family:var(--fs-body); z-index:10;
}
.tooltip.show{opacity:1;}
.tooltip .tv{color:var(--gold-soft); font-family:var(--fs-display);}

.story-block{display:flex; align-items:center; gap:0; min-height:60vh;}
.story-block.rev{flex-direction:row-reverse;}
.story-img{flex:1.1; height:60vh; background-size:cover; background-position:center top;}
.story-text{flex:1; padding:0 60px;}
.story-text p{font-family:var(--fs-display); font-size:clamp(24px,3.4vw,36px); font-weight:500; line-height:1.3; max-width:420px;}
.story-text span{display:block; font-size:12px; letter-spacing:.06em; color:var(--gold); text-transform:uppercase; margin-bottom:16px; font-family:var(--fs-body);}
@media (max-width:820px){
  .story-block, .story-block.rev{flex-direction:column;}
  .story-img{width:100%; height:40vh;}
  .story-text{padding:36px 28px;}
}

/* ============ FOUNDER HIGHLIGHT ============ */
#founder-highlight{background:var(--charcoal);}
.founder-name{font-family:var(--fs-display); font-size:clamp(26px,3.6vw,38px); margin-bottom:20px; color:var(--white);}
.founder-quote{
  max-width:640px; margin:0 auto 48px; text-align:center; font-size:16px; line-height:1.7;
  color:rgba(247,245,242,0.65); font-style:italic;
}
.founder-solo{max-width:440px; margin:0 auto;}
.founder-solo img{width:100%; height:560px; object-fit:cover; object-position:top; border:1px solid var(--gold); display:block;}
@media (max-width:820px){
  .founder-solo{max-width:320px;}
  .founder-solo img{height:420px;}
}

.mosaic-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:32px;}
.mosaic-item{
  aspect-ratio:1; background-size:cover; background-position:center top;
  opacity:.55; filter:grayscale(35%); transition:opacity .3s ease, filter .3s ease;
}
.mosaic-item:hover{opacity:.95; filter:grayscale(0%);}
@media (max-width:820px){.mosaic-grid{grid-template-columns:repeat(2,1fr);}}

.quadro-strip{width:100%; overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.quadro-strip img{width:100%; display:block;}
.quadro-caption{text-align:center; padding:28px 0; font-family:var(--fs-display); font-size:15px; letter-spacing:.02em; color:rgba(247,245,242,0.7);}

#documentos{text-align:center;}
.doc-card{
  max-width:520px; margin:44px auto 0; border:1px solid var(--line); padding:34px 30px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; text-align:left;
}
.doc-card .dl{font-family:var(--fs-display); font-size:16px;}
.doc-card .dm{font-size:12px; color:rgba(247,245,242,0.45); margin-top:6px;}
.doc-btn{background:var(--gold); color:var(--black); border:none; padding:12px 22px; font-family:var(--fs-display); font-size:13px; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; border-radius:2px; opacity:.5; cursor:default;}

footer{padding:48px 0; text-align:center; font-size:11.5px; color:rgba(247,245,242,0.35); border-top:1px solid var(--line);}
.footer-support{margin-top:14px; font-size:12px; line-height:1.6; color:rgba(247,245,242,0.4);}
.footer-support a{color:rgba(247,245,242,0.55); text-decoration:none; border-bottom:1px solid rgba(247,245,242,0.25); transition:color .2s ease, border-color .2s ease;}
.footer-support a:hover{color:var(--gold-soft); border-color:var(--gold-soft);}

/* ============ ADMIN ============ */
.admin-body{padding:120px 32px 80px; max-width:1080px; margin:0 auto;}
.admin-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:40px; flex-wrap:wrap; gap:16px;}
.admin-tabs{display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:40px; flex-wrap:wrap;}
.admin-tab{
  padding:12px 20px; font-family:var(--fs-display); font-size:13px; letter-spacing:.04em; text-transform:uppercase;
  background:none; border:none; color:rgba(247,245,242,0.5); border-bottom:2px solid transparent;
}
.admin-tab.active{color:var(--white); border-color:var(--red);}
.admin-panel{display:none;}
.admin-panel.active{display:block;}
.admin-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.admin-table th{text-align:left; padding:10px 12px; font-family:var(--fs-display); font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; color:rgba(247,245,242,0.45); border-bottom:1px solid var(--line);}
.admin-table td{padding:10px 12px; border-bottom:1px solid var(--line);}
.admin-table input{background:transparent; border:1px solid var(--line); color:var(--white); padding:6px 8px; font-size:13px; width:90px; border-radius:2px;}
.admin-table input[type=email]{width:220px;}
.admin-table input[type=text]{width:160px;}
.admin-form{display:flex; gap:12px; flex-wrap:wrap; align-items:end; margin-bottom:32px; padding:24px; border:1px solid var(--line); background:var(--charcoal);}
.admin-form .field{display:flex; flex-direction:column; gap:6px;}
.admin-form label{font-size:11.5px; color:rgba(247,245,242,0.5);}
.admin-form input, .admin-form select{background:transparent; border:1px solid var(--line); color:var(--white); padding:10px 12px; font-size:13.5px; border-radius:2px; min-width:140px;}
.admin-btn{background:var(--red); color:var(--white); border:none; padding:10px 22px; font-family:var(--fs-display); font-size:12.5px; letter-spacing:.04em; text-transform:uppercase; border-radius:2px; height:40px;}
.admin-btn.ghost{background:none; border:1px solid var(--line); color:var(--white);}
.admin-msg{margin-top:16px; font-size:13px; color:var(--gold-soft); min-height:20px;}
.status-pill{font-size:11px; padding:3px 8px; border-radius:20px; text-transform:uppercase; letter-spacing:.03em;}
.status-pill.ativo{background:rgba(201,162,75,0.15); color:var(--gold-soft);}
.status-pill.inativo{background:rgba(225,28,28,0.15); color:#ff8a8a;}
#shareholders-table td.actions{white-space:nowrap;}
#shareholders-table td.actions .admin-btn{height:32px; padding:5px 10px; font-size:11px; margin-right:6px;}

/* ============ MENU / TOPO COMPARTILHADO ============ */
#topbar .brand{display:block; line-height:0;}
#side-menu a.active{color:var(--gold-soft);}

/* ============ PÁGINA DE DEALS ============ */
.page-hero{
  padding:150px 0 70px;
  background:linear-gradient(180deg, var(--black) 0%, #120404 100%);
}
.page-title{
  font-family:var(--fs-display); font-weight:600; font-size:clamp(30px,5.2vw,54px);
  line-height:1.1; max-width:860px; margin-bottom:22px;
}
.page-title em{font-style:normal; color:var(--red);}
.page-lead{max-width:620px; font-size:16.5px; line-height:1.7; color:rgba(247,245,242,0.65);}

.stat-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:48px;}
.stat-tile{background:var(--black); padding:26px 24px;}
.stat-tile .n{font-family:var(--fs-display); font-weight:600; font-size:clamp(26px,3.4vw,40px); color:var(--gold); line-height:1.05;}
.stat-tile .l{margin-top:10px; font-size:12.5px; line-height:1.55; color:rgba(247,245,242,0.5);}
.stat-strip.two{grid-template-columns:repeat(2,1fr);}
@media (max-width:820px){.stat-strip, .stat-strip.two{grid-template-columns:1fr;}}

#deals-hero .profile-switcher{margin-top:36px; margin-bottom:0;}

#deals-list{background:var(--black);}
.deal-card{
  display:grid; grid-template-columns:96px 1fr auto; gap:14px 28px;
  padding:32px 0; border-top:1px solid var(--line); align-items:start;
}
.deal-card:last-of-type{border-bottom:1px solid var(--line);}
.deal-date .m{font-family:var(--fs-display); font-size:26px; letter-spacing:.05em; line-height:1; color:var(--white);}
.deal-date .y{margin-top:6px; font-size:12px; letter-spacing:.08em; color:rgba(247,245,242,0.45);}
.deal-title{font-family:var(--fs-display); font-size:clamp(20px,2.6vw,26px); font-weight:500; line-height:1.25;}
.deal-hook{color:var(--gold-soft); font-weight:400;}
.deal-story{margin-top:8px; max-width:640px; font-size:14.5px; line-height:1.65; color:rgba(247,245,242,0.62);}
.deal-price{text-align:right;}
.deal-price .n{font-family:var(--fs-display); font-weight:600; font-size:clamp(24px,3vw,34px); line-height:1; color:var(--white);}
.deal-price .l{margin-top:6px; font-size:11.5px; color:rgba(247,245,242,0.4);}
.deal-sim{
  grid-column:2 / 4; padding:14px 18px; background:var(--charcoal); border-left:2px solid var(--gold);
  font-size:13.5px; line-height:1.6; color:rgba(247,245,242,0.65);
}
.deal-sim strong{font-family:var(--fs-display); font-weight:500; font-size:17px; color:var(--gold);}
@media (max-width:820px){
  .deal-card{grid-template-columns:1fr;}
  .deal-price{text-align:left;}
  .deal-sim{grid-column:auto;}
}

#deals-entry{background:var(--charcoal); border-top:1px solid var(--line);}
.sim-card{max-width:760px; padding:38px 34px; background:var(--black); border:1px solid var(--gold);}
.sim-title{font-family:var(--fs-display); font-size:clamp(20px,2.6vw,26px); font-weight:500; line-height:1.3; margin-bottom:22px;}
.sim-figure{font-family:var(--fs-display); font-weight:600; font-size:clamp(38px,7vw,68px); line-height:1; color:var(--gold);}
.sim-calc{margin-top:16px; font-family:var(--fs-display); font-size:18px; color:rgba(247,245,242,0.6);}
.sim-note{margin-top:22px; max-width:640px; font-size:12.5px; line-height:1.75; color:rgba(247,245,242,0.45);}
.deals-disclaimer{margin-top:30px; max-width:760px; font-size:11.5px; line-height:1.75; color:rgba(247,245,242,0.38);}

#deals-ipo{background:var(--black); border-top:1px solid var(--line);}
.ipo-wrap{display:grid; grid-template-columns:auto 1fr; gap:56px; align-items:center;}
.ipo-year{font-family:var(--fs-display); font-weight:700; font-size:clamp(84px,14vw,180px); line-height:.9; letter-spacing:-.02em; color:var(--red);}
.ipo-wrap h2{font-family:var(--fs-display); font-size:clamp(26px,3.6vw,38px); font-weight:500; line-height:1.2; margin-bottom:16px;}
.ipo-wrap p{max-width:560px; font-size:15.5px; line-height:1.75; color:rgba(247,245,242,0.7);}
.ipo-wrap p.ipo-disclaimer{margin-top:22px; font-size:11.5px; line-height:1.7; color:rgba(247,245,242,0.4);}
@media (max-width:820px){.ipo-wrap{grid-template-columns:1fr; gap:24px;}}

/* ============ OPORTUNIDADE DE COMPRA ============ */
#opp-list{background:var(--black);}
.opp-card{margin-bottom:24px; padding:34px; background:var(--charcoal); border:1px solid var(--line); border-top:2px solid var(--red);}
.opp-head{display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; align-items:flex-start;}
.opp-seller{font-family:var(--fs-display); font-size:clamp(24px,3.2vw,34px); font-weight:500; line-height:1.15;}
.opp-shares{margin-top:10px; font-size:15px; color:rgba(247,245,242,0.6);}
.opp-shares strong{font-family:var(--fs-display); font-weight:500; font-size:20px; color:var(--white); margin-right:2px;}
.opp-note{margin-top:14px; max-width:520px; font-size:14px; line-height:1.65; color:rgba(247,245,242,0.6);}
.opp-price{text-align:right;}
.opp-price .n{font-family:var(--fs-display); font-weight:600; font-size:clamp(28px,4vw,42px); line-height:1; color:var(--gold);}
.opp-price .l{margin-top:8px; font-size:12px; color:rgba(247,245,242,0.45);}
.opp-discount{display:inline-block; margin-top:12px; padding:6px 12px; font-size:12px; letter-spacing:.02em; color:var(--white); background:var(--red);}
.opp-contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-top:30px; background:var(--line); border:1px solid var(--line);}
.opp-contact{padding:24px 26px; background:var(--black);}
.opp-contact-title{margin-bottom:12px; font-family:var(--fs-display); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--red);}
.opp-contact-lines{font-size:14.5px; line-height:1.75; color:rgba(247,245,242,0.8); word-break:break-word;}
.opp-contact-lines a{color:var(--gold-soft); text-decoration:none; border-bottom:1px solid rgba(232,210,154,0.35);}
.opp-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:18px;}
.cta-btn{
  display:inline-block; padding:12px 22px; font-family:var(--fs-display); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--white); text-decoration:none; background:var(--red); border:1px solid var(--red); border-radius:2px;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.cta-btn:hover{background:#c41414; border-color:#c41414;}
.cta-btn.ghost{background:none; border-color:var(--line);}
.cta-btn.ghost:hover{background:none; border-color:var(--gold); color:var(--gold-soft);}
@media (max-width:820px){
  .opp-card{padding:26px 22px;}
  .opp-price{text-align:left;}
  .opp-contact-grid{grid-template-columns:1fr;}
}

.how-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:8px; background:var(--line); border:1px solid var(--line);}
.how-step{padding:26px 24px; background:var(--black);}
.how-step .n{font-family:var(--fs-display); font-size:13px; letter-spacing:.14em; color:var(--gold);}
.how-step .t{margin-top:10px; font-family:var(--fs-display); font-size:17px; font-weight:500; line-height:1.25;}
.how-step .d{margin-top:10px; font-size:13px; line-height:1.65; color:rgba(247,245,242,0.5);}
@media (max-width:820px){.how-grid{grid-template-columns:1fr;}}

/* ============ MEUS CONTRATOS ============ */
#ct-hero .profile-switcher{margin-top:36px; margin-bottom:0;}
#ct-contracts, #ct-payments{background:var(--black);}
#ct-vesting{background:var(--charcoal); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
#ct-notes{padding:0 0 10px;}
.ct-intro{max-width:640px; margin-bottom:28px; font-size:14.5px; line-height:1.7; color:rgba(247,245,242,0.55);}
.ct-disclaimer{max-width:760px; font-size:11.5px; line-height:1.75; color:rgba(247,245,242,0.38);}
button:disabled{opacity:.6; cursor:default;}

.ct-card{display:grid; grid-template-columns:1fr auto; gap:14px 28px; align-items:center; padding:26px 0; border-top:1px solid var(--line);}
.ct-card:last-child{border-bottom:1px solid var(--line);}
.ct-kind{margin-bottom:8px; font-family:var(--fs-display); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--red);}
.ct-title{font-family:var(--fs-display); font-size:clamp(19px,2.4vw,24px); font-weight:500; line-height:1.25;}
.ct-meta{margin-top:8px; font-size:13.5px; color:rgba(247,245,242,0.55);}
.ct-note{margin-top:10px; max-width:640px; font-size:13.5px; line-height:1.65; color:rgba(247,245,242,0.6);}
.ct-actions{text-align:right;}
.ct-soon{font-size:12.5px; letter-spacing:.02em; color:rgba(247,245,242,0.4);}
.ct-error{margin-top:8px; font-size:12px; color:#ff8a8a;}
.ct-empty{max-width:760px; padding:26px 28px; border:1px dashed var(--line); font-size:14px; line-height:1.7; color:rgba(247,245,242,0.55);}

.vs-card, .pay-card{margin-bottom:24px; padding:34px; background:var(--black); border:1px solid var(--line); border-top:2px solid var(--gold);}
.pay-head{display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; align-items:flex-start;}
.vs-title, .pay-title{font-family:var(--fs-display); font-size:clamp(22px,3vw,30px); font-weight:500; line-height:1.2;}
.vs-sub, .pay-sub{margin-top:8px; font-size:14px; line-height:1.6; color:rgba(247,245,242,0.55);}
.vs-bar{position:relative; height:8px; margin-top:28px; background:var(--charcoal2);}
.vs-bar > span{position:absolute; left:0; top:0; bottom:0; max-width:100%; background:linear-gradient(90deg, var(--gold) 0%, var(--gold-soft) 100%); animation:vjBar 1.2s cubic-bezier(.2,.8,.2,1) both;}
@keyframes vjBar{from{width:0;}}
.vs-figures{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:26px; background:var(--line); border:1px solid var(--line);}
.vs-figure{padding:20px 18px; background:var(--charcoal); min-width:0;}
.vs-figure .n{font-family:var(--fs-display); font-size:clamp(20px,2.4vw,28px); line-height:1.1; color:var(--white);}
.vs-figure .l{margin-top:8px; font-size:12px; line-height:1.5; color:rgba(247,245,242,0.5);}
.vs-meta{margin-top:16px; font-size:12.5px; line-height:1.7; color:rgba(247,245,242,0.45);}

.pay-card{background:var(--charcoal); border-top-color:var(--red);}
.pay-count{text-align:right; font-family:var(--fs-display); font-size:15px; letter-spacing:.03em; color:rgba(247,245,242,0.55);}
.pay-count strong{display:block; margin-bottom:6px; font-size:clamp(32px,5vw,52px); font-weight:600; line-height:1; letter-spacing:0; color:var(--gold);}
.pay-card .vs-bar{background:var(--charcoal2);}
.pay-totals{display:flex; gap:36px; flex-wrap:wrap; margin-top:22px;}
.pay-totals > div{min-width:150px; padding-top:10px; border-top:1px solid var(--line);}
.pay-totals .n{font-family:var(--fs-display); font-size:21px; color:var(--white);}
.pay-totals .l{margin-top:2px; font-size:12px; color:rgba(247,245,242,0.5);}
.pay-next{display:grid; grid-template-columns:1fr auto; gap:24px 32px; align-items:center; margin-top:30px; padding:28px; background:var(--black); border:1px solid var(--gold);}
.pay-next.overdue{border-color:var(--red);}
.pay-next-label{font-family:var(--fs-display); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold);}
.pay-next.overdue .pay-next-label{color:#ff8a8a;}
.pay-next-title{margin-top:10px; font-family:var(--fs-display); font-size:clamp(19px,2.5vw,25px); font-weight:500; line-height:1.25;}
.pay-next-when{margin-top:6px; font-size:13px; color:rgba(247,245,242,0.55);}
.pay-amounts{display:flex; gap:16px 34px; flex-wrap:wrap; margin-top:20px;}
.pay-amounts .l{font-size:11.5px; letter-spacing:.02em; color:rgba(247,245,242,0.45);}
.pay-amounts .v{margin-top:4px; font-family:var(--fs-display); font-weight:600; font-size:clamp(22px,3vw,30px); line-height:1.1; color:var(--white);}
.pay-amounts .v.gold{color:var(--gold);}
.pay-rule{margin-top:16px; max-width:520px; font-size:12.5px; line-height:1.65; color:rgba(247,245,242,0.5);}
.pay-cta{text-align:right;}
.pay-nolink{max-width:230px; font-size:12.5px; line-height:1.6; color:rgba(247,245,242,0.45);}
.pay-btn{display:inline-flex; align-items:center; gap:14px; padding:10px 24px 10px 10px; color:var(--white); text-decoration:none; background:var(--red); border:1px solid var(--red); border-radius:2px; transition:background .2s ease, border-color .2s ease;}
.pay-btn:hover{background:#c41414; border-color:#c41414;}
.pay-btn img{display:block; flex:none; width:46px; height:46px; border-radius:9px;}
.pay-btn .t{font-family:var(--fs-display); font-size:14px; letter-spacing:.06em; text-transform:uppercase; line-height:1.2; text-align:left;}
.pay-btn .t small{display:block; margin-top:3px; font-family:var(--fs-body); font-size:11px; letter-spacing:0; text-transform:none; color:rgba(247,245,242,0.85);}
.pay-done{margin-top:28px; padding:22px 26px; font-size:14px; color:rgba(247,245,242,0.6); border:1px solid var(--line); background:var(--black);}

.pay-list{margin-top:30px; border-top:1px solid var(--line);}
.pay-row{display:grid; grid-template-columns:1.1fr 1fr 1.3fr 1.6fr; gap:8px 16px; align-items:center; padding:14px 4px; border-bottom:1px solid var(--line); font-size:13.5px; color:rgba(247,245,242,0.8);}
.pay-row.head{padding:10px 4px; font-family:var(--fs-display); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:rgba(247,245,242,0.4);}
.pay-row.paga{color:rgba(247,245,242,0.55);}
.pr-amount small{margin-left:4px; font-size:11px; color:var(--gold-soft);}
.chip{display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; letter-spacing:.03em; text-transform:uppercase;}
.chip.paga{background:rgba(201,162,75,0.15); color:var(--gold-soft);}
.chip.aberta{background:rgba(247,245,242,0.08); color:rgba(247,245,242,0.7);}
.chip.vencida{background:rgba(225,28,28,0.16); color:#ff8a8a;}
.pr-link{margin-left:8px; font-family:var(--fs-display); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold-soft); text-decoration:none; border-bottom:1px solid rgba(232,210,154,0.35);}

@media (max-width:820px){
  .vs-card, .pay-card{padding:26px 20px;}
  .pay-count{text-align:left;}
  .vs-figures{grid-template-columns:repeat(2,1fr);}
  .pay-next{grid-template-columns:1fr; padding:22px 20px;}
  .pay-cta{text-align:left;}
  .ct-card{grid-template-columns:1fr;}
  .ct-actions{text-align:left;}
}
@media (max-width:560px){
  .pay-row{grid-template-columns:1fr auto; grid-template-areas:"n status" "date amount";}
  .pay-row.head{display:none;}
  .pr-n{grid-area:n;} .pr-status{grid-area:status; text-align:right;}
  .pr-date{grid-area:date; color:rgba(247,245,242,0.55);} .pr-amount{grid-area:amount; text-align:right;}
}

/* ---- Vesting por marcos (visual gamificado) ---- */
.chip.next{background:rgba(225,28,28,0.16); color:#ff8a8a;}
.vj-head{display:flex; justify-content:space-between; align-items:center; gap:28px; flex-wrap:wrap;}
.vj-id{flex:1 1 320px; min-width:0;}
.vj-badge{display:inline-block; margin-bottom:14px; padding:5px 12px; font-family:var(--fs-display); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--black); background:var(--gold);}
.vj-ring{position:relative; flex:none; width:150px; height:150px;}
.vj-ring svg{display:block; width:100%; height:100%; transform:rotate(-90deg);}
.vj-ring circle{fill:none; stroke-width:9;}
.vj-ring .bg{stroke:var(--charcoal2);}
.vj-ring .fg{stroke:var(--gold); stroke-linecap:round; animation:vjRing 1.4s cubic-bezier(.2,.8,.2,1) both;}
@keyframes vjRing{from{stroke-dashoffset:var(--c);}}
.vj-ring-text{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;}
.vj-ring-text strong{font-family:var(--fs-display); font-weight:600; font-size:38px; line-height:1; color:var(--gold);}
.vj-ring-text span{margin-top:6px; max-width:96px; font-size:10.5px; line-height:1.35; color:rgba(247,245,242,0.5);}

.vj-pills{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px;}
.vj-pill{display:inline-flex; align-items:center; gap:8px; padding:7px 14px; font-size:12.5px; color:rgba(247,245,242,0.7); border:1px solid var(--line);}
.vj-pill svg{flex:none; width:15px; height:15px;}
.vj-pill.ok{color:var(--gold-soft); border-color:rgba(201,162,75,0.5); background:rgba(201,162,75,0.08);}

.vj-next{margin-top:26px; padding:24px 26px; background:var(--charcoal); border:1px solid var(--gold);}
.vj-next-top{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap;}
.vj-next-label{font-family:var(--fs-display); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold);}
.vj-next-title{margin-top:8px; font-family:var(--fs-display); font-size:clamp(20px,2.6vw,26px); font-weight:500; line-height:1.25;}
.vj-next-count{text-align:right; font-family:var(--fs-display);}
.vj-next-count strong{display:block; font-size:clamp(34px,5vw,48px); font-weight:600; line-height:1; color:var(--white);}
.vj-next-count span{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:rgba(247,245,242,0.5);}
.vj-next .vs-bar{margin-top:20px; background:var(--charcoal2);}
.vj-next-hint{margin-top:10px; font-size:12px; color:rgba(247,245,242,0.5);}

.vj-steps{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); margin-top:40px; list-style:none;}
.vj-step{position:relative; padding-top:64px; text-align:center;}
.vj-node{position:absolute; z-index:1; top:0; left:50%; display:flex; align-items:center; justify-content:center; width:44px; height:44px; margin-left:-22px; border:2px solid var(--line); border-radius:50%; background:var(--black); color:rgba(247,245,242,0.4);}
.vj-node svg{width:20px; height:20px;}
.vj-step::after{content:""; position:absolute; top:20.5px; left:50%; width:100%; height:3px; background:var(--charcoal2);}
.vj-step:last-child::after{display:none;}
.vj-step.fill::after{background:linear-gradient(90deg, var(--gold) 0%, var(--gold-soft) 100%);}
.vj-kicker{font-family:var(--fs-display); font-size:11.5px; letter-spacing:.09em; text-transform:uppercase; color:rgba(247,245,242,0.5);}
.vj-main{margin-top:6px; font-family:var(--fs-display); font-size:19px; line-height:1.2; color:var(--white);}
.vj-when{margin-top:6px; font-size:12px; line-height:1.5; color:rgba(247,245,242,0.5);}
.vj-step .chip{margin-top:10px;}

.vj-step.is-received .vj-node, .vj-step.is-done .vj-node{border-color:var(--gold); background:var(--gold); color:var(--black);}
.vj-step.is-received .vj-kicker, .vj-step.is-done .vj-kicker{color:var(--gold-soft);}
.vj-step.is-waiting_cliff .vj-node{border-color:rgba(201,162,75,0.6); color:var(--gold-soft);}
.vj-step.is-next .vj-node{border-color:var(--red); color:var(--red); animation:vjPulse 2s ease-out infinite;}
.vj-step.is-next .vj-kicker{color:#ff8a8a;}
.vj-step.is-today .vj-node{border-color:var(--white); color:var(--red);}
.vj-step.is-today .vj-kicker{color:var(--white);}
.vj-step.is-today .vj-main{color:var(--gold-soft);}
.vj-step.type-cliff .vj-node{top:4px; width:36px; height:36px; margin-left:-18px; border-radius:7px; transform:rotate(45deg);}
.vj-step.type-cliff .vj-node svg{width:17px; height:17px; transform:rotate(-45deg);}
@keyframes vjPulse{
  0%{box-shadow:0 0 0 0 rgba(225,28,28,0.55);}
  70%{box-shadow:0 0 0 14px rgba(225,28,28,0);}
  100%{box-shadow:0 0 0 0 rgba(225,28,28,0);}
}
.vj-note{margin-top:30px; padding:18px 22px; border-left:2px solid var(--gold); background:var(--charcoal); font-size:13.5px; line-height:1.7; color:rgba(247,245,242,0.7);}
.vj-note strong{font-family:var(--fs-display); font-weight:500; letter-spacing:.02em; color:var(--gold-soft);}

@media (max-width:760px){
  .vj{padding:26px 20px;}
  .vj-next{padding:20px;}
  .vj-steps{grid-auto-flow:row; grid-auto-columns:auto; grid-template-columns:minmax(0,1fr); margin-top:32px;}
  .vj-step{min-height:44px; padding:0 0 30px 68px; text-align:left;}
  .vj-step:last-child{padding-bottom:0;}
  .vj-node{left:0; margin-left:0;}
  .vj-step::after{top:44px; bottom:0; left:20.5px; width:3px; height:auto;}
  .vj-step.fill::after{background:linear-gradient(180deg, var(--gold) 0%, var(--gold-soft) 100%);}
  .vj-step.type-cliff .vj-node{left:4px; margin-left:0;}
}
@media (prefers-reduced-motion:reduce){
  .vj-ring .fg, .vs-bar > span, .vj-step.is-next .vj-node{animation:none;}
}

/* ---- Pagamentos gamificados (parcelas, atraso, próxima a vencer, mapa) ---- */
.pay-card.pj .vs-figure{background:var(--black);}
.vs-figure.late{background:rgba(225,28,28,0.1);}
.pay-card.pj .vs-figure.late{background:#1c0d0d;}
.vs-figure.late .n{color:#ff8a8a;}
.pj-facts{display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-top:none;}
.pj-facts > div{padding:16px 18px; background:var(--black);}
.pj-facts .n{font-family:var(--fs-display); font-size:17px; line-height:1.2; color:var(--gold-soft);}
.pj-facts .l{margin-top:5px; font-size:12px; line-height:1.5; color:rgba(247,245,242,0.5);}

.pj-overdue{margin-top:28px; padding:26px 28px; background:var(--black); border:1px solid var(--red);}
.pj-overdue.pj-adjust{border:1px dashed var(--gold);}
.pj-adjust .pj-label{color:var(--gold-soft);}
.pj-top{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap;}
.pj-label{font-family:var(--fs-display); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#ff8a8a;}
.pj-title{margin-top:8px; font-family:var(--fs-display); font-size:clamp(20px,2.6vw,26px); font-weight:500; line-height:1.25;}
.pj-hint{margin-top:6px; max-width:460px; font-size:12.5px; line-height:1.6; color:rgba(247,245,242,0.5);}
.pj-amount{text-align:right;}
.pj-amount strong{display:block; font-family:var(--fs-display); font-weight:600; font-size:clamp(28px,4.4vw,44px); line-height:1; color:var(--white);}
.pj-amount span{display:block; margin-top:8px; font-size:12px; color:rgba(247,245,242,0.5);}
.pj-breakdown{display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:1px; margin-top:22px; background:var(--line); border:1px solid var(--line);}
.pj-breakdown > div{display:flex; flex-direction:column; gap:6px; padding:14px 16px; background:var(--charcoal);}
.pj-breakdown span{font-size:12px; color:rgba(247,245,242,0.5);}
.pj-breakdown b{font-family:var(--fs-display); font-weight:500; font-size:19px; color:var(--white);}
.pj-cta{margin-top:22px;}
.pay-btn.pending, .pay-btn.pending:hover{color:rgba(247,245,242,0.65); background:var(--charcoal2); border-color:var(--line); cursor:default;}
.pay-btn.pending img{opacity:.9;}
.pj-subtitle{margin:18px 0 8px; font-family:var(--fs-display); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:rgba(247,245,242,0.5);}
.pj-cta-note{margin-top:10px; font-size:11.5px; color:rgba(247,245,242,0.4);}

.pj-details{margin-top:22px; border-top:1px solid var(--line);}
.pj-details summary{padding:14px 0; font-family:var(--fs-display); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold-soft); cursor:pointer; list-style:none;}
.pj-details summary::-webkit-details-marker{display:none;}
.pj-details summary::before{content:"+"; display:inline-block; width:18px; color:var(--gold);}
.pj-details[open] summary::before{content:"–";}
.pj-overdue .pj-details{margin-top:18px;}
.pj-table{border-top:1px solid var(--line);}
.pj-row{display:grid; grid-template-columns:1fr 1fr .8fr 1.2fr 1fr 1.2fr; gap:8px 12px; align-items:center; padding:12px 4px; border-bottom:1px solid var(--line); font-size:13px; color:rgba(247,245,242,0.8);}
.pj-row.head{padding:10px 4px; font-family:var(--fs-display); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:rgba(247,245,242,0.4);}
.pj-row .pj-tot{font-family:var(--fs-display); color:var(--white);}
.pj-all .pay-list{margin-top:0;}
.pj-how-body{max-width:760px; padding:4px 0 8px; font-size:13px; line-height:1.75; color:rgba(247,245,242,0.6);}
.pj-how-body p + p{margin-top:12px;}
.pj-how-body strong{font-family:var(--fs-display); font-weight:500; color:var(--gold-soft);}
.pj-how-body .pj-warn{color:#ff8a8a;}

.pm{margin-top:34px;}
.pm-title{font-family:var(--fs-display); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:rgba(247,245,242,0.5);}
.pm-years{display:flex; flex-direction:column; gap:12px; margin-top:14px;}
.pm-year{display:flex; align-items:center; gap:16px;}
.pm-year-label{flex:none; width:44px; font-family:var(--fs-display); font-size:14px; letter-spacing:.06em; color:rgba(247,245,242,0.55);}
.pm-tiles{display:flex; flex-wrap:wrap; gap:6px;}
.pm-tile{width:40px; height:40px; padding:0; font-family:var(--fs-display); font-size:13px; color:rgba(247,245,242,0.45); background:var(--charcoal2); border:1px solid var(--line); border-radius:4px; cursor:pointer; transition:transform .15s ease, border-color .15s ease;}
.pm-tile:hover{border-color:var(--gold); transform:translateY(-2px);}
.pm-tile.is-paid{font-weight:600; color:var(--black); background:var(--gold); border-color:var(--gold);}
.pm-tile.is-overdue{color:#ff8a8a; background:rgba(225,28,28,0.16); border-color:var(--red);}
.pm-tile.is-next{color:var(--white); background:var(--black); border:2px solid var(--white); animation:pmPulse 2s ease-out infinite;}
.pm-tile.is-adjust{font-size:18px; color:var(--gold-soft); background:transparent; border:2px dashed var(--gold);}
.pm-tile.selected{outline:2px solid var(--gold-soft); outline-offset:2px;}
@keyframes pmPulse{
  0%{box-shadow:0 0 0 0 rgba(247,245,242,0.45);}
  70%{box-shadow:0 0 0 10px rgba(247,245,242,0);}
  100%{box-shadow:0 0 0 0 rgba(247,245,242,0);}
}
.pm-legend{display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:16px; font-size:12px; color:rgba(247,245,242,0.55);}
.pm-legend span{display:inline-flex; align-items:center; gap:8px;}
.pm-legend .lg{display:inline-block; width:14px; height:14px; background:var(--charcoal2); border:1px solid var(--line); border-radius:3px;}
.pm-legend .lg.is-paid{background:var(--gold); border-color:var(--gold);}
.pm-legend .lg.is-overdue{background:rgba(225,28,28,0.3); border-color:var(--red);}
.pm-legend .lg.is-next{background:var(--black); border:2px solid var(--white);}
.pm-legend .lg.is-adjust{background:transparent; border:2px dashed var(--gold);}
.pm-detail{min-height:22px; margin-top:14px; font-size:13px; line-height:1.6; color:rgba(247,245,242,0.7);}

@media (max-width:700px){
  .pj{padding:26px 20px;}
  .pj-overdue{padding:22px 18px;}
  .pj-amount{text-align:left;}
  .pj-row{grid-template-columns:1fr 1fr; padding:14px 4px;}
  .pj-row.head{display:none;}
  .pj-row > div::before{content:attr(data-l); display:block; margin-bottom:3px; font-family:var(--fs-body); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:rgba(247,245,242,0.4);}
  .pm-year{flex-direction:column; align-items:flex-start; gap:8px;}
  .pm-tile{width:34px; height:34px; font-size:12px;}
}
@media (prefers-reduced-motion:reduce){
  .pm-tile.is-next{animation:none;}
}

/* Tabelas largas do admin rolam na horizontal em vez de estourar a página */
.admin-scroll{overflow-x:auto; margin-bottom:8px;}
.admin-table.compact input[type=date]{width:128px;}
.admin-table.compact input[type=number]{width:96px;}
.admin-table.compact input[type=text]{width:170px;}
.admin-table.compact .in-url{width:130px;}
.admin-table.compact td.actions{white-space:nowrap;}
.admin-table.compact td .admin-btn{height:32px; padding:5px 10px; font-size:11px; margin-right:5px;}
.admin-table.compact .inst-n{margin-bottom:5px; font-family:var(--fs-display); font-size:15px;}
.admin-filter{display:flex; align-items:center; gap:12px; margin:8px 0 14px; font-size:12.5px; color:rgba(247,245,242,0.5);}
.admin-filter select{background:transparent; border:1px solid var(--line); color:var(--white); padding:8px 10px; font-size:13px; border-radius:2px; max-width:100%;}
.admin-form textarea{min-width:220px; padding:10px 12px; font-family:var(--fs-body); font-size:13.5px; line-height:1.5; color:var(--white); background:transparent; border:1px solid var(--line); border-radius:2px; resize:vertical;}
.admin-hint strong{font-weight:600; color:var(--gold-soft);}
.pv-preview{padding:18px; border:1px dashed rgba(201,162,75,0.5);}
.pv-preview .pay-card{margin-bottom:0;}
.admin-hint{margin:10px 0 24px; max-width:640px; font-size:13.5px; color:rgba(247,245,242,0.55); line-height:1.7;}
