/* Sacamoto GE — visual system. Loaded after legacy styles; no data/permission changes. */
:root {
  --ge-ink: #112a40;
  --ge-muted: #526b7d;
  --ge-accent: #087a98;
  --ge-accent-hover: #06647d;
  --ge-line: #dbe6ed;
  --ge-surface: #ffffff;
  --ge-canvas: #f0f5f9;
  --ge-shadow: 0 3px 16px #102d4710, 0 1px 3px #102d4708;
  --ge-radius: 16px;
}
body { color: var(--ge-ink); background: var(--ge-canvas); -webkit-font-smoothing: antialiased; }
#root { isolation: isolate; }
#root .bg-gray-50, #root .bg-gray-100 { background-color: var(--ge-canvas); }
#root .text-gray-900, #root .text-gray-800 { color: var(--ge-ink); }
#root .text-gray-400, #root .text-gray-500, #root .text-gray-600 { color: var(--ge-muted); }
#root .border-gray-200, #root .border-gray-100 { border-color: var(--ge-line); }
#root h1 { letter-spacing: -.035em; font-weight: 750; }
#root h2, #root h3 { letter-spacing: -.015em; }
#root .shadow-card {
  border-color: var(--ge-line); border-radius: var(--ge-radius);
  box-shadow: var(--ge-shadow); background-color: var(--ge-surface);
}
#root .shadow-modal { border: 1px solid var(--ge-line); box-shadow: 0 24px 70px #05192730; }
/* Navigation is the dark, quiet frame around the workspace. */
#root .bg-sidebar-bg {
  background: radial-gradient(ellipse at 0 0, #14516a 0, transparent 55%), linear-gradient(165deg, #0d2539, #081726 80%);
  border-right: 1px solid #51d7e522; box-shadow: 4px 0 24px #071a2510;
}
#root .bg-sidebar-bg a { border-radius: 10px; transition: background-color 160ms ease, color 160ms ease, box-shadow 160ms ease; }
#root .bg-sidebar-bg a:hover { background-color: #ffffff0d; color: #fff; }
#root .bg-sidebar-bg a.bg-primary-600,
#root .bg-sidebar-bg a[aria-current="page"] {
  background: linear-gradient(100deg, #12637d, #0d455f);
  color: #e9fdff; box-shadow: inset 3px 0 #56e0ee, 0 3px 12px #0002;
}
#root .bg-sidebar-bg a svg { stroke-width: 1.7; }
#root .bg-sidebar-bg .text-gray-400 { color: #b6cad8; }
#root .bg-sidebar-bg .text-gray-500 { color: #b6cad8; }
/* Keep semantic red/amber/green states; only remap the brand palette. */
#root .bg-primary-500, #root .bg-primary-600 { background-color: var(--ge-accent); }
#root .hover\:bg-primary-700:hover, #root .hover\:bg-primary-600:hover { background-color: var(--ge-accent-hover); }
#root .bg-primary-50 { background-color: #edf9fc; }
#root .bg-primary-100 { background-color: #d9f3f8; }
#root .text-primary-500, #root .text-primary-600, #root .text-primary-700 { color: #08748f; }
#root .border-primary-200, #root .border-primary-300 { border-color: #9ed6e3; }
#root .focus\:ring-primary-500:focus { --tw-ring-color: #0b8dad55; }
#root .focus\:border-primary-500:focus { border-color: #087a98; }
#root button, #root input, #root select, #root textarea { transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease; }
#root button:focus-visible, #root a:focus-visible, #root input:focus-visible,
#root select:focus-visible, #root textarea:focus-visible, #root [tabindex="0"]:focus-visible {
  outline: 2px solid #087a98; outline-offset: 3px;
}
#root .bg-sidebar-bg :focus-visible { outline-color: #68e4f0; }
#root input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]),
#root select, #root textarea { border-radius: 10px; }
#root input::placeholder, #root textarea::placeholder { color: #657e8f; opacity: 1; }
#root label { line-height: 1.5; }
#root button:disabled { cursor: not-allowed; }
#root table { font-variant-numeric: tabular-nums; }
#root thead { background-color: #edf3f7; }
#root thead th { color: #456073; font-weight: 600; }
#root tbody tr { transition: background-color 120ms ease; }
#root tbody tr:hover { background-color: #f0f9fc; }
#root td { border-color: #e6eef3; }
/* Dashboard: clear hierarchy and individual indicator accents. */
#root [data-dash-chave="Indicadores gerais"] > .shadow-card {
  position: relative; overflow: hidden; border-top: 3px solid #1598ba;
  background: linear-gradient(125deg, #fff 55%, #eff9fc);
}
#root [data-dash-chave="Indicadores gerais"] > .shadow-card:nth-child(2) { border-top-color: #1d9b79; }
#root [data-dash-chave="Indicadores gerais"] > .shadow-card:nth-child(3) { border-top-color: #dc9133; }
#root [data-dash-chave="Indicadores gerais"] > .shadow-card:nth-child(4) { border-top-color: #8270cf; }
#root [data-dash-chave="Indicadores gerais"] .text-3xl { font-size: 2.1rem; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
#root [data-dash-chave="Indicadores gerais"] .text-gray-400 { color: #526b7d; }
#root [data-dash-chave="Indicadores gerais"] .p-3 { border-radius: 14px; }
#root [data-dash-organizar] { border-color: #c6dce5; }
#root [data-dash-ctrl] { border-color: #9bc9d7; box-shadow: 0 3px 10px #102d4715; }
#root .estoque-armazem-lista > div { border: 1px solid #e9f0f5; background-color: #f5f9fb; }
#root .estoque-armazem-lista > div:hover { border-color: #a9d8e3; background-color: #edf8fb; }
#root .insumos-linha { background-color: #f2f7fa; border: 1px solid #e5eef3; }
#root .insumos-linha:hover { background-color: #eaf6fa; }
#root .insumos-header select { background-color: #f5f9fb; }
/* Login: a restrained technical texture, outside all reading surfaces. */
#root .min-h-screen.from-primary-900 {
  background-color: #091c2d;
  background-image: radial-gradient(ellipse at 15% 10%, #15536b 0, transparent 55%),
    radial-gradient(ellipse at 100% 90%, #0d394d 0, transparent 50%),
    linear-gradient(#63dcec06 1px, transparent 1px), linear-gradient(90deg, #63dcec06 1px, transparent 1px);
  background-size: auto, auto, 44px 44px, 44px 44px;
}
#root .min-h-screen.from-primary-900 .shadow-modal { border-top: 3px solid #44c9dc; border-radius: 20px; }
#root .min-h-screen.from-primary-900 .text-white { text-shadow: 0 2px 16px #07172535; }
/* Short feedback on interactive surfaces, never perpetual glow or movement. */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  #root .shadow-card.cursor-pointer { transition: transform 160ms ease, box-shadow 160ms ease; }
  #root .shadow-card.cursor-pointer:hover { transform: translateY(-2px); box-shadow: 0 8px 22px #102d4718; }
}
@media (max-width: 767px) {
  #root .shadow-card { border-radius: 14px; }
  #root button:not([data-dash-ctrl] button), #root select { min-height: 44px; }
  #root input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  #root textarea { font-size: 16px; }
  #root [data-dash-chave="Indicadores gerais"] { gap: 12px; }
  #root [data-dash-chave="Indicadores gerais"] > .shadow-card { padding: 14px; }
  #root [data-dash-chave="Indicadores gerais"] .text-3xl { font-size: 1.8rem; }
  #root [data-dash-chave="Indicadores gerais"] .p-3 { padding: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  #root *, #root *::before, #root *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
  #root .shadow-card { box-shadow: none; background: white; border-color: #ccc; }
  body { background: white; }
}

/* Menu search stays inside the existing permissions boundary. */
#root .ge-menu-search { margin: 0 12px 16px; }
#root .ge-menu-search input { width: 100%; min-height: 40px; padding: 9px 12px; color: #edf8ff; background: #ffffff09; border: 1px solid #7dc3d336; font-size: 13px; }
#root .ge-menu-search input::placeholder { color: #b6cad8; }
#root .ge-menu-status { color: #b6d2df; font-size: 12px; line-height: 1.5; margin-top: 8px; }
#root .ge-menu-status:empty { display: none; }
#root [data-ge-filtered] { display: none !important; }
#root .bg-sidebar-bg .text-white\/40, #root .bg-sidebar-bg .text-white\/50, #root .bg-sidebar-bg .text-white\/60 { color: #b6cad8; }
@media (min-width: 768px) {
  #root aside.md\:w-16 .ge-menu-search { display: none; }
  #root aside.md\:w-16 [data-ge-filtered] { display: flex !important; }
}
