/* Reset neutralizado com :where() para nao competir com regras de componente */
:where(*,*::before,*::after){box-sizing:border-box}
:where(body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol){margin:0;padding:0}
:where(ul,ol){list-style:none}
:where(img,svg){max-width:100%;height:auto;display:block}
:where(button,input,select,textarea){font:inherit;color:inherit}
:where(a){color:inherit;text-decoration:none}

html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-core);
  font-weight:var(--fw-regular);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  color:var(--text-body);
  background:var(--surface-alt);
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

/* ---------- Layout ---------- */
.cp-shell{flex:1;display:flex;flex-direction:column}
.cp-container{width:100%;max-width:var(--container-wide);margin-inline:auto;padding-inline:var(--gutter)}
@media(max-width:860px){.cp-container{padding-inline:var(--gutter-mobile)}}
.cp-main{flex:1;padding-block:var(--space-7) var(--space-12)}

/* ---------- Header ---------- */
.cp-header{
  background:var(--surface-dark);
  box-shadow:var(--shadow-header);
  position:sticky;top:0;z-index:100;
}
.cp-header__inner{
  display:flex;align-items:center;gap:var(--space-6);
  min-height:var(--header-height);
  padding-block:var(--space-3);
  flex-wrap:wrap;
}
.cp-header__brand{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0}
.cp-header__logo{height:26px;width:auto}
.cp-header__logo-text{
  font-weight:var(--fw-black);font-size:20px;letter-spacing:var(--ls-display);
  color:var(--text-on-dark);
}
.cp-header__title{
  border-left:var(--hairline) solid var(--border-on-dark-strong);
  padding-left:var(--space-4);
  display:flex;flex-direction:column;gap:2px;
}
.cp-header__title strong{
  font-weight:var(--fw-bold);font-size:var(--fs-body);color:var(--text-on-dark);
  line-height:var(--lh-tight);
}
.cp-header__title span{
  font-weight:var(--fw-light);font-size:var(--fs-small);color:var(--text-on-dark-muted);
}
.cp-header__spacer{flex:1 1 auto;min-width:0}

/* Saldo: nada trunca, o bloco quebra em vez de virar reticencias */
.cp-balance{
  background:var(--surface-card-on-dark);
  border:var(--hairline) solid var(--border-on-dark);
  border-radius:var(--radius-lg);
  padding:var(--space-3) var(--space-5);
  display:flex;flex-direction:column;gap:6px;min-width:min(260px,100%);
}
.cp-balance__row{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}
.cp-balance__value{
  font-weight:var(--fw-black);font-size:26px;letter-spacing:var(--ls-h2);
  color:var(--gold);line-height:1;
}
.cp-balance__label{font-weight:var(--fw-light);font-size:var(--fs-body-sm);color:var(--text-on-dark-body)}
.cp-balance__meta{font-size:var(--fs-small);color:var(--text-on-dark-muted)}
.cp-balance__meta b{font-weight:var(--fw-bold);color:var(--text-on-dark-body)}
.cp-balance__track{height:4px;border-radius:var(--radius-pill);background:var(--white-a10);overflow:hidden}
.cp-balance__fill{height:100%;background:var(--gold);border-radius:var(--radius-pill);transition:width var(--dur-base)}

.cp-window{display:flex;flex-direction:column;gap:2px;padding-left:var(--space-5);border-left:var(--hairline) solid var(--border-on-dark-strong)}
.cp-window__label{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-on-dark-muted)}
.cp-window__value{font-weight:var(--fw-bold);font-size:var(--fs-body);color:var(--text-on-dark)}

.cp-user{display:flex;flex-direction:column;gap:2px;text-align:right}
.cp-user__name{font-weight:var(--fw-bold);font-size:var(--fs-body-sm);color:var(--text-on-dark)}
.cp-user__role{font-weight:var(--fw-light);font-size:var(--fs-small);color:var(--text-on-dark-muted)}

/* ---------- Botoes ---------- */
.cp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  font:var(--type-button);letter-spacing:var(--ls-button);text-transform:uppercase;
  padding:13px var(--space-6);border:none;border-radius:var(--radius-button);
  cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);
}
.cp-btn--primary{background:var(--gold);color:var(--navy)}
.cp-btn--primary:hover{background:var(--gold-hover)}
.cp-btn--dark{background:var(--navy);color:var(--text-on-dark)}
.cp-btn--dark:hover{background:var(--navy-hover)}
.cp-btn--ghost{background:transparent;color:var(--text-on-dark);border:var(--stroke-button) solid var(--border-on-dark-strong)}
.cp-btn--ghost:hover{border-color:var(--gold);color:var(--gold)}
.cp-btn--outline{background:transparent;color:var(--navy);border:var(--stroke-button) solid var(--navy)}
.cp-btn--block{width:100%}
.cp-btn:disabled,.cp-btn[aria-disabled="true"]{background:var(--gray-200);color:var(--text-meta);cursor:not-allowed}
.cp-btn:focus-visible{outline:none;box-shadow:var(--ring-gold)}

/* ---------- Badges ---------- */
.cp-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-weight:var(--fw-bold);font-size:var(--fs-nano);letter-spacing:var(--ls-tag);
  text-transform:uppercase;border-radius:var(--radius-pill);padding:4px 9px;
}
.cp-badge--gold{background:var(--gold);color:var(--navy)}
.cp-badge--dark{background:rgba(31,36,43,.9);color:#fff}
.cp-badge--min{
  background:var(--gold-a12);color:var(--gray-800);
  border:var(--hairline) solid var(--border-accent);
  font-size:var(--fs-micro);padding:5px 10px;
}

/* ---------- Cards ---------- */
.cp-card{
  background:var(--surface-card);
  border:var(--hairline) solid var(--border-card);
  border-radius:var(--radius-card);
  overflow:hidden;
}

/* ---------- Avisos ---------- */
.cp-note{
  background:var(--surface-cream);
  border:var(--hairline) solid var(--border-card);
  border-radius:var(--radius-lg);
  padding:var(--space-4) var(--space-5);
}
.cp-note__title{font-weight:var(--fw-bold);font-size:var(--fs-body-sm);color:var(--navy);margin-bottom:6px}
.cp-note__text{font-weight:var(--fw-light);font-size:var(--fs-small);line-height:var(--lh-snug);color:var(--text-muted)}
.cp-note--dark{background:var(--surface-dark);border-color:transparent}
.cp-note--dark .cp-note__title{color:var(--text-on-dark)}
.cp-note--dark .cp-note__text{color:var(--text-on-dark-body)}

/* ---------- Rodape ---------- */
.cp-footer{background:var(--surface-dark);margin-top:auto}
.cp-footer__inner{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:var(--space-8);padding-block:var(--space-8);flex-wrap:wrap;
}
.cp-footer__brand{display:flex;flex-direction:column;gap:var(--space-2)}
.cp-footer__tag{font-weight:var(--fw-light);font-size:var(--fs-small);color:var(--text-on-dark-muted)}
.cp-footer__links{display:flex;gap:var(--space-6);font-size:var(--fs-body-sm);color:var(--text-nav)}
.cp-footer__links a:hover{color:var(--gold)}
.cp-footer__legal{text-align:right;font-size:var(--fs-small);color:var(--text-on-dark-faint);line-height:var(--lh-snug)}

/* ---------- Estados vazios ---------- */
.cp-empty{
  text-align:center;padding:var(--space-14) var(--space-6);
  background:var(--surface-card);border:var(--hairline) solid var(--border-card);
  border-radius:var(--radius-card);
}
.cp-empty__title{font-weight:var(--fw-bold);font-size:var(--fs-h3);color:var(--navy);margin-bottom:var(--space-3)}
.cp-empty__text{font-weight:var(--fw-light);color:var(--text-muted);max-width:46ch;margin-inline:auto}

/* ---------- Tipografia de pagina ---------- */
.cp-page-title{
  font-weight:var(--fw-bold);font-size:var(--fs-h2);letter-spacing:var(--ls-h2);
  line-height:var(--lh-tight);color:var(--navy);
}
.cp-page-lead{
  font-weight:var(--fw-light);font-size:var(--fs-lead);line-height:var(--lh-snug);
  color:var(--text-muted);max-width:68ch;margin-top:var(--space-3);
}
.cp-eyebrow{
  font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;color:var(--text-caption);
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
