/* Bankito — neo-brutalism theme + component overrides.
   Loaded after the daisyUI CDN <link>; plain class selectors here out-specify
   daisyUI's :where() wrappers. Do NOT strip these overrides — they ARE the design.
   Cosmetic Tailwind utilities (shadow-*, rounded-*, border-base-300) are removed
   from templates so the browser runtime can't override this layer. */

/* ---------- theme ---------- */
[data-theme="neo-brutalism"] {
  color-scheme: light;
  --color-base-100: #fefce8;
  --color-base-200: #fef9c3;
  --color-base-300: #fde68a;
  --color-base-content: #1c1917;
  --color-primary: #fde047;
  --color-primary-content: #0a0a0a;
  --color-secondary: #ec4899;
  --color-secondary-content: #ffffff;
  --color-accent: #22d3ee;
  --color-accent-content: #0a0a0a;
  --color-neutral: #0a0a0a;
  --color-neutral-content: #fefce8;
  --color-info: #3b82f6;
  --color-info-content: #ffffff;
  --color-success: #84cc16;
  --color-success-content: #0a0a0a;
  --color-warning: #fb923c;
  --color-warning-content: #0a0a0a;
  --color-error: #ef4444;
  --color-error-content: #ffffff;
  --radius-selector: 0;
  --radius-field: 0;
  --radius-box: 0;
  --size-selector: 0.25rem;
  --size-field: 0.25rem;
  --border: 2px;
  --depth: 0;
  --noise: 0;
}

/* ---------- fonts ---------- */
:root { --nb-font: "Space Grotesk", ui-sans-serif, system-ui, sans-serif; }
html, body, h1, h2, h3, h4, .card-title, .stat-value, .navbar, .btn, .badge, .menu-title {
  font-family: var(--nb-font);
}
body { letter-spacing: -0.01em; }
h1, h2, .card-title, .stat-value { font-weight: 700; letter-spacing: -0.03em; }

/* ---------- hard-shadow tokens ---------- */
:root {
  --nb-ink: #0a0a0a;
  --nb-shadow: 4px 4px 0 var(--nb-ink);
  --nb-shadow-sm: 2px 2px 0 var(--nb-ink);
  --nb-shadow-lg: 6px 6px 0 var(--nb-ink);
}

/* ---------- cards ---------- */
.card {
  border: 2px solid var(--nb-ink);
  border-radius: 0;
  box-shadow: var(--nb-shadow);
  transition: transform .12s ease, box-shadow .12s ease;
}
.card:hover { transform: translate(-2px, -2px); box-shadow: var(--nb-shadow-lg); }

/* ---------- buttons ---------- */
.btn {
  border: 2px solid var(--nb-ink);
  border-radius: 0;
  box-shadow: var(--nb-shadow-sm);
  font-weight: 700;
  transition: transform .08s ease, box-shadow .08s ease;
}
.btn:hover { transform: translate(-1px, -1px); box-shadow: var(--nb-shadow); }
.btn:active, .btn.btn-active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--nb-ink); }
.btn:disabled, .btn[disabled] { box-shadow: none; opacity: .6; }
.btn-ghost { box-shadow: none; }
.btn-ghost:hover { box-shadow: var(--nb-shadow-sm); }

/* ---------- badges ---------- */
.badge { border: 2px solid var(--nb-ink); border-radius: 0; font-weight: 700; }

/* ---------- form fields ---------- */
.input, .select, .textarea {
  border: 2px solid var(--nb-ink);
  border-radius: 0;
  box-shadow: var(--nb-shadow-sm);
}
.input:focus, .select:focus, .textarea:focus {
  outline: none;
  box-shadow: var(--nb-shadow);
  border-color: var(--nb-ink);
}

/* ---------- alerts ---------- */
.alert { border: 2px solid var(--nb-ink); border-radius: 0; box-shadow: var(--nb-shadow-sm); }

/* ---------- stats ---------- */
.stat { border: 2px solid var(--nb-ink); border-radius: 0; box-shadow: var(--nb-shadow); }

/* ---------- tabs ---------- */
.tab { border-radius: 0; font-weight: 700; }
.tabs-bordered { gap: .25rem; }

/* ---------- timeline ---------- */
.timeline-box { border: 2px solid var(--nb-ink); border-radius: 0; box-shadow: var(--nb-shadow-sm); }

/* ---------- dropdowns / menus ---------- */
.dropdown-content { border: 2px solid var(--nb-ink); border-radius: 0; box-shadow: var(--nb-shadow); }

/* ---------- navbar / footer ---------- */
.navbar { border-bottom: 3px solid var(--nb-ink); }
.footer { border-top: 3px solid var(--nb-ink); }

/* ---------- avatars (round is the one neo-brutalism exception) ---------- */
.avatar > div { border: 2px solid var(--nb-ink); }

/* ---------- helpers ---------- */
html { scroll-behavior: smooth; }

.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.htmx-indicator { display: none; }
.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator { display: inline-flex; }

::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--color-base-200); }
::-webkit-scrollbar-thumb { background: var(--nb-ink); border-radius: 0; }
