/* ── FONTS ─────────────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=JetBrains+Mono:wght@400;500&family=DM+Sans:wght@300;400;500&display=swap');

/* ── TOKENS ────────────────────────────────────────────────────────────────── */
:root {
  --ink:          #1a1714;
  --ink:          #1a1714;
  --ink-2:        #3d3830;
  --ink-3:        #7a7268;
  --rule:         #d8d2c8;
  --rule-light:   #ede9e3;
  --parchment:    #f7f4ef;
  --cream:        #faf8f5;

  --p-color:      #1e3a5f;
  --p-light:      #e8eff7;
  --p-mid:        #4a7fb5;

  --r-color:      #5f1e1e;
  --r-light:      #f7e8e8;
  --r-mid:        #b54a4a;

  --debt-accent:  #c0392b;
  --community:    #2d6a4f;

  --sidebar-bg:   #1a1714;
  --sidebar-border: rgba(255,255,255,0.08);
}

/* ── BASE ──────────────────────────────────────────────────────────────────── */
body {
  font-family: 'DM Sans', system-ui, sans-serif;
  background: var(--parchment) !important;
  color: var(--ink);
}

/* ── SIDEBAR ───────────────────────────────────────────────────────────────── */

.logo-wrap {
    background: var(--cream);
    padding: 6px 8px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rule-light);

    width: 44px;
    height: 44px;
}

.logo-wrap img {
    height: 24px;
    width: auto;
    display: block;
}


.sidebar,
.offcanvas.bg-dark {
  background: var(--sidebar-bg) !important;
  border-color: var(--sidebar-border) !important;
}

.sidebar .border-bottom,
.sidebar .border-top,
.sidebar .border-end,
.offcanvas .border-bottom,
.offcanvas .border-top {
  border-color: var(--sidebar-border) !important;
}

/* Sidebar brand */
.sidebar-brand-title {
  font-family: 'EB Garamond', serif;
  font-size: 1.15rem;
  font-weight: 500;
  color: #fff;
  line-height: 1.2;
}

/* FL-142 badge in sidebar */
.sidebar .badge.bg-primary {
  background: rgba(74,127,181,0.25) !important;
  color: var(--p-mid) !important;
  border: 1px solid rgba(74,127,181,0.4);
  font-family: 'JetBrains Mono', monospace;
  font-size: .65rem;
  letter-spacing: .1em;
}

/* Nav links */
.sidebar .nav-link,
.offcanvas .nav-link {
  font-family: 'JetBrains Mono', monospace;
  font-size: .75rem;
  color: rgba(255,255,255,0.45) !important;
  padding: .3rem 1rem;
  transition: color .15s, background .15s;
}

.sidebar .nav-link:hover,
.offcanvas .nav-link:hover {
  color: #fff !important;
  background: rgba(255,255,255,.06) !important;
}

.nav-section {
  font-family: 'DM Sans', sans-serif;
  font-size: .6rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,0.25) !important;
  padding: .65rem 1rem .2rem;
}

/* Party form inputs */
.sidebar input.form-control,
.offcanvas input.form-control {
  background: rgba(255,255,255,.05) !important;
  border-color: rgba(255,255,255,.12) !important;
  color: #fff !important;
  font-size: .82rem;
  border-radius: 4px;
}

.sidebar input.form-control::placeholder,
.offcanvas input.form-control::placeholder { color: rgba(255,255,255,.2); }

.sidebar input.form-control:focus,
.offcanvas input.form-control:focus {
  border-color: var(--p-mid) !important;
  box-shadow: 0 0 0 2px rgba(74,127,181,.2);
  background: rgba(255,255,255,.08) !important;
}

.sidebar .form-label,
.offcanvas .form-label {
  color: rgba(255,255,255,.4);
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: .25rem;
}

/* Update Parties button */
.sidebar .btn-outline-primary,
.offcanvas .btn-outline-primary {
  border-color: rgba(74,127,181,.4);
  color: var(--p-mid);
  font-size: .78rem;
}

.sidebar .btn-outline-primary:hover,
.offcanvas .btn-outline-primary:hover {
  background: rgba(74,127,181,.2);
  border-color: rgba(74,127,181,.6);
  color: #7fb9e8;
}

/* Reset button */
.sidebar .btn-outline-danger,
.offcanvas .btn-outline-danger {
  border-color: rgba(192,57,43,.3);
  color: rgba(192,57,43,.6);
  font-size: .78rem;
}

.sidebar .btn-outline-danger:hover,
.offcanvas .btn-outline-danger:hover {
  background: rgba(192,57,43,.15);
  border-color: var(--debt-accent);
  color: #e07070;
}

/* Mobile navbar */
.navbar.bg-dark {
  background: var(--sidebar-bg) !important;
  border-bottom: 1px solid var(--sidebar-border);
}

.navbar-brand { font-family: 'DM Sans', sans-serif; font-size: .9rem; }

/* ── SUMMARY CARDS ─────────────────────────────────────────────────────────── */
.card {
  border-color: var(--rule) !important;
  border-radius: 6px;
  background: var(--cream);
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
}

/* Petitioner card */
.card.border-primary.border-2 {
  border-color: var(--p-color) !important;
}

/* Respondent card */
.card.border-danger.border-2 {
  border-color: var(--r-color) !important;
}

/* Equalization card */
.card.border-success.border-2 { border-color: var(--community) !important; }
.card.border-warning.border-2 { border-color: #c9a227 !important; }

/* Summary name labels */
.card .text-uppercase.text-primary  { color: var(--p-color) !important; font-family: 'DM Sans', sans-serif; font-size: .7rem; letter-spacing: .08em; }
.card .text-uppercase.text-danger   { color: var(--r-color) !important; font-family: 'DM Sans', sans-serif; font-size: .7rem; letter-spacing: .08em; }
.card .text-uppercase.text-muted    { font-family: 'DM Sans', sans-serif; font-size: .7rem; letter-spacing: .08em; }

/* Summary big numbers */
.card .fs-4.fw-bold.text-primary  { font-family: 'EB Garamond', serif; font-size: 2rem !important; font-weight: 500 !important; color: var(--p-color) !important; }
.card .fs-4.fw-bold.text-danger   { font-family: 'EB Garamond', serif; font-size: 2rem !important; font-weight: 500 !important; color: var(--r-color) !important; }
.card .fs-4.fw-bold.text-success  { font-family: 'EB Garamond', serif; font-size: 2rem !important; font-weight: 500 !important; color: var(--community) !important; }
.card .fs-4.fw-bold.text-warning-emphasis { font-family: 'EB Garamond', serif; font-size: 2rem !important; font-weight: 500 !important; color: #8a6a00 !important; }

/* Small breakdown text */
.card .x-small { font-family: 'JetBrains Mono', monospace; font-size: .68rem !important; color: var(--ink-3); }

/* ── SECTION HEADERS ───────────────────────────────────────────────────────── */
.card-header {
  background: var(--parchment) !important;
  border-bottom-color: var(--rule-light) !important;
}

/* Asset section header number badge */
.card-header .badge.bg-light {
  background: var(--rule-light) !important;
  color: var(--ink-3) !important;
  border-color: var(--rule) !important;
  font-family: 'JetBrains Mono', monospace;
  font-size: .72rem;
  min-width: 28px;
}

/* Debt section header */
.card.border-danger-subtle > .card-header {
  background: #fdf5f5 !important;
  border-color: #e8c9c9 !important;
}

.card.border-danger-subtle > .card-header .badge {
  font-family: 'JetBrains Mono', monospace;
  font-size: .72rem;
}

/* Section title */
.card-header .fw-semibold.small {
  font-family: 'DM Sans', sans-serif;
  font-size: .82rem !important;
  color: var(--ink);
}

/* Section total (monospace value) */
.card-header .font-monospace.text-muted {
  font-family: 'JetBrains Mono', monospace;
  font-size: .78rem;
  color: var(--ink-3) !important;
}

/* Add button in asset section header */
.card-header .btn-primary {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  font-size: .75rem;
  border-radius: 4px;
}

.card-header .btn-primary:hover { opacity: .75; }

/* Add button in debt section header */
.card.border-danger-subtle .card-header .btn-danger {
  background: var(--debt-accent) !important;
  border-color: var(--debt-accent) !important;
  font-size: .75rem;
  border-radius: 4px;
}

/* Section group headings (Assets / Debts labels above cards) */
h6.text-uppercase.text-muted.fw-bold {
  font-family: 'DM Sans', sans-serif;
  font-size: .65rem !important;
  letter-spacing: .1em;
  color: var(--ink-3) !important;
}

/* ── TABLES ────────────────────────────────────────────────────────────────── */
.table {
  --bs-table-bg: var(--cream);
  --bs-table-hover-bg: rgba(0,0,0,.018);
  font-size: .82rem;
  color: var(--ink);
}

.table thead th {
  font-family: 'DM Sans', sans-serif;
  font-size: .65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ink-3);
  background: var(--parchment);
  border-bottom-color: var(--rule-light) !important;
}

.table-light {
  --bs-table-bg: var(--parchment);
  --bs-table-color: var(--ink-3);
}

.table td { border-color: var(--rule-light) !important; }
.table th { border-color: var(--rule-light) !important; }

/* Item description */
.table .fw-semibold { font-family: 'DM Sans', sans-serif; font-weight: 500; }

/* Mono values in table */
.table .font-monospace {
  font-family: 'JetBrains Mono', monospace;
  font-size: .78rem;
}

/* Net value column */
.table tfoot .fw-bold.font-monospace { color: var(--ink); }
.table .text-danger.font-monospace   { color: var(--debt-accent) !important; }

/* Date under description */
.table [style*=".7rem"] {
  font-family: 'JetBrains Mono', monospace;
  color: var(--ink-3);
}

/* Empty state */
.fst-italic.text-muted { color: var(--ink-3) !important; font-size: .8rem; }

/* ── ASSIGNMENT DROPDOWN ────────────────────────────────────────────────────── */
.table .form-select {
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  border-color: var(--rule);
  background-color: var(--cream);
  color: var(--ink);
  border-radius: 4px;
  padding: .25rem .5rem;
}

.table .form-select:focus {
  border-color: var(--p-mid);
  box-shadow: 0 0 0 2px rgba(74,127,181,.15);
}

/* ── EDIT / DELETE BUTTONS ──────────────────────────────────────────────────── */
.table .btn-outline-secondary {
  border-color: var(--rule);
  color: var(--ink-3);
  border-radius: 3px;
}

.table .btn-outline-secondary:hover {
  background: var(--rule-light);
  border-color: var(--rule);
  color: var(--ink);
}

.table .btn-outline-danger {
  border-color: rgba(192,57,43,.25);
  color: rgba(192,57,43,.55);
  border-radius: 3px;
}

.table .btn-outline-danger:hover {
  background: var(--r-light);
  border-color: var(--debt-accent);
  color: var(--debt-accent);
}

/* ── CHARACTER BADGES ───────────────────────────────────────────────────────── */
.badge.bg-success-subtle {
  background: #e8f5ee !important;
  color: var(--community) !important;
  border-color: rgba(45,106,79,.2) !important;
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
}

.badge.bg-primary-subtle {
  background: var(--p-light) !important;
  color: var(--p-color) !important;
  border-color: rgba(30,58,95,.2) !important;
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
}

.badge.bg-danger-subtle {
  background: var(--r-light) !important;
  color: var(--r-color) !important;
  border-color: rgba(95,30,30,.2) !important;
  font-family: 'DM Sans', sans-serif;
  font-size: .68rem;
}

/* Item count badges in sidebar nav */
.sidebar .badge.bg-secondary,
.offcanvas .badge.bg-secondary {
  background: rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.5) !important;
  font-family: 'JetBrains Mono', monospace;
  font-size: .6rem;
}

.sidebar .badge.bg-danger,
.offcanvas .badge.bg-danger {
  background: rgba(192,57,43,.25) !important;
  color: #e07070 !important;
  font-family: 'JetBrains Mono', monospace;
  font-size: .6rem;
}

/* Section num badge in sidebar nav links */
.sidebar .nav-link .opacity-50,
.offcanvas .nav-link .opacity-50 {
  font-family: 'JetBrains Mono', monospace;
}

/* ── MODALS ─────────────────────────────────────────────────────────────────── */
.modal-content {
  border-color: var(--rule);
  border-radius: 8px;
  background: var(--cream);
}

.modal-header {
  border-bottom-color: var(--rule-light);
}

/* Asset modal header */
.modal-header.bg-primary-subtle {
  background: var(--p-light) !important;
}

/* Debt modal header */
.modal-header.bg-danger-subtle {
  background: #fdf5f5 !important;
}

.modal-title {
  font-family: 'EB Garamond', serif;
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--ink);
}

.modal-footer {
  border-top-color: var(--rule-light);
  background: var(--parchment);
  border-radius: 0 0 8px 8px;
}

/* Modal form elements */
.modal-body .form-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .78rem;
  font-weight: 500;
  color: var(--ink-2);
}

.modal-body .form-control,
.modal-body .form-select {
  border-color: var(--rule);
  background: var(--cream);
  color: var(--ink);
  border-radius: 4px;
  font-family: 'DM Sans', sans-serif;
  font-size: .85rem;
}

.modal-body .form-control:focus,
.modal-body .form-select:focus {
  border-color: var(--p-mid);
  box-shadow: 0 0 0 2px rgba(74,127,181,.15);
  background: #fff;
}

.modal-body .input-group-text {
  background: var(--rule-light);
  border-color: var(--rule);
  color: var(--ink-3);
  font-family: 'JetBrains Mono', monospace;
  font-size: .82rem;
}

/* Radio labels */
.modal-body .form-check-label {
  font-family: 'DM Sans', sans-serif;
  font-size: .85rem;
  color: var(--ink-2);
}

.modal-body .form-check-input:checked {
  background-color: var(--p-color);
  border-color: var(--p-color);
}

/* Modal buttons */
.modal-footer .btn-outline-secondary {
  border-color: var(--rule);
  color: var(--ink-3);
}

.modal-footer .btn-outline-secondary:hover {
  background: var(--rule-light);
  color: var(--ink);
  border-color: var(--rule);
}

.modal-footer .btn-primary {
  background: var(--p-color) !important;
  border-color: var(--p-color) !important;
}

.modal-footer .btn-primary:hover { opacity: .85; }

.modal-footer .btn-danger {
  background: var(--debt-accent) !important;
  border-color: var(--debt-accent) !important;
}

/* ── HTMX PROGRESS BAR ──────────────────────────────────────────────────────── */
#htmx-bar {
  background: linear-gradient(90deg, var(--p-mid) 0%, #8ec5f5 50%, var(--p-mid) 100%) !important;
}

/* ── MISC ──────────────────────────────────────────────────────────────────── */
/* Chevron in collapsible headers */
.card-header .bi-chevron-down { transition: transform .2s; }
.card-header[aria-expanded="false"] .bi-chevron-down { transform: rotate(-90deg); }

/* Scrollbar */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--rule); border-radius: 3px; }
