/* ============================================================
   HotMinds Brand Kit — .NET Core MVC + Bootstrap 5
   Fonte: .impeccable.md / hotminds-brand-kit.md
   ============================================================ */

/* 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);
  --surface: #13131A;  --surface-2: #1C1C26;  --border: #2A2A38;

  /* 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-success: #3FA34D;
  --bs-warning: #E0A12B;
  --bs-danger:  #D6453A;
  --bs-info:    #6C5CE7;
  --bs-font-sans-serif: "Satoshi", system-ui, sans-serif;
  --bs-font-monospace: "JetBrains Mono", ui-monospace, monospace;
  --bs-border-color: var(--border);
  --bs-card-bg: var(--surface);
  --bs-card-border-color: var(--border);
}

[data-bs-theme="light"] {
  --bg: var(--paper);  --fg: #0A0A0F;  --muted: var(--paper-soft);
  --surface: #FFFFFF;  --surface-2: #F0F0E8;  --border: #DDDDD5;
  --bs-body-bg: var(--bg);
  --bs-body-color: var(--fg);
  --bs-card-bg: var(--surface);
  --bs-card-border-color: var(--border);
  --bs-border-color: var(--border);
}

/* Base */
body {
  background: var(--bg);
  color: var(--fg);
  font-family: var(--bs-font-sans-serif);
}

h1, h2, h3 {
  font-family: "Cabinet Grotesk", "SF Pro Display", "Helvetica Neue", sans-serif;
  font-weight: 700;
}

code, pre, .font-mono { font-family: "JetBrains Mono", ui-monospace, monospace; }

/* Bottoni */
.btn-primary {
  background: var(--lime);
  color: var(--lime-ink);
  border-color: var(--lime);
  font-weight: 600;
}
.btn-primary:hover, .btn-primary:focus {
  background: #a8c226;
  border-color: #a8c226;
  color: var(--lime-ink);
}
.btn-primary:disabled {
  background: #6b7a1a;
  border-color: #6b7a1a;
  color: #3a4010;
  opacity: 1;
}

/* Focus ring */
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--purple);
  outline-offset: 2px;
}

/* Card */
.card {
  background: var(--surface);
  border-color: var(--border);
}
.card-title { font-family: "Cabinet Grotesk", sans-serif; font-weight: 700; }

/* Navbar */
.navbar { border-bottom: 1px solid var(--border); }
.navbar-brand { font-family: "Cabinet Grotesk", sans-serif; font-weight: 700; letter-spacing: -0.01em; }
/* Logo SVG inline: dimensione fissa, eredita currentColor */
.navbar-brand svg { height: 24px; width: auto; display: block; }
/* Logo nella login */
.logo-login svg { height: 36px; width: auto; display: block; }

/* Tabella */
.table { --bs-table-bg: transparent; color: var(--fg); }
.table-hover > tbody > tr:hover > * { background-color: rgba(191,221,46,0.04); }
.table-primary { --bs-table-bg: rgba(191,221,46,0.12); color: var(--fg); }
.table-secondary { --bs-table-bg: var(--surface-2); color: var(--fg); }

/* Alert */
.alert-danger  { background: rgba(214,69,58,0.15);  border-color: var(--error);  color: #f5a09a; }
.alert-warning { background: rgba(224,161,43,0.15); border-color: var(--warn);   color: #f0cb7a; }
.alert-info    { background: rgba(108,92,231,0.15); border-color: var(--purple); color: #b4abf7; }

[data-bs-theme="light"] .alert-danger  { background: #fde9e8; border-color:#f5b2ae; color:#7a1f1a; }
[data-bs-theme="light"] .alert-warning { background: #fdf3e0; border-color:#f0cb7a; color:#7a4d00; }
[data-bs-theme="light"] .alert-info    { background: #eeecfd; border-color:#b4abf7; color:#3a2ea0; }

/* Progress bar */
.progress { background: var(--surface-2); }

/* Form */
.form-control, .form-select {
  background: var(--surface-2);
  border-color: var(--border);
  color: var(--fg);
}
.form-control:focus, .form-select:focus {
  background: var(--surface-2);
  border-color: var(--purple);
  color: var(--fg);
  box-shadow: 0 0 0 3px rgba(108,92,231,0.25);
}
.form-control::placeholder { color: var(--muted); }

[data-bs-theme="light"] .form-control,
[data-bs-theme="light"] .form-select {
  background: #fff;
  border-color: var(--border);
  color: var(--fg);
}

/* Toggle tema */
#btn-theme-toggle {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  transition: background 0.2s;
}
