/* === HotMinds Brand CSS === */

/* B1 — Font self-host */
@font-face { font-family:"Cabinet Grotesk"; src:url("../fonts/cabinet-grotesk-700.woff2") format("woff2"); font-weight:700; font-display:swap; }
@font-face { font-family:"Cabinet Grotesk"; src:url("../fonts/cabinet-grotesk-500.woff2") format("woff2"); font-weight:500; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/satoshi-400.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/satoshi-500.woff2") format("woff2"); font-weight:500; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/satoshi-700.woff2") format("woff2"); font-weight:700; font-display:swap; }
@font-face { font-family:"Satoshi"; src:url("../fonts/satoshi-900.woff2") format("woff2"); font-weight:900; font-display:swap; }
@font-face { font-family:"JetBrains Mono"; src:url("../fonts/jetbrains-mono-400.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"JetBrains Mono"; src:url("../fonts/jetbrains-mono-500.woff2") format("woff2"); font-weight:500; font-display:swap; }

/* B2 — Token theme-aware */
:root {
  --lime:#BFDD2E; --lime-ink:#0B1304; --purple:#6C5CE7;
  --ink:#0A0A0F; --paper:#F4F4EE; --ink-soft:#9097A8; --paper-soft:#4B4F5A;
  --ok:#3FA34D; --warn:#E0A12B; --error:#D6453A; --info:#6C5CE7;
  /* mapping semantico — dark di default */
  --bg:var(--ink); --fg:#F4F4EE; --muted:var(--ink-soft); --accent:var(--lime);
  /* override Bootstrap 5 color system */
  --bs-body-bg:var(--bg); --bs-body-color:var(--fg);
  --bs-primary:#BFDD2E; --bs-primary-rgb:191,221,46;
  --bs-font-sans-serif:"Satoshi",system-ui,sans-serif;
  --bs-font-monospace:"JetBrains Mono",ui-monospace,monospace;
}
[data-bs-theme="light"] {
  --bg:#ffffff; --fg:#0A0A0F; --muted:var(--paper-soft); --accent:var(--lime);
  --bs-body-bg:var(--bg); --bs-body-color:var(--fg);
}
body { background:var(--bg); color:var(--fg); font-family:var(--bs-font-sans-serif); }
h1,h2 { font-family:"Cabinet Grotesk","SF Pro Display","Helvetica Neue",sans-serif; }
code, pre, .font-mono { font-family:"JetBrains Mono",ui-monospace,monospace; }
.btn-primary { background:var(--lime); color:var(--lime-ink); border-color:var(--lime); }
.btn-primary:hover { background:#a8c226; border-color:#a8c226; color:var(--lime-ink); }
a:focus-visible, button:focus-visible { outline:2px solid var(--purple); outline-offset:2px; }

/* Navbar */
.hm-navbar {
  background: rgba(10,10,15,0.95);
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
[data-bs-theme="light"] .hm-navbar {
  background: var(--paper);
  border-bottom: 1px solid rgba(0,0,0,0.10);
}
.hm-navbar .nav-link,
.hm-navbar .navbar-brand span,
.hm-navbar .text-muted { color: var(--fg) !important; }
.hm-navbar .navbar-toggler { border-color: var(--muted); }
.hm-navbar .navbar-toggler-icon { filter: invert(0); }
[data-bs-theme="light"] .hm-navbar .navbar-toggler-icon { filter: invert(1); }
.navbar-brand { display:flex; align-items:center; gap:0.5rem; }
/* SVG caricato come <img>: currentColor non funziona, serve filter */
.hm-logo { height:28px; width:auto; filter: brightness(0) invert(1); }
[data-bs-theme="light"] .hm-logo { filter: brightness(0); }
.nav-link { font-family:"Satoshi",system-ui,sans-serif; font-size:1rem; letter-spacing:0.02em; }
.nav-link.active, .nav-link:hover { color:var(--lime) !important; }

/* Tables */
.table { font-family:"JetBrains Mono",ui-monospace,monospace; font-size:0.8125rem; }
.table th { font-family:"Satoshi",system-ui,sans-serif; font-size:0.75rem; text-transform:uppercase; letter-spacing:0.12em; font-weight:700; }

/* Badges */
.badge-ok { background:var(--ok); color:#fff; }
.badge-warn { background:var(--warn); color:#0A0A0F; }
.badge-error { background:var(--error); color:#fff; }
.badge-info { background:var(--info); color:#fff; }
.badge-muted { background:var(--muted); color:var(--bg); }

/* Upload area */
.upload-zone { border:2px dashed var(--muted); border-radius:8px; padding:2rem; text-align:center; transition:border-color 0.2s; }
.upload-zone:hover { border-color:var(--lime); }

/* Validation results */
.validation-block { background:rgba(255,255,255,0.04); border-left:3px solid; padding:1rem; border-radius:0 4px 4px 0; margin-bottom:0.5rem; }
.validation-block.error { border-color:var(--error); }
.validation-block.warning { border-color:var(--warn); }
.validation-block.ok { border-color:var(--ok); }
