/* Supplementary styles — Concept D: Carbon & Brass */

.loading {
  padding: 40px 24px;
  text-align: center;
  color: #464038;
  font-family: 'Courier Prime', monospace;
  font-size: 12px;
  letter-spacing: 0.1em;
}

.empty-big {
  padding: 60px 24px;
  text-align: center;
  color: #464038;
  font-family: 'Courier Prime', monospace;
  letter-spacing: 0.08em;
}

.empty-big h2 {
  color: #F5F0E8;
  margin-bottom: 10px;
  font-family: 'Unbounded', sans-serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.empty-big p { max-width: 420px; margin: 0 auto 20px; line-height: 1.6; }

/* Toasts */
#toast-root {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

.toast {
  background: #141414;
  border: 1px solid #C49A3C;
  color: #F5F0E8;
  padding: 12px 16px;
  font-family: 'Courier Prime', monospace;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  min-width: 260px;
  border-radius: 4px;
  box-shadow: 0 4px 16px rgba(196,154,60,0.2);
  animation: toast-in 0.25s ease;
}

.toast.ok { border-color: #7EC87E; box-shadow: 0 4px 16px rgba(126,200,126,0.2); }
.toast.err { border-color: #D47070; box-shadow: 0 4px 16px rgba(212,112,112,0.2); }

@keyframes toast-in {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}

/* Modal */
#modal-root:empty { display: none; }

.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.88);
  z-index: 5000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: fade 0.15s ease;
}

@keyframes fade { from { opacity: 0; } to { opacity: 1; } }

.modal {
  background: #141414;
  border: 1px solid rgba(255,255,255,0.08);
  border-top: 2px solid #C49A3C;
  max-width: 560px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  padding: 24px;
  font-family: 'Karla', sans-serif;
  border-radius: 4px;
}

.modal.lg { max-width: 760px; }
.modal.sm { max-width: 400px; }

.modal h2 {
  font-family: 'Unbounded', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #F5F0E8;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  padding-bottom: 12px;
}

.modal .form-group { margin-bottom: 14px; }
.modal .form-label {
  display: block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #8A8070;
  margin-bottom: 6px;
  text-transform: uppercase;
  font-family: 'Karla', sans-serif;
}
.modal input, .modal select, .modal textarea {
  background: #0D0D0D;
  border: 1px solid rgba(255,255,255,0.07);
  color: #F5F0E8;
  padding: 10px 12px;
  width: 100%;
  font-family: 'Karla', sans-serif;
  font-size: 13px;
  border-radius: 4px;
  outline: none;
}
.modal input:focus, .modal select:focus, .modal textarea:focus {
  border-color: rgba(196,154,60,0.4);
  box-shadow: 0 0 0 3px rgba(196,154,60,0.09);
}
.modal textarea { min-height: 70px; resize: vertical; }

.modal-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.07);
}

/* Transaction filters bar */
.tx-filters {
  background: #141414;
  border: 1px solid rgba(255,255,255,0.07);
  padding: 16px;
  margin-bottom: 16px;
  display: none;
  flex-wrap: wrap;
  gap: 10px;
  align-items: end;
  border-radius: 4px;
}
.tx-filters.open { display: flex; }
.tx-filters .filter-col { display: flex; flex-direction: column; gap: 4px; }
.tx-filters label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #8A8070;
  text-transform: uppercase;
  font-family: 'Karla', sans-serif;
}
.tx-filters input, .tx-filters select {
  background: #0D0D0D;
  border: 1px solid rgba(255,255,255,0.07);
  color: #F5F0E8;
  padding: 6px 10px;
  font-size: 12px;
  font-family: 'Karla', sans-serif;
  min-width: 140px;
  border-radius: 4px;
  outline: none;
}

/* Transaction table */
.tx-table { width: 100%; border-collapse: collapse; font-family: 'Karla', sans-serif; font-size: 13px; }
.tx-table th {
  text-align: left;
  font-family: 'Karla', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #8A8070;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  text-transform: uppercase;
  background: #0D0D0D;
  cursor: pointer;
  user-select: none;
}
.tx-table th:hover { color: #F5F0E8; }
.tx-table td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  color: #8A8070;
}
.tx-table tr:hover td { background: #1C1C1C; color: #F5F0E8; }
.tx-table td.amt-pos { color: #7EC87E; font-family: 'Courier Prime', monospace; text-align: right; }
.tx-table td.amt-neg { color: #D47070; font-family: 'Courier Prime', monospace; text-align: right; }
.tx-table td.tx-date { font-family: 'Courier Prime', monospace; color: #464038; font-size: 12px; white-space: nowrap; }
.tx-table td.tx-actions { text-align: right; white-space: nowrap; }
.tx-table .cat-pill {
  display: inline-block;
  font-size: 9px;
  padding: 2px 7px;
  background: #1C1C1C;
  border: 1px solid rgba(255,255,255,0.08);
  color: #8A8070;
  font-family: 'Courier Prime', monospace;
  letter-spacing: 0.06em;
  border-radius: 2px;
}
.tx-table .tx-pending { opacity: 0.5; font-style: italic; }
.tx-table .tx-tags { display: inline-flex; gap: 4px; margin-left: 6px; }
.tx-table .tx-tag {
  font-size: 9px;
  padding: 2px 6px;
  background: rgba(196,154,60,0.1);
  border: 1px solid rgba(196,154,60,0.3);
  color: #C49A3C;
  font-family: 'Courier Prime', monospace;
  border-radius: 2px;
}

.tx-pagination {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  margin-top: 20px;
  font-family: 'Courier Prime', monospace;
  font-size: 12px;
  color: #464038;
}

/* Checkbox cell */
.tx-check { width: 24px; }

input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  background: #0D0D0D;
  border: 1px solid rgba(196,154,60,0.35);
  border-radius: 2px;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  vertical-align: middle;
  transition: border-color 0.15s;
}
input[type="checkbox"]:hover {
  border-color: #C49A3C;
}
input[type="checkbox"]:checked {
  background: #C49A3C;
  border-color: #C49A3C;
}
input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 3px;
  top: 0px;
  width: 5px;
  height: 8px;
  border: 2px solid #0D0D0D;
  border-top: none;
  border-left: none;
  transform: rotate(45deg);
}

/* Transaction column picker */
.tx-col-picker { display: none; align-items: center; gap: 14px; padding: 8px 14px; margin-bottom: 6px; background: #141414; border: 1px solid rgba(255,255,255,0.07); border-radius: 4px; }
.tx-col-picker.open { display: flex; }
.tx-col-picker .tx-col-label { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.1em; color: #6E7380; }
.tx-col-picker label { display: flex; align-items: center; gap: 5px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: #c8b49a; cursor: pointer; }
.tx-col-picker input[type=checkbox] { accent-color: #cc1a1c; cursor: pointer; }

/* Transaction tag chips */
.tx-tags-cell { white-space: nowrap; }
.tx-tag-chip { display: inline-flex; align-items: center; gap: 3px; padding: 1px 6px; border-radius: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; margin-right: 4px; white-space: nowrap; }
.tx-tag-rm { background: none; border: none; cursor: pointer; font-size: 12px; padding: 0 0 0 2px; line-height: 1; opacity: 0.6; color: inherit; }
.tx-tag-rm:hover { opacity: 1; }
.tx-type-cell { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.08em; color: #6E7380; }

/* Bulk action bar */
.tx-bulk-bar {
  position: sticky;
  top: 80px;
  z-index: 50;
  background: #1C1C1C;
  border: 1px solid rgba(196,154,60,0.28);
  padding: 10px 16px;
  margin-bottom: 10px;
  display: flex;
  gap: 10px;
  align-items: center;
  font-family: 'Courier Prime', monospace;
  font-size: 12px;
  letter-spacing: 0.08em;
  border-radius: 4px;
}

/* Chart */
.chart-container { width: 100%; position: relative; }
.chart-container svg { width: 100%; display: block; }

/* Account table */
.acct-table { width: 100%; border-collapse: collapse; font-family: 'Karla', sans-serif; font-size: 13px; }
.acct-table th {
  text-align: left;
  font-family: 'Karla', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #8A8070;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  text-transform: uppercase;
}
.acct-table td { padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,0.04); color: #8A8070; }
.acct-table tr:hover td { background: #1C1C1C; }
.acct-table .bal { font-family: 'Courier Prime', monospace; text-align: right; }

.inst-group { margin-bottom: 20px; }
.inst-group-header {
  background: #1C1C1C;
  padding: 10px 14px;
  border: 1px solid rgba(255,255,255,0.07);
  border-bottom: none;
  border-left: 2px solid #C49A3C;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Unbounded', sans-serif;
  font-size: 9px;
  letter-spacing: 0.1em;
  color: #F5F0E8;
  text-transform: uppercase;
}
.inst-group-header .inst-total { color: #C49A3C; font-family: 'Courier Prime', monospace; font-size: 13px; }
.inst-group-body { border: 1px solid rgba(255,255,255,0.07); }

/* Dashboard extensions */
.dash-row { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; margin-bottom: 16px; }
@media (max-width: 900px) { .dash-row { grid-template-columns: 1fr; } }
.dash-row-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 16px; }
@media (max-width: 900px) { .dash-row-3 { grid-template-columns: 1fr; } }

/* ── Budget (new layout) ────────────────────────────────────── */
.bud-stat-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
.bud-stat-card {
  background: #111214;
  border: 1px solid rgba(196,154,60,0.15);
  padding: 14px 16px;
}
.bud-stat-lbl { font-size: 10px; letter-spacing: .1em; color: rgba(253,246,236,.45); margin-bottom: 4px; }
.bud-stat-val { font-family: 'Courier Prime', monospace; font-size: 18px; color: #FDF6EC; }

/* Toggle button active state */
.bud-tog-active { background: rgba(196,154,60,0.18) !important; border-color: #C49A3C !important; color: #C49A3C !important; }

/* Column header */
.bud-col-hdr {
  display: grid;
  grid-template-columns: 18px 20px 1fr 110px 110px 90px 28px;
  gap: 8px;
  padding: 6px 12px;
  font-size: 10px;
  letter-spacing: .08em;
  color: rgba(253,246,236,.4);
  border-bottom: 1px solid rgba(196,154,60,0.15);
  margin-bottom: 4px;
}
.bud-col-cat  { grid-column: 3; }
.bud-col-bud  { grid-column: 4; text-align: right; }
.bud-col-act  { grid-column: 5; text-align: right; }
.bud-col-met  { grid-column: 6; text-align: right; }

/* Sections */
.bud-section { margin-bottom: 18px; }
.bud-sec-hdr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 7px 12px;
  background: #111214;
  border: 1px solid rgba(196,154,60,0.18);
  border-left: 2px solid #C49A3C;
}
.bud-sec-name { font-size: 10px; font-weight: 700; letter-spacing: .1em; color: #C49A3C; }
.bud-sec-tot  { font-size: 11px; color: rgba(253,246,236,.5); font-family: 'Courier Prime', monospace; }
.bud-sec-body { border: 1px solid rgba(255,255,255,.05); border-top: none; }
.bud-drop-over { outline: 1px dashed rgba(196,154,60,.5); background: rgba(196,154,60,.04); }

/* Budget rows */
.bud-row {
  display: grid;
  grid-template-columns: 18px 20px 1fr 110px 110px 90px 28px;
  gap: 8px;
  align-items: center;
  padding: 9px 12px;
  border-bottom: 1px solid rgba(255,255,255,.04);
  font-family: 'Karla', sans-serif;
  font-size: 13px;
}
.bud-row:hover { background: rgba(255,255,255,.025); }
.bud-row.bud-dragging { opacity: .4; }
.bud-drag { cursor: grab; color: rgba(253,246,236,.25); font-size: 14px; line-height: 1; user-select: none; }
.bud-drag:hover { color: #C49A3C; }
.bud-drag-ph, .bud-del-ph { display: block; width: 18px; }
.bud-icon { font-size: 14px; text-align: center; }
.bud-name { color: #F5F0E8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bud-inp {
  background: #0c0d12;
  border: 1px solid rgba(255,255,255,.08);
  color: #FDF6EC;
  padding: 5px 8px;
  width: 100%;
  text-align: right;
  font-family: 'Courier Prime', monospace;
  font-size: 13px;
  border-radius: 2px;
  outline: none;
}
.bud-inp:focus { border-color: rgba(196,154,60,.5); }
.bud-actual { font-family: 'Courier Prime', monospace; font-size: 13px; text-align: right; }
.bud-metric { font-family: 'Courier Prime', monospace; font-size: 13px; text-align: right; display: block; }
.bud-warn   { color: #D4A24C; }
.bud-del {
  background: none; border: none; color: rgba(253,246,236,.25);
  cursor: pointer; font-size: 16px; padding: 0; width: 22px; text-align: center;
}
.bud-del:hover { color: #D04040; }

/* Add row */
.bud-add-row { padding: 8px 12px; }
.bud-add-btn {
  background: none; border: 1px dashed rgba(196,154,60,.3);
  color: rgba(196,154,60,.7); font-size: 11px; letter-spacing: .08em;
  padding: 5px 14px; cursor: pointer; font-family: 'Karla', sans-serif;
  transition: all .15s;
}
.bud-add-btn:hover { border-color: #C49A3C; color: #C49A3C; background: rgba(196,154,60,.06); }

/* Annual table */
.bud-annual-wrap { margin-top: 8px; }
.bud-annual-tbl {
  width: 100%; border-collapse: collapse; font-size: 12px;
  font-family: 'Karla', sans-serif; margin-top: 4px;
}
.bud-annual-tbl th {
  text-align: left; padding: 7px 12px; font-size: 10px;
  letter-spacing: .08em; color: rgba(253,246,236,.4);
  border-bottom: 1px solid rgba(196,154,60,.18);
}
.bud-annual-tbl td { padding: 8px 12px; border-bottom: 1px solid rgba(255,255,255,.04); }
.bud-annual-num { text-align: right; font-family: 'Courier Prime', monospace; }
.bud-annual-tot td { font-weight: 700; border-top: 1px solid rgba(196,154,60,.25); color: #FDF6EC; }

/* Goal modal hint */
.form-hint { font-size: 11px; color: rgba(253,246,236,.4); font-weight: 400; }

/* Transaction goal selector */
.tx-goal-sel { min-width: 120px; }

/* Recurring table */
.rec-table { width: 100%; border-collapse: collapse; font-family: 'Karla', sans-serif; font-size: 13px; }
.rec-table th { text-align: left; padding: 8px 12px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.12em; color: #6E7380; border-bottom: 1px solid rgba(255,255,255,0.07); white-space: nowrap; }
.rec-table td { padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,0.04); }
.rec-table tr:hover td { background: #1C1C1C; }
.rec-table tr.rec-canceled td { opacity: 0.5; }
.rec-status-badge { font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.1em; background: rgba(204,26,28,0.15); color: #cc1a1c; border: 1px solid rgba(204,26,28,0.3); padding: 1px 5px; border-radius: 3px; vertical-align: middle; margin-left: 6px; }
.rec-hist-btn { background: none; border: none; cursor: pointer; font-size: 14px; padding: 0 4px; opacity: 0.5; transition: opacity 0.15s; }
.rec-hist-btn:hover { opacity: 1; }
.rec-hist-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.rec-hist-table th { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.1em; color: #6E7380; padding: 6px 8px; border-bottom: 1px solid rgba(255,255,255,0.07); text-align: left; }
.rec-hist-table td { padding: 7px 8px; border-bottom: 1px solid rgba(255,255,255,0.04); color: #FDF6EC; }
.rec-search-input { font-family: 'Unbounded', sans-serif; font-size: 9px; font-weight: 400; letter-spacing: 0.08em; padding: 6px 12px; background: var(--bg-3); color: var(--text-2); border: 1px solid var(--border); border-radius: 4px; width: 200px; text-transform: uppercase; transition: all 0.15s; }
.rec-search-input::placeholder { color: var(--text-2); opacity: 0.6; font-family: 'Unbounded', sans-serif; font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; }
.rec-search-input:hover { border-color: var(--border-2); color: var(--cream); background: var(--bg-4); }
.rec-search-input:focus { outline: none; border-color: var(--border-2); color: var(--cream); background: var(--bg-4); box-shadow: none; }
.merch-suggestions { position: absolute; z-index: 200; background: #1a1a1f; border: 1px solid rgba(253,246,236,0.12); border-radius: 2px; min-width: 260px; margin-top: 2px; }
.merch-sug-item { padding: 7px 12px; font-size: 13px; cursor: pointer; }
.merch-sug-item:hover { background: rgba(204,166,74,0.1); color: #cca64a; }
.form-group { position: relative; }

/* Goal card */
.goal-card {
  background: #141414;
  border: 1px solid rgba(255,255,255,0.07);
  padding: 20px;
  margin-bottom: 14px;
  border-radius: 4px;
}
.goal-card h3 {
  font-family: 'Unbounded', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #F5F0E8;
  margin-bottom: 6px;
}
.goal-card .goal-meta {
  font-family: 'Courier Prime', monospace;
  font-size: 11px;
  color: #464038;
  letter-spacing: 0.08em;
  margin-bottom: 12px;
}
.goal-card .goal-prog {
  font-family: 'Courier Prime', monospace;
  font-size: 12px;
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
  color: #8A8070;
}

/* Rule card extensions */
.rule-condition-row select, .rule-condition-row input {
  background: #0D0D0D;
  border: 1px solid rgba(255,255,255,0.07);
  color: #F5F0E8;
  padding: 4px 8px;
  font-size: 11px;
  font-family: 'Karla', sans-serif;
  border-radius: 2px;
  outline: none;
}

.rule-meta-row {
  display: flex;
  justify-content: space-between;
  font-family: 'Karla', sans-serif;
  font-size: 10px;
  color: #464038;
  padding: 8px 0;
}

/* Institutions (settings) */
.inst-list-dyn .inst-row {
  background: #141414;
  padding: 14px;
  border: 1px solid rgba(255,255,255,0.07);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 14px;
  border-radius: 4px;
}
.inst-list-dyn .inst-swatch {
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Unbounded', sans-serif;
  font-weight: 600;
  color: #FFF;
  font-size: 12px;
  border-radius: 4px;
}

/* Forms inside settings */
.cat-editor {
  background: #0D0D0D;
  border-left: 2px solid #C49A3C;
  padding: 12px;
  margin: 8px 0;
  display: flex;
  gap: 8px;
  align-items: center;
}

.chip-btn {
  display: inline-block;
  padding: 4px 10px;
  background: #1C1C1C;
  border: 1px solid rgba(255,255,255,0.08);
  color: #8A8070;
  font-family: 'Courier Prime', monospace;
  font-size: 10px;
  cursor: pointer;
  letter-spacing: 0.05em;
  border-radius: 2px;
}
.chip-btn:hover { color: #F5F0E8; border-color: rgba(196,154,60,0.3); }
.chip-btn.active { background: rgba(196,154,60,0.1); border-color: rgba(196,154,60,0.4); color: #C49A3C; }

/* Forecast */
.fc-meta-row {
  display: flex;
  gap: 20px;
  justify-content: space-around;
  padding: 16px;
  background: #141414;
  border: 1px solid rgba(255,255,255,0.07);
  margin-bottom: 16px;
  font-family: 'Courier Prime', monospace;
  font-size: 12px;
  border-radius: 4px;
}
.fc-meta-row .fc-meta-val {
  font-family: 'Unbounded', sans-serif;
  font-size: 18px;
  font-weight: 500;
  color: #F5F0E8;
  display: block;
  margin-top: 4px;
}

.split-row { display: grid; grid-template-columns: 1fr 120px 120px 40px; gap: 8px; align-items: center; margin-bottom: 6px; }

.stat-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
.stat-strip .card { padding: 14px; }
.stat-strip .stat-label {
  font-family: 'Karla', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #8A8070;
  text-transform: uppercase;
}
.stat-strip .stat-val {
  font-family: 'Unbounded', sans-serif;
  font-size: 20px;
  font-weight: 600;
  color: #F5F0E8;
  margin-top: 6px;
}
@media (max-width: 900px) { .stat-strip { grid-template-columns: repeat(2, 1fr); } }

.link { color: #C49A3C; cursor: pointer; text-decoration: none; }
.link:hover { color: #D4AA4C; text-decoration: underline; }

.inline-select {
  background: #141414;
  border: none;
  color: #8A8070;
  font-family: 'Karla', sans-serif;
  font-size: 12px;
  padding: 2px 4px;
  cursor: pointer;
  outline: none;
}
.inline-select:hover, .inline-select:focus {
  color: #F5F0E8;
  outline: 1px solid rgba(196,154,60,0.3);
}
.inline-select option {
  background: #141414;
  color: #F5F0E8;
}

/* Tax Estimator — Yearly */
.tax-two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
@media (max-width: 960px) { .tax-two-col { grid-template-columns: 1fr; } }
.tax-input-card { background: var(--surface, #13151A); border: 1px solid rgba(253,246,236,0.1); padding: 16px; border-radius: 4px; }
.tax-section-label { font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 2px; color: #6E7380; text-transform: uppercase; margin-bottom: 10px; display: block; }
.tax-input-lbl { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: #c8b49a; display: block; margin-top: 10px; margin-bottom: 3px; }
.tax-input-field { display: block; width: 100%; background: #0c0d12; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.2); padding: 7px 9px; font-family: 'IBM Plex Mono', monospace; font-size: 12px; border-radius: 2px; transition: border-color 0.15s; box-sizing: border-box; }
.tax-input-field:focus { outline: none; border-color: #cc1a1c; box-shadow: 0 0 0 1px rgba(204,26,28,0.3); }
.tax-input-field::-webkit-outer-spin-button, .tax-input-field::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tax-input-field[type=number] { -moz-appearance: textfield; }
.tax-input-field.linked, .tax-input-field:disabled { opacity: 0.8; cursor: not-allowed; background: rgba(196,154,60,0.06); border-color: rgba(196,154,60,0.35); color: #C49A3C; }
.tax-link-badge { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.12em; color: #C49A3C; background: rgba(196,154,60,0.12); border: 1px solid rgba(196,154,60,0.4); padding: 2px 6px; margin-left: 8px; border-radius: 2px; vertical-align: middle; }
.tax-link-hint { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #9aa0ab; margin-top: 10px; padding: 6px 10px; border-left: 2px solid #C49A3C; background: rgba(196,154,60,0.05); line-height: 1.5; }
.tax-link-hint b { color: #C49A3C; font-weight: 500; }
.tax-link-chip { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 8px; letter-spacing: 0.1em; color: #C49A3C; background: rgba(196,154,60,0.12); border: 1px solid rgba(196,154,60,0.4); padding: 1px 5px; margin-left: 6px; border-radius: 2px; vertical-align: middle; }
.tax-link-badge-off { color: #6E7380; background: rgba(110,115,128,0.08); border-color: rgba(110,115,128,0.35); }
.tax-link-hint-muted { color: #6E7380; border-left-color: rgba(110,115,128,0.4); background: rgba(110,115,128,0.04); }

/* Capital Loss Carryover toggle row */
.carry-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 10px; flex-wrap: wrap; }
.carry-toggle-label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #c8b49a; position: relative; }
.carry-toggle-label input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }
.carry-toggle-track { position: relative; width: 32px; height: 16px; background: rgba(253,246,236,0.08); border: 1px solid rgba(253,246,236,0.2); border-radius: 10px; transition: all 0.15s; flex-shrink: 0; }
.carry-toggle-thumb { position: absolute; top: 1px; left: 1px; width: 12px; height: 12px; background: #6E7380; border-radius: 50%; transition: all 0.15s; }
.carry-toggle-label input[type="checkbox"]:checked ~ .carry-toggle-track { background: rgba(196,154,60,0.2); border-color: rgba(196,154,60,0.6); }
.carry-toggle-label input[type="checkbox"]:checked ~ .carry-toggle-track .carry-toggle-thumb { left: 17px; background: #C49A3C; box-shadow: 0 0 6px rgba(196,154,60,0.4); }
.carry-toggle-txt { letter-spacing: 0.05em; }
.carry-ledger-btn[disabled] { opacity: 0.35; cursor: not-allowed; }

/* Loss Ledger modal */
.carry-ledger-modal-body .cl-intro { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #9aa0ab; line-height: 1.55; margin-bottom: 12px; padding: 8px 10px; border-left: 2px solid #C49A3C; background: rgba(196,154,60,0.05); }
.carry-ledger-modal-body .cl-intro b { color: #C49A3C; font-weight: 500; }
.carry-ledger-modal-body .cl-toolbar { display: flex; gap: 8px; margin-bottom: 10px; }
.carry-ledger-modal-body .cl-danger { color: #cc4a4c; border-color: rgba(204,74,76,0.4); }
.carry-ledger-modal-body .cl-table-wrap { max-height: 420px; overflow-y: auto; border: 1px solid rgba(253,246,236,0.1); border-radius: 3px; }
.carry-ledger-modal-body .cl-table { width: 100%; border-collapse: collapse; font-family: 'IBM Plex Mono', monospace; font-size: 11px; }
.carry-ledger-modal-body .cl-table thead th { position: sticky; top: 0; background: #13151A; color: #c8b49a; padding: 8px 6px; text-align: left; font-size: 10px; letter-spacing: 0.08em; border-bottom: 1px solid rgba(253,246,236,0.15); font-weight: 500; text-transform: uppercase; z-index: 1; }
.carry-ledger-modal-body .cl-table tbody td { padding: 5px 6px; border-bottom: 1px solid rgba(253,246,236,0.04); vertical-align: middle; }
.carry-ledger-modal-body .cl-table tbody tr:hover { background: rgba(196,154,60,0.03); }
.carry-ledger-modal-body .cl-cell { width: 100%; background: #0c0d12; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.12); padding: 4px 6px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; border-radius: 2px; box-sizing: border-box; }
.carry-ledger-modal-body .cl-cell:focus { outline: none; border-color: #C49A3C; }
.carry-ledger-modal-body .cl-cell::-webkit-outer-spin-button, .carry-ledger-modal-body .cl-cell::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.carry-ledger-modal-body .cl-cell[type=number] { -moz-appearance: textfield; }
.carry-ledger-modal-body .cl-year { max-width: 70px; }
.carry-ledger-modal-body .cl-closing { color: #C49A3C; font-weight: 500; white-space: nowrap; }
.carry-ledger-modal-body .cl-chk { width: 14px; height: 14px; accent-color: #C49A3C; cursor: pointer; }
.carry-ledger-modal-body .cl-del { padding: 3px 8px; color: #cc4a4c; border-color: rgba(204,74,76,0.35); }
.carry-ledger-modal-body .cl-empty { text-align: center; padding: 24px 10px !important; color: #6E7380; font-family: 'Share Tech Mono', monospace; font-size: 11px; }
.carry-ledger-modal-body .cl-empty b { color: #C49A3C; font-weight: 500; }
.carry-ledger-modal-body .cl-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; padding-top: 8px; border-top: 1px solid rgba(253,246,236,0.08); font-family: 'Share Tech Mono', monospace; font-size: 10px; color: #6E7380; gap: 12px; flex-wrap: wrap; }
.carry-ledger-modal-body .cl-running { color: #C49A3C; font-size: 11px; font-weight: 500; }

/* Tax Estimator — Tab bar */
.tax-tab-bar { display: flex; gap: 0; margin-bottom: 16px; border-bottom: 1px solid rgba(253,246,236,0.1); }
.tax-tab-btn { background: transparent; border: none; border-bottom: 2px solid transparent; padding: 10px 22px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 2px; color: #6E7380; cursor: pointer; transition: color 0.15s, border-color 0.15s; margin-bottom: -1px; }
.tax-tab-btn:hover { color: #c8b49a; }
.tax-tab-btn.active { color: #FDF6EC; border-bottom-color: #cc1a1c; }

/* Tax Estimator — Monthly Tracker */
.mo-toolbar { display: flex; justify-content: space-between; align-items: center; background: #13151A; border: 1px solid rgba(253,246,236,0.1); padding: 10px 16px; border-radius: 4px; margin-bottom: 10px; flex-wrap: wrap; gap: 12px; }
.mo-toolbar-note { font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: #6E7380; }
.mo-sync-dot { color: #cca64a; font-size: 8px; vertical-align: middle; }
.mo-sync-toggle { display: flex; align-items: center; gap: 10px; cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 1px; color: #c8b49a; user-select: none; }
.mo-sync-toggle input[type="checkbox"] { display: none; }
.mo-toggle-track { position: relative; width: 36px; height: 18px; background: #0c0d12; border: 1px solid rgba(253,246,236,0.2); border-radius: 9px; transition: background 0.2s, border-color 0.2s; flex-shrink: 0; }
.mo-sync-toggle input:checked + .mo-toggle-track { background: #841617; border-color: #cc1a1c; }
.mo-toggle-thumb { position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; background: #c8b49a; border-radius: 50%; transition: left 0.2s, background 0.2s; }
.mo-sync-toggle input:checked + .mo-toggle-track .mo-toggle-thumb { left: 20px; background: #FDF6EC; }

/* Subtabs */
.mo-subtabs { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; padding: 8px 0 10px; }
.mo-subtabs-label { font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 2px; color: #6E7380; margin-right: 4px; }
.mo-subtabs-div { width: 1px; height: 16px; background: rgba(253,246,236,0.15); margin: 0 4px; flex-shrink: 0; }
.mo-subtab { padding: 4px 9px; font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 1px; background: #13151A; border: 1px solid rgba(253,246,236,0.1); color: #6E7380; cursor: pointer; border-radius: 2px; transition: all 0.12s; }
.mo-subtab:hover { color: #c8b49a; border-color: rgba(253,246,236,0.2); }
.mo-subtab-active { color: #FDF6EC; background: rgba(132,22,23,0.25); border-color: rgba(132,22,23,0.6); }
.mo-subtab-diff { font-style: normal; }

/* Scroll wrapper */
.mo-wrap { overflow-x: auto; overflow-y: visible; border: 1px solid rgba(253,246,236,0.08); border-radius: 4px; }
.mo-wrap::-webkit-scrollbar { height: 10px; }
.mo-wrap::-webkit-scrollbar-track { background: #0c0d12; border-radius: 0 0 4px 4px; }
.mo-wrap::-webkit-scrollbar-thumb { background: #c8b49a; border-radius: 4px; border: 2px solid #0c0d12; }
.mo-wrap::-webkit-scrollbar-thumb:hover { background: #FDF6EC; }
.mo-wrap { scrollbar-width: thick; scrollbar-color: #c8b49a #0c0d12; }

/* Table */
.mo-table { border-collapse: collapse; min-width: 100%; }
.mo-th-cat { position: sticky; left: 0; z-index: 4; background: #0c0d12; min-width: 230px; width: 230px; padding: 8px 10px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 2px; color: #6E7380; font-weight: 400; text-align: left; border-bottom: 1px solid rgba(253,246,236,0.15); }
.mo-th-grp { padding: 6px 10px; font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 2px; color: #c8b49a; font-weight: 600; text-align: center; border-bottom: 1px solid rgba(253,246,236,0.08); border-left: 1px solid rgba(253,246,236,0.06); min-width: 110px; }
.mo-th-sub { padding: 5px 8px; font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 1px; color: #6E7380; font-weight: 400; text-align: right; border-bottom: 1px solid rgba(253,246,236,0.15); white-space: nowrap; min-width: 90px; }
.mo-inp-hdr { min-width: 90px; }
.mo-hdr-1 th, .mo-hdr-2 th { background: #0c0d12; }

/* Section header rows */
.mo-section-hdr .mo-td-full { padding: 9px 12px 3px; font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 3px; color: #c8b49a; font-weight: 600; background: rgba(200,180,154,0.05); border-top: 1px solid rgba(253,246,236,0.08); cursor: default; }
.mo-collapse-btn { background: none; border: none; cursor: pointer; color: #c8b49a; font-size: 10px; padding: 0 6px 0 0; vertical-align: middle; opacity: 0.7; transition: opacity 0.15s; line-height: 1; }
.mo-collapse-btn:hover { opacity: 1; }
.mo-subtotal-collapsed td { border-bottom: 1px solid rgba(253,246,236,0.08); }

/* Data rows */
.mo-td-full { padding: 3px 10px; }
.mo-td-cat { position: sticky; left: 0; z-index: 2; background: #0c0d12; padding: 3px 6px 3px 8px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: #c8b49a; white-space: nowrap; min-width: 230px; width: 230px; }
.mo-row:hover .mo-td-cat, .mo-row:hover .mo-td-num, .mo-row:hover .mo-cell { background: rgba(253,246,236,0.025); }
.mo-row:hover .mo-td-cat { background: #131519; }
.mo-lbl-txt { vertical-align: middle; }
.mo-td-num { padding: 3px 10px; font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #FDF6EC; white-space: nowrap; min-width: 90px; }
.mo-cell { padding: 2px 3px; min-width: 90px; }
.mo-input { width: 100%; min-width: 80px; background: #0c0d12; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.08); padding: 3px 7px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; text-align: right; border-radius: 2px; transition: border-color 0.15s; box-sizing: border-box; }
.mo-input:focus { outline: none; border-color: #cc1a1c; box-shadow: 0 0 0 1px rgba(204,26,28,0.2); background: #13151A; }
.mo-input::-webkit-outer-spin-button, .mo-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.mo-input[type=number] { -moz-appearance: textfield; }
.mo-cell-actual { background: rgba(204,166,74,0.04); }
.mo-inp-actual { background: #110f0a; border-color: rgba(204,166,74,0.12); }
.mo-inp-actual:focus { border-color: #cca64a; box-shadow: 0 0 0 1px rgba(204,166,74,0.2); background: #160e05; }

/* Edit & Add buttons */
.mo-edit-btn { background: none; border: none; cursor: pointer; color: #cca64a; font-size: 12px; padding: 0 5px 0 0; vertical-align: middle; opacity: 0.5; transition: opacity 0.15s; line-height: 1; }
.mo-edit-btn:hover { opacity: 1; }
.mo-del-row-btn { background: none; border: none; cursor: pointer; color: #cc4a4c; font-size: 13px; padding: 0 0 0 4px; vertical-align: middle; opacity: 0; transition: opacity 0.15s; line-height: 1; }
.mo-row:hover .mo-del-row-btn { opacity: 0.6; }
.mo-del-row-btn:hover { opacity: 1 !important; }
.mo-edit-input { background: #0c0d12; color: #FDF6EC; border: 1px solid #cca64a; padding: 2px 6px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; width: 150px; border-radius: 2px; }
.mo-td-add { padding: 4px 8px; }
.mo-add-btn { background: none; border: 1px dashed rgba(253,246,236,0.15); color: #6E7380; font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 1px; padding: 3px 10px; cursor: pointer; border-radius: 2px; transition: all 0.15s; }
.mo-add-btn:hover { color: #c8b49a; border-color: rgba(200,180,154,0.4); }

/* Subtotal / grand total rows */
.mo-subtotal .mo-td-cat-sub, .mo-subtotal .mo-td-num { padding: 5px 10px; font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #FDF6EC; font-weight: 600; background: rgba(253,246,236,0.04); border-top: 1px solid rgba(253,246,236,0.08); }
.mo-subtotal .mo-td-cat-sub { position: sticky; left: 0; z-index: 2; background: #111316; }
.mo-grand-sep td { padding: 0; height: 1px; background: rgba(253,246,236,0.12); }
.mo-grand-total .mo-td-cat-sub, .mo-grand-total .mo-td-num { padding: 6px 10px; font-family: 'Share Tech Mono', monospace; font-size: 12px; color: #FDF6EC; font-weight: 600; background: rgba(253,246,236,0.06); }
.mo-grand-total .mo-td-cat-sub { position: sticky; left: 0; z-index: 2; background: #141618; }
.mo-net-total .mo-td-cat-sub, .mo-net-total .mo-td-num { padding: 8px 10px; font-family: 'Cormorant Garamond', serif; font-size: 16px; color: #FDF6EC; font-weight: 700; background: rgba(253,246,236,0.08); border-top: 1px solid rgba(253,246,236,0.2); }
.mo-net-total .mo-td-cat-sub { position: sticky; left: 0; z-index: 2; background: #171A1D; }

/* Tax results info tooltips */
.tx-info-tip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 13px;
  height: 13px;
  font-size: 9px;
  color: #6E7380;
  cursor: help;
  position: relative;
  border: 1px solid rgba(110,115,128,0.4);
  border-radius: 50%;
  vertical-align: middle;
  margin-left: 5px;
  font-family: 'IBM Plex Mono', monospace;
  font-style: normal;
  line-height: 1;
}
.tx-info-tip::after {
  content: attr(data-tip);
  position: absolute;
  bottom: 120%;
  left: 0;
  min-width: 240px;
  max-width: 320px;
  background: #1a1d26;
  border: 1px solid rgba(253,246,236,0.18);
  color: #c8b49a;
  padding: 8px 12px;
  font-size: 11px;
  line-height: 1.5;
  font-family: 'Share Tech Mono', monospace;
  border-radius: 4px;
  z-index: 200;
  white-space: normal;
  pointer-events: none;
  display: none;
}
.tx-info-tip:hover::after {
  display: block;
}

/* CSV Import Wizard */
.csv-wizard { max-width: 780px; width: 90vw; }
.csv-wiz-header { padding: 18px 22px 14px; border-bottom: 1px solid rgba(253,246,236,0.08); }
.csv-wiz-header h2 { margin: 0 0 12px; font-family: 'Unbounded', sans-serif; font-size: 16px; font-weight: 500; letter-spacing: 0.08em; color: #FDF6EC; }
.csv-wiz-steps { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.1em; color: #464038; }
.csv-wiz-step { text-transform: uppercase; padding: 3px 8px; border-radius: 2px; }
.csv-wiz-step.active { color: #C49A3C; border: 1px solid rgba(196,154,60,0.4); }
.csv-wiz-step.done { color: #6E7380; }
.csv-wiz-arrow { color: #2a2d33; }
.csv-wiz-body { padding: 20px 22px; max-height: 65vh; overflow-y: auto; }
.csv-wiz-section { margin-bottom: 18px; }
.csv-wiz-lbl { display: block; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.1em; color: #6E7380; text-transform: uppercase; margin-bottom: 6px; }
.csv-wiz-hint { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #6E7380; margin: 6px 0 0; line-height: 1.5; }
.csv-wiz-hint strong { color: #c8b49a; }
.csv-wiz-file { background: #0c0d12; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.15); padding: 8px 10px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; width: 100%; border-radius: 2px; }
.csv-wiz-text { background: #0c0d12; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.15); padding: 6px 10px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; width: 100%; border-radius: 2px; }
.csv-wiz-check { display: flex; align-items: center; gap: 8px; color: #c8b49a; font-family: 'Share Tech Mono', monospace; font-size: 12px; text-transform: none; letter-spacing: 0; }
.csv-wiz-check input[type="checkbox"] { width: 14px; height: 14px; accent-color: #C49A3C; }
.csv-wiz-table-wrap { overflow-x: auto; border: 1px solid rgba(253,246,236,0.08); border-radius: 2px; background: #0c0d12; }
.csv-wiz-table { width: 100%; border-collapse: collapse; font-family: 'Share Tech Mono', monospace; font-size: 10px; }
.csv-wiz-table th, .csv-wiz-table td { padding: 5px 8px; border-bottom: 1px solid rgba(253,246,236,0.06); text-align: left; white-space: nowrap; }
.csv-wiz-table th { background: #141618; color: #c8b49a; font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; position: sticky; top: 0; }
.csv-wiz-table td { color: #FDF6EC; }
.csv-wiz-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; margin-bottom: 16px; }
.csv-wiz-xform { background: #0c0d12; border: 1px solid rgba(253,246,236,0.08); border-radius: 2px; font-family: 'Share Tech Mono', monospace; font-size: 11px; }
.csv-wiz-xform-summary { padding: 6px 10px; border-bottom: 1px solid rgba(253,246,236,0.08); color: #9aa0ab; letter-spacing: 0.04em; }
.csv-wiz-xform-scroll { max-height: 340px; overflow: auto; }
.csv-wiz-xform-table { border-collapse: collapse; font-family: 'Share Tech Mono', monospace; font-size: 11px; width: max-content; min-width: 100%; }
.csv-wiz-xform-table th, .csv-wiz-xform-table td { padding: 5px 10px; border-bottom: 1px solid rgba(253,246,236,0.06); text-align: left; white-space: nowrap; vertical-align: top; }
.csv-wiz-xform-table thead th { position: sticky; top: 0; background: #141618; color: #cca64a; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; font-size: 9px; z-index: 1; border-bottom: 1px solid rgba(253,246,236,0.15); }
.csv-wiz-xform-table td.xf-desc { max-width: 320px; overflow: hidden; text-overflow: ellipsis; }
.csv-wiz-xform-table .xf-derived { color: #FDF6EC; }
.csv-wiz-xform-table .xf-raw { color: #9aa0ab; font-size: 10px; }
.csv-wiz-xform-table th.xf-raw { color: #6E7380; }
.csv-wiz-xform-table .xf-sep { color: #3a3f4a; padding: 5px 4px; text-align: center; user-select: none; }
.csv-wiz-xform-table tr.xf-row-bad { background: rgba(204,74,76,0.08); }
.csv-wiz-xform-table tr.xf-row-bad td:first-child { color: #cc4a4c; font-weight: 600; }
.csv-wiz-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
.csv-wiz-stat { background: #13151A; border: 1px solid rgba(253,246,236,0.1); padding: 14px 10px; text-align: center; border-radius: 2px; }
.csv-wiz-stat-n { display: block; font-family: 'Cormorant Garamond', serif; font-size: 28px; color: #4acc7a; }
.csv-wiz-stat-l { display: block; font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.14em; color: #6E7380; text-transform: uppercase; margin-top: 4px; }
.csv-wiz-errors { background: rgba(204,74,76,0.08); border: 1px solid rgba(204,74,76,0.3); padding: 10px 14px; margin: 14px 0; border-radius: 2px; font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #c8b49a; }
.csv-wiz-errors strong { color: #cc4a4c; display: block; margin-bottom: 6px; }
.csv-wiz-errors ul { margin: 0; padding-left: 18px; line-height: 1.6; }
.csv-wiz-footer { padding: 14px 22px; border-top: 1px solid rgba(253,246,236,0.08); display: flex; justify-content: flex-end; gap: 8px; background: #0c0d12; }
.csv-wiz-footer button.disabled { opacity: 0.4; cursor: not-allowed; }
.csv-wiz-progress { height: 6px; background: #0c0d12; border: 1px solid rgba(253,246,236,0.1); border-radius: 3px; overflow: hidden; margin: 40px 0 14px; }
.csv-wiz-progress-bar { height: 100%; background: linear-gradient(90deg, #C49A3C, #e0b85a); transition: width 0.2s; }
.csv-wiz-done { text-align: center; padding: 20px 0 30px; }
.csv-wiz-done-icon { font-size: 42px; color: #4acc7a; margin-bottom: 10px; }
.csv-wiz-done h3 { font-family: 'Unbounded', sans-serif; font-size: 18px; font-weight: 500; color: #FDF6EC; margin: 0 0 8px; letter-spacing: 0.06em; }

/* Investments CSV wizard additions */
.csv-wiz-field { margin-bottom: 12px; }
.csv-wiz-field label { display: block; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.1em; color: #6E7380; text-transform: uppercase; margin-bottom: 6px; }
.csv-wiz-field select, .csv-wiz-field input[type="text"], .csv-wiz-field input[type="file"] { background: #0c0d12; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.15); padding: 6px 10px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; width: 100%; border-radius: 2px; }
.csv-wiz-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; margin-bottom: 14px; }
.csv-wiz-field .req { color: #cc4a4c; }
.csv-wiz-drop { border: 1px dashed rgba(253,246,236,0.2); border-radius: 2px; padding: 22px; text-align: center; background: #0c0d12; transition: border-color 0.15s; }
.csv-wiz-drop.drag { border-color: #C49A3C; background: rgba(196,154,60,0.05); }
.csv-wiz-drop p { margin: 4px 0; font-family: 'Share Tech Mono', monospace; font-size: 12px; color: #c8b49a; }
.csv-wiz-drop .muted { color: #6E7380; font-size: 11px; }
.csv-wiz-map h3, .csv-wiz-validate h3, .csv-wiz-import h3 { font-family: 'Unbounded', sans-serif; font-size: 13px; font-weight: 500; color: #FDF6EC; letter-spacing: 0.08em; margin: 0 0 12px; }
.csv-wiz-preview-label { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.1em; color: #6E7380; text-transform: uppercase; margin: 14px 0 6px; }
.csv-wiz-action-map { background: #0c0d12; border: 1px solid rgba(253,246,236,0.08); border-radius: 2px; padding: 10px 12px; margin: 12px 0; }
.csv-wiz-action-label { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.08em; color: #c8b49a; text-transform: uppercase; margin-bottom: 8px; }
.csv-wiz-action-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 6px 10px; }
.csv-wiz-action-row { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; align-items: center; }
.csv-wiz-action-raw { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #FDF6EC; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.csv-wiz-action-row select { background: #141618; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.12); padding: 3px 6px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; border-radius: 2px; }
.csv-wiz-xform-meta { padding: 6px 10px; font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #9aa0ab; background: #0c0d12; border: 1px solid rgba(253,246,236,0.08); border-bottom: 0; }
.csv-wiz-xform-table .xf-muted { color: #6E7380; }
.csv-wiz-xform-table .xf-note { max-width: 220px; overflow: hidden; text-overflow: ellipsis; color: #9aa0ab; font-size: 10px; }
.csv-wiz-xform-table th.xf-raw-sep, .csv-wiz-xform-table td.xf-raw-sep { color: #3a3f4a; padding: 5px 4px; text-align: center; user-select: none; border-left: 1px solid rgba(253,246,236,0.08); }
.stat-chip { background: #13151A; border: 1px solid rgba(253,246,236,0.1); padding: 12px 10px; text-align: center; border-radius: 2px; }
.stat-chip-val { font-family: 'Cormorant Garamond', serif; font-size: 24px; color: #FDF6EC; line-height: 1; }
.stat-chip-val.positive { color: #4acc7a; }
.stat-chip-val.negative { color: #cc4a4c; }
.stat-chip-val.muted { color: #6E7380; }
.stat-chip > div:last-child { font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.12em; color: #6E7380; text-transform: uppercase; margin-top: 4px; }
.csv-wiz-errors-list { margin-top: 6px; }
.csv-wiz-error-row { padding: 3px 0; font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #c8b49a; }
.csv-wiz-import .loading { text-align: center; padding: 40px 0; font-family: 'IBM Plex Mono', monospace; color: #c8b49a; font-size: 12px; letter-spacing: 0.1em; }

/* ===== INVESTMENTS ===== */
.inv-tx-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; gap: 10px; flex-wrap: wrap; }
.inv-tx-tools { display: flex; gap: 6px; }
.inv-tx-tools .cyber-btn-sm.active, .cyber-btn-sm.active { color: #C49A3C; border-color: rgba(196,154,60,0.55); background: rgba(196,154,60,0.08); }
.inv-tx-meta { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #6E7380; margin: 0 0 6px 2px; }
.inv-tx-table th.sortable { cursor: pointer; user-select: none; transition: color 0.12s; }
.inv-tx-table th.sortable:hover { color: #C49A3C; }
.inv-tx-table th.sorted { color: #C49A3C; }
.inv-tx-table th .sort-arrow { font-size: 9px; margin-left: 3px; opacity: 0.9; }
.inv-filter-form, .inv-col-form { display: flex; flex-direction: column; gap: 14px; min-width: 360px; }
.inv-filter-group { display: flex; flex-direction: column; gap: 6px; }
.inv-filter-label { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.12em; color: #6E7380; text-transform: uppercase; }
.inv-filter-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.inv-filter-row { display: flex; gap: 10px; }
.inv-filter-row label { font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: #6E7380; letter-spacing: 0.08em; text-transform: uppercase; display: flex; flex-direction: column; gap: 4px; }
.inv-filter-row input[type="date"] { background: #0c0d12; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.15); padding: 6px 10px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; border-radius: 2px; }
.inv-chip { display: inline-flex; align-items: center; gap: 6px; background: #0c0d12; border: 1px solid rgba(253,246,236,0.12); padding: 5px 10px; border-radius: 2px; font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #c8b49a; cursor: pointer; transition: border-color 0.12s, background 0.12s; }
.inv-chip:hover { border-color: rgba(196,154,60,0.4); }
.inv-chip input[type="checkbox"] { width: 13px; height: 13px; accent-color: #C49A3C; cursor: pointer; margin: 0; }
.inv-chip:has(input:checked) { border-color: #C49A3C; background: rgba(196,154,60,0.1); color: #FDF6EC; }
.inv-chip.wide { width: 100%; }
.inv-col-list { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.inv-toolbar { display: flex; gap: 6px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.inv-toolbar .inv-acct-select { font-family: 'Unbounded', sans-serif; font-size: 9px; font-weight: 400; letter-spacing: 0.08em; padding: 6px 12px; background: var(--bg-3); color: var(--text-2); border: 1px solid var(--border); border-radius: 4px; cursor: pointer; text-transform: uppercase; transition: all 0.15s; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--text-2) 50%), linear-gradient(135deg, var(--text-2) 50%, transparent 50%); background-position: calc(100% - 14px) 50%, calc(100% - 9px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 26px; }
.inv-toolbar .inv-acct-select:hover { border-color: var(--border-2); color: var(--cream); background-color: var(--bg-4); }
.inv-toolbar .inv-acct-select:focus { outline: none; border-color: var(--border-2); color: var(--cream); box-shadow: none; }
.inv-toolbar .inv-acct-select option { background: var(--bg-3); color: var(--cream); font-family: 'Karla', sans-serif; font-size: 12px; letter-spacing: normal; text-transform: none; }

.acc-sort-select { font-family: 'Unbounded', sans-serif; font-size: 9px; font-weight: 400; letter-spacing: 0.08em; padding: 6px 12px; background: var(--bg-3); color: var(--text-2); border: 1px solid var(--border); border-radius: 4px; cursor: pointer; text-transform: uppercase; transition: all 0.15s; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--text-2) 50%), linear-gradient(135deg, var(--text-2) 50%, transparent 50%); background-position: calc(100% - 14px) 50%, calc(100% - 9px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 26px; }
.acc-sort-select:hover { border-color: var(--border-2); color: var(--cream); background-color: var(--bg-4); }
.acc-sort-select:focus { outline: none; border-color: var(--border-2); color: var(--cream); box-shadow: none; }
.acc-sort-select option { background: var(--bg-3); color: var(--cream); font-family: 'Karla', sans-serif; font-size: 12px; letter-spacing: normal; text-transform: none; }
.inv-stats { grid-template-columns: repeat(5, 1fr); gap: 8px; margin-bottom: 12px; }
.inv-stats .card { text-align: center; padding: 8px 10px; }
.inv-stats .stat-label { font-size: 9px; letter-spacing: 0.08em; }
.inv-stats .stat-val { font-family: 'Cormorant Garamond', serif; font-size: 18px; font-weight: 500; color: #FDF6EC; margin-top: 2px; line-height: 1.2; }
.inv-stats .muted { margin-top: 1px; font-size: 9px !important; }
.inv-stats .tax-link-chip { margin-left: 4px; font-size: 7px; padding: 1px 4px; }
@media (max-width: 1100px) { .inv-stats { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .inv-stats { grid-template-columns: repeat(2, 1fr); } }

/* FAQ & Capabilities tab */
.faq-wrap { max-width: 880px; }
.faq-hero { background: #13151A; border: 1px solid rgba(253,246,236,0.1); border-left: 3px solid #C49A3C; padding: 18px 22px; border-radius: 4px; margin-bottom: 20px; }
.faq-hero-title { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 600; color: #FDF6EC; margin: 0 0 6px; letter-spacing: 0.01em; }
.faq-hero-sub { font-family: 'Karla', sans-serif; font-size: 13px; color: #c8b49a; margin: 0 0 14px; line-height: 1.55; }
.faq-disclaimer { font-family: 'Share Tech Mono', monospace; font-size: 11px; color: #FDF6EC; background: rgba(204,26,28,0.08); border: 1px solid rgba(204,26,28,0.3); padding: 10px 14px; border-radius: 3px; line-height: 1.6; }
.faq-disclaimer b { color: #cc6a6c; letter-spacing: 0.04em; }
.faq-section { margin-bottom: 26px; }
.faq-section-title { font-family: 'Unbounded', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 0.14em; color: #C49A3C; text-transform: uppercase; margin: 0 0 10px; padding-bottom: 6px; border-bottom: 1px solid rgba(196,154,60,0.25); }
.faq-item { background: #13151A; border: 1px solid rgba(253,246,236,0.08); border-radius: 3px; margin-bottom: 6px; transition: border-color 0.15s; }
.faq-item[open] { border-color: rgba(196,154,60,0.35); }
.faq-item:hover { border-color: rgba(253,246,236,0.18); }
.faq-q { font-family: 'Karla', sans-serif; font-size: 13px; font-weight: 500; color: #FDF6EC; padding: 11px 14px; cursor: pointer; list-style: none; position: relative; padding-right: 36px; line-height: 1.4; user-select: none; }
.faq-q::-webkit-details-marker { display: none; }
.faq-q::after { content: '+'; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-family: 'IBM Plex Mono', monospace; font-size: 16px; color: #C49A3C; transition: transform 0.15s; }
.faq-item[open] .faq-q::after { content: '−'; }
.faq-a { font-family: 'Karla', sans-serif; font-size: 13px; color: #c8b49a; line-height: 1.65; padding: 4px 14px 14px; border-top: 1px solid rgba(253,246,236,0.05); }
.faq-a b { color: #FDF6EC; font-weight: 500; }
.faq-a code { font-family: 'IBM Plex Mono', monospace; font-size: 11.5px; background: #0c0d12; color: #C49A3C; padding: 1px 5px; border-radius: 2px; border: 1px solid rgba(196,154,60,0.2); }
.faq-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; vertical-align: middle; margin: 0 2px; }
.faq-dot.fresh { background: #4acc7a; box-shadow: 0 0 4px rgba(74,204,122,0.5); }
.faq-dot.stale { background: #C49A3C; }
.faq-dot.old   { background: #6E7380; }
.faq-footer { font-family: 'Share Tech Mono', monospace; font-size: 10px; color: #6E7380; line-height: 1.7; margin-top: 18px; padding: 10px 14px; border-top: 1px solid rgba(253,246,236,0.08); letter-spacing: 0.02em; }

.inv-acct-group { margin-top: 10px; }
.inv-acct-group:first-child { margin-top: 0; }
.inv-acct-label { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.15em; color: #cca64a; text-transform: uppercase; padding: 6px 10px; background: rgba(196,154,60,0.06); border-left: 2px solid #cca64a; margin-bottom: 6px; }

.inv-table-scroll { overflow-x: auto; border: 1px solid rgba(253,246,236,0.08); }
.inv-table { border-collapse: collapse; font-family: 'IBM Plex Mono', monospace; font-size: 11px; width: 100%; min-width: 900px; }
.inv-table thead th { position: sticky; top: 0; background: #141618; color: #cca64a; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; font-size: 9px; padding: 8px 10px; border-bottom: 1px solid rgba(253,246,236,0.15); text-align: left; white-space: nowrap; }
.inv-table tbody td { padding: 8px 10px; border-bottom: 1px solid rgba(253,246,236,0.05); white-space: nowrap; }
.inv-table tbody tr:hover { background: rgba(253,246,236,0.02); }
.inv-table .bal { text-align: right; font-variant-numeric: tabular-nums; }
.inv-table .muted { color: #9aa0ab; }
.inv-table .positive { color: #4acc7a; }
.inv-table .negative { color: #e05050; }
.inv-sym { font-weight: 700; color: #FDF6EC; letter-spacing: 0.06em; }

.inv-caret { background: none; border: none; color: #cca64a; cursor: pointer; font-size: 14px; padding: 0 6px; }
.inv-caret:hover { color: #FDF6EC; }

.inv-lots-row > td { padding: 0 !important; background: rgba(12,13,18,0.6); }
.inv-lots-wrap { padding: 12px 18px 16px; border-left: 2px solid #cca64a; }
.inv-lots-title { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.15em; color: #cca64a; margin-bottom: 8px; }
.inv-lots-table { border-collapse: collapse; font-family: 'IBM Plex Mono', monospace; font-size: 10px; width: 100%; }
.inv-lots-table thead th { background: rgba(196,154,60,0.1); color: #cca64a; font-weight: 600; letter-spacing: 0.08em; font-size: 9px; padding: 6px 8px; text-align: left; white-space: nowrap; }
.inv-lots-table tbody td { padding: 6px 8px; border-bottom: 1px solid rgba(253,246,236,0.04); white-space: nowrap; }
.inv-lots-table .bal { text-align: right; font-variant-numeric: tabular-nums; }
.inv-lots-table .muted { color: #9aa0ab; }
.inv-lots-table .positive { color: #4acc7a; }
.inv-lots-table .negative { color: #e05050; }

.inv-hold-tag { display: inline-block; padding: 2px 7px; font-size: 9px; letter-spacing: 0.08em; border-radius: 2px; font-weight: 700; }
.inv-hold-tag.short { background: rgba(224,80,80,0.15); color: #e05050; border: 1px solid rgba(224,80,80,0.3); }
.inv-hold-tag.long  { background: rgba(74,204,122,0.15); color: #4acc7a; border: 1px solid rgba(74,204,122,0.3); }
.inv-hold-tag.mixed { background: rgba(204,166,74,0.15); color: #cca64a; border: 1px solid rgba(204,166,74,0.3); }

.inv-tx-type { display: inline-block; padding: 2px 7px; font-size: 9px; letter-spacing: 0.08em; border-radius: 2px; font-weight: 700; background: rgba(253,246,236,0.06); color: #9aa0ab; }
.inv-tx-type.buy { background: rgba(74,204,122,0.12); color: #4acc7a; }
.inv-tx-type.sell { background: rgba(224,80,80,0.12); color: #e05050; }
.inv-tx-type.dividend { background: rgba(204,166,74,0.15); color: #cca64a; }

.inv-mini-btn { background: #141618; color: #cca64a; border: 1px solid rgba(204,166,74,0.4); font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.08em; padding: 3px 8px; cursor: pointer; margin-left: 4px; }
.inv-mini-btn:hover:not(:disabled) { background: rgba(204,166,74,0.1); color: #FDF6EC; }
.inv-mini-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.inv-mini-btn.danger { color: #e05050; border-color: rgba(224,80,80,0.4); }
.inv-mini-btn.danger:hover:not(:disabled) { background: rgba(224,80,80,0.1); }

.inv-form { display: flex; flex-direction: column; gap: 10px; }
.inv-form label { display: flex; flex-direction: column; gap: 4px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.08em; color: #9aa0ab; text-transform: uppercase; }
.inv-form input, .inv-form select { background: #0c0d12; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.2); padding: 7px 10px; font-family: 'IBM Plex Mono', monospace; font-size: 12px; }
.inv-form input:focus, .inv-form select:focus { border-color: #cca64a; outline: none; }
.inv-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.inv-total-pill { background: rgba(204,166,74,0.08); border: 1px solid rgba(204,166,74,0.25); padding: 8px 12px; font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: #FDF6EC; text-align: center; letter-spacing: 0.05em; margin-top: 6px; }

.inv-specid-block { border-top: 1px dashed rgba(253,246,236,0.1); padding-top: 10px; }
.inv-specid-label { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.12em; color: #cca64a; margin-bottom: 6px; }
.inv-specid-input { width: 100px; background: #0c0d12; color: #FDF6EC; border: 1px solid rgba(253,246,236,0.2); padding: 4px 8px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; }

.inv-preview-block { border-top: 1px solid rgba(253,246,236,0.1); padding-top: 12px; margin-top: 6px; }
.inv-preview-head { display: flex; flex-wrap: wrap; gap: 14px 22px; padding: 8px 12px; background: rgba(196,154,60,0.05); border-left: 2px solid #cca64a; margin-bottom: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: #C8C9CB; }
.inv-preview-head b { color: #FDF6EC; }

/* Hide number-input spinners on investment forms (Update Prices, Add Lot, Sell, SPECID, Edit) */
.inv-form input[type="number"]::-webkit-outer-spin-button,
.inv-form input[type="number"]::-webkit-inner-spin-button,
.inv-price-input::-webkit-outer-spin-button,
.inv-price-input::-webkit-inner-spin-button,
.inv-specid-input::-webkit-outer-spin-button,
.inv-specid-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.inv-form input[type="number"],
.inv-price-input,
.inv-specid-input { -moz-appearance: textfield; appearance: textfield; }
