/* BuildSupport Budget v3 — Styles */
:root {
  --bg:           #f5f0e8;
  --surface:      #fdfaf4;
  --surface-2:    #efe9dc;
  --border:       #ddd5c4;
  --border-light: #e8e2d6;

  --green:        #2d6a4f;
  --green-mid:    #40916c;
  --green-light:  #b7e4c7;
  --green-pale:   #d8f3dc;

  --text:         #1a1a18;
  --text-mid:     #4a4a40;
  --text-muted:   #8a8272;

  --ok:     #2d6a4f; --ok-bg:   #d8f3dc;
  --warn:   #92570a; --warn-bg: #fdebd0;
  --bad:    #9b2335; --bad-bg:  #fde8ec;

  --font-display: 'DM Serif Display', Georgia, serif;
  --font-body:    'DM Sans', system-ui, sans-serif;
  --radius:       10px;
  --radius-lg:    16px;
  --shadow:       0 2px 12px rgba(45,106,79,.08), 0 1px 3px rgba(0,0,0,.06);
  --shadow-lg:    0 8px 32px rgba(45,106,79,.12), 0 2px 8px rgba(0,0,0,.08);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; }
body { font-family:var(--font-body); background:var(--bg); color:var(--text); min-height:100vh; -webkit-font-smoothing:antialiased; }

/* Loading */
.loading-overlay { position:fixed;inset:0;background:rgba(245,240,232,.88);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;opacity:0;pointer-events:none;transition:opacity .2s; }
.loading-overlay.active { opacity:1;pointer-events:all; }
.loading-spinner { width:34px;height:34px;border:3px solid var(--green-light);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px; }
@keyframes spin { to { transform:rotate(360deg); } }
.loading-text { font-size:.875rem;color:var(--text-mid); }

/* Toast */
.toast-container { position:fixed;bottom:24px;right:24px;z-index:9000;display:flex;flex-direction:column;gap:8px; }
.toast { display:flex;align-items:flex-start;gap:10px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--green);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:260px;max-width:340px;animation:toastIn .25s ease; }
.toast.error  { border-left-color:var(--bad); }
.toast.warning{ border-left-color:var(--warn); }
.toast.success{ border-left-color:var(--green); }
.toast-icon   { font-size:1rem;margin-top:1px;flex-shrink:0; }
.toast-content{ flex:1;min-width:0; }
.toast-title  { font-weight:600;font-size:.8125rem; }
.toast-message{ font-size:.8125rem;color:var(--text-mid);margin-top:2px; }
.toast-close  { background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1.1rem;line-height:1;padding:0 2px; }
@keyframes toastIn  { from{opacity:0;transform:translateX(16px)} to{opacity:1;transform:none} }
.toast.hiding       { animation:toastOut .25s ease forwards; }
@keyframes toastOut { to{opacity:0;transform:translateX(16px)} }

/* Header */
.header { background:var(--green);position:sticky;top:0;z-index:100;box-shadow:0 2px 12px rgba(0,0,0,.15); }
.header__inner { max-width:1400px;margin:0 auto;padding:clamp(10px,1.5vw,14px) clamp(16px,2.5vw,32px);display:flex;align-items:center;gap:20px; }
.header__brand { display:flex;align-items:center;gap:12px;flex-shrink:0; }
.header__logo  { width:36px;height:36px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.8125rem;color:#fff;flex-shrink:0; }
.header__title { font-family:var(--font-display);font-size:1rem;color:#fff;line-height:1.1; }
.header__subtitle { font-size:.675rem;color:rgba(255,255,255,.55);letter-spacing:.5px;text-transform:uppercase; }
.header__nav   { display:flex;gap:3px;margin-left:auto; }
.nav-btn       { display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);font-family:var(--font-body);font-size:.8125rem;font-weight:500;padding:6px 14px;border-radius:var(--radius);cursor:pointer;transition:all .15s;white-space:nowrap; }
.nav-btn:hover  { background:rgba(255,255,255,.18);color:#fff; }
.nav-btn.active { background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.35); }
.header__actions { display:flex;align-items:center;gap:8px;flex-shrink:0; }
.fy-mini { display:flex;align-items:center;gap:6px;font-size:.75rem;color:rgba(255,255,255,.65); }
.fy-mini label { display:flex;align-items:center;gap:4px; }

/* Save badge */
.save-badge { font-size:.75rem;font-weight:500;padding:4px 10px;border-radius:20px; }
.save-badge.saved   { background:rgba(183,228,199,.2);color:var(--green-light); }
.save-badge.unsaved { background:rgba(255,200,100,.2);color:#fde68a; }

/* Buttons */
.btn { display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:.875rem;font-weight:500;padding:8px 16px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:all .15s;white-space:nowrap;text-decoration:none; }
.btn--primary { background:#fff;color:var(--green);border-color:rgba(255,255,255,.8); }
.btn--primary:hover { background:rgba(255,255,255,.9); }
.btn--ghost { background:rgba(255,255,255,.1);color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.2); }
.btn--ghost:hover { background:rgba(255,255,255,.18);color:#fff; }
.btn--sm  { font-size:.8125rem;padding:6px 14px; }
.btn--xs  { font-size:.75rem;padding:4px 10px;background:var(--green-pale);color:var(--green);border-color:var(--green-light); }
.btn--xs:hover { background:var(--green-light); }
.btn--xs.btn--ghost { background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.15); }
.btn--xs.btn--ghost:hover { background:rgba(255,255,255,.18);color:#fff; }
.btn--danger { background:var(--bad-bg);color:var(--bad);border-color:#f5c2cc; }
.btn--danger:hover { background:#fad5db; }

/* Inputs */
.input-xs { font-family:var(--font-body);font-size:.75rem;color:rgba(255,255,255,.9);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:5px;padding:3px 6px;outline:none;width:110px; }
.input-xs:focus { background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4); }
.input-sm { font-family:var(--font-body);font-size:.8125rem;color:var(--text);background:rgba(255,255,255,.6);border:1px solid var(--border);border-radius:6px;padding:5px 8px;outline:none;transition:all .15s; }
.input-sm:focus { background:#fff;border-color:var(--green-mid);box-shadow:0 0 0 3px rgba(64,145,108,.12); }

/* Main */
.main { max-width:1400px;margin:0 auto;padding:clamp(20px,3vw,36px) clamp(16px,2.5vw,32px); }
.tab-panel { display:none; }
.tab-panel.active { display:block; }

/* Page header */
.page-header { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px; }
.page-title  { font-family:var(--font-display);font-size:clamp(1.4rem,2.5vw,1.875rem);color:var(--text);line-height:1.1; }
.page-desc   { font-size:.875rem;color:var(--text-mid);margin-top:5px; }
.page-desc em { font-style:italic;color:var(--green-mid); }
.page-header__meta { display:flex;align-items:center;gap:16px;flex-wrap:wrap; }
.field-inline { font-size:.8125rem;color:var(--text-mid);display:flex;align-items:center;gap:6px; }

/* KPI Strip */
.kpi-strip { display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px; }
.kpi-card  { background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:16px 20px;box-shadow:var(--shadow);flex:1;min-width:160px;position:relative;overflow:hidden; }
.kpi-card::before { content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--green-light);border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
.kpi-card.ok::before   { background:var(--green); }
.kpi-card.warn::before { background:#f59e0b; }
.kpi-card.bad::before  { background:var(--bad); }
.kpi-card__label { font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px; }
.kpi-card__value { font-family:var(--font-display);font-size:clamp(1.3rem,2vw,1.625rem);color:var(--text);line-height:1.1;margin-bottom:4px; }
.kpi-card__sub   { font-size:.73rem;color:var(--text-muted); }
.kpi-badge { display:inline-flex;align-items:center;font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:20px;margin-left:5px;vertical-align:middle; }
.kpi-badge.ok   { background:var(--ok-bg);color:var(--ok); }
.kpi-badge.warn { background:var(--warn-bg);color:var(--warn); }
.kpi-badge.bad  { background:var(--bad-bg);color:var(--bad); }

/* Card */
.card { background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;margin-bottom:20px; }
.card--full { grid-column:1/-1; }
.card__header { display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border-light);background:var(--surface-2);gap:12px;flex-wrap:wrap; }
.card__title  { font-family:var(--font-display);font-size:1rem;color:var(--text);display:flex;align-items:center;gap:8px; }
.card__hint   { font-size:.75rem;color:var(--text-muted);margin-left:auto; }

/* Table wrap */
.table-wrap { overflow-x:auto; }
.table-wrap--scroll { max-height:380px;overflow-y:auto; }

/* ===== Budget table (driftsbudget – kolonner = måneder) ===== */
.budget-table { width:100%;border-collapse:collapse;font-size:.8125rem; }
.budget-table th,
.budget-table td { padding:8px 12px;border-bottom:1px solid var(--border-light);white-space:nowrap; }
.budget-table thead th { background:var(--surface-2);font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);position:sticky;top:0; }
.budget-table thead th:first-child { min-width:160px;text-align:left; }
.budget-table thead th:not(:first-child) { text-align:right;min-width:90px; }
.budget-table tbody tr:hover { background:rgba(183,228,199,.1); }
.budget-table tbody td:first-child { font-weight:500;color:var(--text); }
.budget-table tbody td:not(:first-child) { text-align:right; }
.budget-table tfoot td { font-weight:600;border-top:2px solid var(--border);background:var(--surface-2);padding:9px 12px; }
.budget-table tfoot td:first-child { text-align:left; }
.budget-table tfoot td:not(:first-child) { text-align:right; }
.budget-table .section-row td { background:rgba(45,106,79,.05);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.4px;color:var(--green);padding:6px 12px; }
.budget-table .total-row td { font-weight:700;background:rgba(45,106,79,.07);border-top:1px solid var(--green-light); }
.budget-table input[type="number"] { font-family:var(--font-body);font-size:.8125rem;color:var(--text);background:transparent;border:1px solid transparent;border-radius:4px;padding:2px 4px;width:80px;text-align:right;outline:none;transition:all .12s; }
.budget-table input[type="number"]:focus { background:#fff;border-color:var(--green-light);box-shadow:0 0 0 2px rgba(64,145,108,.1); }
.budget-table input[type="number"]:hover { background:rgba(255,255,255,.6); }

/* ===== Comparison table ===== */
.comparison-table { width:100%;border-collapse:collapse;font-size:.8125rem; }
.comparison-table th { background:var(--surface-2);padding:9px 12px;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);white-space:nowrap; }
.comparison-table th.num { text-align:right; }
.comparison-table td { padding:8px 12px;border-bottom:1px solid var(--border-light);color:var(--text-mid); }
.comparison-table td.num { text-align:right;font-variant-numeric:tabular-nums; }
.comparison-table td:first-child { font-weight:600;color:var(--text); }
.comparison-table tbody tr:hover { background:rgba(183,228,199,.1); }
.comparison-table .future-row td { color:var(--text-muted);font-style:italic; }
.comparison-table .current-row { background:rgba(183,228,199,.18); }
.comparison-table tfoot td { font-weight:700;border-top:2px solid var(--border);background:var(--surface-2);padding:9px 12px; }
.comparison-table tfoot td.num { text-align:right; }

/* ===== Liquidity table ===== */
.liquidity-table { width:100%;border-collapse:collapse;font-size:.8125rem; }
.liquidity-table th { background:var(--surface-2);padding:9px 12px;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);white-space:nowrap; }
.liquidity-table th.num { text-align:right; }
.liquidity-table td { padding:8px 12px;border-bottom:1px solid var(--border-light);color:var(--text-mid); }
.liquidity-table td.num { text-align:right;font-variant-numeric:tabular-nums; }
.liquidity-table td:first-child { font-weight:500;color:var(--text); }
.liquidity-table tbody tr:hover { background:rgba(183,228,199,.1); }
.liquidity-table .future-row td { color:var(--text-muted);font-style:italic; }
.liquidity-table .current-row { background:rgba(183,228,199,.18); }
.liquidity-table tfoot td { font-weight:700;border-top:2px solid var(--border);background:var(--surface-2);padding:9px 12px; }
.liquidity-table tfoot td.num { text-align:right; }

/* Pills */
.pill { display:inline-block;padding:2px 8px;border-radius:20px;font-size:.78rem;font-weight:500; }
.pill.ok   { background:var(--ok-bg);color:var(--ok); }
.pill.warn { background:var(--warn-bg);color:var(--warn); }
.pill.bad  { background:var(--bad-bg);color:var(--bad); }
.pill.neutral { background:var(--surface-2);color:var(--text-muted); }

/* Diff badges */
.diff { font-size:.78rem;font-weight:600;padding:2px 7px;border-radius:20px; }
.diff.pos { background:var(--ok-bg);color:var(--ok); }
.diff.neg { background:var(--bad-bg);color:var(--bad); }
.diff.zero{ background:var(--surface-2);color:var(--text-muted); }

/* Data grid */
.data-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px; }

/* Data table */
.data-table { width:100%;border-collapse:collapse;font-size:.8125rem; }
.data-table th { padding:8px 10px;text-align:left;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap; }
.data-table td { padding:6px 10px;border-bottom:1px solid var(--border-light);vertical-align:middle; }
.data-table tbody tr:last-child td { border-bottom:none; }
.data-table tbody tr:hover { background:rgba(183,228,199,.09); }
.data-table td:last-child { text-align:right;white-space:nowrap; }
.data-table input, .data-table select { font-family:var(--font-body);font-size:.8125rem;color:var(--text);background:transparent;border:1px solid transparent;border-radius:4px;padding:3px 5px;width:100%;outline:none;transition:all .12s; }
.data-table input:focus, .data-table select:focus { background:#fff;border-color:var(--green-light);box-shadow:0 0 0 2px rgba(64,145,108,.1); }
.data-table input[type="number"] { text-align:right; }
.empty-row td { text-align:center;padding:20px;color:var(--text-muted);font-size:.8125rem;font-style:italic; }

/* Badge */
.badge { display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;background:var(--green-pale);color:var(--green);border-radius:20px;font-size:.68rem;font-weight:700; }

/* Modal */
.modal-overlay { position:fixed;inset:0;background:rgba(26,26,24,.4);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:8000;opacity:0;pointer-events:none;transition:opacity .2s; }
.modal-overlay.active { opacity:1;pointer-events:all; }
.modal { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(680px,calc(100vw - 32px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;transform:translateY(8px);transition:transform .2s; }
.modal-overlay.active .modal { transform:none; }
.modal__header { display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--border-light); }
.modal__title  { font-family:var(--font-display);font-size:1.1rem; }
.modal__close  { background:none;border:none;cursor:pointer;font-size:1.375rem;color:var(--text-muted);line-height:1;padding:0 4px;transition:color .15s; }
.modal__close:hover { color:var(--text); }
.modal__body   { padding:18px 22px;overflow-y:auto;flex:1; }
.modal__footer { padding:12px 22px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:8px; }
.modal__footer .btn { background:var(--surface-2);color:var(--text-mid);border-color:var(--border);font-size:.875rem;padding:7px 16px; }
.modal__footer .btn:hover { background:var(--surface); }
.modal__footer .btn.primary { background:var(--green);color:#fff;border-color:var(--green); }
.modal__footer .btn.primary:hover { background:var(--green-mid); }

/* CSV preview */
.csv-preview { overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);margin:8px 0;max-height:180px;overflow-y:auto; }
.csv-preview table { width:100%;border-collapse:collapse;font-size:.78rem; }
.csv-preview th { background:var(--surface-2);padding:7px 9px;font-weight:600;color:var(--text-mid);border-bottom:1px solid var(--border);white-space:nowrap; }
.csv-preview td { padding:5px 9px;border-bottom:1px solid var(--border-light);color:var(--text-mid); }
.col-select-row { display:flex;gap:14px;flex-wrap:wrap;margin-top:12px; }
.col-select-item { display:flex;flex-direction:column;gap:4px;font-size:.8125rem; }
.col-select-item label { font-weight:500;color:var(--text-mid); }
.col-select-item select { font-family:var(--font-body);font-size:.8125rem;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);outline:none;min-width:155px; }

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

/* ===== Dynamiske budgetlinjer ===== */
.budget-line-row td { padding: 5px 12px; }
.line-label-cell {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 180px;
}
.line-name-input {
  font-family: var(--font-body);
  font-size: .8125rem;
  color: var(--text);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 4px;
  padding: 3px 6px;
  flex: 1;
  min-width: 120px;
  outline: none;
  transition: all .12s;
}
.line-name-input:hover { background: rgba(255,255,255,.6); }
.line-name-input:focus { background: #fff; border-color: var(--green-light); box-shadow: 0 0 0 2px rgba(64,145,108,.1); }
.line-del-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-muted);
  font-size: .9rem;
  line-height: 1;
  padding: 2px 4px;
  border-radius: 3px;
  opacity: 0;
  transition: opacity .15s, color .15s;
  flex-shrink: 0;
}
.budget-line-row:hover .line-del-btn { opacity: 1; }
.line-del-btn:hover { color: var(--bad); }
.line-total {
  text-align: right;
  font-size: .78rem;
  color: var(--text-muted);
  white-space: nowrap;
}
.add-line-row td { padding: 6px 12px; border-bottom: none; }
.add-line-btn {
  font-size: .73rem;
  padding: 3px 10px;
  background: transparent;
  border: 1px dashed var(--border);
  color: var(--text-muted);
  border-radius: 5px;
}
.add-line-btn:hover { background: var(--green-pale); border-color: var(--green-light); color: var(--green); }

/* ===== Accordion budget tabel ===== */
.col-label { min-width: 200px; text-align: left; }
.col-total { text-align: right; white-space: nowrap; min-width: 100px; }

/* Gruppe-separator (OMSÆTNING / UDGIFTER) */
.group-sep-row td {
  background: var(--green);
  color: rgba(255,255,255,.75);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
  padding: 6px 14px;
}

/* Sektion-header (toggle-række) */
.section-header-row {
  cursor: pointer;
  user-select: none;
  background: var(--surface-2);
  transition: background .12s;
}
.section-header-row:hover { background: var(--green-pale); }
.section-header-row.is-open { background: rgba(183,228,199,.25); }
.section-toggle-cell {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  font-weight: 600;
  font-size: .875rem;
  color: var(--text);
}
.toggle-arrow {
  font-size: .7rem;
  color: var(--green-mid);
  width: 14px;
  display: inline-block;
  flex-shrink: 0;
  transition: transform .15s;
}
.section-toggle-label { flex: 1; }
.section-line-count {
  font-size: .7rem;
  font-weight: 400;
  color: var(--text-muted);
  background: var(--surface-2);
  border: 1px solid var(--border-light);
  border-radius: 20px;
  padding: 1px 8px;
}
.section-header-row td { border-bottom: 1px solid var(--border-light); }
.section-header-row.is-open td { border-bottom: none; }
.section-total-cell {
  text-align: right;
  font-size: .8125rem;
  color: var(--text-mid);
  padding: 10px 12px;
  white-space: nowrap;
}

/* Detaljelinjer */
.detail-line-row { background: rgba(216,243,220,.12); }
.detail-line-row:hover { background: rgba(183,228,199,.18); }
.detail-label-cell {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
}
.detail-indent {
  color: var(--border);
  font-size: .8rem;
  flex-shrink: 0;
  width: 14px;
}
.line-name-input {
  font-family: var(--font-body);
  font-size: .8125rem;
  color: var(--text);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 4px;
  padding: 3px 6px;
  flex: 1;
  min-width: 100px;
  outline: none;
  transition: all .12s;
}
.line-name-input:hover { background: rgba(255,255,255,.7); }
.line-name-input:focus { background: #fff; border-color: var(--green-light); box-shadow: 0 0 0 2px rgba(64,145,108,.1); }
.line-del-btn {
  background: none; border: none; cursor: pointer;
  color: var(--text-muted); font-size: .9rem; line-height: 1;
  padding: 2px 5px; border-radius: 3px;
  opacity: 0; transition: opacity .15s, color .15s; flex-shrink: 0;
}
.detail-line-row:hover .line-del-btn { opacity: 1; }
.line-del-btn:hover { color: var(--bad); background: var(--bad-bg); }
.detail-cell { padding: 5px 12px; }
.detail-cell input[type="number"] {
  font-family: var(--font-body); font-size: .8125rem; color: var(--text);
  background: transparent; border: 1px solid transparent; border-radius: 4px;
  padding: 3px 5px; width: 82px; text-align: right; outline: none; transition: all .12s;
}
.detail-cell input[type="number"]:hover { background: rgba(255,255,255,.6); }
.detail-cell input[type="number"]:focus { background: #fff; border-color: var(--green-light); box-shadow: 0 0 0 2px rgba(64,145,108,.1); }
.line-total { text-align: right; font-size: .78rem; color: var(--text-muted); padding: 5px 12px; white-space: nowrap; }

/* Tom sektion */
.detail-empty-row td { padding: 8px 34px; color: var(--text-muted); font-size: .8125rem; font-style: italic; }

/* Tilføj-knap */
.add-line-row td { padding: 5px 34px; border-bottom: 1px solid var(--border-light); background: rgba(216,243,220,.08); }
.add-line-btn {
  font-family: var(--font-body); font-size: .75rem; color: var(--green-mid);
  background: transparent; border: 1px dashed var(--green-light);
  border-radius: 5px; padding: 3px 12px; cursor: pointer; transition: all .15s;
}
.add-line-btn:hover { background: var(--green-pale); border-color: var(--green-mid); color: var(--green); }

/* Subtotal-rækker */
.subtotal-row td { 
  font-weight: 600; font-size: .8125rem;
  background: rgba(45,106,79,.06); 
  border-top: 2px solid var(--green-light);
  padding: 9px 12px;
}
.subtotal-row td:first-child { text-align: left; }
.subtotal-row td:not(:first-child) { text-align: right; }

/* ====== Pipeline Forecast ====== */
.pipeline-table { width:100%;border-collapse:collapse;table-layout:auto; }
.pipeline-table thead th {
  font-size:.7rem;font-weight:600;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.4px;
  padding:10px 14px;
  text-align:right;white-space:nowrap;
  border-bottom:2px solid var(--border);
  position:sticky;top:0;background:var(--surface);
}
.pipeline-table thead th:first-child { text-align:left;min-width:150px; }
.pipeline-table td {
  font-size:.8125rem;padding:9px 14px;
  border-bottom:1px solid var(--border-light);white-space:nowrap;
  text-align:right;font-variant-numeric:tabular-nums;
}
.pipeline-table td:first-child { text-align:left;font-weight:500;color:var(--text);font-variant-numeric:normal; }
.pipeline-table td.num { text-align:right;font-variant-numeric:tabular-nums; }
.pipeline-table tbody tr:hover { background:rgba(183,228,199,.08); }

.pipeline-row--budget td { background:rgba(45,106,79,.04); }
.pipeline-row--notion td { background:rgba(147,100,217,.06); }
.pipeline-row--notion td:first-child { font-weight:500; }
.pipeline-row--total td {
  background:rgba(45,106,79,.08);
  border-top:2px solid var(--green-light);
  font-weight:600;
}

.pipeline-cell { color:var(--green); }
.pipeline-table .col-total { font-weight:600; }

/* Pipeline detail table */
#pipelineDetailTable th { text-align:left; }
#pipelineDetailTable th.num { text-align:right; }
#pipelineDetailTable td.num { text-align:right;font-variant-numeric:tabular-nums; }
#pipelineDetailTable td:first-child { min-width:160px; }
#pipelineDetailTable tbody tr:hover { background:rgba(183,228,199,.1); }

/* Pipeline unplaced table */
#pipelineUnplacedTable th { text-align:left; }
#pipelineUnplacedTable th.num { text-align:right; }
#pipelineUnplacedTable td.num { text-align:right;font-variant-numeric:tabular-nums; }

/* Pipeline detail table links */
.pipeline-table a,
.data-table a {
  color:var(--green);text-decoration:none;font-weight:500;
  border-bottom:1px solid transparent;transition:border-color .15s;
}
.pipeline-table a:hover,
.data-table a:hover { border-bottom-color:var(--green-mid); }