/* Sistema IJG — estilo comum (identidade visual v2, identidade-visual/tokens.css) */
:root{
  --ijg-terra:#B87C71; --ijg-terra-forte:#A55850; --ijg-terra-deep:#7A3B36; --ijg-botao-hover:#7A3B36;
  --ijg-rose:#C99B89; --ijg-nude:#E7CFC2; --ijg-areia:#F6EDE7; --ijg-papel:#FFFCFA;
  /* cacau-soft escurecido (era #8B7167, contraste 4,4:1 no papel): #6E564D dá 6,6:1 no papel e 5,9:1 na areia */
  --ijg-cacau:#402E28; --ijg-cacau-soft:#6E564D; --ijg-linha:#E3D2C7; --ijg-dourado:#B8862F;
  --ok:#3E7A55; --ok-bg:#E3EFE5; --alerta:#9A5B12; --alerta-bg:#F7E6CC; --erro:#A63A2E; --erro-bg:#F8E1DC;
  --sombra:0 18px 40px -30px rgba(64,46,40,.55);
  --ijg-display:'Fraunces','Iowan Old Style',Georgia,serif;
  --ijg-texto:'Readex Pro',system-ui,-apple-system,sans-serif;
  --ijg-mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ijg-terra:#DE9084; --ijg-terra-deep:#F0AC9F; --ijg-nude:#4A3632; --ijg-areia:#1E1716; --ijg-papel:#2A211F;
    --ijg-cacau:#F3E8E2; --ijg-cacau-soft:#B7A197; --ijg-linha:#3E2F2B; --ijg-dourado:#DCB25C;
    --ok:#8FCB9F; --ok-bg:#1F3326; --alerta:#F2C27B; --alerta-bg:#3A2B17; --erro:#F3A093; --erro-bg:#3D211C;
    --sombra:0 18px 40px -30px rgba(0,0,0,.8); color-scheme:dark;
  }
  :root:not([data-theme="light"]) .marca-claro{ display:none; }
  :root:not([data-theme="light"]) .marca-escuro{ display:inline-block; }
}
:root[data-theme="dark"]{
  --ijg-terra:#DE9084; --ijg-terra-deep:#F0AC9F; --ijg-nude:#4A3632; --ijg-areia:#1E1716; --ijg-papel:#2A211F;
  --ijg-cacau:#F3E8E2; --ijg-cacau-soft:#B7A197; --ijg-linha:#3E2F2B; --ijg-dourado:#DCB25C;
  --ok:#8FCB9F; --ok-bg:#1F3326; --alerta:#F2C27B; --alerta-bg:#3A2B17; --erro:#F3A093; --erro-bg:#3D211C;
  --sombra:0 18px 40px -30px rgba(0,0,0,.8); color-scheme:dark;
}
:root[data-theme="dark"] .marca-claro{ display:none; }
:root[data-theme="dark"] .marca-escuro{ display:inline-block; }
.marca-escuro{ display:none; }

*{ box-sizing:border-box; }
html,body{ margin:0; }
body{
  background:var(--ijg-areia); color:var(--ijg-cacau);
  font-family:var(--ijg-texto); font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{ font:inherit; color:inherit; }
:focus-visible{ outline:2px solid var(--ijg-terra-forte); outline-offset:2px; }
[hidden]{ display:none !important; }
h1,h2,h3{ text-wrap:balance; }

/* botões */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 18px; border-radius:999px; border:1px solid var(--ijg-linha);
  background:var(--ijg-papel); color:var(--ijg-cacau); cursor:pointer; font-size:14px; font-weight:500;
  text-decoration:none; transition:background .15s, border-color .15s, color .15s;
}
.btn:hover{ border-color:var(--ijg-terra); }
.btn svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.btn-pri{ background:var(--ijg-terra-forte); border-color:var(--ijg-terra-forte); color:#fff; }
.btn-pri:hover{ background:var(--ijg-botao-hover); border-color:var(--ijg-botao-hover); }
.btn-txt{ background:transparent; border-color:transparent; color:var(--ijg-cacau-soft); }
.btn-txt:hover{ color:var(--ijg-cacau); border-color:transparent; }
.btn-perigo{ color:var(--erro); }
.btn[disabled]{ opacity:.55; cursor:default; }
.btn-lg{ padding:15px 24px; font-size:16px; }

/* campos */
.campo{ display:flex; flex-direction:column; gap:6px; }
.campo label{ font-size:13px; font-weight:500; }
.campo .ajuda{ font-size:12.5px; color:var(--ijg-cacau-soft); }
.entrada{
  width:100%; padding:12px 14px; border-radius:12px; border:1px solid var(--ijg-linha);
  background:var(--ijg-papel); outline:none; font-size:16px;
}
.entrada:focus{ border-color:var(--ijg-terra-forte); box-shadow:0 0 0 3px color-mix(in srgb, var(--ijg-terra-forte) 18%, transparent); }
textarea.entrada{ min-height:120px; resize:vertical; line-height:1.5; }

/* etiquetas de estado */
.chip{
  display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
  font-family:var(--ijg-mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase;
  padding:4px 9px; border-radius:999px; background:var(--ijg-nude); color:var(--ijg-cacau);
}
.chip::before{ content:''; width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.7; }
.chip-ok{ background:var(--ok-bg); color:var(--ok); }
.chip-andamento{ background:var(--alerta-bg); color:var(--alerta); }
.chip-pendente{ background:var(--ijg-nude); color:var(--ijg-cacau-soft); }
.chip-off{ background:var(--erro-bg); color:var(--erro); }

/* barra de progresso */
.barra{ height:8px; border-radius:999px; background:var(--ijg-linha); overflow:hidden; }
.barra > span{ display:block; height:100%; background:var(--ijg-terra-forte); border-radius:inherit; transition:width .35s ease; }

/* aviso flutuante */
.toast{
  position:fixed; left:50%; bottom:calc(24px + env(safe-area-inset-bottom, 0px)); translate:-50% 16px;
  opacity:0; pointer-events:none; z-index:60; max-width:calc(100vw - 32px);
  padding:12px 18px; border-radius:14px; background:var(--ijg-cacau); color:var(--ijg-areia);
  font-size:14px; transition:.2s; box-shadow:var(--sombra);
}
.toast.on{ opacity:1; translate:-50% 0; }
.toast.erro{ background:var(--erro); color:#fff; }

/* mensagem de erro em formulários */
.msg-erro{ min-height:20px; font-size:13.5px; color:var(--erro); font-weight:500; }

.mono{ font-family:var(--ijg-mono); }
@media (prefers-reduced-motion: reduce){ *{ transition:none !important; animation:none !important; } }
