:root {
  --bg: #0f172a;
  --panel: #1e293b;
  --panel-2: #334155;
  --border: #334155;
  --text: #f1f5f9;
  --muted: #94a3b8;
  --accent: #2563eb;
}

* { box-sizing: border-box; }

body { margin: 0; animation: ltPageIn .25s ease both; }
body.lt-leaving { animation: ltPageOut .16s ease forwards; }
html { background: #0f172a; }
@keyframes ltPageIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes ltPageOut { from { opacity: 1; } to { opacity: 0; } }

#lt-loader { position: fixed; inset: 0; background: rgba(15,23,42,.86); display: flex; align-items: center; justify-content: center; z-index: 9999; opacity: 0; pointer-events: none; transition: opacity .14s ease; }
#lt-loader.show { opacity: 1; pointer-events: auto; }
.lt-loader-inner { display: flex; flex-direction: column; align-items: center; gap: 14px; color: #f1f5f9; font-weight: 600; font-size: 14px; }
.lt-spinner { width: 38px; height: 38px; border: 3px solid rgba(255,255,255,.18); border-top-color: #f26419; border-radius: 50%; animation: ltSpin .7s linear infinite; }
@keyframes ltSpin { to { transform: rotate(360deg); } }

/* Barra de navegação compartilhada (hub + ferramentas) */
.main-nav { background: var(--bg); border-bottom: 1px solid #1e293b; position: sticky; top: 0; z-index: 40; }
.main-nav .nav-inner { max-width: 1024px; margin: 0 auto; padding: 0 16px; display: flex; gap: 4px; flex-wrap: wrap; }
.main-nav a, .main-nav .disabled { color: var(--muted); padding: 12px 14px; font-size: 14px; font-weight: 600; text-decoration: none; border-bottom: 2px solid transparent; transition: color .15s, border-color .15s; white-space: nowrap; }
.main-nav a:hover { color: #fff; }
.main-nav a.active { color: #fff; border-bottom-color: var(--accent); }
.main-nav .disabled { opacity: .45; cursor: not-allowed; }

.validation-message { min-height: 1.25rem; margin-top: .5rem; color: var(--muted); font-size: 12px; line-height: 1.35; }
.validation-message.validation-error { color: #fda4af; }

:focus-visible { outline: 2px solid #38bdf8; outline-offset: 2px; }

@media (max-width: 640px) {
  .main-nav .nav-inner { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
  .main-nav a, .main-nav .disabled { padding: 10px 11px; font-size: 12px; }
}

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