/* base.css — CODEVASF Report | OKLCH palette + reset
   Estratégia: Restrained, ancorada no Azul Institucional gov.br (hue ≈256°).
   Neutros tintados levemente em direção ao azul-mãe (chroma 0.005-0.01).
   Status semânticos com chroma controlado, nunca máximo, para evitar ruído cromático em sessões longas. */
:root {
  /* Primary: Azul Institucional (mesma família, lightness escalonada) */
  --c-primary:      oklch(45% 0.16 256);
  --c-primary-dark: oklch(22% 0.09 260);
  --c-primary-mid:  oklch(55% 0.17 258);
  --c-primary-lt:   oklch(92% 0.04 256);
  --c-brand-bar:    oklch(85% 0.17 95);

  /* Status semânticos: chroma reduzido p/ evitar saturação extrema em fundos amplos */
  --c-success:    oklch(50% 0.14 145);
  --c-success-bg: oklch(95% 0.045 145);
  --c-success-fg: oklch(35% 0.13 145);
  --c-danger:     oklch(54% 0.20 30);
  --c-danger-bg:  oklch(93% 0.055 30);
  --c-danger-fg:  oklch(36% 0.16 30);
  --c-warning:    oklch(54% 0.10 85);
  --c-warning-bg: oklch(96% 0.07 95);
  --c-info:       oklch(45% 0.16 256);
  --c-info-bg:    oklch(92% 0.04 256);

  /* Neutros tintados em 256° (azul-mãe), chroma 0.005-0.01 = depth sem ruído */
  --c-bg:          oklch(96% 0.005 256);
  --c-surface:     oklch(99.5% 0.003 256);
  --c-border:      oklch(88% 0.006 258);
  --c-text-1:      oklch(20% 0.01 258);
  --c-text-2:      oklch(48% 0.018 260);
  --c-placeholder: oklch(72% 0.01 258);

  --sidebar-w: 248px;
  --header-h:  56px;
  --govbar-h:  32px;

  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px;
  --s-5:20px; --s-6:24px; --s-8:32px; --s-10:40px;

  --r-sm:4px; --r-md:8px; --r-lg:16px;
  --sh-1:0 1px 4px rgba(0,0,0,.08);
  --sh-2:0 4px 16px rgba(0,0,0,.12);

  --font:'Rawline','Roboto',system-ui,-apple-system,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{font-family:var(--font);color:var(--c-text-1);background:var(--c-bg);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--c-primary);text-decoration:none}
a:hover{text-decoration:underline}
ul,ol{list-style:none}
img{max-width:100%;display:block}
input,select,textarea,button{font-family:inherit;font-size:inherit}


::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:3px}

/* Spinner */
.spinner{
  width:20px;height:20px;border:2px solid var(--c-border);
  border-top-color:var(--c-primary);border-radius:50%;
  animation:spin .6s linear infinite;display:inline-block;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* Empty state */
.empty-state{
  text-align:center;padding:var(--s-10);color:var(--c-text-2);
}
.empty-state-icon{font-size:48px;margin-bottom:var(--s-4)}
.empty-state-title{font-size:17px;font-weight:700;margin-bottom:var(--s-2);color:var(--c-text-1)}

/* Toast animation */
@keyframes slideIn{from{transform:translateX(60px);opacity:0}to{transform:translateX(0);opacity:1}}

/* Respeita preferência do usuário por movimento reduzido (a11y) */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;
  }
}

/* Long-text overflow: previne textos longos quebrarem layout em tabelas e flex/grid */
.table td,.table th{overflow-wrap:break-word;word-break:break-word;min-width:0}
.flex>*,.grid-2>*,.grid-3>*,.grid-4>*{min-width:0}

/* Kbd inline (atalhos de teclado em texto explicativo) */
kbd{
  display:inline-block;padding:1px 6px;border-radius:3px;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;font-weight:600;
  background:var(--c-bg);color:var(--c-text-1);
  border:1px solid var(--c-border);border-bottom-width:2px;
  vertical-align:middle;line-height:1.4;
}

/* Hint de atalho (kbd badge no search) */
.kbd-hint{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;
  color:var(--c-text-2);background:var(--c-bg);border:1px solid var(--c-border);
  border-radius:3px;padding:1px 6px;pointer-events:none;
}
