/* ═══════════════════════════════════════════════════════════════════
   NEO-BRUTALIST DESIGN SYSTEM
   Inspired by ethereum.org / Bruddle — pastel, thick borders, hard shadows
   All classes prefixed nb- to keep them scoped to the Overview page POC.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Palette variables ──
   Defined on [data-ui-style="brutalist"] (the <html> element) so they are
   available globally — including inside .navbar-top which sits *outside*
   .nb-page in the DOM.  The .nb-page block below inherits these. */
[data-ui-style="brutalist"] {
  font-family: 'Space Grotesk', sans-serif;
  --nb-bg:        #F9F6F1;
  --nb-surface:   #FFFFFF;
  --nb-border:    #1a1a1a;
  --nb-shadow:    #1a1a1a;
  --nb-text:      #1a1a1a;
  --nb-text-soft: #6b7280;
  --nb-accent:    #8B5CF6;
  --nb-accent-bg: #EDE9FE;

  --nb-pink:      #FFD6E8;
  --nb-purple:    #E9D5FF;
  --nb-mint:      #D1FAE5;
  --nb-yellow:    #FEF9C3;
  --nb-blue:      #DBEAFE;
  --nb-peach:     #FFE4D6;
  --nb-lavender:  #E8E0FF;

  --nb-radius:    10px;
  --nb-radius-sm: 6px;
  --nb-border-w:  2px;
  --nb-shadow-x:  3px;
  --nb-shadow-y:  3px;
}

/* ── Dark mode palette ── */
[data-bs-theme="dark"][data-ui-style="brutalist"] {
  --nb-bg:        #141318;
  --nb-surface:   #1e1d24;
  --nb-border:    #4a4858;
  --nb-shadow:    #0a090e;
  --nb-text:      #e8e6ef;
  --nb-text-soft: #9895a8;
  --nb-accent:    #a78bfa;
  --nb-accent-bg: #2d2640;

  --nb-pink:      #3d2433;
  --nb-purple:    #2d2640;
  --nb-mint:      #1a3329;
  --nb-yellow:    #33301a;
  --nb-blue:      #1a2533;
  --nb-peach:     #33281e;
  --nb-lavender:  #28243d;
}

/* Page-level background — nb-page is now on the .content div itself */
.nb-page {
  background: var(--nb-bg);
  min-height: 100vh;
}

/* ── Card (static — data display, no hover lift) ── */
.nb-card {
  background: var(--nb-surface);
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius);
  box-shadow: var(--nb-shadow-x) var(--nb-shadow-y) 0 var(--nb-shadow);
}
.nb-card--flat {
  box-shadow: none;
}

/* ── Clickable card — obvious interactive affordance ── */
a.nb-card,
.nb-card--clickable {
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
a.nb-card:hover,
.nb-card--clickable:hover {
  transform: translate(-2px, -2px);
  box-shadow: calc(var(--nb-shadow-x) + 2px) calc(var(--nb-shadow-y) + 2px) 0 var(--nb-shadow);
  background: var(--nb-accent-bg);
}

/* Pastel accent backgrounds for cards */
.nb-card--pink    { background: var(--nb-pink); }
.nb-card--purple  { background: var(--nb-purple); }
.nb-card--mint    { background: var(--nb-mint); }
.nb-card--yellow  { background: var(--nb-yellow); }
.nb-card--blue    { background: var(--nb-blue); }
.nb-card--peach   { background: var(--nb-peach); }
.nb-card--lavender { background: var(--nb-lavender); }
.nb-card--accent  { background: var(--nb-accent-bg); }

/* ── Button ── */
.nb-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1.25rem;
  font-weight: 700;
  font-size: 0.875rem;
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm);
  box-shadow: 2px 2px 0 var(--nb-shadow);
  cursor: pointer;
  transition: transform .1s ease, box-shadow .1s ease;
  text-decoration: none;
  color: var(--nb-text);
  background: var(--nb-surface);
}
.nb-btn:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--nb-shadow);
  color: var(--nb-text);
  text-decoration: none;
}
.nb-btn:active {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--nb-shadow);
}
.nb-btn--accent {
  background: var(--nb-accent);
  color: #fff;
}
.nb-btn--accent:hover {
  color: #fff;
}
.nb-btn--sm {
  padding: 0.35rem 0.85rem;
  font-size: 0.8rem;
}

/* ── Progress bar ── */
.nb-progress {
  height: 12px;
  background: var(--nb-bg);
  border: 2px solid var(--nb-border);
  border-radius: 50px;
  overflow: hidden;
}
.nb-progress__bar {
  height: 100%;
  border-radius: 50px;
  background: var(--nb-accent);
  transition: width .4s ease;
}
.nb-progress__bar--mint { background: #34D399; }
.nb-progress__bar--pink { background: #F472B6; }
.nb-progress__bar--blue { background: #60A5FA; }

/* ── Badge / pill ── */
.nb-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.65rem;
  font-weight: 700;
  font-size: 0.75rem;
  border: 2px solid var(--nb-border);
  border-radius: 50px;
  background: var(--nb-surface);
}
.nb-badge--accent {
  background: var(--nb-accent);
  color: #fff;
}
.nb-badge--mint  { background: var(--nb-mint); }
.nb-badge--pink  { background: var(--nb-pink); }
.nb-badge--yellow { background: var(--nb-yellow); }

/* ── Stat number ── */
.nb-stat-value {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.1;
  color: var(--nb-text);
}
.nb-stat-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--nb-text-soft);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ── Icon circle ── */
.nb-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  border: 2px solid var(--nb-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
}

/* ── Typography scale ──
   Unified sizes used across all pages. Reference these classes instead of
   inline font-size/font-weight to keep the app visually consistent.
   ────────────────────────────────────────────────────────────────────── */
.nb-title {
  font-weight: 800;
  font-size: 1.75rem;
  color: var(--nb-text);
  letter-spacing: -0.02em;
}
.nb-subtitle {
  font-weight: 800;
  font-size: 0.95rem;
  color: var(--nb-text);
}
.nb-body {
  font-size: 0.85rem;
  color: var(--nb-text-soft);
}
.nb-caption {
  font-size: 0.75rem;
  color: var(--nb-text-soft);
}
.nb-text-soft {
  color: var(--nb-text-soft);
}

/* Inline stat (used in page headers, compact KPI cards) */
.nb-stat-inline__value {
  font-size: 1.4rem;
  font-weight: 900;
  line-height: 1;
  color: var(--nb-text);
}
.nb-stat-inline__label {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--nb-text-soft);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ── List row ── */
.nb-list-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem 1rem;
  border-bottom: 1.5px solid var(--nb-border);
  transition: background .1s ease, padding-left .1s ease;
}
.nb-list-item:last-child {
  border-bottom: none;
}
/* Clickable rows get a clear hover shift + accent tint */
a.nb-list-item {
  cursor: pointer;
}
a.nb-list-item:hover {
  background: var(--nb-accent-bg);
  padding-left: 1.25rem;
}
a.nb-list-item:hover .nb-list-item__name {
  color: var(--nb-accent);
}

/* ── Checkbox (brutalist) ── */
.nb-check {
  width: 22px;
  height: 22px;
  border: 2.5px solid var(--nb-border);
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--nb-surface);
  font-size: 0.7rem;
}
.nb-check--done {
  background: var(--nb-mint);
}

/* ── Tabs ── */
.nb-tabs {
  display: flex;
  gap: 0;
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm);
  overflow: hidden;
  width: fit-content;
}
.nb-tab {
  padding: 0.45rem 1rem;
  font-weight: 700;
  font-size: 0.8rem;
  cursor: pointer;
  background: var(--nb-surface);
  border-right: var(--nb-border-w) solid var(--nb-border);
  color: var(--nb-text);
  text-decoration: none;
  transition: background .1s ease;
}
.nb-tab:last-child {
  border-right: none;
}
.nb-tab:hover {
  background: var(--nb-bg);
  color: var(--nb-text);
  text-decoration: none;
}
.nb-tab--active {
  background: var(--nb-accent);
  color: #fff;
}
.nb-tab--active:hover {
  background: var(--nb-accent);
  color: #fff;
}

/* ── Greeting tag ── */
.nb-greeting {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--nb-text-soft);
}

/* ── Hero card (welcome) ── */
.nb-hero {
  background: var(--nb-lavender);
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius);
  box-shadow: var(--nb-shadow-x) var(--nb-shadow-y) 0 var(--nb-shadow);
  position: relative;
  overflow: hidden;
}
.nb-hero__doodle {
  position: absolute;
  right: -20px;
  bottom: -20px;
  font-size: 140px;
  opacity: 0.12;
  transform: rotate(-12deg);
  pointer-events: none;
}

/* ── Sidebar info card ── */
.nb-info-card {
  background: var(--nb-surface);
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius);
  box-shadow: var(--nb-shadow-x) var(--nb-shadow-y) 0 var(--nb-shadow);
}
.nb-info-card__header {
  padding: 0.75rem 1rem;
  border-bottom: var(--nb-border-w) solid var(--nb-border);
  font-weight: 800;
  font-size: 0.85rem;
}
.nb-info-card__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid var(--nb-border);
  display: inline-block;
}
.nb-info-card__body {
  padding: 1rem;
}

/* ── Quick action grid ── */
.nb-action {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.5rem;
  padding: 1.25rem 0.75rem;
  text-decoration: none;
  color: var(--nb-text);
  border-radius: var(--nb-radius-sm);
  transition: background .1s ease;
}
.nb-action:hover {
  color: var(--nb-accent);
  text-decoration: none;
  background: var(--nb-accent-bg);
}
.nb-action__icon {
  width: 48px;
  height: 48px;
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  transition: transform .12s ease, box-shadow .12s ease;
  box-shadow: 2px 2px 0 var(--nb-shadow);
}
.nb-action:hover .nb-action__icon {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--nb-shadow);
}
.nb-action__label {
  font-weight: 700;
  font-size: 0.8rem;
}

/* ── Section header inside nb-card (FAQ, Support, Team Details) ── */
.nb-card__header {
  padding: 0.75rem 1rem;
  border-bottom: var(--nb-border-w) solid var(--nb-border);
  font-weight: 800;
  font-size: 0.85rem;
  color: var(--nb-text);
}
.nb-card__body {
  padding: 1rem;
}

/* ── Auth page card ── */
.nb-card--auth {
  max-width: 440px;
  margin: 0 auto;
}

/* ── Responsive ── */
@media (max-width: 767.98px) {
  .nb-stat-value { font-size: 1.5rem; }
  .nb-hero__doodle { font-size: 80px; }
}

/* ═══════════════════════════════════════════════════════════════════
   MICRO-INTERACTIONS & CREATIVE POLISH
   ═══════════════════════════════════════════════════════════════════ */

/* ── Subtle dot-grid background pattern on the app content area ── */
[data-ui-style="brutalist"] .nb-page {
  background-image:
    radial-gradient(circle, var(--nb-border) 0.5px, transparent 0.5px);
  background-size: 24px 24px;
  background-position: 0 0;
  background-color: var(--nb-bg);
}
/* Dark mode — softer dots */
[data-bs-theme="dark"][data-ui-style="brutalist"] .nb-page,
[data-bs--theme="dark"] [data-ui-style="brutalist"] .nb-page {
  background-image:
    radial-gradient(circle, rgba(255,255,255,.04) 0.5px, transparent 0.5px);
}

/* ── Custom scrollbar (brutalist: thin, accent-colored) ── */
[data-ui-style="brutalist"] ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
[data-ui-style="brutalist"] ::-webkit-scrollbar-track {
  background: var(--nb-bg);
}
[data-ui-style="brutalist"] ::-webkit-scrollbar-thumb {
  background: var(--nb-accent);
  border-radius: 4px;
  border: 1px solid var(--nb-border);
}
[data-ui-style="brutalist"] ::-webkit-scrollbar-thumb:hover {
  background: var(--nb-accent-bg);
}

/* ── Focus ring — brutalist offset ── */
[data-ui-style="brutalist"] .form-control:focus,
[data-ui-style="brutalist"] .form-select:focus {
  box-shadow: 3px 3px 0 var(--nb-accent) !important;
  border-color: var(--nb-accent) !important;
  outline: none;
}

/* (active indicator on sidebar — kept clean, just the left border) */

/* ── Smooth page transitions ── */
[data-ui-style="brutalist"] .nb-page {
  animation: nbFadeIn .3s ease;
}
@keyframes nbFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Card entrance stagger (works with JS IntersectionObserver or just on load) ── */
[data-ui-style="brutalist"] .nb-card {
  animation: nbCardIn .35s ease backwards;
}
[data-ui-style="brutalist"] .row > :nth-child(1) .nb-card { animation-delay: .05s; }
[data-ui-style="brutalist"] .row > :nth-child(2) .nb-card { animation-delay: .1s; }
[data-ui-style="brutalist"] .row > :nth-child(3) .nb-card { animation-delay: .15s; }
[data-ui-style="brutalist"] .row > :nth-child(4) .nb-card { animation-delay: .2s; }
@keyframes nbCardIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Selection color ── */
[data-ui-style="brutalist"] ::selection {
  background: var(--nb-lavender);
  color: var(--nb-text);
}

/* ═══════════════════════════════════════════════════════════════════
   BRUTALIST GLOBAL OVERRIDES
   Targets standard Bootstrap classes when data-ui-style="brutalist"
   so ALL pages get the brutalist look without touching individual views.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Page background (not on landing — it has its own) ── */
html[data-ui-style="brutalist"] {
  background-color: #F9F6F1;
}
[data-bs-theme="dark"][data-ui-style="brutalist"] {
  background-color: #141318;
}
[data-ui-style="brutalist"] .content {
  background: var(--nb-bg) !important;
  transition: margin-left 0.2s ease;
}
[data-ui-style="brutalist"] .content:has(.pp-hero) {
  background: transparent !important;
  background-image: none !important;
}
/* Landing page feature cards — brutalist frame with pastels */
[data-ui-style="brutalist"] .pp-feature-card.card {
  border: 2.5px solid #1a1a1a !important;
  box-shadow: 4px 4px 0 #1a1a1a;
  border-radius: 12px !important;
}

/* ── Cards ── */
[data-ui-style="brutalist"] .card {
  background: var(--nb-surface);
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius) !important;
  box-shadow: var(--nb-shadow-x) var(--nb-shadow-y) 0 var(--nb-shadow);
}
[data-ui-style="brutalist"] .card-header {
  background: var(--nb-surface);
  border-bottom: var(--nb-border-w) solid var(--nb-border) !important;
  font-weight: 700;
}
[data-ui-style="brutalist"] .card .card-body {
  color: var(--nb-text);
}

/* Clickable cards (links) get hover */
[data-ui-style="brutalist"] a.card {
  transition: transform .12s ease, box-shadow .12s ease;
  text-decoration: none;
}
[data-ui-style="brutalist"] a.card:hover {
  transform: translate(-2px, -2px);
  box-shadow: calc(var(--nb-shadow-x) + 2px) calc(var(--nb-shadow-y) + 2px) 0 var(--nb-shadow);
}

/* ── Buttons ── */
[data-ui-style="brutalist"] .btn-primary,
[data-ui-style="brutalist"] .btn-success,
[data-ui-style="brutalist"] .btn-info,
[data-ui-style="brutalist"] .btn-warning,
[data-ui-style="brutalist"] .btn-danger {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius-sm) !important;
  box-shadow: 2px 2px 0 var(--nb-shadow);
  font-weight: 700;
  transition: transform .1s ease, box-shadow .1s ease;
}
[data-ui-style="brutalist"] .btn-primary:hover,
[data-ui-style="brutalist"] .btn-success:hover,
[data-ui-style="brutalist"] .btn-info:hover,
[data-ui-style="brutalist"] .btn-warning:hover,
[data-ui-style="brutalist"] .btn-danger:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--nb-shadow);
}
[data-ui-style="brutalist"] .btn-primary:active,
[data-ui-style="brutalist"] .btn-success:active,
[data-ui-style="brutalist"] .btn-info:active,
[data-ui-style="brutalist"] .btn-warning:active,
[data-ui-style="brutalist"] .btn-danger:active {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--nb-shadow);
}
[data-ui-style="brutalist"] .btn-primary {
  background: var(--nb-accent) !important;
  border-color: var(--nb-border) !important;
}

/* Outline / secondary buttons */
[data-ui-style="brutalist"] .btn-outline-primary,
[data-ui-style="brutalist"] .btn-outline-secondary,
[data-ui-style="brutalist"] .btn-outline-success,
[data-ui-style="brutalist"] .btn-outline-warning,
[data-ui-style="brutalist"] .btn-outline-danger,
[data-ui-style="brutalist"] .btn-phoenix-default,
[data-ui-style="brutalist"] .btn-phoenix-danger,
[data-ui-style="brutalist"] .btn-light,
[data-ui-style="brutalist"] .btn-secondary {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius-sm) !important;
  box-shadow: 2px 2px 0 var(--nb-shadow);
  font-weight: 700;
  background: var(--nb-surface);
  color: var(--nb-text);
  transition: transform .1s ease, box-shadow .1s ease;
}
[data-ui-style="brutalist"] .btn-outline-primary:hover,
[data-ui-style="brutalist"] .btn-outline-secondary:hover,
[data-ui-style="brutalist"] .btn-outline-success:hover,
[data-ui-style="brutalist"] .btn-outline-warning:hover,
[data-ui-style="brutalist"] .btn-outline-danger:hover,
[data-ui-style="brutalist"] .btn-phoenix-default:hover,
[data-ui-style="brutalist"] .btn-phoenix-danger:hover,
[data-ui-style="brutalist"] .btn-light:hover,
[data-ui-style="brutalist"] .btn-secondary:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--nb-shadow);
  background: var(--nb-accent-bg);
  color: var(--nb-text);
}

/* ── Badges ── */
[data-ui-style="brutalist"] .badge {
  border: 2px solid var(--nb-border);
  border-radius: 50px;
  font-weight: 700;
}
[data-ui-style="brutalist"] .badge.bg-primary,
[data-ui-style="brutalist"] .badge.bg-primary-subtle {
  background: var(--nb-accent) !important;
  color: #fff !important;
}
[data-ui-style="brutalist"] .badge.bg-success,
[data-ui-style="brutalist"] .badge.bg-success-subtle { background: var(--nb-mint) !important; color: var(--nb-text) !important; }
[data-ui-style="brutalist"] .badge.bg-danger,
[data-ui-style="brutalist"] .badge.bg-danger-subtle  { background: var(--nb-pink) !important; color: var(--nb-text) !important; }
[data-ui-style="brutalist"] .badge.bg-warning,
[data-ui-style="brutalist"] .badge.bg-warning-subtle { background: var(--nb-yellow) !important; color: var(--nb-text) !important; }
[data-ui-style="brutalist"] .badge.bg-info,
[data-ui-style="brutalist"] .badge.bg-info-subtle    { background: var(--nb-blue) !important; color: var(--nb-text) !important; }
[data-ui-style="brutalist"] .badge.bg-body-secondary  { background: var(--nb-surface) !important; }

/* ── Progress bars ── */
[data-ui-style="brutalist"] .progress {
  height: 12px;
  border: 2px solid var(--nb-border);
  border-radius: 50px;
  background: var(--nb-bg);
}
[data-ui-style="brutalist"] .progress-bar {
  border-radius: 50px;
}
[data-ui-style="brutalist"] .progress-bar.bg-primary {
  background: var(--nb-accent) !important;
}

/* ── Form labels ── */
[data-ui-style="brutalist"] .form-label,
[data-ui-style="brutalist"] .col-form-label {
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--nb-text);
}

/* ── Form controls ── */
[data-ui-style="brutalist"] .form-control,
[data-ui-style="brutalist"] .form-select {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius-sm) !important;
  background: var(--nb-surface);
  color: var(--nb-text);
  font-weight: 600;
  transition: border-color .15s ease, box-shadow .15s ease, transform .1s ease;
}
[data-ui-style="brutalist"] .form-control:focus,
[data-ui-style="brutalist"] .form-select:focus {
  box-shadow: 3px 3px 0 var(--nb-accent) !important;
  border-color: var(--nb-accent) !important;
  transform: translate(-1px, -1px);
}
[data-ui-style="brutalist"] .form-control::placeholder {
  color: var(--nb-text-soft);
  font-weight: 400;
}
[data-ui-style="brutalist"] textarea.form-control {
  border-width: var(--nb-border-w) !important;
}
[data-ui-style="brutalist"] .form-check-input {
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: 4px;
  width: 1.15em;
  height: 1.15em;
}
[data-ui-style="brutalist"] .form-check-input:checked {
  background-color: var(--nb-accent);
  border-color: var(--nb-border);
}
[data-ui-style="brutalist"] .form-check-input:focus {
  box-shadow: 2px 2px 0 var(--nb-accent);
  border-color: var(--nb-accent);
}
[data-ui-style="brutalist"] .form-text {
  color: var(--nb-text-soft);
  font-size: 0.78rem;
}

/* ── Input groups ── */
[data-ui-style="brutalist"] .input-group .form-control {
  border-right-width: 0 !important;
}
[data-ui-style="brutalist"] .input-group .form-control:focus {
  border-right-width: var(--nb-border-w) !important;
}
[data-ui-style="brutalist"] .input-group .btn,
[data-ui-style="brutalist"] .input-group .input-group-text {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius-sm) !important;
  background: var(--nb-surface);
  color: var(--nb-text);
  font-weight: 700;
}

/* ── Password toggle button (inside form-icon-container) ── */
[data-ui-style="brutalist"] [data-password] .btn[data-password-toggle] {
  border-left: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: 0 var(--nb-radius-sm) var(--nb-radius-sm) 0 !important;
  background: var(--nb-bg);
  color: var(--nb-text-soft);
  transition: background .1s ease, color .1s ease;
}
[data-ui-style="brutalist"] [data-password] .btn[data-password-toggle]:hover {
  background: var(--nb-accent-bg);
  color: var(--nb-accent);
}

/* ── Form icon container ── */
[data-ui-style="brutalist"] .form-icon-container .form-icon {
  color: var(--nb-text-soft) !important;
}

/* ── Auth links ── */
.nb-link {
  color: var(--nb-accent);
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color .15s ease;
}
.nb-link:hover {
  color: var(--nb-accent);
  border-bottom-color: var(--nb-accent);
}

/* ── Alerts ── */
[data-ui-style="brutalist"] .alert {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius) !important;
  box-shadow: var(--nb-shadow-x) var(--nb-shadow-y) 0 var(--nb-shadow);
}
[data-ui-style="brutalist"] .alert-success { background: var(--nb-mint) !important; color: var(--nb-text) !important; }
[data-ui-style="brutalist"] .alert-warning { background: var(--nb-yellow) !important; color: var(--nb-text) !important; }
[data-ui-style="brutalist"] .alert-danger  { background: var(--nb-pink) !important; color: var(--nb-text) !important; }
[data-ui-style="brutalist"] .alert-info    { background: var(--nb-blue) !important; color: var(--nb-text) !important; }

/* ── Accordion (FAQ) ── */
[data-ui-style="brutalist"] .accordion {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius) !important;
  box-shadow: var(--nb-shadow-x) var(--nb-shadow-y) 0 var(--nb-shadow);
  overflow: hidden;
}
[data-ui-style="brutalist"] .accordion-item {
  border-bottom: var(--nb-border-w) solid var(--nb-border) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-top: 0 !important;
  background: var(--nb-surface);
}
[data-ui-style="brutalist"] .accordion-item:last-child {
  border-bottom: 0 !important;
}
[data-ui-style="brutalist"] .accordion-button {
  font-weight: 800;
  font-size: 0.95rem;
  background: var(--nb-surface);
  color: var(--nb-text);
  padding: 1rem 1.25rem;
  transition: background .15s ease;
}
[data-ui-style="brutalist"] .accordion-button:hover {
  background: var(--nb-bg);
}
[data-ui-style="brutalist"] .accordion-button:not(.collapsed) {
  background: var(--nb-accent-bg);
  color: var(--nb-accent);
  box-shadow: none;
}
[data-ui-style="brutalist"] .accordion-button:focus {
  box-shadow: none;
  border-color: var(--nb-accent);
}
[data-ui-style="brutalist"] .accordion-button::after {
  width: 1.1rem;
  height: 1.1rem;
}
[data-ui-style="brutalist"] .accordion-body {
  border-top: 1.5px dashed var(--nb-border);
  padding: 1rem 1.25rem;
  color: var(--nb-text);
  line-height: 1.7;
}

/* ── Tables ── */
[data-ui-style="brutalist"] .table {
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius);
  overflow: hidden;
  color: var(--nb-text);
}
[data-ui-style="brutalist"] .table thead th {
  background: var(--nb-lavender);
  border-bottom: var(--nb-border-w) solid var(--nb-border) !important;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  padding: 0.7rem 0.85rem;
  color: var(--nb-text);
}
[data-ui-style="brutalist"] .table td {
  border-bottom: 1.5px solid var(--nb-border);
  padding: 0.65rem 0.85rem;
  vertical-align: middle;
}
[data-ui-style="brutalist"] .table tbody tr:hover {
  background: var(--nb-accent-bg);
}
[data-ui-style="brutalist"] .table-wrapper,
[data-ui-style="brutalist"] .table-responsive {
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius);
  overflow: hidden;
  box-shadow: var(--nb-shadow-x) var(--nb-shadow-y) 0 var(--nb-shadow);
}
[data-ui-style="brutalist"] .table-wrapper .table,
[data-ui-style="brutalist"] .table-responsive .table {
  border: 0;
  margin-bottom: 0;
}

/* ── List groups ── */
[data-ui-style="brutalist"] .list-group {
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius);
  overflow: hidden;
  box-shadow: var(--nb-shadow-x) var(--nb-shadow-y) 0 var(--nb-shadow);
}
[data-ui-style="brutalist"] .list-group-item {
  border-color: var(--nb-border);
  background: var(--nb-surface);
  color: var(--nb-text);
  font-weight: 600;
  padding: 0.75rem 1rem;
}
[data-ui-style="brutalist"] .list-group-item:hover {
  background: var(--nb-accent-bg);
}
[data-ui-style="brutalist"] .list-group-item.active {
  background: var(--nb-accent);
  border-color: var(--nb-border);
  color: #fff;
}

/* ── Modals ── */
[data-ui-style="brutalist"] .modal-content {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius) !important;
  box-shadow: 8px 8px 0 var(--nb-shadow);
  background: var(--nb-surface);
  overflow: hidden;
}
[data-ui-style="brutalist"] .modal-header {
  background: var(--nb-lavender);
  border-bottom: var(--nb-border-w) solid var(--nb-border) !important;
  padding: 1rem 1.25rem;
}
[data-ui-style="brutalist"] .modal-title {
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--nb-text);
}
[data-ui-style="brutalist"] .modal-body {
  padding: 1.25rem;
}
[data-ui-style="brutalist"] .modal-footer {
  border-top: var(--nb-border-w) solid var(--nb-border) !important;
  padding: 0.85rem 1.25rem;
  background: var(--nb-bg);
}

/* ── Close button (modal, alert) ── */
[data-ui-style="brutalist"] .btn-close {
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm);
  opacity: 1;
  padding: 0.4rem;
  transition: transform .1s ease, box-shadow .1s ease;
}
[data-ui-style="brutalist"] .btn-close:hover {
  transform: translate(-1px, -1px);
  box-shadow: 2px 2px 0 var(--nb-shadow);
}

/* ── Dropdown menus ── */
[data-ui-style="brutalist"] .dropdown-menu {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius-sm) !important;
  box-shadow: var(--nb-shadow-x) var(--nb-shadow-y) 0 var(--nb-shadow);
  background: var(--nb-surface);
}
[data-ui-style="brutalist"] .dropdown-item:hover,
[data-ui-style="brutalist"] .dropdown-item:focus {
  background: var(--nb-accent-bg);
  color: var(--nb-accent);
}

/* ── Nav tabs (wallet detail tabs etc.) ── */
[data-ui-style="brutalist"] .nav-underline .nav-link.active,
[data-ui-style="brutalist"] .nav-tabs .nav-link.active {
  font-weight: 800;
  color: var(--nb-accent) !important;
  border-bottom: 3px solid var(--nb-accent) !important;
}
[data-ui-style="brutalist"] .nav-underline .nav-link,
[data-ui-style="brutalist"] .nav-tabs .nav-link {
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--nb-text-soft);
  transition: color .15s ease, border-color .15s ease;
  padding: 0.6rem 1rem;
  border-bottom: 3px solid transparent;
}
[data-ui-style="brutalist"] .nav-underline .nav-link:hover,
[data-ui-style="brutalist"] .nav-tabs .nav-link:hover {
  color: var(--nb-accent);
  border-bottom-color: var(--nb-accent) !important;
}
[data-ui-style="brutalist"] .nav-underline .nav-link i,
[data-ui-style="brutalist"] .nav-tabs .nav-link i {
  font-size: 1rem;
}

/* ── Headings ── */
[data-ui-style="brutalist"] .content h1,
[data-ui-style="brutalist"] .content h2,
[data-ui-style="brutalist"] .content h3,
[data-ui-style="brutalist"] .content h4,
[data-ui-style="brutalist"] .content h5 {
  color: var(--nb-text);
  font-weight: 800;
  letter-spacing: -0.01em;
}

/* ── Text utility overrides ── */
[data-ui-style="brutalist"] .content .text-muted {
  color: var(--nb-text-soft) !important;
}
[data-ui-style="brutalist"] .content .text-primary {
  color: var(--nb-accent) !important;
}
/* Prevent .text-primary from overriding badge text when bg matches accent */
[data-ui-style="brutalist"] .badge.bg-primary.text-primary,
[data-ui-style="brutalist"] .badge.bg-primary-subtle.text-primary {
  color: #fff !important;
}

/* ── Pagination ── */
[data-ui-style="brutalist"] .page-link {
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm) !important;
  font-weight: 700;
  color: var(--nb-text);
}
[data-ui-style="brutalist"] .page-item.active .page-link {
  background: var(--nb-accent);
  border-color: var(--nb-border);
  color: #fff;
}

/* ── Card > table — remove double border ── */
[data-ui-style="brutalist"] .card .table,
[data-ui-style="brutalist"] .nb-card .table {
  border: 0 !important;
  box-shadow: none;
  margin-bottom: 0;
}
[data-ui-style="brutalist"] .card .table-responsive,
[data-ui-style="brutalist"] .nb-card .table-responsive {
  border: 0 !important;
  box-shadow: none;
  border-radius: 0;
}

/* ── Left sidebar ── */
[data-ui-style="brutalist"] .navbar-vertical {
  border-right: var(--nb-border-w) solid var(--nb-border) !important;
  background: var(--nb-surface) !important;
}
/* Ensure sidebar stays fixed when expanded */
@media (min-width: 992px) {
  html[data-ui-style="brutalist"]:not(.navbar-vertical-collapsed) .navbar-vertical.navbar-expand-lg {
    position: fixed !important;
  }
  /* Collapsed mode: FALCON uses position:absolute, respect it */
  html[data-ui-style="brutalist"].navbar-vertical-collapsed .navbar-vertical.navbar-expand-lg {
    position: absolute !important;
  }
}
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content {
  background: var(--nb-surface);
  overflow-y: auto;
}

/* Nav link base — specificity must beat FALCON's (0,5,0) desktop rules */
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content .navbar-nav .nav-link {
  border-radius: var(--nb-radius-sm);
  margin: 2px 0.5rem;
  padding: 0.5rem 0.75rem;
  font-weight: 600;
  color: var(--nb-text);
  transition: all .15s ease;
  border: 2px solid transparent;
  position: relative;
}

/* Nav link hover — lift + pastel glow */
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content .navbar-nav .nav-link:hover {
  background: var(--nb-accent-bg);
  transform: translateX(3px);
  border-color: transparent;
}

/* Nav link active — bold pill with left accent */
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content .navbar-nav .nav-link.active {
  font-weight: 800;
  background: var(--nb-accent-bg);
  color: var(--nb-accent);
  border-left: var(--nb-border-w) solid var(--nb-accent);
}

/* Section-colored active states */
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content [data-nb-section="purple"] .nav-link.active {
  background: var(--nb-purple);
  border-left-color: var(--nb-accent);
  color: var(--nb-accent);
}
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content [data-nb-section="blue"] .nav-link.active {
  background: var(--nb-blue);
  border-left-color: #3b82f6;
  color: #2563eb;
}
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content [data-nb-section="mint"] .nav-link.active {
  background: var(--nb-mint);
  border-left-color: #10b981;
  color: #059669;
}
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content [data-nb-section="pink"] .nav-link.active {
  background: var(--nb-pink);
  border-left-color: #ec4899;
  color: #db2777;
}

/* Section-colored hover states */
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content [data-nb-section="purple"] .nav-link:hover {
  background: var(--nb-purple);
}
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content [data-nb-section="blue"] .nav-link:hover {
  background: var(--nb-blue);
}
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content [data-nb-section="mint"] .nav-link:hover {
  background: var(--nb-mint);
}
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content [data-nb-section="pink"] .nav-link:hover {
  background: var(--nb-pink);
}

/* ── Nav icon pill backgrounds ── */
.nb-nav-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  font-size: 0.7rem;
  transition: all .15s ease;
  flex-shrink: 0;
}
.nb-nav-icon--purple { background: var(--nb-purple); color: #7c3aed; }
.nb-nav-icon--blue   { background: var(--nb-blue);   color: #2563eb; }
.nb-nav-icon--mint   { background: var(--nb-mint);    color: #059669; }
.nb-nav-icon--pink   { background: var(--nb-pink);    color: #db2777; }
.nb-nav-icon--yellow { background: var(--nb-yellow);  color: #d97706; }

/* Brutalist: remove icon pill backgrounds (icon color only) */
[data-ui-style="brutalist"] .nb-nav-icon {
  background: transparent;
}

/* Feather icons inside nav-icon pills */
.nb-nav-icon svg {
  width: 12px;
  height: 12px;
}

/* ── Collapsed sidebar — match page bg so no white gap (brutalist only) ── */
html.navbar-vertical-collapsed[data-ui-style="brutalist"] .navbar-vertical,
html.navbar-vertical-collapsed[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content {
  background: var(--nb-bg, #F9F6F1) !important;
}
/* Center the icon pills in collapsed mode */
html.navbar-vertical-collapsed .navbar-vertical .nav-link-icon {
  display: flex;
  justify-content: center;
  width: 100%;
}
/* Hide the label dots and version badge when collapsed */
html.navbar-vertical-collapsed .nb-label-dot,
html.navbar-vertical-collapsed .nb-sidebar-footer-brand {
  display: none;
}

/* Dark mode collapsed sidebar */
[data-bs-theme="dark"] .nb-nav-icon {
  background: transparent;
}
[data-bs-theme="dark"] .nb-nav-icon--purple { color: #a78bfa; }
[data-bs-theme="dark"] .nb-nav-icon--blue   { color: #60a5fa; }
[data-bs-theme="dark"] .nb-nav-icon--mint   { color: #34d399; }
[data-bs-theme="dark"] .nb-nav-icon--pink   { color: #f472b6; }
[data-bs-theme="dark"] .nb-label-dot {
  border-color: var(--nb-border, #4a4858);
}
[data-bs-theme="dark"] .nb-sidebar-version {
  background: var(--nb-lavender, #28243d);
  border-color: var(--nb-border, #4a4858);
  color: var(--nb-text-soft, #9895a8);
}
html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] .navbar-vertical,
html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content {
  background: #141318 !important;
}

/* Active state — subtle emphasis on icon */
[data-ui-style="brutalist"] .navbar-vertical .nav-link.active .nb-nav-icon {
  box-shadow: 0 0 0 var(--nb-border-w) var(--nb-border);
}

/* ── Collapsed sidebar hover flyouts (brutalist) ── */
@media (min-width: 992px) {
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    border: 2px solid #1a1a1a !important;
    border-radius: 6px !important;
    box-shadow: 3px 3px 0 #1a1a1a;
    background: #FFFFFF !important;
    font-weight: 700;
    color: #1a1a1a;
    padding: 12px 16px;
  }
  /* Arrow — match thick border */
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    border: 2px solid #1a1a1a;
    border-right: 0;
    border-top: 0;
    background: #FFFFFF;
    box-shadow: -2px 2px 0 #1a1a1a;
  }
  /* Section-colored flyout backgrounds */
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] [data-nb-section="purple"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: var(--nb-purple, #E9D5FF) !important;
  }
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] [data-nb-section="purple"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: var(--nb-purple, #E9D5FF);
  }
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] [data-nb-section="blue"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: var(--nb-blue, #DBEAFE) !important;
  }
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] [data-nb-section="blue"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: var(--nb-blue, #DBEAFE);
  }
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] [data-nb-section="mint"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: var(--nb-mint, #D1FAE5) !important;
  }
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] [data-nb-section="mint"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: var(--nb-mint, #D1FAE5);
  }
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] [data-nb-section="pink"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: var(--nb-pink, #FFD6E8) !important;
  }
  html.navbar-vertical-collapsed[data-ui-style="brutalist"] [data-nb-section="pink"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: var(--nb-pink, #FFD6E8);
  }
  /* Dark mode flyouts */
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    border-color: #4a4858 !important;
    box-shadow: 3px 3px 0 #0a090e;
    background: #1e1d24 !important;
    color: #e8e6ef;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    border-color: #4a4858;
    background: #1e1d24;
    box-shadow: -2px 2px 0 #0a090e;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="purple"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: rgba(167, 139, 250, 0.15) !important;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="purple"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: #2d2640;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="blue"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: rgba(96, 165, 250, 0.15) !important;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="blue"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: #1a2533;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="mint"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: rgba(52, 211, 153, 0.15) !important;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="mint"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: #1a3329;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="pink"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: rgba(244, 114, 182, 0.15) !important;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="pink"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: #3d2433;
  }
}

/* ── Section labels with color dot ── */
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-label {
  font-weight: 900;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--nb-text-soft);
  padding: 0.75rem 0.75rem 0.25rem;
  display: flex;
  align-items: center;
  gap: 6px;
}
.nb-label-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 2px;
  border: var(--nb-border-w) solid var(--nb-border);
  flex-shrink: 0;
}

[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-line {
  border-color: var(--nb-border);
  border-width: var(--nb-border-w);
  opacity: 0.15;
  margin: 0.15rem 0.75rem 0.25rem;
}

/* ── Link icon container ── */
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-content .nav-link-icon {
  color: var(--nb-text) !important;
  opacity: 1;
  margin-right: 0.5rem;
}

/* ── Sidebar footer ── */
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-footer {
  border-top: none !important;
  border-right: var(--nb-border-w) solid var(--nb-border) !important;
  background: var(--nb-bg);
  padding-top: 0;
}
.nb-sidebar-footer-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 0.75rem 0;
}
.nb-sidebar-version {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--nb-text-soft);
  background: var(--nb-lavender);
  padding: 2px 8px;
  border-radius: 4px;
  border: 1.5px solid var(--nb-border);
}
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-footer .btn {
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--nb-text-soft);
  transition: all .15s ease;
}
[data-ui-style="brutalist"] .navbar-vertical .navbar-vertical-footer .btn:hover {
  color: var(--nb-accent);
  transform: translateX(-2px);
}

/* ── Top navbar ──
   .navbar-top sits outside .nb-page in the DOM, so nb-* vars are not inherited.
   Use explicit colours + backdrop-blur for a frosted-glass effect while scrolling. */
[data-ui-style="brutalist"] .navbar-top {
  border-bottom: 2.5px solid #1a1a1a !important;
  background: rgba(255,255,255,.85) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
[data-bs-theme="dark"][data-ui-style="brutalist"] .navbar-top {
  border-bottom: 2.5px solid #4a4858 !important;
  background: rgba(30,29,36,.85) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

/* Avatar — square brutalist initial badge */
[data-ui-style="brutalist"] .navbar-top .avatar {
  border: none;
  width: 40px;
  height: 40px;
}
[data-ui-style="brutalist"] .navbar-top .avatar-name {
  width: 40px;
  height: 40px;
  border: 2px solid var(--nb-border);
  border-radius: 5px !important;
  font-weight: 900;
  background: var(--nb-lavender);
  color: var(--nb-text);
  box-shadow: 2px 2px 0 var(--nb-shadow);
  transition: transform .12s ease, box-shadow .12s ease;
}
[data-ui-style="brutalist"] .navbar-top .avatar-name:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--nb-shadow);
}

/* Theme toggle — bold square button */
[data-ui-style="brutalist"] .navbar-top .theme-control-toggle-label {
  border: 2px solid var(--nb-border);
  border-radius: 5px;
  background: var(--nb-yellow);
  box-shadow: 2px 2px 0 var(--nb-shadow);
  transition: transform .12s ease, box-shadow .12s ease;
}
[data-ui-style="brutalist"] .navbar-top .theme-control-toggle-label:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--nb-shadow);
}
/* Dark mode: moon icon gets blue bg */
[data-bs-theme="dark"] [data-ui-style="brutalist"] .navbar-top .theme-control-toggle-label {
  background: var(--nb-blue);
}

/* Notification bell — bold square */
[data-ui-style="brutalist"] .navbar-top .notification-indicator {
  border: 2px solid var(--nb-border);
  border-radius: 5px;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  background: var(--nb-surface);
  box-shadow: 2px 2px 0 var(--nb-shadow);
  transition: transform .12s ease, box-shadow .12s ease;
}
[data-ui-style="brutalist"] .navbar-top .notification-indicator .fa-bell {
  font-size: 20px !important;
}
[data-ui-style="brutalist"] .navbar-top .notification-indicator:hover {
  transform: translate(-2px, -2px);
  box-shadow: 4px 4px 0 var(--nb-shadow);
  background: var(--nb-peach);
}
/* Notification badge — bold count */
[data-ui-style="brutalist"] .notification-indicator-number {
  border: 2px solid var(--nb-border) !important;
  font-weight: 900;
  border-radius: 4px !important;
  box-shadow: 1px 1px 0 var(--nb-shadow);
}
/* User dropdown card — brutalist frame */
[data-ui-style="brutalist"] .dropdown-profile .card {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius) !important;
  box-shadow: 4px 4px 0 var(--nb-shadow) !important;
  overflow: hidden;
}
[data-ui-style="brutalist"] .dropdown-profile .card-body {
  background: var(--nb-lavender);
}
[data-ui-style="brutalist"] .dropdown-profile .card .avatar-xl .avatar-name {
  width: 64px;
  height: 64px;
  font-size: 1.4rem;
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm) !important;
  background: var(--nb-surface);
  box-shadow: 3px 3px 0 var(--nb-shadow);
}
[data-ui-style="brutalist"] .dropdown-profile .nav-link {
  border-radius: var(--nb-radius-sm);
  margin: 1px 0.4rem;
  font-weight: 600;
  transition: all .1s ease;
}
[data-ui-style="brutalist"] .dropdown-profile .nav-link:hover {
  background: var(--nb-accent-bg);
  transform: translateX(3px);
}
[data-ui-style="brutalist"] .dropdown-profile .card-footer {
  border-top: var(--nb-border-w) solid var(--nb-border) !important;
  background: var(--nb-bg);
}
[data-ui-style="brutalist"] .dropdown-profile .card-footer .btn {
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm);
  font-weight: 700;
  box-shadow: 2px 2px 0 var(--nb-shadow);
  transition: all .1s ease;
}
[data-ui-style="brutalist"] .dropdown-profile .card-footer .btn:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--nb-shadow);
}
/* Notification dropdown — brutalist */
[data-ui-style="brutalist"] .dropdown-menu-notification .card-notification {
  border: var(--nb-border-w) solid var(--nb-border) !important;
  border-radius: var(--nb-radius) !important;
  box-shadow: 4px 4px 0 var(--nb-shadow) !important;
}
[data-ui-style="brutalist"] .dropdown-menu-notification .card-header {
  border-bottom: var(--nb-border-w) solid var(--nb-border) !important;
  background: var(--nb-yellow);
  font-weight: 800;
}
[data-ui-style="brutalist"] .dropdown-menu-notification .card-footer {
  border-top: var(--nb-border-w) solid var(--nb-border) !important;
  background: var(--nb-bg);
}
/* Login/register buttons on navbar (unauthenticated) */
[data-ui-style="brutalist"] .navbar-top .btn-phoenix-primary {
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm);
  font-weight: 700;
  box-shadow: 2px 2px 0 var(--nb-shadow);
  transition: all .1s ease;
}
[data-ui-style="brutalist"] .navbar-top .btn-phoenix-primary:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--nb-shadow);
}

/* ── Breadcrumb ── */
[data-ui-style="brutalist"] .breadcrumb-item a {
  color: var(--nb-accent);
  font-weight: 600;
  text-decoration: none;
}
[data-ui-style="brutalist"] .breadcrumb-item.active {
  color: var(--nb-text-soft);
  font-weight: 700;
}

/* ── Avatars / circle initials ── */
[data-ui-style="brutalist"] .avatar,
.nb-avatar {
  width: 38px;
  height: 38px;
  border-radius: var(--nb-radius-sm);
  border: var(--nb-border-w) solid var(--nb-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.85rem;
  flex-shrink: 0;
}
.nb-avatar--sm {
  width: 30px;
  height: 30px;
  font-size: 0.72rem;
}
.nb-avatar--lg {
  width: 52px;
  height: 52px;
  font-size: 1.1rem;
}
.nb-avatar--pink    { background: var(--nb-pink); }
.nb-avatar--purple  { background: var(--nb-purple); }
.nb-avatar--mint    { background: var(--nb-mint); }
.nb-avatar--yellow  { background: var(--nb-yellow); }
.nb-avatar--blue    { background: var(--nb-blue); }
.nb-avatar--peach   { background: var(--nb-peach); }

/* ── Divider ── */
.nb-divider {
  border: none;
  border-top: var(--nb-border-w) solid var(--nb-border);
  margin: 1rem 0;
}
.nb-divider--dashed {
  border-top-style: dashed;
}

/* ── Empty state ── */
.nb-empty {
  text-align: center;
  padding: 3rem 1.5rem;
  color: var(--nb-text-soft);
}
.nb-empty__icon {
  font-size: 2.5rem;
  margin-bottom: 0.75rem;
  opacity: 0.5;
}
.nb-empty__text {
  font-weight: 600;
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
  color: var(--nb-text);
}
.nb-empty__sub {
  font-size: 0.85rem;
  color: var(--nb-text-soft);
}

/* ═══════════════════════════════════════════════════════════════════
   CLASSIC MODE — neutralize nb-* classes back to FALCON defaults
   Active when <html data-ui-style="classic">
   ═══════════════════════════════════════════════════════════════════ */

/* Reset content wrapper — only neutralise nb-page background;
   leave padding/margin untouched so FALCON's .content rules
   (padding-top based on --phoenix-navbar-top-height) stay intact. */
[data-ui-style="classic"] .content.nb-page,
[data-ui-style="classic"] .nb-page {
  background: transparent;
  min-height: auto;
}

[data-ui-style="classic"] .nb-card,
[data-ui-style="classic"] .nb-info-card {
  background: var(--phoenix-emphasis-bg, #fff);
  border: 1px solid var(--phoenix-border-color, #d8e2ef);
  border-radius: 0.375rem;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}
[data-ui-style="classic"] .nb-card--flat {
  box-shadow: none;
}
[data-ui-style="classic"] .nb-card--peach,
[data-ui-style="classic"] .nb-card--mint,
[data-ui-style="classic"] .nb-card--blue,
[data-ui-style="classic"] .nb-card--pink,
[data-ui-style="classic"] .nb-card--purple,
[data-ui-style="classic"] .nb-card--yellow,
[data-ui-style="classic"] .nb-card--lavender,
[data-ui-style="classic"] .nb-card--accent {
  background: var(--phoenix-emphasis-bg, #fff);
}
[data-ui-style="classic"] a.nb-card:hover,
[data-ui-style="classic"] .nb-card--clickable:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
  background: var(--phoenix-emphasis-bg, #fff);
}

[data-ui-style="classic"] .nb-hero {
  background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
  border: 0;
  border-radius: 0.375rem;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
  color: #fff;
}
[data-ui-style="classic"] .nb-hero .nb-title,
[data-ui-style="classic"] .nb-hero .nb-badge { color: #fff; }

[data-ui-style="classic"] .nb-btn {
  border: 1px solid transparent;
  border-radius: 0.375rem;
  box-shadow: none;
  font-weight: 600;
}
[data-ui-style="classic"] .nb-btn:hover  { transform: none; box-shadow: none; }
[data-ui-style="classic"] .nb-btn:active { transform: none; box-shadow: none; }
[data-ui-style="classic"] .nb-btn--accent {
  background: var(--phoenix-primary, #3874ff);
  border-color: var(--phoenix-primary, #3874ff);
}

[data-ui-style="classic"] .nb-progress {
  height: 6px;
  border: 0;
  background: var(--phoenix-border-color, #d8e2ef);
  border-radius: 50px;
}

[data-ui-style="classic"] .nb-badge {
  border: 0;
  border-radius: 0.375rem;
  background: var(--phoenix-body-highlight-bg, #edf2f9);
  font-weight: 600;
}
[data-ui-style="classic"] .nb-badge--accent {
  background: var(--phoenix-primary, #3874ff);
  color: #fff;
}
[data-ui-style="classic"] .nb-badge--mint  { background: #e0faef; }
[data-ui-style="classic"] .nb-badge--pink  { background: #fce7eb; }
[data-ui-style="classic"] .nb-badge--yellow { background: #fef3c7; }

[data-ui-style="classic"] .nb-icon {
  border: 0;
  border-radius: 50%;
}

[data-ui-style="classic"] .nb-title {
  font-weight: 700;
  color: var(--phoenix-body-color, #344050);
}
[data-ui-style="classic"] .nb-subtitle {
  color: var(--phoenix-body-color, #344050);
}
[data-ui-style="classic"] .nb-greeting {
  color: var(--phoenix-secondary-color, #748194);
}
[data-ui-style="classic"] .nb-stat-value {
  color: var(--phoenix-body-color, #344050);
}
[data-ui-style="classic"] .nb-stat-label {
  color: var(--phoenix-secondary-color, #748194);
}

[data-ui-style="classic"] .nb-list-item {
  border-bottom: 1px solid var(--phoenix-border-color, #d8e2ef);
}
[data-ui-style="classic"] a.nb-list-item:hover {
  background: var(--phoenix-body-highlight-bg, #f5f7fa);
  padding-left: 1rem;
}
[data-ui-style="classic"] a.nb-list-item:hover .nb-list-item__name {
  color: var(--phoenix-primary, #3874ff);
}

[data-ui-style="classic"] .nb-check {
  border: 1.5px solid var(--phoenix-border-color, #d8e2ef);
  border-radius: 4px;
}
[data-ui-style="classic"] .nb-check--done {
  background: #e0faef;
}

[data-ui-style="classic"] .nb-tabs {
  border: 1px solid var(--phoenix-border-color, #d8e2ef);
  border-radius: 0.375rem;
}
[data-ui-style="classic"] .nb-tab {
  border-right: 1px solid var(--phoenix-border-color, #d8e2ef);
  background: var(--phoenix-body-bg, #fff);
  color: var(--phoenix-body-color, #344050);
}
[data-ui-style="classic"] .nb-tab--active {
  background: var(--phoenix-primary, #3874ff);
  color: #fff;
}

[data-ui-style="classic"] .nb-info-card__header {
  border-bottom: 1px solid var(--phoenix-border-color, #d8e2ef);
  font-weight: 700;
}
[data-ui-style="classic"] .nb-info-card__dot {
  border: 0;
}

[data-ui-style="classic"] .nb-action:hover {
  background: var(--phoenix-body-highlight-bg, #f5f7fa);
  color: var(--phoenix-primary, #3874ff);
}
[data-ui-style="classic"] .nb-action__icon {
  border: 0;
  border-radius: 50%;
  box-shadow: none;
}
[data-ui-style="classic"] .nb-action:hover .nb-action__icon {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* ── Classic mode — left navbar: neutralize nb-* decorations ── */
/* Icon pills → transparent, inherit color from FALCON nav-link */
[data-ui-style="classic"] .nb-nav-icon {
  background: transparent !important;
  border: 0 !important;
}
[data-ui-style="classic"] .nb-nav-icon--purple,
[data-ui-style="classic"] .nb-nav-icon--blue,
[data-ui-style="classic"] .nb-nav-icon--mint,
[data-ui-style="classic"] .nb-nav-icon--pink,
[data-ui-style="classic"] .nb-nav-icon--yellow {
  color: inherit !important;
  background: transparent !important;
}
/* Section color dots → hidden */
[data-ui-style="classic"] .nb-label-dot {
  display: none !important;
}
/* Sidebar footer brand/version → hidden */
[data-ui-style="classic"] .nb-sidebar-footer-brand {
  display: none;
}
/* Section-specific data attributes have no effect in classic */
[data-ui-style="classic"] [data-nb-section] .nav-link.active {
  color: var(--phoenix-navbar-vertical-link-active-color);
  background: transparent;
  border-left: 0;
}
[data-ui-style="classic"] [data-nb-section] .nav-link:hover {
  background-color: var(--phoenix-navbar-vertical-link-hover-bg);
}

/* ── Theme picker cards on profile page ── */
.pp-theme-picker {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.pp-theme-card {
  flex: 1;
  min-width: 200px;
  padding: 1.25rem;
  border: 2px solid var(--phoenix-border-color, #d8e2ef);
  border-radius: 0.75rem;
  cursor: pointer;
  text-align: center;
  transition: border-color .15s ease, box-shadow .15s ease;
  background: var(--phoenix-body-bg, #fff);
}
.pp-theme-card:hover {
  border-color: var(--phoenix-primary, #3874ff);
}
.pp-theme-card--active {
  border-color: var(--phoenix-primary, #3874ff);
  box-shadow: 0 0 0 3px rgba(56, 116, 255, .2);
}
.pp-theme-card__preview {
  height: 80px;
  border-radius: 0.5rem;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem;
}
.pp-theme-card__preview--brutalist {
  background: #F9F6F1;
  border: 2px solid #1a1a1a;
}
.pp-theme-card__preview--brutalist .pp-tp-item {
  width: 40px;
  height: 28px;
  border: 2px solid #1a1a1a;
  border-radius: 4px;
  box-shadow: 2px 2px 0 #1a1a1a;
}
.pp-theme-card__preview--brutalist .pp-tp-item:nth-child(1) { background: #FFD6E8; }
.pp-theme-card__preview--brutalist .pp-tp-item:nth-child(2) { background: #D1FAE5; }
.pp-theme-card__preview--brutalist .pp-tp-item:nth-child(3) { background: #DBEAFE; }

.pp-theme-card__preview--classic {
  background: #edf2f9;
  border: 1px solid #d8e2ef;
}
.pp-theme-card__preview--classic .pp-tp-item {
  width: 40px;
  height: 28px;
  border: 0;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0,0,0,.1);
}
.pp-theme-card__preview--classic .pp-tp-item:nth-child(1) { background: #fff; }
.pp-theme-card__preview--classic .pp-tp-item:nth-child(2) { background: #fff; }
.pp-theme-card__preview--classic .pp-tp-item:nth-child(3) { background: #fff; }

.pp-theme-card__name {
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 0.2rem;
}
.pp-theme-card__desc {
  font-size: 0.78rem;
  color: var(--phoenix-secondary-color, #748194);
}

/* ═══════════════════════════════════════════════════════════════════
   GLOBAL TYPOGRAPHY — readable font-size overrides
   The Phoenix/FALCON scale uses very small sizes for fs-9..fs-11.
   These overrides ensure minimum readability across the whole app.
   ═══════════════════════════════════════════════════════════════════ */

/* Bump smallest sizes to be comfortably readable */
.fs-9  { font-size: 0.85rem !important; }   /* was 0.8rem (12.8px) → 13.6px */
.fs-10 { font-size: 0.75rem !important; }   /* was 0.64rem (10.24px) → 12px */
.fs-11 { font-size: 0.65rem !important; }   /* was 0.512rem (8.2px) → 10.4px */

/* Tables: ensure cell text is never below 13px */
.table td,
.table th {
  font-size: max(0.85rem, 13px);
}

/* Form controls: readable input text */
.form-control,
.form-select {
  font-size: max(0.85rem, 13px);
}
.form-control-sm,
.form-select-sm {
  font-size: max(0.8rem, 12.8px);
}

/* Navbar links: ensure sidebar & top nav are readable */
.nav-link-text {
  font-size: 0.875rem;
}
.navbar-vertical-label {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
}

/* Badges: slightly larger for readability */
.badge {
  font-size: max(0.72rem, 11.5px);
}

/* Dropdown items */
.dropdown-item {
  font-size: 0.875rem;
}

/* Better line-height for small text */
.fs-9, .fs-10, .fs-11,
.badge, .btn-sm {
  line-height: 1.5;
}

/* ═══════════════════════════════════════════════════════════════════
   VALIDATION STYLES
   ═══════════════════════════════════════════════════════════════════ */

.field-validation-error {
  width: 100%;
  margin-top: 0.25rem;
  font-size: 75%;
  color: var(--phoenix-form-invalid-color);
}

.input-validation-error {
  border-color: var(--phoenix-form-invalid-border-color);
  padding-right: calc(1.49em + 1rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23fa3b1d'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23fa3b1d' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.3725em + 0.25rem) center;
  background-size: calc(0.745em + 0.5rem) calc(0.745em + 0.5rem);
}

  .input-validation-error:focus {
    border-color: var(--phoenix-form-invalid-border-color);
    -webkit-box-shadow: inset 0 1px 2px transparent, 0 0 0 0.25rem rgba(var(--phoenix-danger-rgb), 0.25);
    box-shadow: inset 0 1px 2px transparent, 0 0 0 0.25rem rgba(var(--phoenix-danger-rgb), 0.25);
  }

.validation-summary-errors {
  width: 100%;
  margin-top: 0.25rem;
  font-size: 75%;
  color: var(--phoenix-form-invalid-color);
}

/* ═══════════════════════════════════════════════════════════════════
   LANDING PAGE STYLES
   ═══════════════════════════════════════════════════════════════════ */

/* ── Hero Section ── */
.pp-hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  position: relative;
}

.pp-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #0a0f1e 0%, #0f1a3a 40%, #162050 70%, #1a1045 100%);
  z-index: 0;
}

.pp-hero-grid {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: .06;
  background-image:
    linear-gradient(rgba(56, 116, 255, .4) 1px, transparent 1px),
    linear-gradient(90deg, rgba(56, 116, 255, .4) 1px, transparent 1px);
  background-size: 60px 60px;
}

.pp-hero-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  z-index: 2;
  pointer-events: none;
}
.pp-hero-glow--1 {
  width: 600px;
  height: 600px;
  background: rgba(56, 116, 255, .15);
  top: -10%;
  left: -5%;
}
.pp-hero-glow--2 {
  width: 500px;
  height: 500px;
  background: rgba(124, 58, 237, .12);
  bottom: -15%;
  right: -5%;
}

.pp-hero-screenshot {
  position: relative;
}
.pp-hero-screenshot::before {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 1.25rem;
  background: linear-gradient(135deg, rgba(56, 116, 255, .3), rgba(124, 58, 237, .3));
  z-index: -1;
  filter: blur(20px);
}
.pp-hero-screenshot img {
  box-shadow: 8px 8px 0 rgba(56, 116, 255, .4);
  border: 3px solid rgba(255, 255, 255, .15);
  border-radius: 14px !important;
}

/* Floating animation */
.pp-float {
  animation: ppFloat 6s ease-in-out infinite;
}
@keyframes ppFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-12px); }
}

/* Glowing CTA button */
.pp-btn-glow {
  box-shadow: 0 0 30px rgba(56, 116, 255, .35);
  transition: box-shadow .3s ease;
}
.pp-btn-glow:hover {
  box-shadow: 0 0 50px rgba(56, 116, 255, .55);
}

/* ── Stats Bar — brutalist thick dividers ── */
.pp-stats-bar {
  background: var(--phoenix-body-bg);
  border-top: 3px solid #1a1a1a;
  border-bottom: 3px solid #1a1a1a;
}

.pp-stat-item {
  padding: 1rem 0;
}

/* ── Feature Cards — brutalist borders + hard shadows ── */
.pp-feature-card {
  background: var(--phoenix-body-bg);
  border: 2.5px solid #1a1a1a !important;
  border-radius: 12px !important;
  transition: transform .2s ease, box-shadow .2s ease;
  box-shadow: 4px 4px 0 #1a1a1a;
}
.pp-feature-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 7px 7px 0 #1a1a1a;
}

/* Rotating pastel backgrounds for feature cards */
.pp-feature-card:nth-child(1) .pp-feature-card { background: #FFF8FC; }
.pp-feature-card:nth-child(2) .pp-feature-card { background: #F8FFFC; }
.pp-feature-card:nth-child(3) .pp-feature-card { background: #F8F8FF; }
.pp-feature-card:nth-child(4) .pp-feature-card { background: #FFFCF0; }

.pp-feature-icon {
  width: 56px;
  height: 56px;
  border-radius: 10px;
  border: 2.5px solid #1a1a1a;
  box-shadow: 3px 3px 0 #1a1a1a;
  background: linear-gradient(135deg, rgba(56, 116, 255, .12), rgba(124, 58, 237, .12));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: var(--phoenix-primary);
  transition: transform .2s ease, box-shadow .2s ease;
}
.pp-feature-card:hover .pp-feature-icon {
  transform: translate(-2px, -2px) rotate(-5deg);
  box-shadow: 5px 5px 0 #1a1a1a;
}

/* ── Product Showcase ── */
.pp-showcase {
  background: var(--phoenix-body-highlight-bg, var(--phoenix-body-bg));
}

.pp-screenshot-wrapper {
  position: relative;
}
.pp-screenshot-wrapper::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 1.1rem;
  background: linear-gradient(135deg, rgba(56, 116, 255, .15), rgba(124, 58, 237, .08));
  z-index: -1;
  filter: blur(16px);
}
.pp-screenshot-wrapper img {
  box-shadow: 6px 6px 0 #1a1a1a;
  border: 3px solid #1a1a1a;
  border-radius: 12px !important;
  transition: transform .3s ease, box-shadow .3s ease;
}
.pp-screenshot-wrapper:hover img {
  transform: translate(-3px, -3px);
  box-shadow: 9px 9px 0 #1a1a1a;
}

/* ── How It Works — brutalist step cards ── */
.pp-step-card {
  background: var(--phoenix-body-bg);
  border: 2.5px solid #1a1a1a;
  border-radius: 12px !important;
  box-shadow: 4px 4px 0 #1a1a1a;
  transition: transform .2s ease, box-shadow .2s ease;
}
.pp-step-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 7px 7px 0 #1a1a1a;
}

/* Pastel tints for each step */
.col-md-4:nth-child(1) .pp-step-card { background: #FFF4F9; }
.col-md-4:nth-child(2) .pp-step-card { background: #F0FFF4; }
.col-md-4:nth-child(3) .pp-step-card { background: #F0F4FF; }

.pp-step-number {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  width: 38px;
  height: 38px;
  border-radius: 8px;
  border: 2.5px solid #1a1a1a;
  background: linear-gradient(135deg, #3874ff, #7c3aed);
  color: #fff;
  font-weight: 900;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 3px 3px 0 #1a1a1a;
}

.pp-step-icon {
  width: 64px;
  height: 64px;
  border-radius: 12px;
  border: 2px solid #1a1a1a;
  box-shadow: 3px 3px 0 #1a1a1a;
  background: linear-gradient(135deg, rgba(56, 116, 255, .08), rgba(124, 58, 237, .08));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: var(--phoenix-primary);
  transition: transform .2s ease;
}
.pp-step-card:hover .pp-step-icon {
  transform: rotate(-5deg);
}

.pp-step-connector {
  position: relative;
  height: 0;
  margin-top: -100px;
  pointer-events: none;
}

/* ── CTA Section ── */
.pp-cta {
  position: relative;
}
.pp-cta-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #0a0f1e 0%, #162050 50%, #1a1045 100%);
  z-index: 0;
}
.pp-cta-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  z-index: 1;
  pointer-events: none;
}
.pp-cta-glow--1 {
  width: 400px;
  height: 400px;
  background: rgba(56, 116, 255, .12);
  top: -20%;
  right: 10%;
}
.pp-cta-glow--2 {
  width: 350px;
  height: 350px;
  background: rgba(124, 58, 237, .1);
  bottom: -25%;
  left: 10%;
}

/* ── Footer — brutalist divider ── */
.pp-footer {
  background: var(--phoenix-body-bg);
  border-top: 3px solid #1a1a1a;
}

/* ── Scroll Animations ── */
.pp-fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .7s ease, transform .7s ease;
}
.pp-fade-up.pp-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Responsive tweaks ── */
@media (max-width: 991.98px) {
  .pp-hero {
    min-height: auto;
    padding-top: 6rem;
    padding-bottom: 3rem;
  }
  .pp-hero .display-3 {
    font-size: 2.2rem;
  }
  .pp-hero-glow--1,
  .pp-hero-glow--2 {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .pp-hero .display-3 {
    font-size: 1.8rem;
  }
  .pp-stats-bar .display-5 {
    font-size: 1.5rem;
  }
}

/* ── Landing page: force light appearance (safeguard for any dark-mode leak) ── */
.content:has(.pp-hero) {
  color-scheme: light;
}
.pp-stats-bar,
.pp-feature-card,
.pp-step-card,
.pp-showcase,
.pp-footer {
  color-scheme: light;
  --phoenix-body-bg: #fff;
  --phoenix-body-color: #1e2022;
  --phoenix-border-color: #e3e6ed;
}
.pp-stats-bar .text-body-tertiary,
.pp-feature-card .text-body-tertiary,
.pp-step-card .text-body-tertiary,
.pp-showcase .text-body-tertiary,
.pp-footer .text-body-tertiary {
  color: #6b7280 !important;
}
.pp-feature-card h5,
.pp-step-card h5,
.pp-showcase h3,
.pp-showcase h2,
section:not(.pp-hero):not(.pp-cta) h2,
section:not(.pp-hero):not(.pp-cta) h3 {
  color: #1e2022 !important;
}
section:not(.pp-hero):not(.pp-cta) .text-body-tertiary {
  color: #6b7280 !important;
}
/* ═══════════════════════════════════════════════════════════════════
   PLOT SEARCH PAGE — Recherche Parcellaire (Neo-Brutalist)
   ═══════════════════════════════════════════════════════════════════ */

/* ── Commune autocomplete dropdown ── */
.pp-autocomplete-list {
  position: absolute;
  z-index: 1050;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--nb-surface, var(--phoenix-body-bg));
  border: 2px solid var(--nb-border, var(--phoenix-border-color));
  border-top: none;
  border-radius: 0 0 var(--nb-radius-sm) var(--nb-radius-sm);
  box-shadow: 3px 3px 0 var(--nb-shadow, rgba(0, 0, 0, .1));
  max-height: 280px;
  overflow-y: auto;
  display: none;
}
.pp-autocomplete-list.show {
  display: block;
}

.pp-autocomplete-item {
  display: flex;
  flex-direction: column;
  padding: 0.5rem 0.75rem;
  cursor: pointer;
  border-bottom: 1.5px solid var(--nb-border, var(--phoenix-border-color));
  transition: all .12s ease;
  font-weight: 600;
}
.pp-autocomplete-item:last-child {
  border-bottom: none;
}
.pp-autocomplete-item:hover,
.pp-autocomplete-item.active {
  background: var(--nb-blue, rgba(56, 116, 255, .06));
  transform: translateX(3px);
}

.pp-autocomplete-empty {
  padding: 0.75rem;
  text-align: center;
  color: var(--nb-text-soft);
  font-size: 0.85rem;
  font-weight: 600;
}

/* ── Result card grid ── */
.pp-result-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.4rem;
}
.pp-result-item {
  display: flex;
  flex-direction: column;
  padding: 0.4rem 0.6rem;
  background: var(--nb-blue, #f8f9fa);
  border-radius: var(--nb-radius-sm);
  border: 1.5px solid var(--nb-border);
}
.pp-result-item-full {
  grid-column: 1 / -1;
  background: var(--nb-mint, #f8f9fa);
}
.pp-result-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--nb-text-soft);
  margin-bottom: 0.15rem;
  font-weight: 800;
}
.pp-result-value {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--nb-text);
}

/* ── Recent searches ── */
.pp-recent-item {
  padding: 0.4rem 0.6rem;
  border-radius: var(--nb-radius-sm);
  cursor: pointer;
  transition: all .12s ease;
  font-weight: 600;
  border: 1.5px solid transparent;
}
.pp-recent-item:hover {
  background: var(--nb-yellow);
  border-color: var(--nb-border);
  transform: translateX(2px);
}

/* ── Map crosshair cursor ── */
#searchMap.leaflet-container {
  cursor: grab;
}

/* ── Section pills (commune browse) — brutalist ── */
.pp-section-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.75rem;
  border-radius: var(--nb-radius-sm);
  background: var(--nb-surface);
  color: var(--nb-text);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  border: 2px solid var(--nb-border);
  transition: all .12s ease;
  box-shadow: 2px 2px 0 var(--nb-shadow);
}
.pp-section-pill:hover {
  background: var(--nb-accent-bg);
  color: var(--nb-accent);
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--nb-shadow);
}

/* ── Dark mode overrides ── */
[data-bs-theme="dark"] .pp-autocomplete-list {
  box-shadow: 3px 3px 0 var(--nb-shadow, rgba(0, 0, 0, .3));
}
[data-bs-theme="dark"] .pp-result-item {
  background: var(--nb-blue, rgba(255, 255, 255, .04));
}
[data-bs-theme="dark"] .pp-result-item.pp-result-item-full {
  background: var(--nb-mint, rgba(255, 255, 255, .04));
}
[data-bs-theme="dark"] .pp-recent-item:hover {
  background: var(--nb-yellow, rgba(255, 255, 255, .06));
}
[data-bs-theme="dark"] .pp-section-pill {
  background: var(--nb-surface, rgba(255, 255, 255, .06));
}

/* ── Responsive: search page ── */
@media (max-width: 991.98px) {
  #searchMap {
    min-height: 350px !important;
  }
}
@media (max-width: 575.98px) {
  #searchMap {
    min-height: 280px !important;
  }
  .pp-result-grid {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   TEAMS PAGE
   ═══════════════════════════════════════════════════════════════════ */

/* ── Team cards ── */
.pp-team-card {
  transition: transform .2s ease, box-shadow .2s ease;
  border: 1px solid var(--phoenix-border-color);
}
.pp-team-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, .08);
}

[data-bs-theme="dark"] .pp-team-card:hover {
  box-shadow: 0 12px 40px rgba(0, 0, 0, .25);
}

/* ═══════════════════════════════════════════════════════════════════
   PROFILE PAGE
   ═══════════════════════════════════════════════════════════════════ */

/* ── Avatar circle ── */
.pp-profile-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--nb-lavender, #E9D5FF), var(--nb-blue, #DBEAFE));
  border: 3px solid var(--nb-border, #1a1a1a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--nb-text, #1a1a1a);
  flex-shrink: 0;
  box-shadow: 3px 3px 0 var(--nb-border, #1a1a1a);
  transition: transform 0.2s ease;
}
.pp-profile-avatar:hover {
  transform: rotate(-5deg) scale(1.05);
}
[data-bs-theme="dark"] .pp-profile-avatar {
  background: linear-gradient(135deg, rgba(167,139,250,0.3), rgba(96,165,250,0.3));
  border-color: #4a4858;
  color: #e8e6ef;
  box-shadow: 3px 3px 0 #0a090e;
}

/* ── Stats badges in header ── */
.pp-profile-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.5rem 1rem;
  border: 2px solid var(--nb-border, #1a1a1a);
  border-radius: 8px;
  background: var(--nb-surface, #fff);
  box-shadow: 2px 2px 0 var(--nb-border, #1a1a1a);
  min-width: 80px;
  transition: transform 0.15s ease;
}
.pp-profile-stat:hover {
  transform: translateY(-2px);
}
.pp-profile-stat__value {
  font-size: 1.3rem;
  font-weight: 900;
  color: var(--nb-accent, #7c3aed);
  line-height: 1.1;
}
.pp-profile-stat__label {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--nb-text-soft, #666);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
[data-bs-theme="dark"] .pp-profile-stat {
  border-color: #4a4858;
  background: #1e1d24;
  box-shadow: 2px 2px 0 #0a090e;
}
[data-bs-theme="dark"] .pp-profile-stat__value {
  color: #a78bfa;
}

/* ── Alerts ── */
.nb-alert {
  padding: 0.75rem 1rem;
  border-radius: 8px;
  border: 2px solid var(--nb-border, #1a1a1a);
  font-weight: 600;
  font-size: 0.9rem;
  box-shadow: 2px 2px 0 var(--nb-border, #1a1a1a);
}
.nb-alert--success {
  background: var(--nb-mint, #D1FAE5);
  color: #065f46;
}
.nb-alert--danger {
  background: #FEE2E2;
  color: #991b1b;
  border-color: #ef4444;
  box-shadow: 2px 2px 0 #ef4444;
}
[data-bs-theme="dark"] .nb-alert--success {
  background: rgba(52, 211, 153, 0.15);
  color: #6ee7b7;
  border-color: #4a4858;
  box-shadow: 2px 2px 0 #0a090e;
}
[data-bs-theme="dark"] .nb-alert--danger {
  background: rgba(239, 68, 68, 0.15);
  color: #fca5a5;
  border-color: #4a4858;
  box-shadow: 2px 2px 0 #0a090e;
}

/* ── Password field toggle ── */
.pp-pw-input {
  padding-right: 2.5rem !important;
}
.pp-pw-toggle {
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--nb-text-soft, #888);
  cursor: pointer;
  padding: 0.25rem;
  font-size: 0.85rem;
  transition: color 0.15s;
}
.pp-pw-toggle:hover {
  color: var(--nb-accent, #7c3aed);
}

/* ── Password strength bar ── */
.pp-pw-strength {
  height: 4px;
  border-radius: 2px;
  background: var(--nb-surface, #e5e7eb);
  overflow: hidden;
}
.pp-pw-strength__bar {
  height: 100%;
  width: 0;
  border-radius: 2px;
  transition: width 0.3s ease, background 0.3s ease;
}
[data-bs-theme="dark"] .pp-pw-strength {
  background: #2a2935;
}

/* ── Quick-link cards ── */
.pp-profile-link-card {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
}
.pp-profile-link-card:hover {
  transform: translateY(-2px);
  box-shadow: 3px 3px 0 var(--nb-border, #1a1a1a);
}
[data-bs-theme="dark"] .pp-profile-link-card:hover {
  box-shadow: 3px 3px 0 #0a090e;
}

/* ── Classic mode profile toning ── */
[data-ui-style="classic"] .pp-profile-avatar {
  border-width: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
[data-ui-style="classic"] .pp-profile-stat {
  border-width: 1px;
  border-color: var(--phoenix-border-color);
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  border-radius: 10px;
}
[data-ui-style="classic"] .nb-alert {
  border-width: 1px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  border-radius: 10px;
}
[data-ui-style="classic"] .pp-profile-link-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

/* ═══════════════════════════════════════════════════════════════════
   COLLAPSED SIDEBAR FLYOUTS — POLISH
   ═══════════════════════════════════════════════════════════════════ */

/* ── Classic mode flyout styling ── */
@media (min-width: 992px) {
  html.navbar-vertical-collapsed[data-ui-style="classic"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    border: 1px solid var(--phoenix-border-color) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
    background: #fff !important;
    font-weight: 600;
    color: #344050;
    padding: 10px 14px;
  }
  html.navbar-vertical-collapsed[data-ui-style="classic"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    border: 1px solid var(--phoenix-border-color);
    border-right: 0;
    border-top: 0;
    background: #fff;
    box-shadow: -1px 1px 2px rgba(0,0,0,0.06);
  }
  /* Classic dark */
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="classic"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: #1e1e2e !important;
    color: #cdd6f4;
    border-color: #45475a !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.3);
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="classic"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: #1e1e2e;
    border-color: #45475a;
    box-shadow: -1px 1px 2px rgba(0,0,0,0.15);
  }
}

/* ── Dark mode flyout refinements — better contrast & readability ── */
@media (min-width: 992px) {
  /* Brighter text on dark flyouts */
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    font-weight: 700;
    letter-spacing: 0.01em;
    border-color: #5b5873 !important;
    background: #232230 !important;
    color: #f0eef7;
    box-shadow: 3px 3px 0 #121120;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    border-color: #5b5873;
    background: #232230;
    box-shadow: -2px 2px 0 #121120;
  }

  /* Section dark flyouts — richer tints */
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="purple"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: rgba(167, 139, 250, 0.2) !important;
    border-color: rgba(167, 139, 250, 0.4) !important;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="purple"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: rgba(167, 139, 250, 0.2);
    border-color: rgba(167, 139, 250, 0.4);
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="blue"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: rgba(96, 165, 250, 0.2) !important;
    border-color: rgba(96, 165, 250, 0.4) !important;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="blue"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: rgba(96, 165, 250, 0.2);
    border-color: rgba(96, 165, 250, 0.4);
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="mint"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: rgba(52, 211, 153, 0.2) !important;
    border-color: rgba(52, 211, 153, 0.4) !important;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="mint"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: rgba(52, 211, 153, 0.2);
    border-color: rgba(52, 211, 153, 0.4);
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="pink"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text {
    background: rgba(244, 114, 182, 0.2) !important;
    border-color: rgba(244, 114, 182, 0.4) !important;
  }
  html.navbar-vertical-collapsed[data-bs-theme="dark"][data-ui-style="brutalist"] [data-nb-section="pink"] .nav-item-wrapper:hover .nav-link-text-wrapper .nav-link-text:after {
    background: rgba(244, 114, 182, 0.2);
    border-color: rgba(244, 114, 182, 0.4);
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   WALLET INDEX — Sort buttons, View toggle, List mode, Stats
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Sort buttons ── */
.nb-sort-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.3rem 0.7rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--nb-text-soft);
  background: var(--nb-surface);
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm);
  cursor: pointer;
  transition: all 0.15s ease;
}
.nb-sort-btn:hover {
  color: var(--nb-accent);
  background: var(--nb-accent-bg);
  transform: translate(-1px, -1px);
  box-shadow: 2px 2px 0 var(--nb-border);
}
.nb-sort-btn.asc,
.nb-sort-btn.desc {
  color: #fff;
  background: var(--nb-accent);
  border-color: var(--nb-accent);
  box-shadow: 2px 2px 0 var(--nb-border);
}
.nb-sort-btn.asc::after {
  content: '\f077';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-size: 0.6rem;
  margin-left: 0.2rem;
}
.nb-sort-btn.desc::after {
  content: '\f078';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-size: 0.6rem;
  margin-left: 0.2rem;
}

/* ── View toggle buttons ── */
.nb-view-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  font-size: 0.85rem;
  color: var(--nb-text-soft);
  background: var(--nb-surface);
  border: var(--nb-border-w) solid var(--nb-border);
  border-radius: var(--nb-radius-sm);
  cursor: pointer;
  transition: all 0.15s ease;
}
.nb-view-toggle:hover {
  color: var(--nb-accent);
  background: var(--nb-accent-bg);
}
.nb-view-toggle.active {
  color: #fff;
  background: var(--nb-accent);
  border-color: var(--nb-accent);
  box-shadow: 2px 2px 0 var(--nb-border);
}

/* ── Wallet stat pills (inside cards) ── */
.nb-wallet-stat {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  color: var(--nb-text-soft);
}
.nb-wallet-stat .fas {
  font-size: 0.7rem;
  opacity: 0.65;
}

/* ── List view mode ── */
.wallets-list .wallet-col {
  margin-bottom: 0 !important;
}
.wallets-list .wallet-card {
  border-radius: 0 !important;
  box-shadow: none !important;
  border-bottom: 1.5px solid var(--nb-border) !important;
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
  padding: 0.75rem 1rem !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 1rem;
  background: transparent !important;
}
.wallets-list .wallet-card:hover {
  background: var(--nb-accent-bg) !important;
  transform: none !important;
}
.wallets-list .wallet-card > .d-flex:first-child {
  flex-shrink: 0;
  min-width: 0;
  max-width: 250px;
  margin-bottom: 0 !important;
}
.wallets-list .wallet-stats-grid {
  margin-top: 0 !important;
  flex-shrink: 0;
}
.wallets-list .wallet-card .date {
  margin-top: 0 !important;
  white-space: nowrap;
  margin-left: auto;
}

/* ═══════════════════════════════════════════════════════════════════════
   DASHBOARD — Activity feed
   ═══════════════════════════════════════════════════════════════════════ */

.nb-activity-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.7rem 1rem;
  border-bottom: 1.5px solid var(--nb-border);
  transition: background 0.15s ease;
}
.nb-activity-item:last-child {
  border-bottom: none;
}
.nb-activity-item:hover {
  background: var(--nb-accent-bg);
}
.nb-activity-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: var(--nb-radius-sm);
  border: var(--nb-border-w) solid var(--nb-border);
  font-size: 0.75rem;
  color: var(--nb-text);
  flex-shrink: 0;
}

/* ── Responsive: stack list view on mobile ── */
@@media (max-width: 575.98px) {
  .wallets-list .wallet-card {
    flex-wrap: wrap !important;
    gap: 0.5rem;
  }
  .wallets-list .wallet-card > .d-flex:first-child {
    max-width: 100%;
    width: 100%;
  }
  #walletSortBar {
    width: 100%;
    justify-content: flex-start;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   MAP TITLE OVERLAY & EXPORT
   ═══════════════════════════════════════════════════════════════════ */
.pp-map-title-control {
  transition: opacity .2s ease, transform .2s ease;
}
.pp-map-title--hidden {
  opacity: 0; pointer-events: none; transform: translateY(-8px);
}
.pp-map-title-row {
  display: flex; align-items: center; gap: 6px;
  background: #fff; padding: 6px 10px; border-radius: 12px;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 4px 14px rgba(0,0,0,.08);
}
.pp-map-title-input {
  flex: 1; border: none; outline: none; background: transparent;
  font-size: 14px; font-weight: 700; color: #111827; min-width: 200px;
}
.pp-map-title-input::placeholder { color: #9ca3af; font-weight: 400; }
html[data-bs-theme="dark"] .pp-map-title-row {
  background: #0f172a; border-color: rgba(255,255,255,.08);
  box-shadow: 0 4px 14px rgba(0,0,0,.3);
}
html[data-bs-theme="dark"] .pp-map-title-input { color: #e5e7eb; }
html[data-bs-theme="dark"] .pp-map-title-input::placeholder { color: #6b7280; }
@media print {
  .pp-map-title-control { display: block !important; opacity: 1 !important; pointer-events: auto !important; transform: none !important; }
  .pp-map-title--hidden { opacity: 1; pointer-events: auto; transform: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   MULTI-SELECT ANALYSIS PANEL
   ═══════════════════════════════════════════════════════════════════ */
.pp-analysis-panel {
  animation: ppAnalysisFadeIn .2s ease;
}
@keyframes ppAnalysisFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.pp-analysis-stat {
  text-align: center; padding: 6px 10px;
  background: var(--nb-bg, #f9fafb); border-radius: var(--nb-radius-sm, 6px);
  border: var(--nb-border-w, 2px) solid var(--nb-border, #e5e7eb);
}
.pp-analysis-stat__value {
  font-size: 1.1rem; font-weight: 800; color: var(--nb-text, #111827);
}
.pp-analysis-stat__label {
  font-size: 0.7rem; font-weight: 600; color: var(--nb-text-soft, #6b7280);
  text-transform: uppercase; letter-spacing: 0.03em;
}
.pp-analysis-communes {
  display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px;
}
.pp-analysis-commune-pill {
  font-size: 0.72rem; font-weight: 600; padding: 2px 8px;
  border-radius: 20px; background: var(--nb-blue, #dbeafe);
  color: var(--nb-text, #111827);
}

/* ═══════════════════════════════════════════════════════════════════
   QUICK-ADD SUGGESTION ITEMS
   ═══════════════════════════════════════════════════════════════════ */
.qa-suggestion-item {
  display: flex; align-items: center; gap: 6px; width: 100%;
  padding: 8px 12px; border: none; background: none; cursor: pointer;
  text-align: left; font-size: 13px;
  border-bottom: 1px solid var(--nb-border, rgba(0,0,0,.06));
  color: var(--nb-text, #111827);
}
.qa-suggestion-item:last-child { border-bottom: none; }
.qa-suggestion-item:hover, .qa-suggestion-item.active {
  background: var(--nb-accent-bg, #f3f4f6);
}
html[data-bs-theme="dark"] .qa-suggestion-item { color: #e5e7eb; border-color: rgba(255,255,255,.06); }
html[data-bs-theme="dark"] .qa-suggestion-item:hover,
html[data-bs-theme="dark"] .qa-suggestion-item.active { background: #1e293b; }

/* ═══════════════════════════════════════════════════════════════════
   MAP WIDGET — toolbar, legend, search, pins
   Shared across all pages using map-widget.js + MapCard component
   ═══════════════════════════════════════════════════════════════════ */
.leaflet-control.pp-toolbar {
  background: #fff; padding: 8px; border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  border: 1px solid rgba(0,0,0,.06);
  max-width: 90vw;
}
.pp-btn {
  width: 34px; height: 34px; border-radius: 10px;
  border: 1px solid rgba(0,0,0,.08); background: #fff;
  display: grid; place-items: center; cursor: pointer;
}
.pp-btn:hover { background: #f6f7f9; }
.pp-select, .pp-color {
  height: 34px; border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px; padding: 4px 8px; background: #fff;
}
.pp-select { max-width: 180px; font-size: 12px; }
.pp-select-colorby { max-width: 190px; }
.pp-select-mode { max-width: 190px; }
.pp-pin-dot {
  width: 20px; height: 20px; border-radius: 50%;
  border: 3px solid #fff; box-shadow: 0 0 0 1.5px rgba(0,0,0,.3), 0 2px 6px rgba(0,0,0,.2);
  background: var(--pp-color, #db1414);
  transition: transform .15s ease;
}
.pp-pin:hover .pp-pin-dot { transform: scale(1.25); }
.pp-legend {
  background: #fff; padding: 10px 12px; border-radius: 12px;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  font-size: 12px; line-height: 1.25rem; min-width: 180px;
  max-height: 260px; overflow-y: auto;
}
.pp-legend-title { font-weight: 700; margin-bottom: 6px; }
.pp-legend-row   { display: flex; align-items: center; gap: 8px; }
.pp-swatch       { width: 16px; height: 12px; border-radius: 3px; border: 1px solid rgba(0,0,0,.15); }
@media print { .pp-toolbar, .pp-search { display: none !important; } }

/* ── Map search control ─────────────────────────────────────────── */
.pp-search {
  position: relative; min-width: 220px; max-width: 320px;
}
.pp-search-row {
  display: flex; align-items: center; gap: 6px;
  background: #fff; padding: 6px 10px; border-radius: 12px;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 4px 14px rgba(0,0,0,.08);
  transition: box-shadow .15s ease, border-color .15s ease;
}
.pp-search-row:focus-within {
  border-color: #4f46e5; box-shadow: 0 4px 14px rgba(79,70,229,.15);
}
.pp-search-icon {
  flex-shrink: 0; color: #9ca3af; display: grid; place-items: center;
  width: 18px; height: 18px;
}
.pp-search-input {
  flex: 1; border: none; outline: none; background: transparent;
  font-size: 13px; color: #111827; min-width: 0;
}
.pp-search-input::placeholder { color: #9ca3af; }
.pp-search-clear {
  flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%;
  border: none; background: #f3f4f6; color: #6b7280;
  font-size: 16px; line-height: 1; cursor: pointer;
  display: grid; place-items: center;
}
.pp-search-clear:hover { background: #e5e7eb; color: #374151; }
.pp-search-clear--hidden { display: none; }

.pp-search-results {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0;
  background: #fff; border-radius: 12px;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 8px 30px rgba(0,0,0,.12);
  overflow: hidden; z-index: 1000;
  max-height: 320px; overflow-y: auto;
}
.pp-search-results--hidden { display: none; }
.pp-search-empty {
  padding: 12px 14px; text-align: center;
  color: #9ca3af; font-size: 12px;
}
.pp-search-item {
  display: flex; align-items: center; gap: 8px; width: 100%;
  padding: 8px 12px; border: none; background: none;
  cursor: pointer; text-align: left; font-size: 13px;
  border-bottom: 1px solid rgba(0,0,0,.04); color: #111827;
}
.pp-search-item:last-child { border-bottom: none; }
.pp-search-item:hover, .pp-search-item--active {
  background: #f3f4f6;
}
.pp-search-swatch {
  width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
  border: 1px solid rgba(0,0,0,.1);
}
.pp-search-main { font-weight: 600; white-space: nowrap; }
.pp-search-sub  { color: #6b7280; font-size: 12px; margin-left: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-search-item mark {
  background: rgba(79,70,229,.15); color: inherit;
  border-radius: 2px; padding: 0 1px;
}

/* ── Map tooltip ─────────────────────────────────────────────────── */
.pp-map-tooltip.leaflet-tooltip {
  background: #fff; border: 1px solid rgba(0,0,0,.08);
  border-radius: 8px; padding: 4px 10px; font-size: 12px;
  font-weight: 600; color: #111827;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
}

/* ── Dark mode — map toolbar, legend, search, tooltip ────────── */
html[data-bs-theme="dark"] .leaflet-control.pp-toolbar {
  background: #0f172a; border-color: rgba(255,255,255,.08);
}
html[data-bs-theme="dark"] .pp-btn {
  background: #0f172a; border-color: rgba(255,255,255,.10); color: #e5e7eb; fill: #e5e7eb;
}
html[data-bs-theme="dark"] .pp-btn svg path { fill: #e5e7eb; }
html[data-bs-theme="dark"] .pp-btn:hover { background: #1e293b; }
html[data-bs-theme="dark"] .pp-select {
  background: #0f172a; border-color: rgba(255,255,255,.10); color: #e5e7eb;
}
html[data-bs-theme="dark"] .pp-legend {
  background: #0f172a; border-color: rgba(255,255,255,.08); color: #e5e7eb;
  box-shadow: 0 6px 20px rgba(0,0,0,.4);
}
html[data-bs-theme="dark"] .pp-swatch { border-color: rgba(255,255,255,.15); }
html[data-bs-theme="dark"] .pp-map-tooltip.leaflet-tooltip {
  background: #1e293b; border-color: #334155; color: #e5e7eb;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
}
html[data-bs-theme="dark"] .pp-map-tooltip.leaflet-tooltip::before {
  border-top-color: #334155;
}
html[data-bs-theme="dark"] .pp-search-row {
  background: #0f172a; border-color: rgba(255,255,255,.08);
  box-shadow: 0 4px 14px rgba(0,0,0,.3);
}
html[data-bs-theme="dark"] .pp-search-row:focus-within {
  border-color: #6366f1; box-shadow: 0 4px 14px rgba(99,102,241,.2);
}
html[data-bs-theme="dark"] .pp-search-icon { color: #6b7280; }
html[data-bs-theme="dark"] .pp-search-input { color: #e5e7eb; }
html[data-bs-theme="dark"] .pp-search-input::placeholder { color: #6b7280; }
html[data-bs-theme="dark"] .pp-search-clear { background: #1e293b; color: #9ca3af; }
html[data-bs-theme="dark"] .pp-search-clear:hover { background: #334155; color: #e5e7eb; }
html[data-bs-theme="dark"] .pp-search-results {
  background: #0f172a; border-color: rgba(255,255,255,.08);
  box-shadow: 0 8px 30px rgba(0,0,0,.5);
}
html[data-bs-theme="dark"] .pp-search-empty { color: #6b7280; }
html[data-bs-theme="dark"] .pp-search-item { color: #e5e7eb; border-color: rgba(255,255,255,.04); }
html[data-bs-theme="dark"] .pp-search-item:hover,
html[data-bs-theme="dark"] .pp-search-item--active { background: #1e293b; }
html[data-bs-theme="dark"] .pp-search-sub { color: #9ca3af; }
html[data-bs-theme="dark"] .pp-search-item mark { background: rgba(99,102,241,.25); }
html[data-bs-theme="dark"] .pp-search-swatch { border-color: rgba(255,255,255,.15); }

/* ── Mobile — search ─────────────────────────────────────────────── */
@media (max-width: 575px) {
  .pp-search { min-width: 180px; max-width: 260px; }
  .pp-search-input { font-size: 12px; }
}
