/* ════════════════════════════════════════════════════════════
   eControl Builder — sidecar styles (skeleton, step 1)
   Spec: eControl.md §14
   
   Όλες οι κλάσεις έχουν prefix .bldr- για zero collision με κύρια app.
   Το αρχείο είναι σκελετός — γεμίζει στα επόμενα βήματα.
   ════════════════════════════════════════════════════════════ */

/* ── §14.8: Custom Δράση κάρτα "Studio" — μέσα στο home prog grid ──
   Brand-blue palette, dashed frame, verb-first τίτλος.
   Refactor 25/05/2026: αντικαθιστά την παλιά premium navy/gold έκδοση. */
#homeScreen .bldr-hs-prog-card-custom .hs-prog-logo-wrap {
  background: var(--blue-light, #f0f4fb);
  border-bottom: 1px dashed rgba(59, 111, 202, .35);
  color: var(--blue, #3b6fca);
}
#homeScreen .bldr-hs-prog-card-custom .bldr-hs-prog-icon {
  color: var(--blue, #3b6fca);
  transition: transform .3s ease, color .2s ease;
}
#homeScreen .bldr-hs-prog-card-custom:hover .bldr-hs-prog-icon {
  transform: scale(1.08) rotate(6deg);
  color: var(--blue-hover, #2c5ab8);
}
#homeScreen .bldr-hs-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 8px 14px;
  border-radius: 8px;
  background: var(--blue, #3b6fca);
  color: #ffffff;
  border: 1px solid var(--blue, #3b6fca);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  font-family: inherit;
  width: 100%;
}
#homeScreen .bldr-hs-btn-primary:hover {
  background: var(--blue-hover, #2c5ab8);
  border-color: var(--blue-hover, #2c5ab8);
  box-shadow: 0 4px 12px -2px rgba(59, 111, 202, 0.4);
}
#homeScreen .bldr-hs-btn-primary:active {
  transform: translateY(1px);
}

/* ── 4 Builder screens — placeholder UI (Coming Soon) ─────── */
/* Όταν φορτώνεται περιεχόμενο στα επόμενα βήματα, αυτές οι styles
   παραμένουν ως safe fallback για το coming-soon state.        */
/* BATCH Ε1 (24/05/2026): position:fixed + z-index 1000 ώστε ακόμα και αν
   κάποια state corruption αφήσει ένα builder screen σε display:block, να
   ΜΗΝ μπορεί να εμφανιστεί κάτω από το home (όπως είχε γίνει σε σπάνια
   περίπτωση που ο χρήστης scrollαρε κάτω από το ek section). */
.bldr-screen {
  background: var(--bg, #f7f8fa);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow-y: auto;
  z-index: 1000;
  padding: 24px 32px;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
}
.bldr-coming-soon {
  max-width: 560px;
  margin: 80px auto 0;
  padding: 48px 32px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 16px;
  text-align: center;
}
.bldr-coming-soon-icon {
  font-size: 56px;
  line-height: 1;
  margin-bottom: 16px;
  user-select: none;
}
.bldr-coming-soon-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--ink, #111827);
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
.bldr-coming-soon-text {
  font-size: 14px;
  color: var(--ink3, #6b7280);
  line-height: 1.6;
  margin-bottom: 24px;
}
.bldr-coming-soon-text strong {
  color: var(--ink2, #374151);
  font-weight: 600;
}
.bldr-coming-soon-meta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  margin-bottom: 24px;
  background: var(--green-light, #ecfdf5);
  color: var(--green, #059669);
  border: 1px solid var(--green-mid, #6ee7b7);
  border-radius: 99px;
  font-size: 11px;
  font-weight: 700;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.02em;
}
.bldr-coming-soon-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  background: var(--blue, #3b6fca);
  color: #ffffff;
  border: 1px solid var(--blue, #3b6fca);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s ease;
  font-family: inherit;
}
.bldr-coming-soon-back:hover {
  background: #2c5ab8;
  border-color: #2c5ab8;
}

/* ════════════════════════════════════════════════════════════
   STEP 2 — Screen 1: ProgramsList
   Πορτάρισμα από standalone builder_index.html με .bldr- prefix
   ════════════════════════════════════════════════════════════ */

/* ── Wrapper για content μέσα σε bldr-screen ── */
.bldr-screen-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding-bottom: 60px;
}
/* CaseView χρειάζεται περισσότερο πλάτος (πίνακες invoices/payments)
   Batch 4 (18/05/2026): αυξήθηκε από 1500 → 1750px για να μοιάζει με κεντρική
   Batch 4 (19/05/2026): full-width parity με κεντρική app (no horizontal scrolling) */
.bldr-screen-inner-wide {
  max-width: none;
  width: 100%;
  padding-left: 22px;
  padding-right: 22px;
}
.bldr-screen-inner-wide .bldr-table-wrap {
  overflow-x: visible;
}

/* ── Topbar: τίτλος + actions ── */
.bldr-screen-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  margin-bottom: 20px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
}
.bldr-screen-header-left {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.bldr-screen-header-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink, #111827);
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.bldr-screen-header-sub {
  font-size: 12px;
  color: var(--ink3, #6b7280);
  margin-top: 2px;
}
.bldr-screen-header-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

/* ── Builder buttons (.bldr-btn family) ── */
.bldr-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid var(--border, #e5e7eb);
  background: var(--surface, #ffffff);
  color: var(--ink2, #374151);
  font-family: 'Inter', system-ui, sans-serif;
  transition: background .15s, color .15s, border-color .15s, box-shadow .15s;
  white-space: nowrap;
}
.bldr-btn:hover {
  background: var(--bg2, #f3f4f6);
  color: var(--ink, #111827);
  border-color: var(--border2, #d1d5db);
}
.bldr-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.bldr-btn-primary {
  background: var(--blue, #3b6fca);
  border-color: var(--blue, #3b6fca);
  color: #ffffff;
}
.bldr-btn-primary:hover {
  background: var(--blue-hover, #2c5ab8);
  border-color: var(--blue-hover, #2c5ab8);
  color: #ffffff;
  box-shadow: 0 2px 8px rgba(59, 111, 202, 0.25);
}
.bldr-btn-danger {
  border-color: transparent;
  color: var(--red, #dc2626);
  background: transparent;
}
.bldr-btn-danger:hover {
  background: var(--red-light, #fef2f2);
  border-color: var(--red-mid, #fca5a5);
}
.bldr-btn-sm { padding: 5px 10px; font-size: 12px; }
.bldr-btn-lg { padding: 10px 20px; font-size: 13.5px; font-weight: 600; }

/* ── Programs grid (responsive) ── */
.bldr-prog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: 18px;
}

/* ════════════════════════════════════════════════════════════
   PROGRAM CARD — redesigned (Batch 1)
   ════════════════════════════════════════════════════════════ */
.bldr-prog-card {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  padding: 0;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  transition: border-color .18s, box-shadow .22s, transform .18s;
}
.bldr-prog-card:hover {
  border-color: var(--blue-mid, #bfdbfe);
  box-shadow: 0 8px 24px rgba(59, 111, 202, 0.10), 0 2px 6px rgba(0, 0, 0, 0.04);
  transform: translateY(-2px);
}

/* + Νέος Φάκελος — full-width accent button στην κορυφή */
.bldr-prog-card-newcase {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 11px 16px;
  background: linear-gradient(135deg, var(--blue, #3b6fca), var(--blue-hover, #2c5ab8));
  color: #ffffff;
  border: none;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: -0.005em;
  cursor: pointer;
  transition: filter .15s, padding .15s;
  position: relative;
}
.bldr-prog-card-newcase:hover {
  filter: brightness(1.08);
}
.bldr-prog-card-newcase:active {
  filter: brightness(0.95);
}
.bldr-prog-card-newcase-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  font-size: 15px;
  font-weight: 400;
  line-height: 1;
}

/* Head: τίτλος + κωδικός */
.bldr-prog-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 16px 18px 0;
}
.bldr-prog-card-title {
  font-size: 16.5px;
  font-weight: 700;
  color: var(--ink, #111827);
  letter-spacing: -0.015em;
  line-height: 1.3;
}
.bldr-prog-card-code {
  font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink2, #374151);
  background: var(--bg2, #f3f4f6);
  border: 1px solid var(--border, #e5e7eb);
  padding: 3px 8px;
  border-radius: 6px;
  flex-shrink: 0;
  white-space: nowrap;
  letter-spacing: 0.02em;
}
.bldr-prog-card-ref {
  font-size: 11.5px;
  color: var(--ink3, #6b7280);
  line-height: 1.4;
  margin-top: 4px;
}

/* Pills row (φάκελοι + checklist count) */
.bldr-prog-card-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 18px 0;
}
.bldr-prog-card-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  transition: filter .15s, background .15s;
  user-select: none;
}
.bldr-prog-card-pill-blue {
  background: var(--blue-light, #eff6ff);
  color: var(--blue, #3b6fca);
  border-color: var(--blue-mid, #bfdbfe);
}
.bldr-prog-card-pill-blue:hover {
  background: var(--blue-mid, #bfdbfe);
}
.bldr-prog-card-pill-muted {
  background: var(--bg2, #f3f4f6);
  color: var(--ink3, #6b7280);
  border-color: var(--border, #e5e7eb);
}
.bldr-prog-card-pill-muted:hover {
  background: var(--bg3, #e5e7eb);
}
.bldr-prog-card-pill-amber {
  background: rgba(217, 119, 6, 0.08);
  color: var(--amber, #d97706);
  border-color: rgba(217, 119, 6, 0.22);
}
.bldr-prog-card-pill-amber:hover {
  background: rgba(217, 119, 6, 0.14);
}

/* Meta grid */
.bldr-prog-card-meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 14px;
  padding: 14px 18px 14px;
  margin-top: 12px;
  border-top: 1px solid var(--border, #e5e7eb);
  background: linear-gradient(to bottom, var(--bg2, #f9fafb), transparent);
}
.bldr-prog-card-meta-item {
  font-size: 11.5px;
  color: var(--ink3, #6b7280);
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.bldr-prog-card-meta-label {
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink4, #9ca3af);
  letter-spacing: 0.06em;
}
.bldr-prog-card-meta-value {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink, #111827);
  font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
  letter-spacing: -0.005em;
}
.bldr-prog-card-rule-badge {
  display: inline-block;
  font-size: 9.5px;
  font-weight: 700;
  color: var(--amber, #d97706);
  background: var(--amber-light, #fef3c7);
  padding: 1px 5px;
  border-radius: 4px;
  margin-left: 4px;
  font-family: 'Inter', system-ui, sans-serif;
  letter-spacing: 0.03em;
  vertical-align: middle;
}

/* Footer actions */
.bldr-prog-card-actions {
  display: flex;
  gap: 0;
  border-top: 1px solid var(--border, #e5e7eb);
  background: var(--surface, #ffffff);
}
.bldr-prog-card-action {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 8px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ink2, #374151);
  background: transparent;
  border: none;
  border-right: 1px solid var(--border, #e5e7eb);
  font-family: 'Inter', system-ui, sans-serif;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.bldr-prog-card-action:last-child {
  border-right: none;
}
.bldr-prog-card-action:hover {
  background: var(--bg2, #f3f4f6);
  color: var(--ink, #111827);
}
.bldr-prog-card-action-danger {
  flex: 0 0 44px;
  color: var(--ink4, #9ca3af);
  font-size: 14px;
}
.bldr-prog-card-action-danger:hover {
  background: var(--red-light, #fef2f2);
  color: var(--red, #dc2626);
}

/* ── (παλιά styles διατηρούνται για backward-compat — δεν χρησιμοποιούνται από το νέο card) ── */
.bldr-prog-card-cases {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: var(--blue-light, #eff6ff);
  border: 1px solid var(--blue-mid, #bfdbfe);
  border-radius: 8px;
  cursor: pointer;
  transition: background .15s, border-color .15s;
  color: var(--blue, #3b6fca);
  font-size: 12.5px;
  font-weight: 600;
}
.bldr-prog-card-cases:hover {
  background: var(--blue-mid, #bfdbfe);
}
.bldr-prog-card-cases-empty {
  background: var(--bg2, #f3f4f6);
  border-color: var(--border, #e5e7eb);
  color: var(--ink3, #6b7280);
  font-weight: 500;
}
.bldr-prog-card-cases-empty:hover {
  background: var(--bg3, #e5e7eb);
}

/* ── Empty state ── */
.bldr-empty-state {
  text-align: center;
  padding: 60px 24px;
  border: 2px dashed var(--border, #e5e7eb);
  border-radius: 12px;
  color: var(--ink3, #6b7280);
  background: var(--surface, #ffffff);
}
.bldr-empty-state-icon {
  font-size: 48px;
  margin-bottom: 14px;
  opacity: 0.7;
  line-height: 1;
}
.bldr-empty-state-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--ink, #111827);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}
.bldr-empty-state-text {
  font-size: 13.5px;
  line-height: 1.6;
  margin-bottom: 22px;
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}

/* ════════════════════════════════════════════════════════════
   STEP 3 — Screen 2: ProgramForm
   ════════════════════════════════════════════════════════════ */

/* ── Form card (numbered section) ── */
.bldr-form-card {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  padding: 22px 24px;
  margin-bottom: 14px;
}
.bldr-form-card-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink, #111827);
  letter-spacing: -0.01em;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-form-card-title .bldr-num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--blue, #3b6fca);
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
  flex-shrink: 0;
}

/* ── Field & input ── */
.bldr-field { margin-bottom: 14px; }
.bldr-field:last-child { margin-bottom: 0; }
.bldr-field label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--ink2, #374151);
  margin-bottom: 5px;
}
.bldr-field .bldr-req {
  color: var(--red, #dc2626);
  font-weight: 700;
  margin-left: 2px;
}
.bldr-field .bldr-hint {
  font-size: 11.5px;
  color: var(--ink4, #9ca3af);
  margin-top: 5px;
  line-height: 1.45;
}
.bldr-field input,
.bldr-field select,
.bldr-field textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  background: var(--bg2, #f3f4f6);
  color: var(--ink, #111827);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  outline: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
  line-height: 1.4;
  box-sizing: border-box;
}
.bldr-field input:focus,
.bldr-field select:focus,
.bldr-field textarea:focus {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 3px var(--blue-dim, rgba(59,111,202,0.15));
  background: var(--surface, #ffffff);
}
.bldr-field input::placeholder,
.bldr-field textarea::placeholder {
  color: var(--ink4, #9ca3af);
}
.bldr-field input.bldr-invalid,
.bldr-field input.bldr-invalid:focus {
  border-color: var(--red, #dc2626);
  box-shadow: 0 0 0 3px rgba(220,38,38,0.12);
}
.bldr-field-row {
  display: flex;
  gap: 12px;
}
.bldr-field-row .bldr-field {
  flex: 1;
  min-width: 0;
  margin-bottom: 14px;
}
@media (max-width: 600px) {
  .bldr-field-row { flex-direction: column; gap: 0; }
}

/* ── Check items grid (phases + categories) ── */
.bldr-check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 8px;
}
.bldr-check-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  background: var(--bg2, #f3f4f6);
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
  font-size: 12.5px;
  color: var(--ink2, #374151);
  user-select: none;
}
.bldr-check-item:hover {
  background: var(--surface, #ffffff);
  border-color: var(--border2, #d1d5db);
}
.bldr-check-item.bldr-checked {
  background: var(--blue-light, #eff6ff);
  border-color: var(--blue-mid, #bfdbfe);
  color: var(--blue, #3b6fca);
  font-weight: 500;
}
.bldr-check-item input {
  accent-color: var(--blue, #3b6fca);
  margin: 0;
  cursor: pointer;
  flex-shrink: 0;
}
.bldr-check-item-label {
  flex: 1;
  min-width: 0;
  line-height: 1.35;
}
.bldr-check-item-code {
  font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink3, #6b7280);
  margin-right: 6px;
}
.bldr-check-item.bldr-checked .bldr-check-item-code {
  color: var(--blue, #3b6fca);
}

/* ── Toggle row (cash limit info + 50% rule) ── */
.bldr-toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  background: var(--bg2, #f3f4f6);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  gap: 12px;
}
.bldr-toggle-row-text {
  flex: 1;
  min-width: 0;
}
.bldr-toggle-row-title {
  font-size: 13px;
  font-weight: 500;
  color: var(--ink, #111827);
}
.bldr-toggle-row-hint {
  font-size: 11.5px;
  color: var(--ink3, #6b7280);
  margin-top: 3px;
  line-height: 1.45;
}
.bldr-toggle-sw {
  position: relative;
  width: 40px;
  height: 22px;
  background: var(--border2, #d1d5db);
  border-radius: 99px;
  cursor: pointer;
  transition: background .18s;
  flex-shrink: 0;
}
.bldr-toggle-sw::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  background: #ffffff;
  border-radius: 50%;
  transition: left .18s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.bldr-toggle-sw.bldr-on { background: var(--blue, #3b6fca); }
.bldr-toggle-sw.bldr-on::after { left: 20px; }

/* ── Footer with save/cancel ── */
.bldr-form-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
  padding: 16px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  position: sticky;
  bottom: 16px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

/* ── Edit-mode warning banner ── */
.bldr-edit-warning {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px 18px;
  margin-bottom: 14px;
  background: var(--amber-light, #fef3c7);
  border: 1px solid var(--amber-mid, #fcd34d);
  border-radius: 10px;
}
.bldr-edit-warning-icon {
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
}
.bldr-edit-warning-text {
  font-size: 12.5px;
  color: var(--ink2, #374151);
  line-height: 1.55;
}
.bldr-edit-warning-text strong {
  color: var(--ink, #111827);
  font-weight: 600;
}

/* ── Toast notification ── */
.bldr-toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 10000;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: #ffffff;
  background: var(--ink, #111827);
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
  max-width: 380px;
  animation: bldrToastIn .25s ease-out;
}
.bldr-toast.bldr-toast-ok { background: var(--green, #059669); }
.bldr-toast.bldr-toast-err { background: var(--red, #dc2626); }
.bldr-toast.bldr-toast-warn { background: var(--amber, #d97706); }
.bldr-toast-icon { font-size: 16px; line-height: 1; }
.bldr-toast.bldr-toast-out { animation: bldrToastOut .25s ease-in forwards; }
@keyframes bldrToastIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes bldrToastOut {
  from { opacity: 1; transform: translateY(0); }
  to   { opacity: 0; transform: translateY(20px); }
}

/* ════════════════════════════════════════════════════════════
   STEP 4 — Screen 3: ChecklistEditor
   ════════════════════════════════════════════════════════════ */

/* ── Section card ── */
.bldr-cl-sec {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 12px;
}
.bldr-cl-sec-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-cl-sec-icon {
  font-size: 20px;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg2, #f3f4f6);
  border-radius: 8px;
  line-height: 1;
}
.bldr-cl-sec-title {
  flex: 1;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink, #111827);
  letter-spacing: -0.01em;
}
.bldr-cl-sec-count {
  font-size: 11px;
  font-weight: 500;
  color: var(--ink3, #6b7280);
  background: var(--bg2, #f3f4f6);
  padding: 3px 10px;
  border-radius: 99px;
  font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
}
.bldr-cl-sec-actions {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}

/* ── Icon-button (square 30x30) ── */
.bldr-icon-btn {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  border: 1px solid var(--border, #e5e7eb);
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink3, #6b7280);
  font-size: 13px;
  font-family: inherit;
  transition: background .15s, color .15s, border-color .15s;
}
.bldr-icon-btn:hover {
  background: var(--bg2, #f3f4f6);
  color: var(--ink, #111827);
  border-color: var(--border2, #d1d5db);
}
.bldr-icon-btn.bldr-icon-btn-del {
  color: var(--red, #dc2626);
}
.bldr-icon-btn.bldr-icon-btn-del:hover {
  background: var(--red-light, #fef2f2);
  border-color: var(--red-mid, #fca5a5);
  color: var(--red, #dc2626);
}

/* ── Items list inside section ── */
.bldr-cl-items {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bldr-cl-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  background: var(--bg2, #f3f4f6);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  transition: background .15s, border-color .15s, opacity .15s;
}
.bldr-cl-item:hover {
  border-color: var(--border2, #d1d5db);
  background: var(--surface2, #fafafa);
}
.bldr-cl-item.bldr-dragging {
  opacity: 0.4;
}
.bldr-cl-item.bldr-drop-target {
  border-color: var(--blue, #3b6fca);
  border-style: dashed;
}
.bldr-cl-drag {
  color: var(--ink4, #9ca3af);
  cursor: grab;
  padding: 2px;
  line-height: 1;
  font-size: 14px;
  user-select: none;
  flex-shrink: 0;
  margin-top: 2px;
}
.bldr-cl-drag:active { cursor: grabbing; }
.bldr-cl-item-body {
  flex: 1;
  min-width: 0;
}
.bldr-cl-item-text {
  font-size: 13px;
  color: var(--ink, #111827);
  line-height: 1.45;
  margin-bottom: 4px;
}
.bldr-cl-item-meta {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
  font-size: 11px;
}

/* ── Tags for OPSKE + phases ── */
.bldr-cl-tag {
  padding: 2px 8px;
  border-radius: 99px;
  background: var(--bg3, #e5e7eb);
  color: var(--ink3, #6b7280);
  font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
  font-weight: 500;
}
.bldr-cl-tag.bldr-cl-tag-opske {
  background: var(--purple-dim, rgba(109,73,196,0.12));
  color: var(--purple, #5a3ca0);
}
.bldr-cl-tag.bldr-cl-tag-phase-A {
  background: var(--blue-dim, rgba(59,111,202,0.15));
  color: var(--blue, #3b6fca);
}
.bldr-cl-tag.bldr-cl-tag-phase-B {
  background: var(--amber-dim, rgba(217,119,6,0.15));
  color: var(--amber, #d97706);
}
.bldr-cl-tag.bldr-cl-tag-phase-T {
  background: var(--green-dim, rgba(5,150,105,0.15));
  color: var(--green, #059669);
}
.bldr-cl-item-actions {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}

/* ── Empty section ── */
.bldr-cl-empty-sec {
  padding: 16px;
  text-align: center;
  color: var(--ink4, #9ca3af);
  font-size: 12.5px;
  font-style: italic;
}

/* ── Drop zone on section (for moving items to empty sections) ── */
.bldr-cl-sec.bldr-drop-target {
  border-color: var(--blue, #3b6fca);
  border-style: dashed;
  background: var(--blue-light, #eff6ff);
}

/* ════════════════════════════════════════════════════════════
   MODAL (overlay + box) — used by Section and Item editors
   ════════════════════════════════════════════════════════════ */
.bldr-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9500;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.bldr-overlay.bldr-open {
  opacity: 1;
  pointer-events: all;
}
.bldr-modal {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  padding: 24px 26px;
  width: 520px;
  max-width: 96vw;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
  animation: bldrModalIn .2s cubic-bezier(.4,0,.2,1);
}
.bldr-modal.bldr-wide { width: 640px; }
@keyframes bldrModalIn {
  from { opacity: 0; transform: translateY(8px) scale(.98); }
  to   { opacity: 1; transform: none; }
}
.bldr-modal h3 {
  font-size: 16px;
  font-weight: 600;
  color: var(--ink, #111827);
  margin: 0 0 18px 0;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: -0.02em;
}
.bldr-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--border, #e5e7eb);
}
.bldr-modal-footer-left {
  margin-right: auto;
}

/* ── Phase chips inside item modal ── */
.bldr-phase-chk-row {
  display: flex;
  gap: 6px;
}
.bldr-phase-chk {
  flex: 1;
  padding: 8px 10px;
  background: var(--bg2, #f3f4f6);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  cursor: pointer;
  text-align: center;
  font-size: 12px;
  font-weight: 500;
  color: var(--ink2, #374151);
  transition: background .15s, border-color .15s, color .15s;
  user-select: none;
}
.bldr-phase-chk:hover { background: var(--bg3, #e5e7eb); }
.bldr-phase-chk.bldr-on {
  background: var(--blue-light, #eff6ff);
  border-color: var(--blue-mid, #bfdbfe);
  color: var(--blue, #3b6fca);
  font-weight: 600;
}

/* ════════════════════════════════════════════════════════════
   STEP 5 — Drawer φακέλων (cases drawer)
   Slide-in side panel from right
   ════════════════════════════════════════════════════════════ */

/* ── Overlay (κάτω από το drawer) ── */
.bldr-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  z-index: 9000;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.bldr-drawer-overlay.bldr-open {
  opacity: 1;
  pointer-events: all;
}

/* ── Drawer panel ── */
.bldr-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 480px;
  max-width: 96vw;
  background: var(--surface, #ffffff);
  border-left: 1px solid var(--border, #e5e7eb);
  z-index: 9001;
  transform: translateX(100%);
  transition: transform .25s cubic-bezier(.4,0,.2,1);
  display: flex;
  flex-direction: column;
  box-shadow: -8px 0 32px rgba(0,0,0,0.15);
  font-family: 'Inter', system-ui, sans-serif;
}
.bldr-drawer.bldr-open { transform: translateX(0); }

/* ── Drawer head ── */
.bldr-drawer-head {
  padding: 18px 20px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.bldr-drawer-head-content {
  flex: 1;
  min-width: 0;
}
.bldr-drawer-head-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink, #111827);
  letter-spacing: -0.015em;
  line-height: 1.3;
}
.bldr-drawer-head-code {
  font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
  font-size: 11.5px;
  color: var(--ink3, #6b7280);
  margin-top: 3px;
}
.bldr-drawer-close {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: transparent;
  border: 1px solid var(--border, #e5e7eb);
  color: var(--ink3, #6b7280);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background .15s, color .15s, border-color .15s;
  font-family: inherit;
}
.bldr-drawer-close:hover {
  background: var(--bg2, #f3f4f6);
  color: var(--ink, #111827);
  border-color: var(--border2, #d1d5db);
}

/* ── Drawer body (scrollable) ── */
.bldr-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px 20px;
}

/* ── Drawer foot (sticky bottom με Νέος Φάκελος) ── */
.bldr-drawer-foot {
  padding: 14px 20px;
  border-top: 1px solid var(--border, #e5e7eb);
  background: var(--surface, #ffffff);
  display: flex;
  gap: 8px;
}
.bldr-drawer-foot .bldr-btn { flex: 1; }

/* ── Case list item (μέσα στο drawer) ── */
.bldr-case-list-item {
  padding: 12px 14px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  margin-bottom: 8px;
  cursor: pointer;
  transition: background .15s, border-color .15s, transform .15s;
  background: var(--bg2, #f3f4f6);
}
.bldr-case-list-item:hover {
  border-color: var(--blue-mid, #bfdbfe);
  background: var(--blue-light, #eff6ff);
  transform: translateX(-2px);
}
.bldr-case-list-company {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink, #111827);
  margin-bottom: 4px;
  letter-spacing: -0.01em;
}
.bldr-case-list-meta {
  font-size: 11.5px;
  color: var(--ink3, #6b7280);
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.bldr-case-list-meta strong {
  font-weight: 600;
  color: var(--ink2, #374151);
}
.bldr-case-list-meta .bldr-spacer { flex: 1; }
.bldr-case-list-meta .bldr-case-list-date {
  font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
  font-size: 10.5px;
  color: var(--ink4, #9ca3af);
}

/* ── Drawer empty state ── */
.bldr-drawer-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--ink3, #6b7280);
}
.bldr-drawer-empty-icon {
  font-size: 40px;
  margin-bottom: 12px;
  opacity: 0.5;
  line-height: 1;
}
.bldr-drawer-empty-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink2, #374151);
  margin-bottom: 4px;
}
.bldr-drawer-empty-text {
  font-size: 12.5px;
  line-height: 1.55;
}

/* ════════════════════════════════════════════════════════════
   STEP 6a — CaseView: header meta, tabs, checklist, edit modal
   ════════════════════════════════════════════════════════════ */

/* ── Wrapper ──
   Batch 1 (20/05/2026): Αφαιρέθηκε max-width:1100px ώστε η case view να γεμίζει
   όλο το διαθέσιμο πλάτος όπως η κεντρική app (parity με .content). */
.bldr-case-view-wrap {
  width: 100%;
  margin: 0 auto;
}

/* ── Meta bar κάτω από header ── */
.bldr-case-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  padding: 12px 16px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  margin-bottom: 16px;
  font-size: 12px;
  color: var(--ink3, #6b7280);
}
.bldr-case-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.bldr-case-meta-item strong {
  color: var(--ink, #1a1a1a);
  font-weight: 600;
}
.bldr-case-meta-rule50 {
  padding: 2px 8px;
  border-radius: 99px;
  background: rgba(217, 119, 6, 0.1);
  color: var(--amber, #d97706);
}
.bldr-case-meta-rule50 strong { color: var(--amber, #d97706); }

/* ── Tab navigation ── */
.bldr-case-tabs {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  margin-bottom: 18px;
  padding: 0 2px;
  flex-wrap: wrap;
}
.bldr-case-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink3, #6b7280);
  cursor: pointer;
  transition: color .15s ease, background .15s ease, border-color .15s ease;
  margin-bottom: -1px;
  border-radius: 6px 6px 0 0;
}
.bldr-case-tab:hover {
  color: var(--ink, #1a1a1a);
  background: var(--surface2, #f3f4f6);
}
.bldr-case-tab-active {
  color: var(--blue, #3b6fca);
  border-bottom-color: var(--blue, #3b6fca);
  font-weight: 600;
}
.bldr-case-tab-active:hover {
  color: var(--blue, #3b6fca);
  background: transparent;
}
.bldr-case-tab-counter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 18px;
  padding: 0 7px;
  background: var(--surface2, #f3f4f6);
  border-radius: 99px;
  font-size: 10px;
  font-weight: 600;
  color: var(--ink3, #6b7280);
  font-family: var(--mono, 'JetBrains Mono', monospace);
  letter-spacing: -0.01em;
}
.bldr-case-tab-active .bldr-case-tab-counter {
  background: var(--blue-light, #dbeafe);
  color: var(--blue, #3b6fca);
}

/* ── Tab content container ── */
.bldr-tab-content {
  min-height: 240px;
  /* BATCH Δ1 (22/05/2026): σταθερό layout — αποτρέπει αλλαγή width του sidebar
     όταν εναλλάσσει tabs (Παραστατικά/Πληρωμές/Αναφορά) */
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow-x: hidden;
}
/* BATCH Δ1 (22/05/2026): Έγγραφο layout για το case view wrap — σταθερό για όλες τις tabs */
.bldr-case-view-wrap {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* ════════════════════════════════════════════════════════════
   CHECKLIST TAB
   ════════════════════════════════════════════════════════════ */

/* Empty state (επαναχρησιμοποιείται και από invoices/payments placeholders) */
.bldr-cl-empty {
  padding: 60px 24px;
  text-align: center;
  background: var(--surface, #ffffff);
  border: 1px dashed var(--border, #e5e7eb);
  border-radius: 12px;
}
.bldr-cl-empty-icon {
  font-size: 48px;
  margin-bottom: 14px;
  opacity: 0.5;
  user-select: none;
}
.bldr-cl-empty-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink, #1a1a1a);
  margin-bottom: 6px;
}
.bldr-cl-empty-text {
  font-size: 12.5px;
  color: var(--ink3, #6b7280);
  max-width: 460px;
  margin: 0 auto;
  line-height: 1.55;
}

/* Section card */
.bldr-cl-section {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  margin-bottom: 10px;
  overflow: hidden;
}
.bldr-cl-section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  background: var(--surface2, #f3f4f6);
  border-bottom: 1px solid var(--border, #e5e7eb);
  cursor: pointer;
  user-select: none;
  transition: background .15s ease;
}
.bldr-cl-section-header:hover {
  background: var(--border, #e5e7eb);
}
.bldr-cl-section-icon {
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
}
.bldr-cl-section-title {
  flex: 1;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink, #1a1a1a);
  letter-spacing: -0.005em;
}
.bldr-cl-section-counter {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--ink3, #6b7280);
  padding: 2px 9px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 99px;
  font-family: var(--mono, 'JetBrains Mono', monospace);
}
.bldr-cl-section.bldr-cl-complete .bldr-cl-section-counter {
  background: rgba(5, 150, 105, 0.1);
  color: var(--green, #059669);
  border-color: rgba(5, 150, 105, 0.3);
}
.bldr-cl-section.bldr-cl-complete .bldr-cl-section-header {
  background: rgba(5, 150, 105, 0.05);
}
.bldr-cl-section-toggle {
  font-size: 11px;
  color: var(--ink4, #9ca3af);
  transition: transform .2s ease;
  margin-left: 4px;
  flex-shrink: 0;
}
.bldr-cl-section.bldr-cl-collapsed .bldr-cl-section-toggle {
  transform: rotate(-90deg);
}
.bldr-cl-section.bldr-cl-collapsed .bldr-cl-section-body {
  display: none;
}
.bldr-cl-section-body {
  padding: 0;
}

/* Checklist item */
.bldr-cl-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  transition: background .12s ease;
}
.bldr-cl-item:last-child {
  border-bottom: none;
}
.bldr-cl-item:hover {
  background: var(--surface2, #f3f4f6);
}
.bldr-cl-item[data-tick="yes"] {
  background: rgba(5, 150, 105, 0.04);
}
.bldr-cl-item[data-tick="yes"]:hover {
  background: rgba(5, 150, 105, 0.08);
}
.bldr-cl-item[data-tick="no"] {
  background: rgba(220, 38, 38, 0.04);
}
.bldr-cl-item[data-tick="no"]:hover {
  background: rgba(220, 38, 38, 0.08);
}
.bldr-cl-item[data-tick="na"] {
  opacity: 0.65;
}
.bldr-cl-item-main {
  flex: 1;
  min-width: 0;
}
.bldr-cl-item-text {
  font-size: 13px;
  color: var(--ink, #1a1a1a);
  line-height: 1.45;
  word-wrap: break-word;
}
.bldr-cl-item-tags {
  display: flex;
  gap: 4px;
  margin-top: 5px;
  flex-wrap: wrap;
}
.bldr-cl-tag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 600;
  border-radius: 99px;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.bldr-cl-tag-opske {
  background: rgba(168, 85, 247, 0.1);
  color: #9333ea;
  font-family: var(--mono, 'JetBrains Mono', monospace);
}
.bldr-cl-tag-phase {
  background: var(--blue-light, #dbeafe);
  color: var(--blue, #3b6fca);
}

/* Tick buttons (✓ / ✗ / —) */
.bldr-cl-item-actions {
  display: inline-flex;
  gap: 3px;
  flex-shrink: 0;
}
.bldr-tick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 28px;
  padding: 0 7px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink4, #9ca3af);
  cursor: pointer;
  transition: all .12s ease;
  line-height: 1;
}
.bldr-tick:hover {
  border-color: var(--ink4, #9ca3af);
  color: var(--ink2, #374151);
}
.bldr-tick-yes.bldr-tick-active {
  background: var(--green, #059669);
  border-color: var(--green, #059669);
  color: #ffffff;
}
.bldr-tick-yes.bldr-tick-active:hover {
  background: #047857;
  border-color: #047857;
  color: #ffffff;
}
.bldr-tick-no.bldr-tick-active {
  background: var(--red, #dc2626);
  border-color: var(--red, #dc2626);
  color: #ffffff;
}
.bldr-tick-no.bldr-tick-active:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #ffffff;
}
.bldr-tick-na.bldr-tick-active {
  background: var(--ink3, #6b7280);
  border-color: var(--ink3, #6b7280);
  color: #ffffff;
}
.bldr-tick-na.bldr-tick-active:hover {
  background: var(--ink2, #374151);
  border-color: var(--ink2, #374151);
  color: #ffffff;
}

/* ════════════════════════════════════════════════════════════
   EDIT CASE MODAL — danger zone (delete)
   ════════════════════════════════════════════════════════════ */
.bldr-case-danger {
  margin-top: 18px;
  padding: 12px 14px;
  border: 1px solid rgba(220, 38, 38, 0.3);
  background: rgba(220, 38, 38, 0.05);
  border-radius: 8px;
}
.bldr-case-danger-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--red, #dc2626);
  margin-bottom: 6px;
  letter-spacing: 0.01em;
}
.bldr-case-danger-text {
  font-size: 11.5px;
  color: var(--ink2, #374151);
  line-height: 1.5;
  margin-bottom: 10px;
}

/* ════════════════════════════════════════════════════════════
   MOBILE — tabs & meta bar wrap, tick buttons παραμένουν inline
   ════════════════════════════════════════════════════════════ */
@media (max-width: 720px) {
  .bldr-case-meta { padding: 10px 12px; font-size: 11.5px; }
  .bldr-case-tab { padding: 9px 12px; font-size: 12.5px; }
  .bldr-cl-section-header { padding: 10px 12px; }
  .bldr-cl-section-title { font-size: 13px; }
  .bldr-cl-item { padding: 10px 12px; gap: 8px; }
  .bldr-cl-item-text { font-size: 12.5px; }
  .bldr-tick { min-width: 28px; height: 26px; font-size: 13px; }
}

/* ════════════════════════════════════════════════════════════
   STEP 6b — Cross-checks bar, Invoices/Payments tables, modals
   ════════════════════════════════════════════════════════════ */

/* ── Cross-checks bar (μεταξύ meta bar και tabs) ───────────── */
.bldr-checks-bar {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 6px;
  margin-bottom: 14px;
}
.bldr-check {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  border-left-width: 3px;
  cursor: help;
  transition: transform .12s ease, box-shadow .12s ease;
  min-width: 0;
}
.bldr-check:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 10px -3px rgba(0, 0, 0, 0.08);
}
.bldr-check-icon {
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
}
.bldr-check-body {
  min-width: 0;
  flex: 1;
}
.bldr-check-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--ink3, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bldr-check-value {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  font-family: var(--mono, 'JetBrains Mono', monospace);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bldr-check-ok      { border-left-color: var(--green, #059669); }
.bldr-check-ok      .bldr-check-value { color: var(--green, #059669); }
.bldr-check-warn    { border-left-color: var(--amber, #d97706); background: rgba(217, 119, 6, 0.04); }
.bldr-check-warn    .bldr-check-value { color: var(--amber, #d97706); }
.bldr-check-err     { border-left-color: var(--red, #dc2626); background: rgba(220, 38, 38, 0.05); }
.bldr-check-err     .bldr-check-value { color: var(--red, #dc2626); }
.bldr-check-neutral { border-left-color: var(--ink4, #9ca3af); }
.bldr-check-neutral .bldr-check-value { color: var(--ink3, #6b7280); font-weight: 500; }

/* ── Toolbar πάνω από invoices/payments table ─────────────── */
.bldr-inv-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.bldr-inv-toolbar-count {
  font-size: 12px;
  color: var(--ink3, #6b7280);
  font-weight: 500;
}

/* ── Generic data table ──────────────────────────────────── */
.bldr-table-wrap {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.bldr-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}
.bldr-table thead th {
  text-align: left;
  padding: 10px 12px;
  background: var(--surface2, #f3f4f6);
  color: var(--ink2, #374151);
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--border, #e5e7eb);
  white-space: nowrap;
}
.bldr-th-money,
.bldr-td-money {
  text-align: right;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  white-space: nowrap;
}
.bldr-th-num,
.bldr-td-num {
  width: 36px;
  text-align: center;
  color: var(--ink4, #9ca3af);
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 11px;
}
.bldr-th-actions {
  width: 70px;
}
.bldr-table tbody td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  color: var(--ink, #1a1a1a);
  vertical-align: top;
}
.bldr-table tbody tr:last-child td { border-bottom: none; }
.bldr-table tbody tr:hover td { background: var(--surface2, #f3f4f6); }
.bldr-td-mono {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 12px;
  white-space: nowrap;
}
.bldr-td-sub {
  color: var(--ink3, #6b7280);
  font-size: 11px;
  font-weight: 500;
}
.bldr-td-blue {
  color: var(--blue, #3b6fca);
  font-weight: 600;
}
.bldr-td-actions {
  text-align: right;
  white-space: nowrap;
}

/* Footer totals */
.bldr-table tfoot td {
  padding: 10px 12px;
  background: var(--blue-light, #dbeafe);
  font-size: 12px;
  font-weight: 700;
  border-top: 2px solid var(--blue, #3b6fca);
}
.bldr-tf-label {
  color: var(--blue, #3b6fca);
  letter-spacing: 0.02em;
}
.bldr-tf-money {
  text-align: right;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  color: var(--ink, #1a1a1a);
  white-space: nowrap;
}

/* Row με warning */
.bldr-row-warn td:first-child {
  border-left: 3px solid var(--red, #dc2626);
  padding-left: 9px;
}
.bldr-row-warn td {
  background: rgba(220, 38, 38, 0.04);
}
.bldr-row-warn:hover td {
  background: rgba(220, 38, 38, 0.08) !important;
}

/* Row flags (μέσα στα cells) */
.bldr-row-flags {
  margin-top: 4px;
}
.bldr-row-flag {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
  margin-top: 2px;
}
.bldr-row-flag-err {
  background: rgba(220, 38, 38, 0.1);
  color: var(--red, #dc2626);
}
/* BATCH A (21/05/2026): warn-level flag styling */
.bldr-row-flag-warn {
  background: rgba(217, 119, 6, 0.12);
  color: var(--amber, #b8860b);
}
/* BATCH A (21/05/2026): soft warning row (warn-level only, no err) */
.bldr-row-warn-soft td:first-child {
  border-left: 3px solid var(--amber, #b8860b);
  padding-left: 9px;
}
.bldr-row-warn-soft td {
  background: rgba(217, 119, 6, 0.035);
}
.bldr-row-warn-soft:hover td {
  background: rgba(217, 119, 6, 0.08) !important;
}

/* Category chip */
.bldr-cat-chip {
  display: inline-block;
  padding: 2px 8px;
  background: var(--surface2, #f3f4f6);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  font-size: 11px;
  color: var(--ink2, #374151);
  font-weight: 500;
}

/* Method chip (5 χρώματα ανά μέθοδο) */
.bldr-method-chip {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.bldr-method-transfer {
  background: rgba(59, 111, 202, 0.1);
  color: var(--blue, #3b6fca);
}
.bldr-method-card {
  background: rgba(168, 85, 247, 0.1);
  color: #9333ea;
}
.bldr-method-cheque {
  background: rgba(217, 119, 6, 0.1);
  color: var(--amber, #d97706);
}
.bldr-method-cash {
  background: rgba(220, 38, 38, 0.1);
  color: var(--red, #dc2626);
}
.bldr-method-deposit {
  background: rgba(5, 150, 105, 0.1);
  color: var(--green, #059669);
}

/* Payment linked/unlinked */
.bldr-pmt-link {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 12px;
  color: var(--ink, #1a1a1a);
}
.bldr-pmt-unlinked {
  font-size: 11px;
  font-style: italic;
  color: var(--amber, #d97706);
  font-weight: 500;
}

/* Icon buttons στις γραμμές */
.bldr-iconbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  font-family: inherit;
  font-size: 13px;
  color: var(--ink3, #6b7280);
  cursor: pointer;
  transition: all .12s ease;
  margin-left: 4px;
}
.bldr-iconbtn:hover {
  background: var(--surface2, #f3f4f6);
  color: var(--ink, #1a1a1a);
  border-color: var(--ink4, #9ca3af);
}
.bldr-iconbtn-danger:hover {
  background: rgba(220, 38, 38, 0.1);
  color: var(--red, #dc2626);
  border-color: rgba(220, 38, 38, 0.3);
}
/* BATCH 20/05/2026: warn variant για Αποσύνδεση */
.bldr-iconbtn-warn:hover {
  background: rgba(217, 119, 6, 0.1);
  color: var(--amber, #d97706);
  border-color: rgba(217, 119, 6, 0.35);
}

/* BATCH 20/05/2026: Keys-hint badge στο footer modal */
.bldr-modal-keys-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-top: 14px;
  padding: 6px 10px;
  font-size: 11px;
  color: var(--ink4, #9ca3af);
  background: var(--bg2, #f8fafc);
  border: 1px dashed var(--border, #e5e7eb);
  border-radius: 8px;
  font-weight: 500;
}
.bldr-keys-hint-kbd {
  display: inline-block;
  padding: 1px 6px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #d1d5db);
  border-bottom-width: 2px;
  border-radius: 4px;
  font-family: var(--mono, ui-monospace);
  font-size: 10px;
  font-weight: 700;
  color: var(--ink2, #374151);
  box-shadow: 0 1px 0 rgba(0,0,0,.04);
}
[data-theme="dark"] .bldr-modal-keys-hint {
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.1);
}
[data-theme="dark"] .bldr-keys-hint-kbd {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.18);
  color: #d1d5db;
}

/* BATCH 20/05/2026: Cash over 500€ — κόκκινο highlight (non-blocking) */
.bldr-pmt-cash-over {
  border-color: var(--red, #dc2626) !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
}

/* BATCH 20/05/2026: VAT exempt checkbox σε invoice modal */
.bldr-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink2, #374151);
  cursor: pointer;
  user-select: none;
}
.bldr-checkbox-label input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--blue, #3b6fca);
}
.bldr-inv-vat-exempt-row {
  padding: 8px 12px;
  background: rgba(59,111,202,.04);
  border: 1px solid rgba(59,111,202,.15);
  border-radius: 8px;
}
[data-theme="dark"] .bldr-inv-vat-exempt-row {
  background: rgba(96,165,250,.06);
  border-color: rgba(96,165,250,.2);
}

/* Disabled input look (όταν ΦΠΑ είναι exempt) */
.bldr-input-disabled {
  background: var(--bg2, #f3f4f6) !important;
  color: var(--ink4, #9ca3af) !important;
  cursor: not-allowed !important;
}
[data-theme="dark"] .bldr-input-disabled {
  background: rgba(255,255,255,.03) !important;
  color: var(--ink4, #9ca3af) !important;
}

.bldr-hint-vat {
  min-height: 16px;
}

/* ════════════════════════════════════════════════════════════
   BATCH 20/05/2026 — Extra παραδοτέα per-invoice
   ════════════════════════════════════════════════════════════ */
.bldr-invdocs-col-foot {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed var(--border, #e5e7eb);
  display: flex;
  justify-content: center;
}
.bldr-doc-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  background: var(--surface, #fff);
  border: 1px dashed var(--blue-mid, #bfdbfe);
  border-radius: 99px;
  color: var(--blue, #3b6fca);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s ease;
}
.bldr-doc-add-btn:hover {
  background: var(--blue-light, #eff6ff);
  border-style: solid;
  border-color: var(--blue, #3b6fca);
  transform: translateY(-1px);
}
[data-theme="dark"] .bldr-invdocs-col-foot {
  border-top-color: rgba(255,255,255,.08);
}
[data-theme="dark"] .bldr-doc-add-btn {
  background: rgba(255,255,255,.03);
  border-color: rgba(96,165,250,.3);
  color: #93c5fd;
}
[data-theme="dark"] .bldr-doc-add-btn:hover {
  background: rgba(96,165,250,.12);
  border-color: rgba(96,165,250,.5);
}

/* Extra doc row styling — subtle visual διαφορά από τα κανονικά */
.bldr-doc-row2-extra {
  position: relative;
  background: linear-gradient(90deg, rgba(59,111,202,.025), transparent);
  padding-right: 28px !important; /* room για το × button */
}
.bldr-doc-row2-extra-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 5px;
  background: rgba(59,111,202,.10);
  border: 1px solid rgba(59,111,202,.22);
  border-radius: 4px;
  font-size: 9.5px;
  font-weight: 700;
  color: var(--blue, #3b6fca);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  vertical-align: middle;
}
.bldr-doc-row2-remove {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 50%;
  color: var(--ink4, #9ca3af);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  transition: all .15s ease;
}
.bldr-doc-row2-remove:hover {
  background: rgba(220, 38, 38, 0.1);
  border-color: rgba(220, 38, 38, 0.3);
  color: var(--red, #dc2626);
}
[data-theme="dark"] .bldr-doc-row2-extra {
  background: linear-gradient(90deg, rgba(96,165,250,.06), transparent);
}
[data-theme="dark"] .bldr-doc-row2-extra-tag {
  background: rgba(96,165,250,.14);
  border-color: rgba(96,165,250,.3);
  color: #93c5fd;
}

/* ── BATCH ΣΤ4-Β (31/05/2026): Συγκριτικές προσφορές — ειδικό παραδοτέο ── */
/* Amber accent ώστε να ξεχωρίζει ως υποχρεωτική έρευνα αγοράς (parity με warn). */
.bldr-doc-row2-offers {
  position: relative;
  background: linear-gradient(90deg, rgba(217,119,6,.06), transparent);
  border: 1px solid rgba(217,119,6,.22);
}
.bldr-doc-row2-offers.bldr-doc-row2-yes {
  background: rgba(5, 150, 105, 0.05);
  border-color: rgba(5, 150, 105, 0.25);
}
.bldr-doc-row2-offers.bldr-doc-row2-na {
  border-color: var(--border, #e5e7eb);
}
.bldr-doc-row2-offers-ic {
  margin-right: 2px;
}
.bldr-doc-row2-offers-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 5px;
  background: rgba(217,119,6,.10);
  border: 1px solid rgba(217,119,6,.24);
  border-radius: 4px;
  font-size: 9.5px;
  font-weight: 700;
  color: #b45309;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  vertical-align: middle;
  white-space: nowrap;
}
[data-theme="dark"] .bldr-doc-row2-offers {
  background: linear-gradient(90deg, rgba(251,191,36,.08), transparent);
  border-color: rgba(251,191,36,.28);
}
[data-theme="dark"] .bldr-doc-row2-offers-tag {
  background: rgba(251,191,36,.14);
  border-color: rgba(251,191,36,.32);
  color: #fbbf24;
}

/* btn-link (για empty state add buttons) */
.bldr-btn-link {
  background: none;
  border: none;
  color: var(--blue, #3b6fca);
  cursor: pointer;
  font-size: inherit;
  font-weight: 600;
  padding: 2px 4px;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.bldr-btn-link:hover {
  color: var(--blue-hover, #2c5ab8);
}

/* ════════════════════════════════════════════════════════════
   MOBILE — Cross-checks σε 2/3 στήλες, tables με horizontal scroll
   ════════════════════════════════════════════════════════════ */
@media (max-width: 960px) {
  .bldr-checks-bar { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .bldr-checks-bar { grid-template-columns: repeat(2, 1fr); gap: 5px; }
  .bldr-check { padding: 6px 8px; gap: 6px; }
  .bldr-check-icon { font-size: 16px; }
  .bldr-check-label { font-size: 9.5px; }
  .bldr-check-value { font-size: 11.5px; }
  .bldr-inv-toolbar { flex-direction: column; align-items: stretch; gap: 8px; }
  .bldr-inv-toolbar-count { text-align: center; }
  .bldr-table { font-size: 11.5px; }
  .bldr-table thead th { padding: 8px 9px; font-size: 9.5px; }
  .bldr-table tbody td { padding: 8px 9px; }
}

/* ════════════════════════════════════════════════════════════
   BATCH 1 — Custom Φάσεις, Inline Item στο Section, Καρτέλα Αναφοράς
   ════════════════════════════════════════════════════════════ */

/* ── Phases editor — chips με ✕ + Add button ─────────────── */
.bldr-phase-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.bldr-phase-tag {
  display: inline-flex;
  align-items: stretch;
  background: var(--blue-light, #dbeafe);
  border: 1px solid rgba(59, 111, 202, 0.3);
  border-radius: 99px;
  overflow: hidden;
  transition: box-shadow .12s ease, transform .08s ease;
}
.bldr-phase-tag:hover {
  box-shadow: 0 2px 6px -2px rgba(59, 111, 202, 0.3);
}
.bldr-phase-tag-label {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--blue, #3b6fca);
  cursor: pointer;
  user-select: none;
  transition: background .12s ease;
}
.bldr-phase-tag-label:hover {
  background: rgba(59, 111, 202, 0.12);
}
.bldr-phase-tag-x {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  background: transparent;
  border: none;
  border-left: 1px solid rgba(59, 111, 202, 0.3);
  color: var(--blue, #3b6fca);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background .12s ease, color .12s ease;
  font-family: inherit;
  padding: 0;
}
.bldr-phase-tag-x:hover {
  background: var(--red, #dc2626);
  color: #ffffff;
}
.bldr-phase-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: transparent;
  border: 1px dashed var(--ink4, #9ca3af);
  border-radius: 99px;
  color: var(--ink3, #6b7280);
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 500;
  cursor: pointer;
  transition: all .12s ease;
}
.bldr-phase-add-btn:hover {
  background: var(--surface2, #f3f4f6);
  border-color: var(--blue, #3b6fca);
  border-style: solid;
  color: var(--blue, #3b6fca);
}

/* ── Inline λίστα δικαιολογητικών στο Section modal ──── */
.bldr-sec-inline-wrap {
  margin-top: 6px;
}
.bldr-sec-inline-head {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink2, #374151);
  margin-bottom: 8px;
  letter-spacing: -0.005em;
  display: flex;
  align-items: center;
  gap: 6px;
}
.bldr-sec-inline-head-opt {
  font-weight: 400;
  font-style: italic;
  color: var(--ink4, #9ca3af);
}
.bldr-sec-inline-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bldr-sec-inline-item {
  position: relative;
  padding: 12px 14px;
  background: var(--surface2, #f3f4f6);
  border: 1px dashed var(--border, #e5e7eb);
  border-radius: 10px;
}
.bldr-sec-inline-item-num {
  position: absolute;
  top: -8px;
  left: 10px;
  background: var(--blue, #3b6fca);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  letter-spacing: 0.02em;
}
.bldr-sec-inline-item-remove {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 22px;
  height: 22px;
  border: none;
  background: transparent;
  color: var(--ink4, #9ca3af);
  font-size: 14px;
  cursor: pointer;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, color .15s;
}
.bldr-sec-inline-item-remove:hover {
  background: rgba(220, 38, 38, 0.08);
  color: var(--red, #dc2626);
}
.bldr-sec-inline-item .bldr-field {
  margin-bottom: 8px;
}
.bldr-sec-inline-item .bldr-field:last-child {
  margin-bottom: 0;
}
.bldr-sec-inline-add {
  margin-top: 10px;
  width: 100%;
  padding: 9px 12px;
  background: transparent;
  border: 1px dashed var(--blue-mid, #bfdbfe);
  border-radius: 9px;
  color: var(--blue, #3b6fca);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.bldr-sec-inline-add:hover {
  background: var(--blue-light, #eff6ff);
  border-color: var(--blue, #3b6fca);
}

/* ── Slim phase chips (πιο λεπτά, με flex-wrap) ──────── */
.bldr-phase-chk-row.bldr-phase-chk-row-slim {
  flex-wrap: wrap;
  gap: 5px;
}
.bldr-phase-chk-row-slim .bldr-phase-chk {
  flex: 0 0 auto;
  padding: 5px 10px;
  font-size: 11.5px;
  border-radius: 6px;
  line-height: 1.3;
}

/* ── Books category selector (Β\' / Γ\') ──────────────── */
.bldr-books-row {
  display: flex;
  gap: 10px;
}
.bldr-books-opt {
  flex: 1;
  padding: 12px 14px;
  background: var(--surface, #fff);
  border: 1.5px solid var(--border, #e5e7eb);
  border-radius: 10px;
  cursor: pointer;
  text-align: center;
  transition: background .15s, border-color .15s, transform .1s;
  user-select: none;
}
.bldr-books-opt:hover {
  background: var(--surface2, #f9fafb);
  border-color: var(--blue-mid, #bfdbfe);
}
.bldr-books-opt.bldr-books-on {
  background: var(--blue-light, #eff6ff);
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 1px var(--blue, #3b6fca) inset;
}
.bldr-books-letter {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink, #111827);
  letter-spacing: -0.02em;
  margin-bottom: 2px;
}
.bldr-books-opt.bldr-books-on .bldr-books-letter {
  color: var(--blue, #3b6fca);
}
.bldr-books-desc {
  font-size: 11px;
  color: var(--ink3, #6b7280);
  font-weight: 500;
}

/* ── Καρτέλα Αναφοράς ──────────────────────────────── */

/* Tab counter με χρώμα (err = κόκκινο όταν >0) */
.bldr-case-tab-counter-err {
  background: rgba(220, 38, 38, 0.1);
  color: var(--red, #dc2626);
}
.bldr-case-tab-counter-ok {
  background: rgba(5, 150, 105, 0.1);
  color: var(--green, #059669);
}

/* Empty state — όλα ΟΚ */
.bldr-report-empty {
  padding: 60px 24px;
  text-align: center;
  background: rgba(5, 150, 105, 0.05);
  border: 1px solid rgba(5, 150, 105, 0.2);
  border-radius: 12px;
}
.bldr-report-empty-icon {
  font-size: 56px;
  margin-bottom: 12px;
  user-select: none;
}
.bldr-report-empty-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--green, #059669);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}
.bldr-report-empty-text {
  font-size: 12.5px;
  color: var(--ink2, #374151);
  max-width: 460px;
  margin: 0 auto;
  line-height: 1.55;
}

/* Summary header — πάνω από όλες τις sections */
.bldr-report-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: rgba(217, 119, 6, 0.06);
  border: 1px solid rgba(217, 119, 6, 0.25);
  border-radius: 10px;
  margin-bottom: 14px;
}
.bldr-report-summary-icon {
  font-size: 28px;
  flex-shrink: 0;
  user-select: none;
}
.bldr-report-summary-body {
  min-width: 0;
}
.bldr-report-summary-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--amber, #d97706);
  margin-bottom: 2px;
}
.bldr-report-summary-text {
  font-size: 12px;
  color: var(--ink2, #374151);
  line-height: 1.45;
}

/* Section card */
.bldr-report-section {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  margin-bottom: 12px;
  overflow: hidden;
}
.bldr-report-section-err { border-left: 3px solid var(--red, #dc2626); }
.bldr-report-section-warn { border-left: 3px solid var(--amber, #d97706); }
.bldr-report-section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  background: var(--surface2, #f3f4f6);
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-report-section-icon {
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
}
.bldr-report-section-letter {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--ink3, #6b7280);
  font-family: var(--mono, 'JetBrains Mono', monospace);
  letter-spacing: 0.04em;
  padding: 2px 7px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
}
.bldr-report-section-title {
  flex: 1;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink, #1a1a1a);
}
.bldr-report-section-count {
  font-size: 11px;
  font-weight: 700;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  padding: 2px 9px;
  border-radius: 99px;
}
.bldr-report-section-count-err {
  background: rgba(220, 38, 38, 0.1);
  color: var(--red, #dc2626);
}
.bldr-report-section-count-warn {
  background: rgba(217, 119, 6, 0.1);
  color: var(--amber, #d97706);
}
.bldr-report-section-body {
  padding: 0;
}

/* Item row μέσα σε section */
.bldr-report-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-report-item:last-child { border-bottom: none; }
.bldr-report-item:hover { background: var(--surface2, #f3f4f6); }
.bldr-report-item-icon {
  font-size: 18px;
  flex-shrink: 0;
  line-height: 1.2;
}
.bldr-report-item-content {
  flex: 1;
  min-width: 0;
}
.bldr-report-item-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink, #1a1a1a);
  margin-bottom: 3px;
  line-height: 1.4;
}
.bldr-report-item-err .bldr-report-item-title { color: var(--red, #dc2626); }
.bldr-report-item-warn .bldr-report-item-title { color: var(--amber, #d97706); }
.bldr-report-item-body {
  font-size: 12px;
  color: var(--ink2, #374151);
  line-height: 1.45;
  word-wrap: break-word;
}
.bldr-report-item-meta {
  display: block;
  margin-top: 5px;
  font-size: 11px;
  color: var(--ink3, #6b7280);
  font-family: var(--mono, 'JetBrains Mono', monospace);
}
.bldr-report-link {
  display: inline-block;
  margin-top: 5px;
  color: var(--blue, #3b6fca);
  font-size: 11.5px;
  font-weight: 500;
  text-decoration: none;
}
.bldr-report-link:hover { text-decoration: underline; }

/* Mobile */
@media (max-width: 720px) {
  .bldr-phase-tags { gap: 6px; }
  .bldr-phase-tag-label { padding: 5px 10px; font-size: 12.5px; }
  .bldr-phase-tag-x { width: 24px; font-size: 12px; }
  .bldr-phase-add-btn { padding: 5px 10px; font-size: 12px; }
  .bldr-sec-inline-item { padding: 12px; }
  .bldr-report-summary { padding: 12px 14px; }
  .bldr-report-section-header { padding: 10px 12px; }
  .bldr-report-item { padding: 9px 12px; gap: 9px; }
}

/* ════════════════════════════════════════════════════════════
   BATCH 2 — Selective Propagation banner (ChecklistEditor)
   ════════════════════════════════════════════════════════════ */
.bldr-prop-banner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 16px;
  margin: 0 auto 16px auto;
  max-width: 1100px;
  background: rgba(59, 111, 202, 0.07);
  border: 1px solid rgba(59, 111, 202, 0.22);
  border-left: 3px solid var(--blue, #3b6fca);
  border-radius: 8px;
}
.bldr-prop-banner-icon {
  font-size: 20px;
  line-height: 1.2;
  flex-shrink: 0;
  user-select: none;
}
.bldr-prop-banner-text {
  flex: 1;
  font-size: 12.5px;
  color: var(--ink2, #374151);
  line-height: 1.55;
  min-width: 0;
}
.bldr-prop-banner-text strong {
  color: var(--ink, #1a1a1a);
  font-weight: 600;
}
@media (max-width: 720px) {
  .bldr-prop-banner { padding: 10px 12px; gap: 10px; }
  .bldr-prop-banner-text { font-size: 12px; }
}

/* ════════════════════════════════════════════════════════════
   BATCH B — Deliverables UI (cat docs, pay docs, doc panels)
   ════════════════════════════════════════════════════════════ */

/* ── Empty state mini για το cat-docs panel πριν επιλεγούν cats ──── */
.bldr-empty-mini {
  padding: 14px 16px;
  background: var(--surface2, #f9fafb);
  border: 1px dashed var(--border, #e5e7eb);
  border-radius: 10px;
  font-size: 13px;
  color: var(--ink3, #6b7280);
  text-align: center;
}

/* ── Catdoc card (στο program form για cat_docs / pay_docs) ──────── */
.bldr-catdoc-card {
  padding: 12px 14px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  margin-bottom: 10px;
  transition: border-color .15s;
}
.bldr-catdoc-card:hover {
  border-color: var(--blue-mid, #bfdbfe);
}
.bldr-catdoc-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--border, #e5e7eb);
}
.bldr-catdoc-card-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink, #111827);
  display: flex;
  align-items: center;
  gap: 8px;
}
.bldr-catdoc-cat-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 22px;
  padding: 0 7px;
  background: var(--blue-light, #eff6ff);
  color: var(--blue, #3b6fca);
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.bldr-catdoc-reset {
  padding: 4px 9px;
  background: transparent;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  font-size: 11px;
  color: var(--ink3, #6b7280);
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.bldr-catdoc-reset:hover {
  background: var(--surface2, #f3f4f6);
  color: var(--ink2, #374151);
  border-color: var(--ink4, #9ca3af);
}

/* ── Doc rows μέσα στο catdoc card ───────────────────────────────── */
.bldr-doc-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}
.bldr-doc-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 8px;
  background: var(--surface2, #f9fafb);
  border-radius: 6px;
}
.bldr-doc-num {
  font-size: 11px;
  font-weight: 600;
  color: var(--ink4, #9ca3af);
  min-width: 18px;
  padding-top: 5px;
}
.bldr-doc-text {
  flex: 1;
  resize: vertical;
  padding: 5px 8px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 5px;
  font-family: inherit;
  font-size: 12.5px;
  color: var(--ink2, #374151);
  line-height: 1.4;
  min-height: 30px;
}
.bldr-doc-text:focus {
  outline: none;
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 2px rgba(59, 111, 202, 0.12);
}
.bldr-doc-x {
  width: 24px;
  height: 24px;
  border: none;
  background: transparent;
  color: var(--ink4, #9ca3af);
  font-size: 12px;
  cursor: pointer;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 3px;
  transition: background .15s, color .15s;
}
.bldr-doc-x:hover {
  background: rgba(220, 38, 38, 0.08);
  color: var(--red, #dc2626);
}
.bldr-doc-empty {
  padding: 8px 10px;
  font-size: 12px;
  color: var(--ink4, #9ca3af);
  font-style: italic;
  text-align: center;
}
.bldr-doc-add {
  width: 100%;
  padding: 7px 12px;
  background: transparent;
  border: 1px dashed var(--blue-mid, #bfdbfe);
  border-radius: 7px;
  color: var(--blue, #3b6fca);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.bldr-doc-add:hover {
  background: var(--blue-light, #eff6ff);
  border-color: var(--blue, #3b6fca);
}

/* ── Docs badge (στα action cells των invoice/payment rows) ─────── */
.bldr-iconbtn-docs {
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  margin-right: 4px;
}
.bldr-docs-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid transparent;
  white-space: nowrap;
  transition: background .15s, color .15s;
}
.bldr-docs-badge.bldr-docs-empty {
  background: var(--surface2, #f3f4f6);
  color: var(--ink3, #6b7280);
  border-color: var(--border, #e5e7eb);
}
.bldr-docs-badge.bldr-docs-partial {
  background: rgba(217, 119, 6, 0.10);
  color: var(--amber, #d97706);
  border-color: rgba(217, 119, 6, 0.25);
}
.bldr-docs-badge.bldr-docs-full {
  background: rgba(5, 150, 105, 0.10);
  color: var(--green, #059669);
  border-color: rgba(5, 150, 105, 0.25);
}
.bldr-iconbtn-docs:hover .bldr-docs-badge {
  filter: brightness(0.95);
}

/* ── Expanded docs row (στους πίνακες invoices/payments) ────────── */
.bldr-inv-docs-row > td,
.bldr-pmt-docs-row > td {
  padding: 0 !important;
  background: var(--surface2, #f9fafb);
  border-top: none;
}
.bldr-docs-panel {
  padding: 14px 16px;
  border-top: 1px solid var(--border, #e5e7eb);
  border-bottom: 1px solid var(--border, #e5e7eb);
  background: linear-gradient(to bottom, rgba(59, 111, 202, 0.025), transparent);
}
.bldr-docs-panel-head {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink2, #374151);
  margin-bottom: 10px;
  letter-spacing: -0.005em;
}
.bldr-docs-panel-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 6px;
}
.bldr-docs-empty {
  padding: 12px;
  font-size: 12px;
  color: var(--ink4, #9ca3af);
  font-style: italic;
  text-align: center;
}

/* Doc tick (checkbox-style row σε docs panel) */
.bldr-doc-tick {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 10px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 7px;
  cursor: pointer;
  transition: background .15s, border-color .15s;
  font-size: 12.5px;
  line-height: 1.4;
}
.bldr-doc-tick:hover {
  background: var(--surface2, #f9fafb);
  border-color: var(--blue-mid, #bfdbfe);
}
.bldr-doc-tick input[type="checkbox"] {
  display: none;
}
.bldr-doc-tick-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--border, #d1d5db);
  border-radius: 5px;
  font-size: 12px;
  color: transparent;
  background: var(--surface, #fff);
  flex-shrink: 0;
  margin-top: 1px;
  transition: background .15s, border-color .15s, color .15s;
}
.bldr-doc-tick.bldr-doc-tick-on {
  background: rgba(5, 150, 105, 0.05);
  border-color: rgba(5, 150, 105, 0.3);
}
.bldr-doc-tick.bldr-doc-tick-on .bldr-doc-tick-mark {
  background: var(--green, #059669);
  border-color: var(--green, #059669);
  color: #fff;
}
.bldr-doc-tick-text {
  flex: 1;
  color: var(--ink2, #374151);
  word-break: break-word;
}
.bldr-doc-tick.bldr-doc-tick-on .bldr-doc-tick-text {
  color: var(--ink, #111827);
}
.bldr-doc-tick-book {
  display: inline-block;
  padding: 1px 6px;
  background: rgba(91, 33, 182, 0.10);
  color: #5b21b6;
  border-radius: 4px;
  font-size: 10.5px;
  font-weight: 600;
  margin-right: 4px;
}

@media (max-width: 720px) {
  .bldr-docs-panel-list {
    grid-template-columns: 1fr;
  }
}

/* ════════════════════════════════════════════════════════════
   BATCH 2 — Invoice & Payment deliverables (main-app parity)
   - Button .bldr-invdocs-btn (replaces .bldr-iconbtn-docs)
   - Panel .bldr-invdocs-panel (replaces .bldr-docs-panel)
   - 2-column layout για τιμολόγια (Φυσικό | Λογιστικά)
   ════════════════════════════════════════════════════════════ */

/* Button: ίδιο styling με κύρια app — fixed width, font 11px, color-coded */
.bldr-invdocs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 70px;
  padding: 5px 0;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  border-radius: 6px;
  border: 1px solid var(--border, #e5e7eb);
  background: var(--surface, #fff);
  color: var(--ink2, #374151);
  cursor: pointer;
  white-space: nowrap;
  transition: filter .15s, background .15s, border-color .15s;
  margin-right: 4px;
}
.bldr-invdocs-btn:hover {
  filter: brightness(0.97);
}
.bldr-invdocs-btn-empty {
  color: var(--ink3, #6b7280);
  border-color: var(--border, #e5e7eb);
  background: var(--surface, #fff);
}
.bldr-invdocs-btn-partial {
  color: var(--amber, #d97706);
  border-color: #fcd34d;
  background: var(--amber-light, #fef3c7);
}
.bldr-invdocs-btn-full {
  color: var(--green, #059669);
  border-color: var(--green, #059669);
  background: var(--green-light, #d1fae5);
}

/* Panel container */
.bldr-invdocs-panel {
  padding: 14px 18px 14px 28px;
  border-top: 1px solid var(--border, #e5e7eb);
  background: var(--bg2, #f9fafb);
}

/* Panel header */
.bldr-invdocs-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink, #111827);
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-invdocs-head-icon {
  font-size: 14px;
  letter-spacing: 0;
}
.bldr-invdocs-head-title {
  flex-shrink: 0;
}
.bldr-invdocs-head-meta {
  font-weight: 500;
  color: var(--ink3, #6b7280);
  text-transform: none;
  letter-spacing: 0;
  font-size: 11.5px;
}
.bldr-invdocs-head-cat {
  display: inline-block;
  padding: 2px 7px;
  background: var(--blue-light, #eff6ff);
  color: var(--blue, #3b6fca);
  border: 1px solid var(--blue-mid, #bfdbfe);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
  margin-left: 2px;
}

/* 2-column wrapper */
.bldr-invdocs-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: flex-start;
}

/* Single column */
.bldr-invdocs-col {
  min-width: 0;
}
.bldr-invdocs-col-phys {
  padding-right: 16px;
  border-right: 2px solid var(--border2, #d1d5db);
}
.bldr-invdocs-col-econ {
  padding-left: 16px;
}
.bldr-invdocs-col-pmt {
  /* single column for payments — no border */
}

/* Column header (μικρός τίτλος με icon-pill) */
.bldr-invdocs-col-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.bldr-invdocs-col-head-phys {
  color: var(--blue, #3b6fca);
}
.bldr-invdocs-col-head-econ {
  color: #5b21b6;
}
/* BATCH 20/05/2026: Dark theme — μωβ #5b21b6 δεν φαίνεται. Χρησιμοποιούμε lavender. */
[data-theme="dark"] .bldr-invdocs-col-head-econ {
  color: #c4b5fd;
}
.bldr-invdocs-col-head-pmt {
  color: var(--blue, #3b6fca);
}
.bldr-invdocs-col-icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  font-size: 12px;
  letter-spacing: 0;
}
.bldr-invdocs-col-head-phys .bldr-invdocs-col-icon-wrap {
  background: var(--blue-light, #eff6ff);
  border: 1px solid var(--blue-mid, #bfdbfe);
}
.bldr-invdocs-col-head-econ .bldr-invdocs-col-icon-wrap {
  background: rgba(91, 33, 182, 0.10);
  border: 1px solid rgba(91, 33, 182, 0.25);
}
[data-theme="dark"] .bldr-invdocs-col-head-econ .bldr-invdocs-col-icon-wrap {
  background: rgba(196, 181, 253, 0.14);
  border-color: rgba(196, 181, 253, 0.3);
}
.bldr-invdocs-col-head-pmt .bldr-invdocs-col-icon-wrap {
  background: var(--blue-light, #eff6ff);
  border: 1px solid var(--blue-mid, #bfdbfe);
}
.bldr-invdocs-col-books {
  display: inline-block;
  padding: 1px 6px;
  background: rgba(91, 33, 182, 0.08);
  color: #5b21b6;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
}
[data-theme="dark"] .bldr-invdocs-col-books {
  background: rgba(196, 181, 253, 0.15);
  color: #c4b5fd;
}
.bldr-invdocs-col-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 18px;
  padding: 0 6px;
  background: var(--bg3, #e5e7eb);
  color: var(--ink2, #374151);
  border-radius: 9px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0;
  margin-left: auto;
}

/* Column list (κάθετα tickable rows) */
.bldr-invdocs-col-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.bldr-invdocs-empty-col {
  padding: 18px 10px;
  text-align: center;
  font-size: 11.5px;
  font-style: italic;
  color: var(--ink4, #9ca3af);
}

/* Mobile: στοίβα αντί για 2 στήλες */
@media (max-width: 820px) {
  .bldr-invdocs-cols {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .bldr-invdocs-col-phys {
    padding-right: 0;
    border-right: none;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--border2, #d1d5db);
  }
  .bldr-invdocs-col-econ {
    padding-left: 0;
  }
}

/* ════════════════════════════════════════════════════════════
   BATCH C — Special Rules UI (program form)
   ════════════════════════════════════════════════════════════ */

/* ── Rule card στο program form ──────────────────────────────── */
.bldr-rule-card {
  padding: 14px 16px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  margin-bottom: 10px;
  transition: border-color .15s;
}
.bldr-rule-card:hover {
  border-color: var(--blue-mid, #bfdbfe);
}
.bldr-rule-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.bldr-rule-card-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 24px;
  padding: 0 8px;
  background: var(--blue, #3b6fca);
  color: #fff;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.bldr-rule-label-input {
  flex: 1;
  padding: 6px 10px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink, #111827);
}
.bldr-rule-label-input:focus {
  outline: none;
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 2px rgba(59, 111, 202, 0.12);
}
.bldr-rule-card-del {
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: var(--ink4, #9ca3af);
  font-size: 14px;
  cursor: pointer;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, color .15s;
}
.bldr-rule-card-del:hover {
  background: rgba(220, 38, 38, 0.08);
  color: var(--red, #dc2626);
}
.bldr-rule-card-body {
  padding-top: 4px;
  border-top: 1px dashed var(--border, #e5e7eb);
  padding-top: 12px;
}
.bldr-rule-cat-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 4px;
}
.bldr-rule-cat-chip {
  padding: 5px 9px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--ink2, #374151);
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.bldr-rule-cat-chip:hover {
  background: var(--surface2, #f9fafb);
  border-color: var(--blue-mid, #bfdbfe);
}
.bldr-rule-cat-chip.bldr-rule-cat-on {
  background: var(--blue-light, #eff6ff);
  border-color: var(--blue, #3b6fca);
  color: var(--blue, #3b6fca);
  font-weight: 600;
}
.bldr-rule-cat-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  padding: 0 4px;
  height: 18px;
  background: rgba(0, 0, 0, 0.06);
  border-radius: 4px;
  font-size: 10.5px;
  font-weight: 700;
}
.bldr-rule-cat-chip.bldr-rule-cat-on .bldr-rule-cat-num {
  background: var(--blue, #3b6fca);
  color: #fff;
}

/* ── Rules toolbar (add + presets) ──────────────────────────── */
.bldr-rules-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.bldr-rules-presets-wrap {
  position: relative;
  flex: 1;
  text-align: right;
}
.bldr-btn-link {
  background: transparent;
  border: none;
  color: var(--blue, #3b6fca);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 6px;
  transition: background .15s;
}
.bldr-btn-link:hover {
  background: var(--blue-light, #eff6ff);
}
.bldr-rules-presets {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 4px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  padding: 6px;
  min-width: 320px;
  max-width: 420px;
  z-index: 100;
  text-align: left;
}
.bldr-rule-preset {
  display: block;
  width: 100%;
  padding: 8px 10px;
  background: transparent;
  border: none;
  border-radius: 6px;
  text-align: left;
  cursor: pointer;
  transition: background .15s;
}
.bldr-rule-preset:hover {
  background: var(--blue-light, #eff6ff);
}
.bldr-rule-preset-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink, #111827);
  margin-bottom: 2px;
}
.bldr-rule-preset-meta {
  font-size: 11.5px;
  color: var(--ink3, #6b7280);
}

/* ════════════════════════════════════════════════════════════
   BATCH D — Special Rules στην Αναφορά (progress bars)
   ════════════════════════════════════════════════════════════ */

.bldr-report-item-rule {
  flex-direction: column;
  align-items: stretch !important;
}
.bldr-report-item-rule .bldr-report-item-icon {
  font-size: 16px;
}
.bldr-rule-progress {
  margin-top: 8px;
  margin-bottom: 6px;
}
.bldr-rule-progress-track {
  position: relative;
  height: 8px;
  background: var(--surface2, #f3f4f6);
  border-radius: 999px;
  overflow: visible;
}
.bldr-rule-progress-fill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  border-radius: 999px;
  transition: width .3s ease;
}
.bldr-rule-progress-fill-ok {
  background: linear-gradient(90deg, #10b981, #059669);
}
.bldr-rule-progress-fill-warn {
  background: linear-gradient(90deg, #fbbf24, #d97706);
}
.bldr-rule-progress-fill-err {
  background: linear-gradient(90deg, #f87171, #dc2626);
}
.bldr-rule-marker {
  position: absolute;
  top: -3px;
  width: 2px;
  height: 14px;
  border-radius: 1px;
  transform: translateX(-50%);
}
.bldr-rule-marker-min {
  background: var(--blue, #3b6fca);
}
.bldr-rule-marker-min::after {
  content: '↑min';
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 9px;
  font-weight: 700;
  color: var(--blue, #3b6fca);
  white-space: nowrap;
}
.bldr-rule-marker-max {
  background: var(--red, #dc2626);
}
.bldr-rule-marker-max::after {
  content: '↓max';
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 9px;
  font-weight: 700;
  color: var(--red, #dc2626);
  white-space: nowrap;
}
.bldr-rule-progress-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
  font-size: 11px;
  color: var(--ink4, #9ca3af);
}
.bldr-rule-progress-current {
  font-weight: 700;
  font-size: 12.5px;
}
.bldr-rule-progress-current-ok   { color: var(--green, #059669); }
.bldr-rule-progress-current-warn { color: var(--amber, #d97706); }
.bldr-rule-progress-current-err  { color: var(--red, #dc2626); }
.bldr-rule-amounts {
  margin-top: 6px;
  font-size: 12px;
  color: var(--ink2, #374151);
}
.bldr-rule-hint-err {
  margin-top: 6px;
  padding: 5px 9px;
  background: rgba(220, 38, 38, 0.08);
  color: var(--red, #dc2626);
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 600;
}
.bldr-rule-no-data {
  padding: 8px 10px;
  background: var(--surface2, #f9fafb);
  border-radius: 6px;
  font-size: 12px;
  color: var(--ink3, #6b7280);
  font-style: italic;
  text-align: center;
  margin-top: 6px;
}
.bldr-cl-tag.bldr-cl-tag-cat {
  background: rgba(91, 33, 182, 0.08);
  color: #5b21b6;
}

@media (max-width: 720px) {
  .bldr-rules-presets {
    min-width: 280px;
    right: -10px;
  }
  .bldr-rule-cat-chip {
    font-size: 11px;
    padding: 4px 7px;
  }
}

/* ════════════════════════════════════════════════════════════
   BATCH 3α — Disbursement Docs (program form + report)
   ════════════════════════════════════════════════════════════ */

/* ─── Suggested list (στη φόρμα) ─────────────────────────── */
.bldr-disb-suggested,
.bldr-disb-custom {
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 12px;
}

.bldr-disb-section-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink, #111827);
  letter-spacing: -0.005em;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-disb-section-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--blue-light, #eff6ff);
  border: 1px solid var(--blue-mid, #bfdbfe);
  font-size: 12px;
  flex-shrink: 0;
}
.bldr-disb-section-hint {
  margin-left: auto;
  font-size: 11px;
  font-weight: 400;
  color: var(--ink3, #6b7280);
  font-style: italic;
}

.bldr-disb-suggested-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bldr-disb-suggest-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.bldr-disb-suggest-item:hover {
  background: var(--bg2, #f9fafb);
  border-color: var(--blue-mid, #bfdbfe);
}
.bldr-disb-suggest-item input[type="checkbox"] {
  display: none;
}
.bldr-disb-suggest-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 1.5px solid var(--border2, #d1d5db);
  border-radius: 5px;
  font-size: 13px;
  color: transparent;
  background: var(--surface, #fff);
  flex-shrink: 0;
  margin-top: 1px;
  transition: background .15s, border-color .15s, color .15s;
}
.bldr-disb-suggest-item.bldr-disb-suggest-on {
  background: rgba(5, 150, 105, 0.04);
  border-color: rgba(5, 150, 105, 0.3);
}
.bldr-disb-suggest-item.bldr-disb-suggest-on .bldr-disb-suggest-mark {
  background: var(--green, #059669);
  border-color: var(--green, #059669);
  color: #fff;
}
.bldr-disb-suggest-body {
  flex: 1;
  min-width: 0;
}
.bldr-disb-suggest-text {
  font-size: 12.5px;
  color: var(--ink2, #374151);
  line-height: 1.45;
}
.bldr-disb-suggest-item.bldr-disb-suggest-on .bldr-disb-suggest-text {
  color: var(--ink, #111827);
}
.bldr-disb-suggest-meta {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 5px;
}

/* Code/warn badges (used in both form + report) */
.bldr-disb-code {
  display: inline-block;
  font-size: 10px;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-weight: 600;
  color: var(--blue, #3b6fca);
  background: var(--blue-light, #eff6ff);
  padding: 1px 6px;
  border-radius: 4px;
  border: 1px solid var(--blue-mid, #bfdbfe);
  letter-spacing: 0.02em;
}
.bldr-disb-warn {
  display: inline-block;
  font-size: 10.5px;
  color: var(--amber, #d97706);
  background: var(--amber-light, #fef3c7);
  padding: 1px 7px;
  border-radius: 4px;
  border: 1px solid rgba(217, 119, 6, 0.2);
}

/* ─── Custom rows (στη φόρμα) ────────────────────────────── */
.bldr-disb-custom-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 10px;
}
.bldr-disb-custom-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 12px;
  background: var(--bg2, #f9fafb);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
}
.bldr-disb-custom-fields {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr 140px 1fr;
  gap: 8px;
  align-items: start;
}
.bldr-disb-custom-text,
.bldr-disb-custom-code,
.bldr-disb-custom-warn {
  width: 100%;
  padding: 7px 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12px;
  color: var(--ink, #111827);
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.bldr-disb-custom-text {
  resize: vertical;
  min-height: 36px;
  line-height: 1.4;
}
.bldr-disb-custom-code {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 11.5px;
}
.bldr-disb-custom-text:focus,
.bldr-disb-custom-code:focus,
.bldr-disb-custom-warn:focus {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 3px var(--blue-dim, rgba(59, 111, 202, 0.15));
}

@media (max-width: 720px) {
  .bldr-disb-custom-fields {
    grid-template-columns: 1fr;
  }
}

/* ─── Disbursement section στο Report tab ────────────────── */
.bldr-disb-report-section {
  margin-top: 24px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  overflow: hidden;
  background: var(--surface, #fff);
}
.bldr-disb-report-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: linear-gradient(to bottom, var(--blue-light, #eff6ff), var(--surface, #fff));
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-disb-report-head-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--surface, #fff);
  border: 1px solid var(--blue-mid, #bfdbfe);
  font-size: 18px;
  flex-shrink: 0;
}
.bldr-disb-report-head-body {
  flex: 1;
  min-width: 0;
}
.bldr-disb-report-head-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink, #111827);
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.bldr-disb-report-head-sub {
  font-size: 11.5px;
  color: var(--ink3, #6b7280);
  margin-top: 2px;
}

.bldr-disb-report-list {
  padding: 8px 18px;
}
.bldr-disb-report-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-disb-report-item:last-child {
  border-bottom: none;
}
.bldr-disb-report-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--blue, #3b6fca);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}
.bldr-disb-report-body {
  flex: 1;
  min-width: 0;
}
.bldr-disb-report-text {
  font-size: 12.5px;
  color: var(--ink2, #374151);
  line-height: 1.5;
}
.bldr-disb-report-meta {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.bldr-disb-report-foot {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 18px;
  background: var(--bg2, #f9fafb);
  border-top: 1px solid var(--border, #e5e7eb);
  font-size: 11px;
  color: var(--ink3, #6b7280);
}

/* ════════════════════════════════════════════════════════════
   BATCH 3β — Custom Categories (Section 4 extension)
   ════════════════════════════════════════════════════════════ */

/* Zone wrapper κάτω από τις 12 default κατηγορίες */
.bldr-custom-cats-zone {
  margin-top: 16px;
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(91, 33, 182, 0.04), rgba(91, 33, 182, 0.01));
  border: 1px dashed rgba(91, 33, 182, 0.25);
  border-radius: 10px;
}

.bldr-custom-cats-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(91, 33, 182, 0.15);
}
.bldr-custom-cats-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid rgba(91, 33, 182, 0.3);
  font-size: 14px;
  flex-shrink: 0;
  margin-top: 1px;
}
.bldr-custom-cats-head-body {
  flex: 1;
  min-width: 0;
}
.bldr-custom-cats-title {
  font-size: 13px;
  font-weight: 700;
  color: #5b21b6;
  letter-spacing: -0.005em;
}
.bldr-custom-cats-sub {
  font-size: 11.5px;
  color: var(--ink3, #6b7280);
  margin-top: 3px;
  line-height: 1.5;
}

.bldr-custom-cats-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}
.bldr-custom-cats-empty {
  padding: 14px 10px;
  text-align: center;
  font-size: 11.5px;
  font-style: italic;
  color: var(--ink4, #9ca3af);
}
.bldr-custom-cat-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 7px;
  transition: border-color .15s, box-shadow .15s;
}
.bldr-custom-cat-row:focus-within {
  border-color: #5b21b6;
  box-shadow: 0 0 0 3px rgba(91, 33, 182, 0.12);
}
.bldr-custom-cat-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 26px;
  padding: 0 9px;
  background: rgba(91, 33, 182, 0.10);
  color: #5b21b6;
  border: 1px solid rgba(91, 33, 182, 0.25);
  border-radius: 5px;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  flex-shrink: 0;
}
.bldr-custom-cat-input {
  flex: 1;
  min-width: 0;
  padding: 6px 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  color: var(--ink, #111827);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 5px;
  outline: none;
  transition: background .15s;
}
.bldr-custom-cat-input:focus {
  background: var(--bg2, #f9fafb);
}

/* Custom mark badge στη Section 5 (cat docs panel) */
.bldr-catdoc-card-custom {
  border-color: rgba(91, 33, 182, 0.3);
  background: linear-gradient(135deg, rgba(91, 33, 182, 0.02), transparent);
}
.bldr-catdoc-card-custom .bldr-catdoc-cat-badge {
  background: rgba(91, 33, 182, 0.10);
  color: #5b21b6;
  border-color: rgba(91, 33, 182, 0.25);
}
.bldr-catdoc-custom-mark {
  display: inline-block;
  margin-right: 6px;
  font-size: 13px;
  vertical-align: middle;
}

/* Warning empty για custom cats χωρίς παραδοτέα */
.bldr-doc-empty-warn {
  background: var(--amber-light, #fef3c7);
  border: 1px dashed var(--amber, #d97706);
  color: var(--amber, #d97706);
  font-weight: 500;
  font-style: normal;
}

/* ════════════════════════════════════════════════════════════
   BATCH 4 — Main app integration (Custom Δράση card + cases)
   "Studio" redesign (25/05/2026): brand-blue palette, dashed
   frame, verb-first τίτλος. Αντικαθιστά την παλιά navy/gold.
   ════════════════════════════════════════════════════════════ */

/* Top accent — solid brand blue (συμβατό με τα standard hs-acc-* patterns) */
.bldr-hs-acc-custom {
  background: var(--blue, #3b6fca);
  height: 3px;
}

/* Count badge — μπλε pill (mirror του .hs-prog-count.blue) */
.bldr-hs-prog-count-custom {
  background: var(--blue-light, #f0f4fb) !important;
  color: var(--blue, #3b6fca) !important;
  border: 1px solid var(--blue-mid, rgba(59,111,202,.15)) !important;
  font-weight: 600;
}

/* Tag-list (mono chips) — επικοινωνεί ταχύτατα το scope του Builder
   στον σύμβουλο: Πρόγραμμα · Φάσεις · Δαπάνες · Checklist */
.bldr-hs-prog-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: -4px 0 12px;
}
.bldr-hs-prog-tags span {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--ink2, #3d3b37);
  background: rgba(255, 255, 255, .75);
  border: 1px solid var(--border, #e0ddd6);
  padding: 2px 7px;
  border-radius: 6px;
  white-space: nowrap;
}

/* ─── Custom Cases section separator στη λίστα Ενεργοί Φάκελοι ─── */
.bldr-hs-cases-sep {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 8px 10px;
  margin-top: 6px;
  border-top: 1px solid var(--border, #e5e7eb);
}
.bldr-hs-cases-sep:first-child {
  margin-top: 0;
  border-top: none;
}
.bldr-hs-cases-sep-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(91, 33, 182, 0.10);
  border: 1px solid rgba(91, 33, 182, 0.25);
  font-size: 13px;
  flex-shrink: 0;
}
.bldr-hs-cases-sep-title {
  font-size: 12px;
  font-weight: 700;
  color: #5b21b6;
  letter-spacing: -0.005em;
}
.bldr-hs-cases-sep-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 18px;
  padding: 0 7px;
  background: rgba(91, 33, 182, 0.10);
  color: #5b21b6;
  border-radius: 9px;
  font-size: 10.5px;
  font-weight: 700;
}
.bldr-hs-cases-sep-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(91, 33, 182, 0.15), transparent);
}

/* Custom case row */
.bldr-hs-case-row-custom {
  background: linear-gradient(90deg, rgba(91, 33, 182, 0.02), transparent);
  border-left: 3px solid rgba(91, 33, 182, 0.35);
  padding-left: 12px;
}
.bldr-hs-case-row-custom:hover {
  background: linear-gradient(90deg, rgba(91, 33, 182, 0.05), transparent);
  border-left-color: #5b21b6;
}
.bldr-hs-case-dot-custom {
  background: rgba(91, 33, 182, 0.10) !important;
  color: #5b21b6;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50%;
  font-size: 14px;
}
.bldr-hs-case-custom-badge {
  display: inline-block;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 10.5px;
  font-weight: 600;
  color: #5b21b6;
  background: rgba(91, 33, 182, 0.08);
  border: 1px solid rgba(91, 33, 182, 0.22);
  padding: 1px 6px;
  border-radius: 4px;
  letter-spacing: 0.02em;
}

/* ════════════════════════════════════════════════════════════
   BATCH 3 (18/05/2026) — Custom Confirm/Alert/Prompt dialogs
   + Modal visual polish (header icons, danger styling, body)
   ════════════════════════════════════════════════════════════ */

/* Stacked dialog overlays (μπορούν να εμφανίζονται πάνω σε άλλα modals) */
.bldr-dialog-overlay {
  /* z-index ορίζεται inline (9601+) ώστε το stacking να δουλεύει */
}

/* Dialog modal — πιο compact από regular modal */
.bldr-modal.bldr-dialog-modal {
  width: 460px;
  padding: 22px 24px 20px;
}

.bldr-modal.bldr-dialog-modal h3 {
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 14px;
  letter-spacing: -0.02em;
}

/* Dialog body */
.bldr-dialog-body {
  font-size: 13.5px;
  color: var(--ink2, #374151);
  line-height: 1.6;
  margin-bottom: 4px;
}
.bldr-dialog-body p {
  margin: 0 0 8px 0;
}
.bldr-dialog-body strong {
  color: var(--ink, #111827);
  font-weight: 700;
}

/* Danger variant — κόκκινη ζώνη προειδοποίησης */
.bldr-dialog-warn {
  margin-top: 12px;
  padding: 10px 14px;
  background: rgba(239, 68, 68, 0.06);
  border: 1px solid rgba(239, 68, 68, 0.18);
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--red, #dc2626);
  font-weight: 600;
}
.bldr-dialog-warn span:first-child {
  font-size: 14px;
  flex-shrink: 0;
}

.bldr-modal.bldr-dialog-danger h3 {
  color: var(--red, #dc2626);
}

/* Alert kind variants */
.bldr-modal.bldr-dialog-kind-warn h3 { color: var(--amber, #d97706); }
.bldr-modal.bldr-dialog-kind-error h3 { color: var(--red, #dc2626); }
.bldr-modal.bldr-dialog-kind-success h3 { color: #059669; }

/* Prompt input */
.bldr-dialog-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink3, #6b7280);
  margin-bottom: 6px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.bldr-dialog-input {
  width: 100%;
  padding: 10px 12px;
  border: 1.5px solid var(--border, #e5e7eb);
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
  color: var(--ink, #111827);
  background: var(--surface, #fff);
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
}
.bldr-dialog-input:focus {
  outline: none;
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 3px rgba(59, 111, 202, 0.12);
}
.bldr-dialog-input.bldr-dialog-input-error {
  border-color: var(--red, #dc2626);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12);
}
.bldr-dialog-textarea {
  resize: vertical;
  min-height: 80px;
  font-family: inherit;
  line-height: 1.5;
}

/* Modal visual polish — κάνει τα regular modals πιο όμορφα όπως κεντρική */

/* Πιο όμορφο box-shadow και smoothing για όλα τα modals */
.bldr-modal {
  box-shadow:
    0 24px 70px rgba(15, 23, 42, 0.18),
    0 4px 14px rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(229, 231, 235, 0.8);
}

/* Modal header — πιο polished */
.bldr-modal h3 {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border, #f3f4f6);
  margin-bottom: 18px;
}

/* Όταν δεν θέλουμε τη γραμμή κάτω από h3 — utility class */
.bldr-modal.bldr-modal-no-divider h3 {
  border-bottom: none;
  padding-bottom: 0;
}

/* Πιο smooth animation */
@keyframes bldrModalIn {
  from { opacity: 0; transform: translateY(12px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}
.bldr-modal {
  animation: bldrModalIn .22s cubic-bezier(.16, 1, .3, 1);
}

/* Καλύτερο backdrop */
.bldr-overlay {
  background: rgba(15, 23, 42, 0.5);
}

/* Body scroll lock όταν open dialog (best-effort) */
.bldr-overlay.bldr-open ~ body,
body:has(.bldr-overlay.bldr-open) {
  overflow: hidden;
}


/* ════════════════════════════════════════════════════════════
   BATCH 4 (18/05/2026) — Case view UI
   • Wider layout (1750px)
   • Single summary card αντί 6 cards
   • Στήλη ΠΑΡΑΔΟΤΕΑ (highlighted) με 📦 + 💳
   • Expanded payments panel ανά τιμολόγιο
   • Πιο όμορφα tabs
   ════════════════════════════════════════════════════════════ */

/* ── Single summary card (αντί για bldr-checks-bar 6 cards) ── */
.bldr-csum {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  padding: 16px 22px;
  margin-bottom: 18px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
  transition: border-color .15s, box-shadow .15s;
}
.bldr-csum.bldr-csum-warn {
  border-color: rgba(217, 119, 6, 0.35);
  background: linear-gradient(180deg, rgba(217, 119, 6, 0.025), transparent 40%);
}
.bldr-csum.bldr-csum-err {
  border-color: rgba(220, 38, 38, 0.35);
  background: linear-gradient(180deg, rgba(220, 38, 38, 0.025), transparent 40%);
}
.bldr-csum-row {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}
.bldr-csum-block {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bldr-csum-block-hl {
  padding: 6px 14px;
  background: var(--blue-light, #eff6ff);
  border: 1px solid var(--blue-mid, #bfdbfe);
  border-radius: 10px;
}
.bldr-csum-label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink4, #9ca3af);
}
.bldr-csum-value {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink, #111827);
  letter-spacing: -0.02em;
}
.bldr-csum-value-money {
  font-variant-numeric: tabular-nums;
}
.bldr-csum-value-aid {
  color: var(--blue, #3b6fca);
}
.bldr-csum-block-hl .bldr-csum-label { color: var(--blue, #3b6fca); }
.bldr-csum-block-hl .bldr-csum-value { color: var(--blue, #3b6fca); font-size: 19px; }
.bldr-csum-arrow {
  font-size: 18px;
  color: var(--ink4, #9ca3af);
  font-weight: 300;
  margin: 0 -4px;
}
.bldr-csum-spacer { flex: 1; min-width: 8px; }

/* Issues block (right side) */
.bldr-csum-issues {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
}
.bldr-csum-issues-ok {
  background: rgba(5, 150, 105, 0.08);
  color: #059669;
  border: 1px solid rgba(5, 150, 105, 0.18);
}
.bldr-csum-issues-warn {
  background: rgba(217, 119, 6, 0.08);
  color: var(--amber, #d97706);
  border: 1px solid rgba(217, 119, 6, 0.22);
}
.bldr-csum-issues-err {
  background: rgba(220, 38, 38, 0.08);
  color: var(--red, #dc2626);
  border: 1px solid rgba(220, 38, 38, 0.22);
}
.bldr-csum-issues-icon { font-size: 15px; }
.bldr-csum-issues-link {
  margin-left: 4px;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  color: inherit;
  opacity: 0.85;
  border-bottom: 1px dashed currentColor;
}
.bldr-csum-issues-link:hover { opacity: 1; }

/* Mobile: stack vertically */
@media (max-width: 768px) {
  .bldr-csum-row { gap: 12px; }
  .bldr-csum-spacer { display: none; }
  .bldr-csum-arrow { display: none; }
  .bldr-csum-issues { flex-basis: 100%; justify-content: center; }
}

/* ── Στήλη ΠΑΡΑΔΟΤΕΑ (highlighted) ── */
.bldr-th-deliverables {
  background: linear-gradient(180deg, rgba(59, 111, 202, 0.06), rgba(59, 111, 202, 0.02));
  color: var(--blue, #3b6fca) !important;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center !important;
  font-size: 10.5px;
  border-left: 1px solid rgba(59, 111, 202, 0.18);
  border-right: 1px solid rgba(59, 111, 202, 0.18);
  min-width: 180px;
}
.bldr-td-deliverables {
  background: rgba(59, 111, 202, 0.025);
  border-left: 1px solid rgba(59, 111, 202, 0.12);
  border-right: 1px solid rgba(59, 111, 202, 0.12);
  text-align: center;
  vertical-align: middle;
  padding: 6px 8px !important;
}
.bldr-deliverables-cell-inner {
  display: flex;
  gap: 6px;
  justify-content: center;
  align-items: center;
}
.bldr-row-warn .bldr-td-deliverables {
  background: rgba(59, 111, 202, 0.04);
}
.bldr-deliv-na {
  color: var(--ink4, #9ca3af);
  font-size: 11px;
  padding: 4px 0;
  min-width: 68px;
  text-align: center;
}

/* ── Expanded payments panel (per invoice) ── */
.bldr-inv-pmts-row > td {
  padding: 0 !important;
  background: linear-gradient(180deg, rgba(91, 33, 182, 0.025), transparent 100%);
  border-top: 1px solid rgba(91, 33, 182, 0.12);
}
.bldr-invpmts-panel {
  padding: 14px 18px 16px;
  border-left: 3px solid rgba(91, 33, 182, 0.4);
  margin: 0 4px;
}
.bldr-invpmts-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink, #111827);
  margin-bottom: 12px;
}
.bldr-invpmts-head-icon { font-size: 14px; }
.bldr-invpmts-head-title { color: #5b21b6; }
.bldr-invpmts-head-meta {
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: var(--ink3, #6b7280);
  font-family: var(--mono, monospace);
  font-size: 12px;
}
.bldr-invpmts-head-count {
  padding: 2px 8px;
  background: rgba(91, 33, 182, 0.10);
  color: #5b21b6;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
}

.bldr-invpmts-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bldr-invpmts-item {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  overflow: hidden;
}
.bldr-invpmts-item-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: var(--bg2, #f9fafb);
  border-bottom: 1px solid var(--border, #e5e7eb);
  font-size: 13px;
}
.bldr-invpmts-item-amount {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ink, #111827);
}
.bldr-invpmts-item-date {
  color: var(--ink3, #6b7280);
  font-family: var(--mono, monospace);
  font-size: 12px;
}
.bldr-invpmts-item-count {
  padding: 2px 8px;
  background: rgba(59, 111, 202, 0.08);
  color: var(--blue, #3b6fca);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}
.bldr-invpmts-item-count-muted {
  background: var(--bg3, #f3f4f6);
  color: var(--ink4, #9ca3af);
}
.bldr-invpmts-item-actions {
  margin-left: auto;
  display: flex;
  gap: 4px;
}
.bldr-invpmts-item-docs {
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* ── Πιο όμορφα tabs (όπως κεντρική) ── */
.bldr-case-tabs {
  display: flex;
  gap: 4px;
  background: var(--bg2, #f3f4f6);
  padding: 6px;
  border-radius: 12px;
  margin-bottom: 16px;
}
.bldr-case-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: transparent;
  border: none;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink3, #6b7280);
  cursor: pointer;
  transition: background .15s, color .15s, box-shadow .15s, transform .1s;
  user-select: none;
}
.bldr-case-tab:hover {
  background: var(--surface, #ffffff);
  color: var(--ink2, #374151);
}
.bldr-case-tab-active {
  background: var(--surface, #ffffff);
  color: var(--ink, #111827);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.04);
}
.bldr-case-tab-active:hover {
  background: var(--surface, #ffffff);
  transform: translateY(-0.5px);
}
.bldr-case-tab-counter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 20px;
  padding: 0 7px;
  background: var(--bg3, #e5e7eb);
  color: var(--ink3, #6b7280);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.bldr-case-tab-active .bldr-case-tab-counter {
  background: var(--blue, #3b6fca);
  color: #ffffff;
}
.bldr-case-tab-counter-err {
  background: var(--red, #dc2626) !important;
  color: #ffffff !important;
}
.bldr-case-tab-counter-ok {
  background: rgba(5, 150, 105, 0.15) !important;
  color: #059669 !important;
}
.bldr-case-tab-active .bldr-case-tab-counter-ok {
  background: #059669 !important;
  color: #ffffff !important;
}


/* ════════════════════════════════════════════════════════════
   BATCH 5 (18/05/2026)
   • 2-button doc rows (✓ + —) για ΟΛΑ τα παραδοτέα
   • Συγκεντρωτικός πίνακας Παραδοτέων στο Report tab (Section G)
   ════════════════════════════════════════════════════════════ */

/* ── 2-button doc row ── */
.bldr-doc-row2 {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 7px;
  font-size: 13px;
  color: var(--ink2, #374151);
  background: transparent;
  transition: background .12s, opacity .12s;
}
.bldr-doc-row2:hover {
  background: var(--bg2, #f9fafb);
}
.bldr-doc-row2-yes {
  background: rgba(5, 150, 105, 0.05);
}
.bldr-doc-row2-na {
  opacity: 0.65;
}
.bldr-doc-row2-na .bldr-doc-row2-text {
  text-decoration: line-through;
  color: var(--ink4, #9ca3af);
}

.bldr-doc-row2-btns {
  display: flex;
  gap: 3px;
  flex-shrink: 0;
}
.bldr-doc-btn {
  width: 26px;
  height: 22px;
  border: 1.5px solid var(--border, #e5e7eb);
  background: var(--surface, #ffffff);
  border-radius: 5px;
  font-size: 12px;
  font-weight: 700;
  color: transparent;
  cursor: pointer;
  transition: all .12s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  user-select: none;
}
.bldr-doc-btn-na {
  width: 22px;
}
.bldr-doc-btn:hover {
  color: var(--ink3, #6b7280);
  border-color: var(--ink4, #9ca3af);
}
/* Active ✓ button */
.bldr-doc-btn-yes.bldr-doc-btn-on {
  color: #059669;
  border-color: #059669;
  background: rgba(5, 150, 105, 0.08);
}
/* Active — button */
.bldr-doc-btn-na.bldr-doc-btn-on {
  color: var(--blue, #3b6fca);
  border-color: var(--blue, #3b6fca);
  background: var(--blue-light, #eff6ff);
}

.bldr-doc-row2-text {
  flex: 1;
  line-height: 1.4;
}

/* Checklist 2-button mode — visual hint όταν 'na' */
.bldr-cl-item-na {
  opacity: 0.65;
}
.bldr-cl-item-na .bldr-cl-item-text {
  text-decoration: line-through;
  color: var(--ink4, #9ca3af);
}

/* ── Section G: Συγκεντρωτικός πίνακας Παραδοτέων ── */
.bldr-delivsum-section {
  margin-top: 20px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}
.bldr-delivsum-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  background: linear-gradient(180deg, rgba(59, 111, 202, 0.04), transparent);
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-delivsum-head-icon {
  font-size: 18px;
}
.bldr-delivsum-head-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink, #111827);
}
.bldr-delivsum-head-pct {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  line-height: 1;
}
.bldr-delivsum-head-pct-num {
  font-size: 22px;
  font-weight: 700;
  color: var(--blue, #3b6fca);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.bldr-delivsum-head-pct-lbl {
  font-size: 10px;
  font-weight: 600;
  color: var(--ink4, #9ca3af);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 3px;
}

/* Filter chips */
.bldr-delivsum-filters {
  display: flex;
  gap: 8px;
  padding: 12px 18px;
  background: var(--bg2, #f9fafb);
  border-bottom: 1px solid var(--border, #e5e7eb);
  flex-wrap: wrap;
}
.bldr-delivsum-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: var(--surface, #ffffff);
  border: 1.5px solid var(--border, #e5e7eb);
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink2, #374151);
  cursor: pointer;
  transition: all .12s;
}
.bldr-delivsum-chip:hover {
  border-color: var(--ink4, #9ca3af);
}
.bldr-delivsum-chip-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 18px;
  padding: 0 6px;
  background: var(--bg3, #f3f4f6);
  color: var(--ink3, #6b7280);
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.bldr-delivsum-chip-active {
  background: var(--ink, #111827);
  color: #ffffff;
  border-color: var(--ink, #111827);
}
.bldr-delivsum-chip-active .bldr-delivsum-chip-count {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
}
/* BATCH 4 (19/05/2026): Dark theme — το --ink στο dark είναι ανοιχτό (κοντά σε λευκό)
   οπότε δίνει pill ολόλευκο που δε διαβάζεται. Override σε σκούρο μπλε accent. */
[data-theme="dark"] .bldr-delivsum-chip-active {
  background: #3b6fca;
  border-color: #3b6fca;
  color: #fff;
}
[data-theme="dark"] .bldr-delivsum-chip-active .bldr-delivsum-chip-count {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}
.bldr-delivsum-chip-yes.bldr-delivsum-chip-active { background: #059669; border-color: #059669; }
.bldr-delivsum-chip-na.bldr-delivsum-chip-active  { background: var(--blue, #3b6fca); border-color: var(--blue, #3b6fca); }
.bldr-delivsum-chip-pending.bldr-delivsum-chip-active { background: var(--amber, #d97706); border-color: var(--amber, #d97706); }

/* Table */
.bldr-delivsum-table-wrap {
  overflow-x: auto;
}
.bldr-delivsum-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}
.bldr-delivsum-table thead th {
  text-align: left;
  padding: 10px 16px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink3, #6b7280);
  background: var(--bg2, #f9fafb);
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-delivsum-table tbody td {
  padding: 10px 16px;
  border-bottom: 1px solid var(--border, #f3f4f6);
  vertical-align: middle;
}
.bldr-delivsum-table tbody tr:last-child td {
  border-bottom: none;
}
.bldr-delivsum-table tbody tr:hover {
  background: var(--bg2, #f9fafb);
}
.bldr-delivsum-td-group {
  font-weight: 600;
  color: var(--ink2, #374151);
  white-space: nowrap;
  width: 1%;
}
.bldr-delivsum-td-sub {
  color: var(--ink3, #6b7280);
  font-size: 11.5px;
  white-space: nowrap;
  width: 1%;
}
.bldr-delivsum-td-desc {
  color: var(--ink, #111827);
}
.bldr-delivsum-td-state {
  text-align: right;
  white-space: nowrap;
  width: 1%;
}

/* State badges */
.bldr-delivsum-state {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.bldr-delivsum-state-yes {
  background: rgba(5, 150, 105, 0.10);
  color: #059669;
}
.bldr-delivsum-state-na {
  background: var(--blue-light, #eff6ff);
  color: var(--blue, #3b6fca);
}
.bldr-delivsum-state-pending {
  background: rgba(217, 119, 6, 0.10);
  color: var(--amber, #d97706);
}
.bldr-delivsum-state-no {
  background: rgba(220, 38, 38, 0.10);
  color: var(--red, #dc2626);
}

/* Στα δύο σημεία που χρησιμοποιείται το παλιό bldr-doc-tick — αφαιρούμε
   το βάρος του checkbox (το έχουμε αντικαταστήσει με κουμπιά). Κρατάμε
   όμως το CSS για τυχόν legacy renders από modules που δεν έχουν αλλάξει. */


/* ════════════════════════════════════════════════════════════
   BATCH 19/05 — Refinement Round 2 (POLISH PASS)
   ──────────────────────────────────────────────────────────────
   • Hint texts πιο ευανάγνωστα (light & dark)
   • Custom-phase chip με ουδέτερο, ευδιάκριτο σχήμα
   • Purple overrides για dark theme (ώστε «μωβ» γράμματα να φαίνονται)
   ════════════════════════════════════════════════════════════ */

/* ── Hint texts (η μικρή γραμματοσειρά κάτω από inputs / sections) ── */
.bldr-hint {
  font-size: 12px;
  color: var(--ink2, #374151) !important;
  line-height: 1.5;
  font-weight: 500;
}
.bldr-field .bldr-hint {
  color: var(--ink2, #374151) !important;
  font-weight: 500;
}
/* Σε dark theme, τα ink2 είναι ήδη ανοιχτά — απλά το κάνουμε ακόμα πιο
   ευανάγνωστο με προσθήκη opacity bump */
[data-theme="dark"] .bldr-hint,
[data-theme="dark"] .bldr-field .bldr-hint {
  color: #e2e8f0 !important;
  opacity: 0.85;
}

/* ── Custom phase tag (όχι Α/Β/Τ) — ουδέτερο indigo που φαίνεται σε όλα τα themes ── */
.bldr-cl-tag.bldr-cl-tag-phase-custom {
  background: rgba(99, 102, 241, 0.12);
  color: #4f46e5;
}
[data-theme="dark"] .bldr-cl-tag.bldr-cl-tag-phase-custom {
  background: rgba(165, 180, 252, 0.18);
  color: #c7d2fe;
}

/* ── Dark theme: ορισμός --purple/--purple-dim (η default τιμή #5a3ca0
   είναι πολύ σκούρη για dark background). Επιπλέον override για
   κλάσεις του builder που χρησιμοποιούν μωβ. ── */
[data-theme="dark"] {
  --purple: #c4b5fd;          /* light lavender — readable σε dark bg */
  --purple-dim: rgba(196, 181, 253, 0.16);
  --purple-light: rgba(196, 181, 253, 0.08);
}
[data-theme="dark"] .bldr-cl-tag.bldr-cl-tag-opske {
  background: rgba(196, 181, 253, 0.16);
  color: #c4b5fd;
}
/* BATCH (25/05/2026): Custom card "Studio" — dark mode overrides */
[data-theme="dark"] .bldr-hs-prog-card-custom .bldr-hs-prog-count-custom {
  background: rgba(59, 130, 246, .12) !important;
  color: #93c5fd !important;
  border-color: rgba(59, 130, 246, .35) !important;
}
[data-theme="dark"] .bldr-hs-prog-card-custom .hs-prog-logo-wrap {
  background: rgba(59, 130, 246, .12) !important;
  border-bottom-color: rgba(59, 130, 246, .35) !important;
}
[data-theme="dark"] .bldr-hs-prog-tags span {
  background: rgba(255, 255, 255, .04);
  border-color: var(--border, #2d3a50);
  color: var(--ink2, #cbd5e1);
}
[data-theme="dark"] .hs-prog-count.purple {
  background: rgba(196, 181, 253, 0.16);
  color: #c4b5fd;
}
/* Custom Φάκελοι separator → lavender σε dark */
[data-theme="dark"] .bldr-hs-cases-sep-title {
  color: #c4b5fd !important;
}
[data-theme="dark"] .bldr-hs-cases-sep-icon {
  background: rgba(196, 181, 253, 0.16) !important;
  border-color: rgba(196, 181, 253, 0.32) !important;
}
[data-theme="dark"] .bldr-hs-cases-sep-count {
  background: rgba(196, 181, 253, 0.18) !important;
  color: #c4b5fd !important;
}
[data-theme="dark"] .bldr-hs-cases-sep-line {
  background: linear-gradient(90deg, rgba(196, 181, 253, 0.25), transparent) !important;
}
[data-theme="dark"] .bldr-hs-cases-sep {
  border-top-color: rgba(255, 255, 255, .08) !important;
}
[data-theme="dark"] .bldr-hs-case-row-custom {
  border-left-color: #a78bfa;
}
[data-theme="dark"] .bldr-hs-case-custom-badge {
  background: rgba(196, 181, 253, 0.16);
  color: #c4b5fd;
}
[data-theme="dark"] .bldr-custom-cats-zone,
[data-theme="dark"] .bldr-custom-cats-title,
[data-theme="dark"] .bldr-custom-cats-icon {
  color: #c4b5fd !important;
}
[data-theme="dark"] .bldr-custom-cat-badge {
  background: rgba(196, 181, 253, 0.16);
  color: #c4b5fd;
}
/* Custom cat rows + custom doc cards που έχουν μωβ accent */
[data-theme="dark"] .bldr-prog-card-rule-badge {
  color: #c4b5fd;
}

/* ════════════════════════════════════════════════════════════
   BATCH 2 — Program list (stacked) + Header v2 + Custom card polish
   ════════════════════════════════════════════════════════════ */

/* Νέο stacked layout: μία κάρτα κάτω από την άλλη.
   Διατηρούμε την παλιά .bldr-prog-grid για backward-compat. */
.bldr-prog-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 1100px;
  margin: 0 auto;
}

.bldr-prog-card-list {
  cursor: pointer;
  position: relative;
}
.bldr-prog-card-list:hover {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 10px 28px rgba(59, 111, 202, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);
  transform: translateY(-2px);
}

/* Header v2 με back button αριστερά, title κέντρο, CTA δεξιά */
.bldr-screen-header-v2 {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 28px;
  padding: 18px 22px;
  background: linear-gradient(135deg, var(--surface, #fff) 0%, var(--blue-light, #eff6ff) 100%);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.bldr-screen-header-v2 .bldr-screen-header-center {
  text-align: center;
  min-width: 0;
}
.bldr-screen-header-v2 .bldr-screen-header-title {
  font-size: 19px;
  font-weight: 700;
  color: var(--ink, #111827);
  letter-spacing: -0.01em;
}
.bldr-screen-header-v2 .bldr-screen-header-sub {
  font-size: 12.5px;
  color: var(--ink2, #374151);
  margin-top: 4px;
  line-height: 1.5;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.bldr-screen-header-back-wrap {
  display: flex;
  align-items: center;
}
.bldr-screen-header-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  color: var(--ink2, #374151);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.bldr-screen-header-back:hover {
  background: var(--bg2, #f3f4f6);
  border-color: var(--blue-mid, #bfdbfe);
  color: var(--blue, #3b6fca);
}

/* Primary CTA στο header — πιο εντονο */
.bldr-screen-header-cta {
  padding: 11px 22px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(59, 111, 202, 0.25), 0 2px 4px rgba(59, 111, 202, 0.15);
  background: linear-gradient(135deg, var(--blue, #3b6fca), var(--blue-hover, #2c5ab8)) !important;
  border: none !important;
  transition: transform .15s, box-shadow .2s !important;
}
.bldr-screen-header-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(59, 111, 202, 0.30), 0 3px 6px rgba(59, 111, 202, 0.20);
}

/* BATCH 20/05/2026: Button-with-icon pattern */
.bldr-btn-with-icon {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
}
.bldr-btn-icon {
  flex-shrink: 0;
  display: inline-block;
}
.bldr-btn-with-icon .bldr-btn-label {
  display: inline-block;
  line-height: 1;
}
.bldr-screen-header-cta.bldr-btn-with-icon {
  padding: 11px 22px 11px 18px !important;
}
.bldr-screen-header-cta.bldr-btn-with-icon .bldr-btn-icon {
  color: rgba(255,255,255,.95);
}

/* Meta 3-col για να χωράνε περισσότερα στοιχεία */
.bldr-prog-card-meta-3col {
  grid-template-columns: repeat(3, 1fr) !important;
}

/* Customcat micro-badge στο meta value */
.bldr-prog-card-customcat {
  display: inline-block;
  padding: 1px 7px;
  margin-left: 4px;
  border-radius: 99px;
  background: rgba(124, 58, 237, 0.10);
  color: #7c3aed;
  font-size: 10.5px;
  font-weight: 700;
  vertical-align: middle;
}
[data-theme="dark"] .bldr-prog-card-customcat {
  background: rgba(196, 181, 253, 0.16);
  color: #c4b5fd;
}

/* Indirect costs badge */
.bldr-prog-card-indirect-badge {
  display: inline-block;
  padding: 1px 7px;
  margin-left: 4px;
  border-radius: 99px;
  background: var(--amber-dim, rgba(245,158,11,.12));
  color: var(--amber, #d97706);
  font-size: 10.5px;
  font-weight: 700;
  vertical-align: middle;
}

/* Placeholder για να μη χαλάει η ευθυγράμμιση όταν δεν υπάρχει delete */
.bldr-prog-card-action-placeholder {
  flex: 0 0 44px;
}

/* Drawer case list — επανασχεδιασμός actions */
.bldr-case-list-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  background: var(--surface, #fff);
  transition: border-color .15s, box-shadow .18s;
  cursor: default;
}
.bldr-case-list-item + .bldr-case-list-item {
  margin-top: 8px;
}
.bldr-case-list-item:hover {
  border-color: var(--blue-mid, #bfdbfe);
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}
.bldr-case-list-info {
  flex: 1;
  min-width: 0;
}
.bldr-case-list-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.bldr-case-list-goto {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, var(--blue, #3b6fca), var(--blue-hover, #2c5ab8));
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: filter .15s, transform .15s;
}
.bldr-case-list-goto:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}
.bldr-case-list-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--border, #e5e7eb);
  color: var(--ink4, #9ca3af);
  border-radius: 8px;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.bldr-case-list-delete:hover {
  background: var(--red-light, #fef2f2);
  color: var(--red, #dc2626);
  border-color: var(--red-mid, rgba(239,68,68,.18));
}

@media (max-width: 720px) {
  .bldr-screen-header-v2 {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .bldr-screen-header-v2 .bldr-screen-header-center {
    text-align: left;
  }
  .bldr-screen-header-back-wrap,
  .bldr-screen-header-v2 .bldr-screen-header-actions {
    justify-content: flex-start;
  }
  .bldr-prog-card-meta-3col {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* ════════════════════════════════════════════════════════════
   BATCH 4 — Approved budget + Rule basis badge
   ════════════════════════════════════════════════════════════ */

.bldr-rule-basis-badge {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: linear-gradient(135deg, var(--blue-light, #eff6ff), var(--surface, #fff));
  border: 1px solid var(--blue-mid, #bfdbfe);
  border-left: 4px solid var(--blue, #3b6fca);
  border-radius: 10px;
  font-size: 13px;
  color: var(--ink, #111827);
  line-height: 1.5;
}
.bldr-rule-basis-badge-icon {
  font-size: 18px;
  flex-shrink: 0;
}
[data-theme="dark"] .bldr-rule-basis-badge {
  background: linear-gradient(135deg, rgba(59,130,246,0.12), var(--surface, #1e293b));
  color: #e2e8f0;
}

/* ════════════════════════════════════════════════════════════
   BATCH 5 — Έμμεσες δαπάνες + Custom payment method + Applies checkboxes
   ════════════════════════════════════════════════════════════ */

/* Indirect costs zone — διακριτική γωνία μέσα στη Section 2 */
.bldr-indirect-zone {
  margin-top: 16px;
  padding: 14px;
  background: linear-gradient(135deg, var(--amber-light, #fffbeb), var(--surface, #fff));
  border: 1px dashed var(--amber-mid, rgba(217,119,6,.2));
  border-radius: 10px;
}
.bldr-indirect-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.bldr-indirect-icon {
  font-size: 22px;
  flex-shrink: 0;
  line-height: 1;
}
.bldr-indirect-head-body { flex: 1; min-width: 0; }
.bldr-indirect-title {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--amber, #d97706);
  margin-bottom: 4px;
}
.bldr-indirect-sub {
  font-size: 12px;
  color: var(--ink2, #374151);
  line-height: 1.5;
}
[data-theme="dark"] .bldr-indirect-zone {
  background: linear-gradient(135deg, rgba(245,158,11,0.10), var(--surface, #1e293b));
  border-color: rgba(245,158,11,0.30);
}
[data-theme="dark"] .bldr-indirect-title { color: #fbbf24; }
[data-theme="dark"] .bldr-indirect-sub   { color: #e2e8f0; }

/* ════════════════════════════════════════════════════════════
   BATCH ΣΤ3 (30/05/2026) — ΦΠΑ zone + Όρια ανά Κατηγορία
   ════════════════════════════════════════════════════════════ */

/* ── ΦΠΑ — Επιλεξιμότητα (μέσα στην Ενότητα 2) ── */
.bldr-vat-zone {
  margin-top: 16px;
  padding: 14px;
  background: linear-gradient(135deg, var(--blue-light, #f0f4fb), var(--surface, #fff));
  border: 1px dashed var(--blue-mid, rgba(59,111,202,.2));
  border-radius: 10px;
}
.bldr-vat-head { display: flex; align-items: flex-start; gap: 10px; }
.bldr-vat-icon { font-size: 22px; flex-shrink: 0; line-height: 1; }
.bldr-vat-head-body { flex: 1; min-width: 0; }
.bldr-vat-title {
  font-size: 13.5px; font-weight: 700;
  color: var(--blue, #3b6fca); margin-bottom: 4px;
}
.bldr-vat-sub { font-size: 12px; color: var(--ink2, #374151); line-height: 1.5; }
.bldr-vat-seg {
  display: flex; margin-top: 12px;
  border: 1px solid var(--border, #e0ddd6);
  border-radius: 9px; overflow: hidden;
  background: var(--bg2, #efede8);
}
.bldr-vat-opt {
  flex: 1; border: none; background: transparent;
  padding: 10px 8px; font-family: inherit; font-size: 12.5px;
  font-weight: 500; color: var(--ink3, #6b6860); cursor: pointer;
  border-right: 1px solid var(--border, #e0ddd6);
  transition: background .15s, color .15s;
}
.bldr-vat-opt:last-child { border-right: none; }
.bldr-vat-opt:hover { background: var(--surface, #fff); }
.bldr-vat-opt.bldr-vat-opt-on { background: var(--blue, #3b6fca); color: #fff; font-weight: 700; }
.bldr-vat-note {
  margin-top: 10px; font-size: 12px; line-height: 1.5;
  color: var(--ink2, #374151);
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e0ddd6);
  border-radius: 8px; padding: 9px 11px;
}
[data-theme="dark"] .bldr-vat-zone {
  background: linear-gradient(135deg, rgba(59,111,202,.12), var(--surface, #1e293b));
  border-color: rgba(59,111,202,.30);
}
[data-theme="dark"] .bldr-vat-title { color: #93c5fd; }
[data-theme="dark"] .bldr-vat-sub   { color: #e2e8f0; }

/* ── Όρια ανά Κατηγορία (Ενότητα 7) ── */
.bldr-limits-toolbar { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }
.bldr-limit-card {
  border: 1px solid var(--border, #e0ddd6);
  border-left: 3px solid var(--blue, #3b6fca);
  border-radius: 8px;
  background: var(--surface, #fff);
  padding: 10px 12px; margin-bottom: 8px;
}
.bldr-limit-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.bldr-limit-row select,
.bldr-limit-row input,
.bldr-limit-note {
  padding: 8px 10px;
  border: 1px solid var(--border, #e0ddd6);
  border-radius: 7px;
  background: var(--bg2, #efede8);
  color: var(--ink, #1a1a1a);
  font-family: inherit; font-size: 12.5px; outline: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
  box-sizing: border-box;
}
.bldr-limit-row select:focus,
.bldr-limit-row input:focus,
.bldr-limit-note:focus {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 3px var(--blue-dim, rgba(59,111,202,.15));
  background: var(--surface, #fff);
}
.bldr-limit-cat  { flex: 1 1 180px; min-width: 150px; }
.bldr-limit-rel  { flex: 0 0 130px; }
.bldr-limit-val  { flex: 0 0 100px; }
.bldr-limit-unit { flex: 0 0 145px; }
.bldr-limit-del {
  flex: 0 0 auto; width: 30px; height: 32px; border: none;
  background: transparent; color: var(--ink4, #9c9890);
  font-size: 15px; cursor: pointer; border-radius: 6px;
  transition: background .15s, color .15s;
}
.bldr-limit-del:hover { background: var(--red-dim, rgba(197,48,48,.06)); color: var(--red, #c53030); }
.bldr-limit-note { width: 100%; margin-top: 8px; }
.bldr-limit-preview {
  margin-top: 8px; font-size: 12.5px; line-height: 1.45;
  color: var(--blue-hover, #2f5cb0);
  background: var(--blue-light, #f0f4fb);
  border: 1px solid var(--blue-mid, rgba(59,111,202,.15));
  border-radius: 7px; padding: 7px 10px;
}
.bldr-limit-preview-empty { color: var(--ink4, #9c9890); }
@media (max-width: 600px) {
  .bldr-limit-rel, .bldr-limit-val, .bldr-limit-unit { flex: 1 1 100%; }
}
[data-theme="dark"] .bldr-limit-card { background: var(--surface, #1e293b); }
[data-theme="dark"] .bldr-limit-preview {
  background: rgba(59,111,202,.12); color: #93c5fd; border-color: rgba(59,111,202,.30);
}

/* ── BATCH ΣΤ4 (31/05/2026): Συγκριτικές Προσφορές (zone στην Ενότητα 7) ── */
.bldr-offers-zone {
  margin-top: 14px; padding: 14px;
  background: linear-gradient(135deg, var(--green-light, #f0f9f5), var(--surface, #fff));
  border: 1px dashed var(--green-mid, rgba(42,138,108,.2));
  border-radius: 10px;
}
.bldr-offers-head { display: flex; align-items: flex-start; gap: 10px; }
.bldr-offers-icon { font-size: 22px; flex-shrink: 0; line-height: 1; }
.bldr-offers-head-body { flex: 1; min-width: 0; }
.bldr-offers-title { font-size: 13.5px; font-weight: 700; color: var(--green, #2a8a6c); margin-bottom: 4px; }
.bldr-offers-sub { font-size: 12px; color: var(--ink2, #374151); line-height: 1.5; }
[data-theme="dark"] .bldr-offers-zone {
  background: linear-gradient(135deg, rgba(42,138,108,.12), var(--surface, #1e293b));
  border-color: rgba(42,138,108,.30);
}
[data-theme="dark"] .bldr-offers-title { color: #6ee7b7; }
[data-theme="dark"] .bldr-offers-sub   { color: #e2e8f0; }

/* ── BATCH ΣΤ4: Κουμπί «Αντιγραφή» στην κάρτα δράσης ── */
.bldr-prog-card-action.bldr-prog-card-action-clone {
  flex: 0 0 auto;
  gap: 6px;
  padding: 11px 14px;
  font-size: 12.5px;
  font-weight: 600 !important;
  border: 1px solid var(--border2, #ccc9c0) !important;
  border-radius: 10px;
  background: var(--surface, #fff);
  color: var(--ink2, #374151);
}
.bldr-prog-card-action.bldr-prog-card-action-clone:hover {
  background: var(--green-light, #f0f9f5);
  border-color: var(--green, #2a8a6c) !important;
  color: var(--green, #2a8a6c);
}
.bldr-prog-card-action-clone .bldr-prog-card-action-ic { font-size: 14px; line-height: 1; }
[data-theme="dark"] .bldr-prog-card-action.bldr-prog-card-action-clone {
  background: var(--surface, #1e293b);
  border-color: rgba(255,255,255,.15) !important;
  color: #cbd5e1;
}
[data-theme="dark"] .bldr-prog-card-action.bldr-prog-card-action-clone:hover {
  background: rgba(42,138,108,.14);
  border-color: #6ee7b7 !important;
  color: #6ee7b7;
}

/* Custom payment method card — μωβ accent όπως custom cats */
.bldr-catdoc-card-custom {
  border: 1px dashed rgba(124, 58, 237, 0.35) !important;
  background: linear-gradient(135deg, rgba(124,58,237,0.04), var(--surface, #fff)) !important;
}
.bldr-custom-pay-label {
  flex: 1;
  min-width: 200px;
  padding: 6px 10px;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid var(--border, #e5e7eb);
  background: var(--surface, #fff);
  color: var(--ink, #111827);
  border-radius: 8px;
  font-family: 'Inter', system-ui, sans-serif;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.bldr-custom-pay-label:focus {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 3px var(--blue-dim, rgba(59,111,202,.1));
}
.bldr-custom-pay-del {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--border, #e5e7eb);
  background: transparent;
  color: var(--ink4, #9ca3af);
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  flex-shrink: 0;
  transition: background .15s, color .15s, border-color .15s;
}
.bldr-custom-pay-del:hover {
  background: var(--red-light, #fef2f2);
  color: var(--red, #dc2626);
  border-color: var(--red-mid, rgba(239,68,68,.18));
}
.bldr-custom-pay-add-wrap {
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px dashed var(--border, #e5e7eb);
}

/* Applies-to checkboxes για disb docs */
.bldr-disb-applies-legend {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  margin-bottom: 10px;
  background: var(--blue-light, #eff6ff);
  border: 1px solid var(--blue-mid, #bfdbfe);
  border-radius: 8px;
  font-size: 12px;
  color: var(--ink2, #374151);
  line-height: 1.4;
}
.bldr-disb-applies-legend-icon { font-size: 16px; flex-shrink: 0; }
[data-theme="dark"] .bldr-disb-applies-legend {
  background: rgba(59,130,246,0.10);
  color: #e2e8f0;
}

.bldr-disb-suggest-wrap { display: flex; flex-direction: column; gap: 0; }
.bldr-disb-applies-row {
  display: flex;
  gap: 16px;
  padding: 8px 12px 8px 38px;
  margin: -1px 0 8px 0;
  background: var(--bg2, #f9fafb);
  border: 1px solid var(--border, #e5e7eb);
  border-top: none;
  border-radius: 0 0 8px 8px;
}
.bldr-disb-applies-row-custom {
  padding: 8px 12px;
  margin: 0;
  border: none;
  background: transparent;
  flex-shrink: 0;
}
.bldr-disb-applies-cb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  user-select: none;
}
.bldr-disb-applies-cb input[type="checkbox"] {
  margin: 0;
  cursor: pointer;
  accent-color: var(--blue, #3b6fca);
}
.bldr-disb-applies-mark {
  padding: 3px 8px;
  border-radius: 99px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  color: var(--ink2, #374151);
  transition: background .12s, color .12s, border-color .12s;
}
.bldr-disb-applies-cb input[type="checkbox"]:checked + .bldr-disb-applies-mark {
  background: var(--blue, #3b6fca);
  color: #fff;
  border-color: var(--blue, #3b6fca);
}
[data-theme="dark"] .bldr-disb-applies-row { background: var(--bg3, #293548); }

/* ════════════════════════════════════════════════════════════
   BATCH 6 — Phase pills migration + Custom prog pills στη λίστα
   ════════════════════════════════════════════════════════════ */

/* Separator μεταξύ ομάδων pills (default progs | phases | custom)
   BATCH 9 (19/05/2026): Πιο διακριτό separator + flex spacer (πάει phases δεξιά). */
.bldr-hs-pills-sep {
  display: inline-flex;
  align-items: center;
  width: 0;
  height: 28px;
  border-left: 1.5px dashed var(--border2, #d1d5db);
  margin: 0 14px;
  vertical-align: middle;
  /* Έγινε flex item-aware: το πρώτο sep (πριν phase pills) σπρώχνει τα phases δεξιά */
  position: relative;
}
.bldr-hs-pills-sep::before {
  content: '';
  position: absolute;
  left: -15px;
  width: 30px;
  /* Spacer: τραβάει τα phase pills στο μακριά δεξιά μέρος των default progs */
}
/* Το πρώτο separator (αυτό πριν τα Α/Β/Τ pills) γίνεται flex-grow ώστε
   τα phase pills να πάνε ως πιο δεξιά γίνεται */
#hsPills {
  flex-wrap: wrap;
}
#hsPills .bldr-hs-pills-sep:first-of-type {
  flex: 1 1 auto;
  border-left: none;
  min-width: 20px;
  max-width: 100%;
  margin: 0;
}
#hsPills .bldr-hs-pills-sep:first-of-type::after {
  content: '';
  display: inline-block;
  width: 1.5px;
  height: 24px;
  border-left: 1.5px dashed var(--border2, #d1d5db);
  margin-left: auto;
  margin-right: 14px;
}
[data-theme="dark"] .bldr-hs-pills-sep,
[data-theme="dark"] #hsPills .bldr-hs-pills-sep:first-of-type::after {
  border-left-color: rgba(255,255,255,.18);
}

/* Phase pills (Α/Β/Τ) — color-coded ίδιο pattern με tb-stat-pill */
.bldr-hs-pill-phase {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.bldr-hs-pill-phase .bldr-hs-pill-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 99px;
  background: var(--bg2, #f3f4f6);
  font-size: 11px;
  font-weight: 700;
  color: var(--ink, #111827);
}
.bldr-hs-pill-phase-A { color: var(--blue, #3b6fca); }
.bldr-hs-pill-phase-A.on,
.bldr-hs-pill-phase-A:hover { background: var(--blue-dim, rgba(59,111,202,.12)); border-color: var(--blue, #3b6fca); }
.bldr-hs-pill-phase-A .bldr-hs-pill-num {
  background: var(--blue, #3b6fca); color: #fff;
}
.bldr-hs-pill-phase-B { color: var(--amber, #d97706); }
.bldr-hs-pill-phase-B.on,
.bldr-hs-pill-phase-B:hover { background: var(--amber-dim, rgba(217,119,6,.12)); border-color: var(--amber, #d97706); }
.bldr-hs-pill-phase-B .bldr-hs-pill-num {
  background: var(--amber, #d97706); color: #fff;
}
.bldr-hs-pill-phase-T { color: var(--green, #059669); }
.bldr-hs-pill-phase-T.on,
.bldr-hs-pill-phase-T:hover { background: var(--green-dim, rgba(5,150,105,.12)); border-color: var(--green, #059669); }
.bldr-hs-pill-phase-T .bldr-hs-pill-num {
  background: var(--green, #059669); color: #fff;
}

/* Custom prog pills — purple accent */
.bldr-hs-pill-custom {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #6d49c4;
}
[data-theme="dark"] .bldr-hs-pill-custom {
  color: #c4b5fd;
}
.bldr-hs-pill-custom.on,
.bldr-hs-pill-custom:hover {
  background: rgba(109, 73, 196, 0.10);
  border-color: rgba(109, 73, 196, 0.35);
}
.bldr-hs-pill-custom-icon {
  font-size: 13px;
  line-height: 1;
}
.bldr-hs-pill-custom .bldr-hs-pill-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  margin-left: 2px;
  border-radius: 99px;
  background: rgba(109, 73, 196, 0.15);
  font-size: 11px;
  font-weight: 700;
  color: #6d49c4;
}
[data-theme="dark"] .bldr-hs-pill-custom .bldr-hs-pill-num {
  background: rgba(196, 181, 253, 0.20);
  color: #c4b5fd;
}

/* ════════════════════════════════════════════════════════════
   BATCH 7 (19/05/2026) — Disbursement Report: Tab switcher
   Εταιρείες / Ατομικές tabs μέσα στο Section F της Αναφοράς
   ════════════════════════════════════════════════════════════ */
.bldr-disb-report-tabs-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 18px 6px;
  background: var(--surface, #fff);
  flex-wrap: wrap;
}
.bldr-disb-report-tabs {
  display: inline-flex;
  background: var(--bg2, #f3f4f6);
  border-radius: 99px;
  padding: 3px;
  gap: 2px;
  border: 1px solid var(--border, #e5e7eb);
}
.bldr-disb-report-tab {
  padding: 6px 18px;
  border-radius: 99px;
  border: none;
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 500;
  font-family: inherit;
  background: transparent;
  color: var(--ink3, #6b7280);
  transition: background .15s, color .15s, font-weight .15s;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.bldr-disb-report-tab:hover { color: var(--ink2, #374151); }
.bldr-disb-report-tab-active {
  background: var(--blue, #3b6fca);
  color: #fff !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 6px rgba(59,111,202,.25);
}
.bldr-disb-report-tab-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 99px;
  background: rgba(255,255,255,.25);
  color: inherit;
  font-size: 10.5px;
  font-weight: 700;
  font-family: var(--mono, ui-monospace, SFMono-Regular, monospace);
}
.bldr-disb-report-tab:not(.bldr-disb-report-tab-active) .bldr-disb-report-tab-num {
  background: var(--surface, #fff);
  color: var(--ink3, #6b7280);
  border: 1px solid var(--border, #e5e7eb);
}
.bldr-disb-report-hint {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--amber, #b8860b);
  background: var(--amber-light, #fffbeb);
  border: 1px solid var(--amber-mid, #fde68a);
  padding: 3px 10px;
  border-radius: 99px;
}
.bldr-disb-report-empty {
  padding: 16px 4px;
  font-size: 12px;
  color: var(--ink4, #9ca3af);
  text-align: center;
  font-style: italic;
}
[data-theme="dark"] .bldr-disb-report-tabs { background: rgba(255,255,255,.05); border-color: var(--border, #374151); }
[data-theme="dark"] .bldr-disb-report-tab:not(.bldr-disb-report-tab-active) .bldr-disb-report-tab-num { background: rgba(255,255,255,.06); }
[data-theme="dark"] .bldr-disb-report-hint { background: rgba(184,134,11,.15); border-color: rgba(184,134,11,.35); color: #fbbf24; }

/* ════════════════════════════════════════════════════════════
   BATCH "Studio" (25/05/2026) — Custom Δράση card final overrides
   Δηλωτικά !important για να υπερισχύσουν των default .hs-prog-card.
   Φιλοσοφία: brand-blue dashed frame, solid surface body, hover
   ενεργοποιεί solid border + lift για να φανεί ότι είναι actionable.
   ════════════════════════════════════════════════════════════ */
.bldr-hs-prog-card-custom {
  position: relative;
  background: var(--surface, #fbfaf8) !important;
  border: 1.5px dashed rgba(59, 111, 202, .35) !important;
  box-shadow: 0 2px 8px -2px rgba(59, 111, 202, .08) !important;
  transition: transform .2s ease, box-shadow .25s ease, border-color .25s ease, border-style .15s !important;
}
.bldr-hs-prog-card-custom:hover {
  border-style: solid !important;
  border-color: var(--blue, #3b6fca) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 24px -8px rgba(59, 111, 202, .28), 0 2px 6px -2px rgba(59, 111, 202, .12) !important;
}
[data-theme="dark"] .bldr-hs-prog-card-custom {
  background: var(--surface, #1e293b) !important;
  border-color: rgba(59, 130, 246, .4) !important;
  box-shadow: 0 2px 8px -2px rgba(59, 130, 246, .12) !important;
}
[data-theme="dark"] .bldr-hs-prog-card-custom:hover {
  border-color: var(--blue, #3b82f6) !important;
  box-shadow: 0 10px 24px -8px rgba(59, 130, 246, .35), 0 2px 6px -2px rgba(59, 130, 246, .18) !important;
}

/* "Πίσω στην Αρχική Σελίδα" — χρωματιστό */
.bldr-screen-header-back {
  background: linear-gradient(135deg, rgba(59,111,202,.08), rgba(59,111,202,.03)) !important;
  border: 1px solid rgba(59,111,202,.28) !important;
  color: var(--blue, #3b6fca) !important;
}
.bldr-screen-header-back::before {
  content: '';
  display: inline-block;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--blue, #3b6fca);
  margin-right: 4px;
  vertical-align: middle;
}
.bldr-screen-header-back:hover {
  background: linear-gradient(135deg, rgba(59,111,202,.14), rgba(59,111,202,.06)) !important;
  border-color: var(--blue, #3b6fca) !important;
  color: var(--blue-hover, #2c5ab8) !important;
  transform: translateX(-2px);
  box-shadow: 0 2px 8px rgba(59,111,202,.15);
}
[data-theme="dark"] .bldr-screen-header-back {
  background: linear-gradient(135deg, rgba(96,165,250,.12), rgba(96,165,250,.04)) !important;
  border-color: rgba(96,165,250,.35) !important;
  color: #93c5fd !important;
}

/* Batch 1 (20/05/2026): Stacked vertical list — 1 κάρτα ανά γραμμή,
   μέτριο πλάτος (max 900px) κεντραρισμένη.
   Διατηρείται η κλάση .bldr-prog-list-2col για backward-compat. */
.bldr-prog-list-2col {
  display: flex !important;
  flex-direction: column;
  gap: 16px !important;
  max-width: 900px;
  margin: 0 auto;
}

/* Card "compact" mode για 2-col layout */
.bldr-prog-card-half {
  position: relative;
}
.bldr-prog-card-half.bldr-prog-card-active {
  border-color: var(--blue, #3b6fca) !important;
  box-shadow: 0 0 0 3px rgba(59,111,202,.15), 0 8px 24px rgba(59,111,202,.12) !important;
}

/* Διαφορετικά χρώματα στα Επεξεργασία/Checklist buttons */
.bldr-prog-card-action-edit {
  background: linear-gradient(135deg, rgba(59,111,202,.08), rgba(59,111,202,.02)) !important;
  border-color: rgba(59,111,202,.3) !important;
  color: var(--blue, #3b6fca) !important;
  font-weight: 600 !important;
}
.bldr-prog-card-action-edit:hover {
  background: var(--blue, #3b6fca) !important;
  color: #fff !important;
  border-color: var(--blue, #3b6fca) !important;
}
.bldr-prog-card-action-checklist {
  background: linear-gradient(135deg, rgba(168, 85, 247, .08), rgba(168, 85, 247, .02)) !important;
  border-color: rgba(168, 85, 247, .3) !important;
  color: #a855f7 !important;
  font-weight: 600 !important;
}
.bldr-prog-card-action-checklist:hover {
  background: #a855f7 !important;
  color: #fff !important;
  border-color: #a855f7 !important;
}
[data-theme="dark"] .bldr-prog-card-action-edit {
  background: rgba(96,165,250,.1) !important;
  border-color: rgba(96,165,250,.35) !important;
  color: #93c5fd !important;
}
[data-theme="dark"] .bldr-prog-card-action-checklist {
  background: rgba(192,132,252,.1) !important;
  border-color: rgba(192,132,252,.35) !important;
  color: #c084fc !important;
}

/* ════════════════════════════════════════════════════════════
   BATCH ΣΤ1 (30/05/2026) — Κάρτα δράσης με ΕΝΑ κεντρικό κουμπί
   «Επεξεργασία Δράσης» (το Checklist μετακόμισε μέσα στην
   επεξεργασία ως Ενότητα 4). + Ενσωματωμένο checklist στη φόρμα.
   ════════════════════════════════════════════════════════════ */
.bldr-prog-card-actions-solo {
  gap: 8px;
  align-items: stretch;
}
/* Το μοναδικό κουμπί επεξεργασίας: filled, κεντραρισμένο, προβεβλημένο */
.bldr-prog-card-action.bldr-prog-card-action-solo {
  flex: 1 1 auto;
  justify-content: center;
  gap: 8px;
  padding: 11px 16px;
  font-size: 13px;
  font-weight: 700 !important;
  letter-spacing: .01em;
  border: 1px solid var(--blue, #3b6fca) !important;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--blue, #3b6fca), #2f5cab) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(59,111,202,.25);
  transition: transform .12s ease, box-shadow .15s ease, filter .15s ease;
}
.bldr-prog-card-action.bldr-prog-card-action-solo:hover {
  filter: brightness(1.07);
  box-shadow: 0 5px 16px rgba(59,111,202,.34);
  transform: translateY(-1px);
  color: #fff !important;
  background: linear-gradient(135deg, var(--blue, #3b6fca), #2f5cab) !important;
}
.bldr-prog-card-action-solo .bldr-prog-card-action-ic {
  font-size: 14px;
  line-height: 1;
}
/* Trash δίπλα στο solo edit — δικό του διακριτικό κουτάκι */
.bldr-prog-card-actions-solo .bldr-prog-card-action-danger {
  flex: 0 0 42px;
  border: 1px solid var(--border, #e5e7eb) !important;
  border-radius: 10px;
  background: var(--surface, #fff);
}
.bldr-prog-card-actions-solo .bldr-prog-card-action-danger:hover {
  background: var(--red-light, #fef2f2);
  border-color: var(--red, #dc2626) !important;
  color: var(--red, #dc2626);
}
/* Όταν δεν υπάρχει δικαίωμα διαγραφής, το placeholder εξαφανίζεται ώστε
   το edit κουμπί να γεμίζει & να κεντράρεται μόνο του. */
.bldr-prog-card-actions-solo .bldr-prog-card-action-placeholder { display: none; }

/* ── Ενσωματωμένο checklist (Ενότητα 4) ── */
.bldr-cl-inline-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 14px;
}
.bldr-cl-inline-plus { font-size: 15px; line-height: 1; margin-right: 1px; }
.bldr-cl-inline .bldr-cl-sec:last-child { margin-bottom: 0; }
/* Empty state μέσα στη φόρμα — πιο μαζεμένο από το full-screen */
.bldr-cl-inline-empty {
  text-align: center;
  padding: 26px 18px;
  border: 1.5px dashed var(--border, #e5e7eb);
  border-radius: 12px;
  background: var(--bg, #f9fafb);
}
.bldr-cl-inline-empty-icon { font-size: 26px; margin-bottom: 8px; }
.bldr-cl-inline-empty-title {
  font-weight: 700; color: var(--ink, #111827);
  font-size: 14px; margin-bottom: 4px;
}
.bldr-cl-inline-empty-text {
  font-size: 12.5px; color: var(--ink3, #6b7280);
  max-width: 420px; margin: 0 auto 14px; line-height: 1.55;
}
[data-theme="dark"] .bldr-cl-inline-empty {
  background: rgba(255,255,255,.02);
  border-color: var(--border, #374151);
}

/* ════════════════════════════════════════════════════════════
   BATCH 3 (19/05/2026) — Popup παράθυρο φακέλων
   ════════════════════════════════════════════════════════════ */
.bldr-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0);
  pointer-events: none;
  z-index: 9050;
  transition: background .2s ease;
}
.bldr-popup-overlay.bldr-open {
  background: rgba(15, 23, 42, 0.25);
  pointer-events: auto;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.bldr-popup {
  position: fixed;
  top: 100px;
  left: -500px;
  width: 380px;
  max-height: 600px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(0,0,0,.18), 0 4px 12px rgba(0,0,0,.08);
  display: flex;
  flex-direction: column;
  z-index: 9100;
  opacity: 0;
  transform: scale(.95) translateX(-10px);
  transform-origin: top left;
  transition: opacity .22s cubic-bezier(.16,1,.3,1), transform .22s cubic-bezier(.16,1,.3,1);
  pointer-events: none;
  overflow: hidden;
}
.bldr-popup.bldr-open {
  opacity: 1;
  transform: scale(1) translateX(0);
  pointer-events: auto;
}
.bldr-popup[data-pointer="right"] {
  transform-origin: top right;
}
.bldr-popup[data-pointer="right"]:not(.bldr-open) {
  transform: scale(.95) translateX(10px);
}
.bldr-popup-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: linear-gradient(to bottom, var(--blue-light, #eff6ff), var(--surface, #fff));
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-popup-head-content { flex: 1; min-width: 0; }
.bldr-popup-head-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink, #111827);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}
.bldr-popup-head-code {
  font-size: 11px;
  font-family: var(--mono, ui-monospace, SFMono-Regular, monospace);
  color: var(--ink4, #9ca3af);
  margin-top: 2px;
}
.bldr-popup-close {
  background: transparent;
  border: 1px solid transparent;
  width: 28px; height: 28px;
  border-radius: 8px;
  color: var(--ink3, #6b7280);
  cursor: pointer;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background .15s, border-color .15s, color .15s;
}
.bldr-popup-close:hover {
  background: var(--bg2, #f3f4f6);
  border-color: var(--border, #e5e7eb);
  color: var(--red, #c53030);
}
.bldr-popup-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 8px 10px;
}
.bldr-popup-empty {
  padding: 30px 16px;
  text-align: center;
  color: var(--ink3, #6b7280);
}
.bldr-popup-empty-icon { font-size: 32px; margin-bottom: 8px; }
.bldr-popup-empty-title { font-size: 13px; font-weight: 600; color: var(--ink2, #374151); margin-bottom: 4px; }
.bldr-popup-empty-text { font-size: 12px; }
.bldr-popup-foot {
  padding: 12px 14px;
  border-top: 1px solid var(--border, #e5e7eb);
  background: var(--bg2, #f9fafb);
}
.bldr-popup-foot .bldr-btn { width: 100%; }
[data-theme="dark"] .bldr-popup {
  background: var(--surface, #1f2937);
  border-color: var(--border, #374151);
  box-shadow: 0 24px 70px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.3);
}
[data-theme="dark"] .bldr-popup-head {
  background: linear-gradient(to bottom, rgba(59,130,246,.12), rgba(255,255,255,0));
}

/* ════════════════════════════════════════════════════════════
   BATCH 4 (19/05/2026) — Indirect block στη summary line
   ════════════════════════════════════════════════════════════ */
.bldr-csum-plus {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink4, #9ca3af);
  margin: 0 -2px;
}
.bldr-csum-block-indirect {
  border-left: 2px dashed rgba(168, 85, 247, .35);
  padding-left: 10px;
  margin-left: 2px;
}
.bldr-csum-value-indirect {
  color: #a855f7 !important;
  font-size: 14px !important;
  font-family: var(--mono, ui-monospace, SFMono-Regular, monospace);
}
[data-theme="dark"] .bldr-csum-value-indirect { color: #c084fc !important; }
[data-theme="dark"] .bldr-csum-block-indirect { border-left-color: rgba(192, 132, 252, .45); }

/* ════════════════════════════════════════════════════════════
   BATCH 8 (19/05/2026) — Report toolbar (print + watermark settings)
   ════════════════════════════════════════════════════════════ */
.bldr-report-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  margin-bottom: 14px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  flex-wrap: wrap;
}
.bldr-report-toolbar-info {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--ink3, #6b7280);
  flex: 1;
  min-width: 200px;
}
.bldr-report-toolbar-date {
  font-family: var(--mono, ui-monospace, SFMono-Regular, monospace);
  font-weight: 600;
}
.bldr-report-toolbar-sep {
  color: var(--ink4, #9ca3af);
}
.bldr-report-toolbar-name {
  color: var(--ink2, #374151);
  font-weight: 600;
}
.bldr-report-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
[data-theme="dark"] .bldr-report-toolbar {
  background: rgba(255,255,255,.02);
}

/* Print buttons σε ξεχωριστά sections (μικρό icon button) */
.bldr-report-section-print {
  background: transparent;
  border: 1px solid var(--border, #e5e7eb);
  color: var(--ink3, #6b7280);
  border-radius: 6px;
  width: 28px;
  height: 26px;
  padding: 0;
  cursor: pointer;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, border-color .15s, color .15s;
  margin-left: 8px;
  flex-shrink: 0;
}
.bldr-report-section-print:hover {
  background: var(--blue-light, #eff6ff);
  border-color: var(--blue, #3b6fca);
  color: var(--blue, #3b6fca);
}
[data-theme="dark"] .bldr-report-section-print {
  border-color: var(--border, #374151);
  background: rgba(255,255,255,.04);
}
[data-theme="dark"] .bldr-report-section-print:hover {
  background: rgba(96,165,250,.12);
  border-color: #60a5fa;
  color: #93c5fd;
}

/* ════════════════════════════════════════════════════════════
   BATCH 9 (19/05/2026) — Phase pills group (ξεχωριστή ομάδα δεξιά)
   ════════════════════════════════════════════════════════════ */
.bldr-hs-phase-group {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 12px;
  background: linear-gradient(135deg, rgba(59,111,202,.06), rgba(168,85,247,.04));
  border: 1px dashed rgba(59,111,202,.25);
  border-radius: 99px;
  position: relative;
}
.bldr-hs-phase-group-label {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--ink3, #6b7280);
  text-transform: uppercase;
  letter-spacing: .04em;
  padding-right: 4px;
  border-right: 1px solid rgba(0,0,0,.08);
  margin-right: 2px;
}
[data-theme="dark"] .bldr-hs-phase-group {
  background: linear-gradient(135deg, rgba(96,165,250,.08), rgba(192,132,252,.06));
  border-color: rgba(96,165,250,.3);
}
[data-theme="dark"] .bldr-hs-phase-group-label {
  border-right-color: rgba(255,255,255,.12);
  color: var(--ink4, #9ca3af);
}
@media (max-width: 720px) {
  .bldr-hs-phase-group { padding: 4px 8px; }
  .bldr-hs-phase-group-label { display: none; }
}

/* ════════════════════════════════════════════════════════════
   BATCH 20/05/2026 — 2-row pills layout στην αρχική
   Πάνω: Όλα + Phase group  ·  Κάτω: prog + custom prog pills
   ════════════════════════════════════════════════════════════ */
#bldrHsTopPillsRow {
  display: flex !important;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--border, #e5e7eb);
}
#bldrHsTopPillsRow .hs-pill[data-prog="ALL"] {
  font-weight: 600;
}
[data-theme="dark"] #bldrHsTopPillsRow {
  border-bottom-color: rgba(255,255,255,.08);
}
@media (max-width: 720px) {
  #bldrHsTopPillsRow { gap: 6px; margin-bottom: 6px; padding-bottom: 6px; }
}

/* ════════════════════════════════════════════════════════════
   BATCH 4 (19/05/2026) — Case view UI overhaul
   ════════════════════════════════════════════════════════════ */

/* Slim header — λιγότερο vertical space για να μη φάει χώρο */
.bldr-screen-header-slim {
  padding: 10px 16px !important;
  margin-bottom: 12px !important;
  min-height: 50px;
}
.bldr-screen-header-slim .bldr-screen-header-title {
  font-size: 15px !important;
}
.bldr-screen-header-slim .bldr-screen-header-sub {
  font-size: 11px !important;
  margin-top: 2px !important;
}

/* Edit form title (Επεξεργασία: NAME [CODE]) */
.bldr-screen-header-title-edit {
  display: flex;
  align-items: center;
  justify-content: center;   /* BATCH ΣΤ1 (30/05/2026): κεντράρισμα τίτλου επεξεργασίας */
  gap: 8px;
  flex-wrap: wrap;
  width: 100%;
  text-align: center;
}
.bldr-screen-header-edit-prefix {
  color: var(--blue, #3b6fca);
  font-weight: 700;
  font-size: 13px;
  background: var(--blue-light, #eff6ff);
  border: 1px solid var(--blue-mid, #bfdbfe);
  padding: 2px 10px;
  border-radius: 99px;
}
.bldr-screen-header-code-badge {
  display: inline-block;
  font-family: var(--mono, ui-monospace, SFMono-Regular, monospace);
  font-size: 12px;
  font-weight: 700;
  background: var(--bg2, #f3f4f6);
  border: 1px solid var(--border, #e5e7eb);
  color: var(--ink2, #374151);
  padding: 2px 10px;
  border-radius: 6px;
  letter-spacing: .02em;
}
[data-theme="dark"] .bldr-screen-header-edit-prefix {
  background: rgba(96,165,250,.15);
  border-color: rgba(96,165,250,.35);
  color: #93c5fd;
}
[data-theme="dark"] .bldr-screen-header-code-badge {
  background: rgba(255,255,255,.06);
  border-color: var(--border, #374151);
  color: #d1d5db;
}

/* Info card meta — γαλάζιο αντί κόκκινο */
.bldr-case-meta-info {
  background: linear-gradient(135deg, var(--blue-light, #eff6ff), rgba(59,111,202,.04)) !important;
  border: 1px solid var(--blue-mid, #bfdbfe) !important;
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  font-size: 11.5px;
  color: var(--ink2, #374151);
}
.bldr-case-meta-info .bldr-case-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.bldr-case-meta-info .bldr-case-meta-rule50 {
  background: var(--amber-light, #fffbeb);
  border: 1px solid var(--amber-mid, #fde68a);
  color: var(--amber, #b8860b);
  padding: 2px 9px;
  border-radius: 99px;
  font-size: 11px;
}
[data-theme="dark"] .bldr-case-meta-info {
  background: linear-gradient(135deg, rgba(96,165,250,.12), rgba(96,165,250,.04)) !important;
  border-color: rgba(96,165,250,.3) !important;
  color: #d1d5db;
}
[data-theme="dark"] .bldr-case-meta-info .bldr-case-meta-rule50 {
  background: rgba(184,134,11,.15);
  border-color: rgba(184,134,11,.35);
  color: #fbbf24;
}

/* Pill-style tabs (parity με κεντρική app) */
.bldr-case-tabs-v2 {
  display: flex;
  padding: 8px 0;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  gap: 0;
  background: transparent !important;
  border: none !important;
}
.bldr-case-tabs-v2 .bldr-case-tabs-group {
  display: inline-flex;
  background: rgba(0,0,0,0.03);
  border-radius: 10px;
  padding: 4px;
  gap: 2px;
  border: 1px solid rgba(59,111,202,0.18);
  box-shadow: 0 2px 10px rgba(0,0,0,0.05), 0 0 0 3px rgba(59,111,202,0.05);
}
.bldr-case-tabs-v2 .bldr-case-tab {
  padding: 6px 14px;
  font-size: 12.5px;
  font-weight: 500;
  cursor: pointer;
  color: var(--ink3, #6b7280);
  background: transparent;
  border: none;
  border-radius: 7px;
  transition: all .18s ease;
  user-select: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.bldr-case-tabs-v2 .bldr-case-tab:hover {
  color: var(--ink, #111827);
  background: rgba(255,255,255,0.5);
}
.bldr-case-tabs-v2 .bldr-case-tab-active {
  color: var(--ink, #111827);
  font-weight: 600;
  background: rgba(255,255,255,0.92);
  box-shadow: 0 1px 4px rgba(0,0,0,0.10), 0 2px 8px rgba(0,0,0,0.06), 0 0 0 0.5px rgba(0,0,0,0.06);
  position: relative;
}
.bldr-case-tabs-v2 .bldr-case-tab-active::after {
  content: '';
  position: absolute;
  bottom: 3px;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 1px;
  border-radius: 99px;
  background: var(--blue, #3b6fca);
  opacity: 0.6;
}
.bldr-case-tabs-v2 .bldr-case-tab-counter {
  font-size: 10px;
  font-weight: 500;
  padding: 1px 7px;
  border-radius: 99px;
  line-height: 1.5;
  background: var(--bg2, #f3f4f6);
  color: var(--ink4, #9ca3af);
  border: 1px solid var(--border, #e5e7eb);
  font-family: var(--mono, ui-monospace, SFMono-Regular, monospace);
}
.bldr-case-tabs-v2 .bldr-case-tab-active .bldr-case-tab-counter {
  background: var(--blue-light, #eff6ff);
  color: var(--blue, #3b6fca);
  border-color: var(--blue-mid, #bfdbfe);
}
.bldr-case-tabs-v2 .bldr-case-tab-counter-ok {
  background: var(--green-dim, rgba(5,150,105,.12)) !important;
  color: var(--green, #059669) !important;
  border-color: var(--green-mid, #6ee7b7) !important;
}
.bldr-case-tabs-v2 .bldr-case-tab-counter-err {
  background: var(--red-dim, rgba(220,38,38,.12)) !important;
  color: var(--red, #c53030) !important;
  border-color: var(--red-mid, #fca5a5) !important;
}
[data-theme="dark"] .bldr-case-tabs-v2 .bldr-case-tabs-group {
  background: rgba(30,41,59,0.6);
  border: 1px solid rgba(59,130,246,0.25);
  box-shadow: 0 2px 12px rgba(0,0,0,0.3), 0 1px 3px rgba(0,0,0,0.2), 0 0 0 3px rgba(59,130,246,0.08);
}
[data-theme="dark"] .bldr-case-tabs-v2 .bldr-case-tab:hover {
  background: rgba(255,255,255,0.06);
}
[data-theme="dark"] .bldr-case-tabs-v2 .bldr-case-tab-active {
  background: rgba(51,65,85,0.85);
  box-shadow: 0 1px 4px rgba(0,0,0,0.35), 0 2px 8px rgba(0,0,0,0.2), 0 0 0 0.5px rgba(255,255,255,0.08);
  color: var(--ink, #f1f5f9);
}
[data-theme="dark"] .bldr-case-tabs-v2 .bldr-case-tab-active::after {
  background: #60a5fa;
  opacity: 0.8;
}
[data-theme="dark"] .bldr-case-tabs-v2 .bldr-case-tab-counter {
  background: rgba(255,255,255,0.05);
  color: var(--ink4, #9ca3af);
  border-color: var(--border, #374151);
}

/* ════════════════════════════════════════════════════════════
   BATCH 5β (19/05/2026) — Αναφορά dark theme readability
   Αντικαθιστά μωβ accents με neutral/blue σε dark theme μόνο
   ════════════════════════════════════════════════════════════ */
[data-theme="dark"] .bldr-report-section .bldr-cl-tag-opske,
[data-theme="dark"] .bldr-disb-report-section .bldr-cl-tag-opske,
[data-theme="dark"] .bldr-deliv-summary .bldr-cl-tag-opske {
  /* Στην Αναφορά συγκεκριμένα: μπλε αντί μωβ για καλύτερη ανάγνωση */
  background: rgba(96, 165, 250, 0.16);
  color: #93c5fd;
}
/* Section letters & counters της Αναφοράς — neutral/blue σε dark */
[data-theme="dark"] .bldr-report-section-letter {
  background: rgba(96, 165, 250, 0.14);
  color: #93c5fd;
  border-color: rgba(96, 165, 250, 0.35);
}
[data-theme="dark"] .bldr-report-section-title {
  color: var(--ink, #f1f5f9);
}

/* ════════════════════════════════════════════════════════════
   BATCH 6 (19/05/2026) — Search/Sort/Filter toolbar για πίνακες
   ════════════════════════════════════════════════════════════ */
.bldr-tbl-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  padding: 10px 12px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
}
.bldr-tbl-search-wrap {
  flex: 0 0 240px;
  max-width: 240px;
}
.bldr-tbl-search {
  width: 100%;
  padding: 7px 12px;
  font-size: 12.5px;
  font-family: inherit;
  border: 1.5px solid var(--border, #e5e7eb);
  border-radius: 8px;
  background: var(--bg2, #f9fafb);
  color: var(--ink, #111827);
  outline: none;
  transition: border-color .15s, background .15s, box-shadow .15s;
}
.bldr-tbl-search:focus {
  background: var(--surface, #fff);
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 3px rgba(59,111,202,.12);
}
.bldr-tbl-search::-webkit-search-cancel-button {
  cursor: pointer;
}
.bldr-tbl-spacer { flex: 1; }
.bldr-tbl-count {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ink3, #6b7280);
  padding: 0 4px;
}
[data-theme="dark"] .bldr-tbl-toolbar {
  background: rgba(255,255,255,.02);
  border-color: var(--border, #374151);
}
[data-theme="dark"] .bldr-tbl-search {
  background: rgba(0,0,0,.25);
  color: var(--ink, #f1f5f9);
  border-color: var(--border, #374151);
}
[data-theme="dark"] .bldr-tbl-search:focus {
  background: rgba(0,0,0,.35);
  border-color: #60a5fa;
  box-shadow: 0 0 0 3px rgba(96,165,250,.15);
}

/* Clear-filter + Reset-sort buttons (amber accent, like κεντρική) */
.bldr-tbl-clearfilter,
.bldr-tbl-resetsort {
  background: var(--amber-light, #fffbeb) !important;
  border: 1px solid var(--amber-mid, #fde68a) !important;
  color: #92400e !important;
  font-weight: 700 !important;
  font-size: 11.5px !important;
  padding: 5px 11px !important;
  flex-shrink: 0;
  animation: bldr-tbl-btn-in .2s ease;
}
.bldr-tbl-clearfilter:hover,
.bldr-tbl-resetsort:hover {
  background: var(--amber-mid, #fde68a) !important;
  border-color: var(--amber, #d97706) !important;
}
[data-theme="dark"] .bldr-tbl-clearfilter,
[data-theme="dark"] .bldr-tbl-resetsort {
  background: rgba(217,119,6,.18) !important;
  border-color: rgba(217,119,6,.4) !important;
  color: #fbbf24 !important;
}
[data-theme="dark"] .bldr-tbl-clearfilter:hover,
[data-theme="dark"] .bldr-tbl-resetsort:hover {
  background: rgba(217,119,6,.32) !important;
}
@keyframes bldr-tbl-btn-in {
  from { opacity: 0; transform: scale(.88); }
  to   { opacity: 1; transform: scale(1); }
}

/* Sortable headers */
.bldr-th-sort {
  cursor: pointer;
  user-select: none;
  transition: background .15s, color .15s;
  position: relative;
}
.bldr-th-sort:hover {
  background: var(--blue-light, #eff6ff) !important;
  color: var(--blue, #3b6fca) !important;
}
.bldr-th-sort .bldr-th-sort-label {
  margin-right: 4px;
}
.bldr-th-sort-arrow {
  display: inline-block;
  font-size: 10px;
  width: 12px;
  text-align: center;
  color: var(--ink4, #9ca3af);
  transition: color .15s;
}
.bldr-th-sort-arrow-on {
  color: var(--blue, #3b6fca);
  font-weight: 700;
}
.bldr-th-sort:hover .bldr-th-sort-arrow {
  color: var(--blue, #3b6fca);
}
[data-theme="dark"] .bldr-th-sort:hover {
  background: rgba(96,165,250,.12) !important;
  color: #93c5fd !important;
}
[data-theme="dark"] .bldr-th-sort-arrow-on { color: #93c5fd; }

/* No-results row */
.bldr-tbl-noresults {
  text-align: center !important;
  padding: 28px 12px !important;
  color: var(--ink4, #9ca3af) !important;
  font-style: italic;
  font-size: 13px !important;
  background: transparent !important;
}

/* Filter note στο footer (όταν φιλτράρονται rows) */
.bldr-tf-filter-note {
  font-weight: 500;
  font-size: 10.5px;
  color: var(--amber, #b8860b);
  font-family: inherit;
  letter-spacing: 0.01em;
  margin-left: 6px;
}

/* Hide old simple toolbar όπου εμφανίζεται */
.bldr-inv-toolbar { display: none !important; }

/* ════════════════════════════════════════════════════════════
   BATCH 2 (20/05/2026) — Ενιαίο μπλε header badge στο CaseView
   Συγχωνεύει το παλιό meta bar (snapshot info) με τη γραμμή
   αιτούμενο/επιδότηση/επιχορήγηση σε μία απαλή μπλε κάρτα.
   ════════════════════════════════════════════════════════════ */
.bldr-hbadge {
  background: var(--blue-dim, #eff6ff);
  border: 1px solid var(--blue-mid, #bfdbfe);
  border-radius: 12px;
  padding: 12px 16px 14px;
  margin-bottom: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bldr-hbadge-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  font-size: 12px;
  color: var(--ink2, #374151);
}
.bldr-hbadge-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.bldr-hbadge-meta-item strong {
  color: var(--ink, #111827);
  font-weight: 600;
}
.bldr-hbadge-sep {
  height: 1px;
  background: var(--blue-mid, #bfdbfe);
  opacity: 0.55;
  margin: 0 -2px;
}
.bldr-hbadge-amounts {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
}
.bldr-hbadge-block {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bldr-hbadge-label {
  font-size: 10px;
  color: var(--ink3, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}
.bldr-hbadge-value {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink, #111827);
  font-family: var(--mono, 'JetBrains Mono', monospace);
}
.bldr-hbadge-value-aid {
  color: var(--blue, #2563eb);
}
.bldr-hbadge-block-hl .bldr-hbadge-value-money {
  color: #16a34a;
}
.bldr-hbadge-arrow,
.bldr-hbadge-plus {
  color: var(--ink4, #9ca3af);
  font-size: 16px;
  font-weight: 600;
}

/* Mobile: stack amounts vertically */
@media (max-width: 720px) {
  .bldr-hbadge-amounts { gap: 10px 14px; }
  .bldr-hbadge-value { font-size: 14px; }
}

/* ════════════════════════════════════════════════════════════
   BATCH 2 (20/05/2026) — Note input στα Γενικά Παραδοτέα
   Mirror του .chk-note της κεντρικής app για visual parity
   ════════════════════════════════════════════════════════════ */
.bldr-cl-note {
  background: var(--bg2, #f9fafb);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  color: var(--ink, #1a1a1a);
  font-family: var(--body, 'Inter', system-ui, sans-serif);
  font-size: 12px;
  padding: 6px 10px;
  width: 200px;
  outline: none;
  transition: border .15s, box-shadow .15s, background .15s;
}
.bldr-cl-note:hover {
  border-color: var(--ink4, #9ca3af);
}
.bldr-cl-note:focus {
  border-color: var(--blue, #3b6fca);
  background: var(--surface, #ffffff);
  box-shadow: 0 0 0 3px var(--blue-dim, rgba(59,111,202,.15));
}
.bldr-cl-note::placeholder {
  color: var(--ink4, #9ca3af);
}

/* ════════════════════════════════════════════════════════════
   BATCH 2 (20/05/2026) — Program Card v2 styling
   Vertical card με: όμορφο μπλε header + Νέος Φάκελος button,
   body με meta, footer actions πάντα στο bottom (flex stretch)
   ════════════════════════════════════════════════════════════ */
.bldr-prog-card-v2 {
  display: flex !important;
  flex-direction: column;
  padding: 0 !important;
  overflow: hidden;
}

/* Header v2 — απαλό μπλε με title left, code+button right */
.bldr-prog-card-head-v2 {
  display: flex !important;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px !important;
  background: linear-gradient(135deg, var(--blue-dim, #eff6ff) 0%, rgba(219,234,254,0.55) 100%);
  border-bottom: 1px solid var(--blue-mid, #bfdbfe);
  margin: 0 !important;
}
.bldr-prog-card-head-v2 .bldr-prog-card-head-text {
  flex: 1;
  min-width: 0;
}
.bldr-prog-card-head-v2 .bldr-prog-card-title {
  color: var(--ink, #1e3a8a) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.35;
}
.bldr-prog-card-head-v2 .bldr-prog-card-ref {
  color: var(--ink2, #4b5563) !important;
  font-size: 11.5px;
  margin-top: 3px;
}
.bldr-prog-card-head-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.bldr-prog-card-head-v2 .bldr-prog-card-code {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  font-weight: 600;
  color: var(--blue, #1d4ed8);
  background: rgba(255,255,255,0.65);
  border: 1px solid var(--blue-mid, #bfdbfe);
  padding: 3px 8px;
  border-radius: 6px;
  white-space: nowrap;
}

/* + Νέος Φάκελος button μέσα στην κάρτα */
.bldr-prog-card-newcase {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  background: var(--blue, #3b6fca);
  color: #fff;
  border: 1px solid var(--blue, #3b6fca);
  border-radius: 7px;
  font-family: var(--body, 'Inter', system-ui, sans-serif);
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, box-shadow .15s, transform .1s;
  white-space: nowrap;
  letter-spacing: 0.01em;
  box-shadow: 0 1px 2px rgba(59,111,202,.25);
}
.bldr-prog-card-newcase:hover {
  background: var(--blue-hover, #2557b8);
  box-shadow: 0 2px 6px rgba(59,111,202,.35);
}
.bldr-prog-card-newcase:active {
  transform: translateY(1px);
}
.bldr-prog-card-newcase span:first-child {
  font-size: 14px;
  line-height: 1;
  margin-top: -1px;
}

/* Body με τα meta */
.bldr-prog-card-v2 .bldr-prog-card-body {
  flex: 1;
  padding: 14px 18px 6px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.bldr-prog-card-v2 .bldr-prog-card-pills {
  margin: 0;
}

/* Footer actions ΠΑΝΤΑ στο bottom (κάρτα στρέφεται μέσω flex) */
.bldr-prog-card-v2 .bldr-prog-card-actions {
  margin-top: auto !important;
  padding: 12px 18px !important;
  border-top: 1px solid var(--border, #e5e7eb);
  background: var(--surface2, #fafbfc);
}

/* Mobile: code badge συμπτύσσεται */
@media (max-width: 640px) {
  .bldr-prog-card-newcase span:last-child { display: none; }
  .bldr-prog-card-head-v2 { padding: 12px 14px !important; }
  .bldr-prog-card-v2 .bldr-prog-card-body { padding: 12px 14px 6px; }
  .bldr-prog-card-v2 .bldr-prog-card-actions { padding: 10px 14px !important; }
}

/* ════════════════════════════════════════════════════════════
   BATCH 3 (20/05/2026) — Visual badges για modal sections
   Mirror του "group badge" style της κεντρικής app
   ════════════════════════════════════════════════════════════ */

/* Edit modal sections — διακριτικά οπτικά separators */
.bldr-edit-section {
  background: var(--surface2, #fafbfc);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  padding: 12px 14px;
  margin: 14px 0 0;
}
.bldr-edit-section-title {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink2, #374151);
  background: var(--blue-light, #dbeafe);
  border: 1px solid var(--blue-mid, #bfdbfe);
  padding: 3px 10px;
  border-radius: 99px;
  margin-bottom: 10px;
}
.bldr-edit-section .bldr-field {
  margin-bottom: 0;
}
.bldr-edit-section .bldr-field + .bldr-field,
.bldr-edit-section .bldr-field-row + .bldr-field {
  margin-top: 10px;
}

/* Field-row για side-by-side πεδία */
.bldr-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 540px) {
  .bldr-field-row { grid-template-columns: 1fr; }
}

/* Compact books row για το edit modal (μικρότερα Β'/Γ') */
.bldr-books-row-compact .bldr-books-opt {
  padding: 6px 12px !important;
  min-height: 0 !important;
}
.bldr-books-row-compact .bldr-books-letter {
  font-size: 14px !important;
  font-weight: 700;
  margin-bottom: 0 !important;
}
.bldr-books-row-compact .bldr-books-desc {
  font-size: 10.5px !important;
  margin-top: 1px !important;
}

/* BATCH 20/05/2026: Books row disabled state */
.bldr-books-row-locked {
  position: relative;
  cursor: not-allowed;
}
.bldr-books-row-locked .bldr-books-opt {
  pointer-events: none;
  cursor: not-allowed !important;
  opacity: 0.55;
  background: var(--bg2, #f3f4f6) !important;
}
.bldr-books-row-locked .bldr-books-opt.bldr-books-on {
  opacity: 0.85;
}
.bldr-books-row-locked-hint {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 6px;
  padding: 4px 10px;
  background: var(--blue-light, #eff6ff);
  border: 1px solid var(--blue-mid, #bfdbfe);
  border-radius: 99px;
  font-size: 11px;
  font-weight: 600;
  color: var(--blue, #3b6fca);
}
[data-theme="dark"] .bldr-books-row-locked-hint {
  background: rgba(96,165,250,.12);
  border-color: rgba(96,165,250,.3);
  color: #93c5fd;
}

/* Wider edit modal — 620 → 760px */
.bldr-modal-edit-case {
  max-width: 760px;
}
.bldr-edit-section .bldr-field-row {
  align-items: end;
}
.bldr-edit-section .bldr-field-row .bldr-field input {
  width: 100%;
  box-sizing: border-box;
}

/* Collapsible ΕΦΕΠΑΕ section */
.bldr-edit-section-collapsible {
  cursor: pointer;
  user-select: none;
  transition: background .15s;
}
.bldr-edit-section-collapsible:hover { background: var(--bg2, #f3f4f6); }
.bldr-edit-section-collapsible .bldr-edit-section-title {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.bldr-edit-section-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px; height: 16px;
  font-size: 14px;
  color: var(--ink4, #9ca3af);
  transition: transform .2s;
  margin-left: 4px;
}
.bldr-edit-section-collapsible.bldr-edit-section-expanded .bldr-edit-section-toggle {
  transform: rotate(90deg);
}
.bldr-edit-section-body {
  display: none;
  margin-top: 10px;
}
.bldr-edit-section-collapsible.bldr-edit-section-expanded .bldr-edit-section-body {
  display: block;
}

/* Danger card v2 — compact + polished */
.bldr-case-danger-v2 {
  background: linear-gradient(180deg, #fef2f2 0%, #fee2e2 100%) !important;
  border: 1px solid #fca5a5 !important;
  border-radius: 8px;
  padding: 8px 12px !important;
  margin-top: 14px !important;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.bldr-case-danger-v2 .bldr-case-danger-title {
  color: #991b1b !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  margin-bottom: 0 !important;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.bldr-case-danger-v2 .bldr-case-danger-text {
  color: #7f1d1d !important;
  font-size: 11px !important;
  line-height: 1.4;
  margin-bottom: 0 !important;
  flex: 1;
  min-width: 200px;
}
.bldr-case-danger-v2 .bldr-btn-danger {
  font-weight: 600;
  font-size: 11.5px;
  padding: 5px 12px;
  margin-left: auto;
  white-space: nowrap;
}
[data-theme="dark"] .bldr-case-danger-v2 {
  background: linear-gradient(180deg, rgba(127, 29, 29, 0.18) 0%, rgba(153, 27, 27, 0.12) 100%) !important;
  border-color: rgba(220, 38, 38, 0.5) !important;
}
[data-theme="dark"] .bldr-case-danger-v2 .bldr-case-danger-title {
  color: #fecaca !important;
}
[data-theme="dark"] .bldr-case-danger-v2 .bldr-case-danger-text {
  color: #fca5a5 !important;
}

.bldr-invalid {
  border-color: #ef4444 !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,0.12) !important;
}

/* ════════════════════════════════════════════════════════════
   BATCH 5 (20/05/2026) — Payment hint colored badges
   Mirror της κεντρικής app: μικτή / ήδη πληρωμένο / ανεξόφλητο
   ════════════════════════════════════════════════════════════ */
.bldr-pmt-hint-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  margin-bottom: 8px;
}
.bldr-pmt-hint-row-err {
  background: #fee2e2;
  border: 1px solid #fca5a5;
  color: #991b1b;
}
.bldr-pmt-hint-icon {
  font-size: 14px;
  flex-shrink: 0;
}
.bldr-pmt-hint-text {
  font-size: 12px;
  line-height: 1.5;
  flex: 1;
}

.bldr-pmt-hint-amounts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-top: 4px;
}
.bldr-pmt-amt {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  font-size: 11.5px;
  font-weight: 600;
  border-radius: 6px;
  border: 1px solid transparent;
  font-family: var(--mono, monospace);
}
.bldr-pmt-amt-gross {
  color: var(--ink2, #374151);
  background: var(--bg2, #f3f4f6);
  border-color: var(--border, #e5e7eb);
}
.bldr-pmt-amt-paid {
  color: var(--blue, #1d4ed8);
  background: var(--blue-dim, #dbeafe);
  border-color: var(--blue-mid, #93c5fd);
}
.bldr-pmt-amt-remaining {
  color: #16a34a;
  background: #d1fae5;
  border-color: #6ee7b7;
}
.bldr-pmt-amt-empty {
  color: #b91c1c;
  background: #fee2e2;
  border-color: #fca5a5;
}

/* Disabled save button όταν τιμολόγιο εξοφλημένο */
.bldr-btn-disabled,
.bldr-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed !important;
  pointer-events: none;
}

/* ════════════════════════════════════════════════════════════════════
 * REPORT PARITY BATCH A (20/05/2026)
 * Νέα CSS για τα data sections Σ0 / Δ / Δ3 / Θ της Αναφοράς του Builder.
 * 100% visual consistency με την κεντρική app:
 * - Inter font (κληρονομείται)
 * - --blue / --green / --red / --amber CSS variables
 * - Ίδια shadow / radius / spacing patterns
 * ════════════════════════════════════════════════════════════════════ */

/* ── Section wrapper (informational sections) ────────────────────── */
.bldr-r2-sec {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  margin-bottom: 16px;
  overflow: hidden;
  box-shadow: var(--shadow, 0 1px 2px rgba(0,0,0,.04));
}

.bldr-r2-sec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--surface2, #f3f4f6);
  border-bottom: 1px solid var(--border, #e5e7eb);
  gap: 10px;
}

.bldr-r2-sec-head-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}

.bldr-r2-sec-head-right {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.bldr-r2-sec-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
  color: #fff;
}
.bldr-r2-sec-icon-blue    { background: var(--blue,   #3b6fca); }
.bldr-r2-sec-icon-green   { background: var(--green,  #16a34a); }
.bldr-r2-sec-icon-red     { background: var(--red,    #dc2626); }
.bldr-r2-sec-icon-amber   { background: var(--amber,  #d97706); }
.bldr-r2-sec-icon-purple  { background: #8b5cf6; }
.bldr-r2-sec-icon-neutral { background: var(--ink3,   #6b7280); }

.bldr-r2-sec-letter {
  font-size: 11px;
  font-weight: 700;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  letter-spacing: 0.04em;
  padding: 2px 7px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  color: var(--ink3, #6b7280);
  white-space: nowrap;
  flex-shrink: 0;
}
.bldr-r2-sec-blue    .bldr-r2-sec-letter { color: var(--blue,   #3b6fca); }
.bldr-r2-sec-green   .bldr-r2-sec-letter { color: var(--green,  #16a34a); }
.bldr-r2-sec-red     .bldr-r2-sec-letter { color: var(--red,    #dc2626); }
.bldr-r2-sec-amber   .bldr-r2-sec-letter { color: var(--amber,  #d97706); }
.bldr-r2-sec-purple  .bldr-r2-sec-letter { color: #8b5cf6; }

.bldr-r2-sec-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  flex: 1;
  min-width: 0;
}

.bldr-r2-sec-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 8px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  letter-spacing: -.01em;
  flex-shrink: 0;
}
.bldr-r2-sec-badge-blue   { background: var(--blue,  #3b6fca); }
.bldr-r2-sec-badge-green  { background: var(--green, #16a34a); }
.bldr-r2-sec-badge-red    { background: var(--red,   #dc2626); }
.bldr-r2-sec-badge-amber  { background: var(--amber, #d97706); }
.bldr-r2-sec-badge-purple { background: #8b5cf6; }

.bldr-r2-sec-body {
  padding: 14px 16px;
}

/* ── OK banner (green callout, χρησιμοποιείται στο Σ0) ───────────── */
.bldr-r2-okbanner {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--green-light, #dcfce7);
  border: 1px solid var(--green-mid, #86efac);
  border-radius: 8px;
  padding: 12px 16px;
}
.bldr-r2-okbanner-icon {
  font-size: 18px;
  flex-shrink: 0;
}
.bldr-r2-okbanner-text {
  font-size: 13px;
  color: var(--green, #16a34a);
  font-weight: 500;
  line-height: 1.4;
}

/* ── Σ0 — clickable rows ──────────────────────────────────────────── */
.bldr-r2-s0-list {
  display: flex;
  flex-direction: column;
}

.bldr-r2-s0-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 9px 4px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  cursor: pointer;
  transition: background .12s ease;
}
.bldr-r2-s0-row:hover {
  background: var(--surface2, #f3f4f6);
}
.bldr-r2-s0-row-last {
  border-bottom: none;
}

.bldr-r2-s0-row-label {
  font-size: 13px;
  color: var(--ink2, #374151);
}
.bldr-r2-s0-row-letter {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  color: var(--ink4, #9ca3af);
  margin-right: 8px;
  display: inline-block;
  min-width: 24px;
}
.bldr-r2-s0-row-num {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 14px;
  font-weight: 700;
  min-width: 32px;
  text-align: right;
}
.bldr-r2-s0-num-normal   { color: var(--ink, #1a1a1a); }
.bldr-r2-s0-num-critical { color: var(--red, #dc2626); }

.bldr-r2-s0-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 4px 4px;
  margin-top: 6px;
  border-top: 2px solid var(--border2, #d1d5db);
}
.bldr-r2-s0-total-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
}
.bldr-r2-s0-total-num {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 16px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  min-width: 32px;
  text-align: right;
}

/* ── Δ — KPI cards grid ───────────────────────────────────────────── */
.bldr-r2-kpi-grid {
  display: grid;
  grid-template-columns: auto repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 8px;
  align-items: stretch;
}

.bldr-r2-kpi-card {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 50px;
}

.bldr-r2-kpi-card-count {
  min-width: 70px;
}

.bldr-r2-kpi-label {
  font-size: 9px;
  color: var(--ink4, #9ca3af);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 3px;
}

.bldr-r2-kpi-value {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  font-family: var(--mono, 'JetBrains Mono', monospace);
  line-height: 1.2;
  white-space: nowrap;
}
.bldr-r2-kpi-value-count  { font-size: 20px; color: var(--blue,  #3b6fca); }
.bldr-r2-kpi-value-blue   { color: var(--blue,   #3b6fca); }
.bldr-r2-kpi-value-green  { color: var(--green,  #16a34a); }
.bldr-r2-kpi-value-muted  { color: var(--ink3,   #6b7280); }

/* ── Δ — payment status banner ────────────────────────────────────── */
.bldr-r2-pay-banner {
  margin-bottom: 8px;
  padding: 9px 14px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.bldr-r2-pay-banner-ok {
  background: var(--green-light, #dcfce7);
  border: 1px solid var(--green-mid, #86efac);
  justify-content: center;
}

.bldr-r2-pay-banner-warn {
  background: var(--red-light, #fee2e2);
  border: 1px solid var(--red-mid, #fca5a5);
  cursor: pointer;
  transition: transform .12s ease;
}
.bldr-r2-pay-banner-warn:hover {
  transform: translateY(-1px);
}

.bldr-r2-pay-banner-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.bldr-r2-pay-banner-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.bldr-r2-pay-banner-ok .bldr-r2-pay-banner-label {
  font-size: 11px;
  color: var(--green, #16a34a);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

.bldr-r2-pay-banner-warn .bldr-r2-pay-banner-label {
  font-size: 11px;
  color: var(--red, #dc2626);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

.bldr-r2-pay-banner-breakdown {
  font-size: 11px;
  color: var(--ink3, #6b7280);
}
.bldr-r2-pay-banner-red {
  color: var(--red, #dc2626);
  font-weight: 700;
}
.bldr-r2-pay-banner-amber {
  color: var(--amber, #d97706);
  font-weight: 700;
}

.bldr-r2-pay-banner-amount {
  font-size: 18px;
  font-weight: 700;
  color: var(--red, #dc2626);
  font-family: var(--mono, 'JetBrains Mono', monospace);
  line-height: 1;
}

.bldr-r2-pay-banner-arrow {
  font-size: 11px;
  color: var(--ink4, #9ca3af);
}

/* ── Δ — Grant card (πράσινη με 2 columns) ────────────────────────── */
.bldr-r2-grant-card {
  margin-bottom: 16px;
  background: var(--surface, #ffffff);
  border: 2px solid #22c55e;
  border-radius: 8px;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.bldr-r2-grant-main {
  flex: 0 0 auto;
}

.bldr-r2-grant-main-label {
  font-size: 9px;
  color: #16a34a;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 3px;
}

.bldr-r2-grant-main-value {
  font-size: 22px;
  font-weight: 800;
  color: #15803d;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.bldr-r2-grant-divider {
  width: 1px;
  height: 32px;
  background: #bbf7d0;
  flex-shrink: 0;
}

.bldr-r2-grant-breakdown {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}

.bldr-r2-grant-block-label {
  font-size: 9px;
  color: var(--ink4, #9ca3af);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
}

.bldr-r2-grant-block-value {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  color: #15803d;
  font-weight: 700;
  font-size: 14px;
}

/* ── Generic tables (Δ/Δ3/Θ) ─────────────────────────────────────── */
.bldr-r2-table-wrap {
  width: 100%;
}
.bldr-r2-table-wrap-scroll {
  overflow-x: auto;
}

.bldr-r2-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.bldr-r2-table-compact {
  font-size: 11px;
}

.bldr-r2-table thead tr {
  background: var(--surface2, #f3f4f6);
}

.bldr-r2-table thead th {
  padding: 8px 12px;
  text-align: left;
  font-size: 10px;
  font-weight: 700;
  color: var(--ink3, #6b7280);
  border-bottom: 2px solid var(--blue, #3b6fca);
  white-space: nowrap;
}

.bldr-r2-table-compact thead th {
  padding: 6px 10px;
  font-size: 9px;
  border-bottom: 1px solid var(--border, #e5e7eb);
}

.bldr-r2-th-right {
  text-align: right !important;
}

.bldr-r2-table tbody td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  vertical-align: middle;
}

.bldr-r2-table-compact tbody td {
  padding: 6px 10px;
  font-size: 11px;
}

.bldr-r2-tr-zebra {
  background: var(--surface2, #f3f4f6);
}

.bldr-r2-tr-unpaid {
  background: var(--red-light, #fee2e2);
}

.bldr-r2-tr-partial {
  background: var(--amber-light, #fef3c7);
}

.bldr-r2-tr-subtotal {
  background: var(--blue-light, #dbeafe);
  font-weight: 700;
  border-top: 2px solid var(--blue, #3b6fca);
}
.bldr-r2-tr-subtotal td:first-child {
  color: var(--blue, #3b6fca);
}
.bldr-r2-tr-subtotal td {
  padding: 9px 12px;
}

.bldr-r2-tr-indirect {
  border-top: 1px dashed var(--border2, #d1d5db);
  background: var(--surface, #ffffff);
}
.bldr-r2-tr-indirect td {
  padding: 8px 12px;
  color: var(--ink3, #6b7280);
}

.bldr-r2-cat-name-indirect {
  display: flex;
  align-items: center;
  gap: 6px;
  font-style: italic;
  font-weight: 600;
}

.bldr-r2-indirect-pct {
  font-size: 9px;
  background: var(--blue-light, #dbeafe);
  color: var(--blue, #3b6fca);
  border-radius: 99px;
  padding: 1px 6px;
  font-weight: 700;
  font-style: normal;
}

.bldr-r2-indirect-label {
  font-size: 11px;
  color: var(--ink3, #6b7280);
}

.bldr-r2-indirect-note {
  font-size: 9px;
  color: var(--ink4, #9ca3af);
  font-style: normal;
  font-weight: 400;
}

.bldr-r2-tr-total {
  background: var(--blue-light, #dbeafe);
  font-weight: 700;
  border-top: 1px solid var(--blue, #3b6fca);
}
.bldr-r2-tr-total td:first-child {
  color: var(--blue, #3b6fca);
}
.bldr-r2-tr-total td {
  padding: 9px 12px;
}

.bldr-r2-cat-name {
  font-weight: 500;
  color: var(--ink, #1a1a1a);
}

.bldr-r2-mono {
  font-family: var(--mono, 'JetBrains Mono', monospace);
}

.bldr-r2-mono-muted { color: var(--ink3, #6b7280); }
.bldr-r2-mono-blue  { color: var(--blue,  #3b6fca); font-weight: 600; }
.bldr-r2-mono-green { color: var(--green, #16a34a); font-weight: 600; }

.bldr-r2-cell-bold {
  font-weight: 600;
  color: var(--ink, #1a1a1a);
}
.bldr-r2-cell-nowrap {
  white-space: nowrap;
}
.bldr-r2-cell-right {
  text-align: right;
}
.bldr-r2-cell-supplier {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bldr-r2-cell-cat {
  font-size: 10px;
  color: var(--ink3, #6b7280);
}
.bldr-r2-cell-pmts {
  font-size: 11px;
}
.bldr-r2-cell-status {
  white-space: nowrap;
}

/* ── Δ3 — Payment pills ───────────────────────────────────────────── */
.bldr-r2-d3-pill {
  display: inline-block;
  font-size: 9px;
  padding: 2px 7px;
  border-radius: 99px;
  background: var(--blue-light, #dbeafe);
  color: var(--blue, #3b6fca);
  white-space: nowrap;
  margin-right: 4px;
  margin-bottom: 2px;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-weight: 600;
}
.bldr-r2-d3-pmts-empty {
  color: var(--ink4, #9ca3af);
  font-size: 11px;
  font-style: italic;
}

.bldr-r2-d3-status {
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}
.bldr-r2-d3-status-fully   { color: #16a34a; }
.bldr-r2-d3-status-partial { color: #b45309; }
.bldr-r2-d3-status-unpaid  { color: #dc2626; }

/* ── Θ — payment rows ────────────────────────────────────────────── */
.bldr-r2-theta-pmts-list {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.bldr-r2-theta-pmt-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 4px;
  background: var(--blue-light, #dbeafe);
}
.bldr-r2-theta-pmt-method {
  color: var(--blue, #3b6fca);
  font-weight: 600;
}
.bldr-r2-theta-pmt-meta {
  color: var(--ink3, #6b7280);
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  white-space: nowrap;
}
.bldr-r2-theta-pmts-empty {
  color: var(--ink4, #9ca3af);
  font-size: 11px;
  font-style: italic;
}

.bldr-r2-theta-status {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
  font-family: var(--mono, 'JetBrains Mono', monospace);
}
.bldr-r2-theta-status-full {
  background: var(--green-light, #dcfce7);
  color: var(--green, #16a34a);
}
.bldr-r2-theta-status-partial {
  background: var(--amber-light, #fef3c7);
  color: var(--amber, #d97706);
}
.bldr-r2-theta-status-none {
  background: var(--red-light, #fee2e2);
  color: var(--red, #dc2626);
}

/* ── Empty inline (όταν 0 invoices σε Δ/Δ3/Θ) ────────────────────── */
.bldr-r2-empty-inline {
  font-size: 13px;
  color: var(--ink4, #9ca3af);
  padding: 16px 12px;
  text-align: center;
  font-style: italic;
}

/* ── Responsive — mobile/tablet ───────────────────────────────────── */
@media (max-width: 900px) {
  .bldr-r2-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .bldr-r2-kpi-card-count {
    grid-column: span 2;
  }
  .bldr-r2-grant-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .bldr-r2-grant-divider {
    width: 100%;
    height: 1px;
  }
  .bldr-r2-pay-banner {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
}

/* ── Print: στα data tables θέλουμε να αποφύγουμε page-break στη μέση ─ */
/* BATCH Ε4 (24/05/2026): print parity για KPI grid (4 cols), orphan header
   avoid, softer word-break, hide ενότητα print buttons. */
@media print {
  .bldr-r2-sec {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .bldr-r2-pay-banner-warn {
    cursor: default;
  }
  .bldr-r2-s0-row {
    cursor: default;
  }

  /* BATCH Ε4 #2 — KPI grid σε 4 columns (override responsive collapse που
     ενεργοποιείται από το print canvas width). Χωρίς αυτό, τα cards γίνονται
     κάθετη λίστα στο PDF (label/value σε ξεχωριστές γραμμές). */
  .bldr-r2-kpi-grid {
    display: grid !important;
    grid-template-columns: auto repeat(4, 1fr) !important;
    gap: 6px !important;
  }
  .bldr-r2-kpi-card-count {
    grid-column: auto !important;
  }
  .bldr-r2-kpi-card {
    min-height: auto !important;
    padding: 6px 8px !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .bldr-r2-kpi-label {
    font-size: 8.5px !important;
  }
  .bldr-r2-kpi-value {
    font-size: 11px !important;
  }
  .bldr-r2-kpi-value-count {
    font-size: 15px !important;
  }

  /* BATCH Ε4 #3 — section header: μην το αφήνεις orphan σε νέα σελίδα.
     Πριν, η σελ. 4/7 του report άνοιγε με μόνο τον header "Σύνοψη Παραδοτέων"
     και το table περιεχόμενο πήγαινε στη σελ. 5/7. */
  .bldr-r2-sec-head {
    break-after: avoid;
    page-break-after: avoid;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* BATCH Ε4 #3 — softer word-break για table cells (απέφυγε
     "περιβάλλω ν χώρος" σπασίματα στα labels). */
  .bldr-r2-table td,
  .bldr-r2-table th {
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: auto;
  }

  /* BATCH Ε4 — hide per-section print buttons (🖨) από εκτύπωση. */
  .bldr-report-section-print {
    display: none !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
 * REPORT PARITY BATCH B (20/05/2026)
 * Νέα CSS για: Δ1, ΣΤ, Δ2, Ι, Ζ
 * ════════════════════════════════════════════════════════════════════ */

/* ── Δ1 — Ανάλυση Κατανομής Π/Υ ανά Κατηγορία ────────────────────── */
.bldr-r2-d1-no-budget {
  padding: 10px 14px;
  background: var(--amber-light, #fef3c7);
  border: 1px solid var(--amber-mid, #fcd34d);
  border-radius: 8px;
  font-size: 11px;
  color: var(--amber, #d97706);
  margin-bottom: 12px;
}

.bldr-r2-d1-info {
  padding: 8px 12px;
  background: var(--blue-light, #dbeafe);
  border: 1px solid var(--blue-mid, #93c5fd);
  border-radius: 8px;
  font-size: 11px;
  color: var(--ink2, #374151);
  margin-bottom: 12px;
}
.bldr-r2-d1-info-grant {
  color: var(--green, #16a34a);
}

.bldr-r2-d1-inelig {
  padding: 10px 14px;
  background: var(--red-light, #fee2e2);
  border: 1px solid var(--red-mid, #fca5a5);
  border-radius: 8px;
  margin-bottom: 12px;
}
.bldr-r2-d1-inelig-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--red, #dc2626);
  margin-bottom: 6px;
}
.bldr-r2-d1-inelig-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 4px;
}
.bldr-r2-d1-inelig-pill {
  background: var(--red, #dc2626);
  color: #fff;
  border-radius: 99px;
  padding: 2px 9px;
  font-size: 10px;
  font-weight: 600;
}
.bldr-r2-d1-inelig-note {
  font-size: 10px;
  color: var(--ink2, #374151);
}

.bldr-r2-d1-bars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 720px) {
  .bldr-r2-d1-bars { grid-template-columns: 1fr; }
}

.bldr-r2-d1-bar-row {
  padding: 10px 12px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
}
.bldr-r2-d1-bar-row-ok     { background: var(--blue-light, #dbeafe);   border-color: var(--blue-mid, #93c5fd); }
.bldr-r2-d1-bar-row-none   { background: var(--surface2, #f3f4f6);     border-color: var(--border, #e5e7eb); }
.bldr-r2-d1-bar-row-inelig { background: var(--red-light, #fee2e2);    border-color: var(--red-mid, #fca5a5); }

.bldr-r2-d1-bar-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.bldr-r2-d1-cat-label {
  flex: 1;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  min-width: 100px;
}
.bldr-r2-d1-cat-tag-inelig {
  background: var(--red, #dc2626);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 99px;
}
.bldr-r2-d1-cat-amounts {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.bldr-r2-d1-cat-amount {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 13px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
}
.bldr-r2-d1-cat-pct {
  font-size: 10px;
  color: var(--ink3, #6b7280);
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  padding: 1px 7px;
  border-radius: 99px;
}

.bldr-r2-d1-bar-track {
  height: 8px;
  background: rgba(0, 0, 0, 0.06);
  border-radius: 99px;
  overflow: hidden;
}
.bldr-r2-d1-bar-fill {
  height: 100%;
  border-radius: 99px;
  transition: width 0.3s ease;
}
.bldr-r2-d1-bar-fill-ok     { background: #3b82f6; }
.bldr-r2-d1-bar-fill-none   { background: var(--border2, #d1d5db); }
.bldr-r2-d1-bar-fill-inelig { background: #ef4444; }

/* ── ΣΤ — Πρόσθετες Εκκρεμότητες ────────────────────────────────── */
.bldr-r2-extra-help {
  font-size: 11px;
  color: var(--ink3, #6b7280);
  margin-bottom: 10px;
  padding: 8px 12px;
  background: var(--blue-light, #dbeafe);
  border-left: 3px solid var(--blue, #3b6fca);
  border-radius: 4px;
}

.bldr-r2-extra-empty {
  font-size: 12px;
  color: var(--ink4, #9ca3af);
  padding: 12px;
  text-align: center;
  font-style: italic;
  border: 1px dashed var(--border2, #d1d5db);
  border-radius: 8px;
  margin-bottom: 8px;
}

.bldr-r2-extra-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 10px;
}

.bldr-r2-extra-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  background: var(--amber-light, #fef3c7);
  border: 1px solid var(--amber-mid, #fcd34d);
  border-radius: 8px;
}

.bldr-r2-extra-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 99px;
  background: var(--amber, #d97706);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
  font-family: var(--mono, 'JetBrains Mono', monospace);
}

.bldr-r2-extra-input {
  flex: 1;
  border: none;
  background: transparent;
  font-family: var(--body, 'Inter', sans-serif);
  font-size: 12.5px;
  color: var(--ink, #1a1a1a);
  outline: none;
  padding: 4px 6px;
  border-radius: 4px;
}
.bldr-r2-extra-input:focus {
  background: rgba(255, 255, 255, 0.5);
}

.bldr-r2-extra-del {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  border: 1px solid var(--amber-mid, #fcd34d);
  background: var(--surface, #fff);
  color: var(--amber, #d97706);
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .12s ease, color .12s ease;
}
.bldr-r2-extra-del:hover {
  background: var(--red, #dc2626);
  color: #fff;
  border-color: var(--red, #dc2626);
}

.bldr-r2-extra-actions {
  display: flex;
  justify-content: flex-start;
}

.bldr-r2-extra-add {
  font-size: 12px;
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px dashed var(--blue, #3b6fca);
  background: var(--surface, #fff);
  color: var(--blue, #3b6fca);
  font-weight: 600;
  cursor: pointer;
  transition: background .12s ease;
}
.bldr-r2-extra-add:hover {
  background: var(--blue-light, #dbeafe);
}

/* ── Δ2 — Κανόνες Υλοποίησης ─────────────────────────────────────── */
.bldr-r2-d2-info {
  padding: 9px 14px;
  background: var(--blue-light, #dbeafe);
  border: 1px solid var(--blue-mid, #93c5fd);
  border-radius: 8px;
  font-size: 11px;
  color: var(--ink2, #374151);
  margin-bottom: 14px;
}
.bldr-r2-d2-info-note {
  font-size: 10px;
  color: var(--ink4, #9ca3af);
}

.bldr-r2-d2-verdict {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 12px;
  border: 1.5px solid;
  margin-bottom: 16px;
}
.bldr-r2-d2-verdict-ok {
  background: var(--green-light, #dcfce7);
  border-color: var(--green-mid, #86efac);
}
.bldr-r2-d2-verdict-err {
  background: var(--red-light, #fee2e2);
  border-color: var(--red-mid, #fca5a5);
}

.bldr-r2-d2-verdict-icon {
  font-size: 22px;
  line-height: 1;
}
.bldr-r2-d2-verdict-body {
  flex: 1;
}
.bldr-r2-d2-verdict-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  margin-bottom: 2px;
}
.bldr-r2-d2-verdict-sub {
  font-size: 11px;
  color: var(--ink2, #374151);
}
.bldr-r2-d2-verdict-ok .bldr-r2-d2-verdict-title  { color: var(--green, #16a34a); }
.bldr-r2-d2-verdict-err .bldr-r2-d2-verdict-title { color: var(--red,   #dc2626); }

.bldr-r2-d2-checks {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.bldr-r2-d2-check {
  padding: 14px 16px;
  border-radius: 10px;
  border: 1px solid;
}
.bldr-r2-d2-check-ok   { background: var(--green-light, #dcfce7); border-color: var(--green-mid, #86efac); }
.bldr-r2-d2-check-warn { background: var(--amber-light, #fef3c7); border-color: var(--amber-mid, #fcd34d); }
.bldr-r2-d2-check-err  { background: var(--red-light,   #fee2e2); border-color: var(--red-mid,   #fca5a5); }

.bldr-r2-d2-check-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.bldr-r2-d2-check-icon {
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
}

.bldr-r2-d2-check-info {
  flex: 1;
  min-width: 120px;
}

.bldr-r2-d2-check-label {
  font-size: 10px;
  color: var(--ink3, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 3px;
}

.bldr-r2-d2-check-actual {
  font-size: 22px;
  font-weight: 800;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  letter-spacing: -0.02em;
  line-height: 1;
}
.bldr-r2-d2-check-ok   .bldr-r2-d2-check-actual { color: var(--green, #16a34a); }
.bldr-r2-d2-check-warn .bldr-r2-d2-check-actual { color: var(--amber, #d97706); }
.bldr-r2-d2-check-err  .bldr-r2-d2-check-actual { color: var(--red,   #dc2626); }

.bldr-r2-d2-check-target {
  text-align: right;
  flex-shrink: 0;
}
.bldr-r2-d2-check-target-lbl {
  font-size: 10px;
  color: var(--ink3, #6b7280);
  margin-bottom: 2px;
}
.bldr-r2-d2-check-target-val {
  font-size: 14px;
  font-weight: 700;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  color: var(--ink, #1a1a1a);
}

.bldr-r2-d2-bar-track {
  height: 10px;
  background: rgba(0, 0, 0, 0.06);
  border-radius: 99px;
  overflow: hidden;
  margin-bottom: 10px;
}
.bldr-r2-d2-bar-fill {
  height: 100%;
  border-radius: 99px;
  transition: width 0.3s ease;
}
.bldr-r2-d2-bar-fill-ok   { background: #22c55e; }
.bldr-r2-d2-bar-fill-warn { background: #f59e0b; }
.bldr-r2-d2-bar-fill-err  { background: #ef4444; }

.bldr-r2-d2-check-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  gap: 8px;
}
.bldr-r2-d2-check-msg {
  font-weight: 600;
}
.bldr-r2-d2-check-ok   .bldr-r2-d2-check-msg { color: var(--green, #16a34a); }
.bldr-r2-d2-check-warn .bldr-r2-d2-check-msg { color: var(--amber, #d97706); }
.bldr-r2-d2-check-err  .bldr-r2-d2-check-msg { color: var(--red,   #dc2626); }

.bldr-r2-d2-check-pct {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-weight: 800;
  font-size: 12px;
}
.bldr-r2-d2-check-ok   .bldr-r2-d2-check-pct { color: var(--green, #16a34a); }
.bldr-r2-d2-check-warn .bldr-r2-d2-check-pct { color: var(--amber, #d97706); }
.bldr-r2-d2-check-err  .bldr-r2-d2-check-pct { color: var(--red,   #dc2626); }

.bldr-r2-d2-check-help {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 10.5px;
  color: var(--ink3, #6b7280);
  line-height: 1.45;
}

.bldr-r2-d2-row-current {
  background: var(--blue-light, #dbeafe) !important;
}
.bldr-r2-d2-row-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--ink, #1a1a1a);
}
.bldr-r2-d2-row-current .bldr-r2-d2-row-label {
  font-weight: 700;
}
.bldr-r2-d2-current-pill {
  margin-left: 6px;
  font-size: 9px;
  font-weight: 700;
  color: var(--blue, #3b6fca);
  background: var(--surface, #fff);
  border: 1px solid var(--blue-mid, #93c5fd);
  padding: 1px 6px;
  border-radius: 99px;
}

/* ── Ι — Σημειώσεις Συμβούλου ────────────────────────────────────── */
.bldr-r2-note-wrap {
  background: var(--surface2, #f3f4f6);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  padding: 14px 16px;
}

.bldr-r2-note-textarea {
  width: 100%;
  padding: 0;
  border: none;
  background: transparent;
  font-family: var(--body, 'Inter', sans-serif);
  font-size: 13px;
  color: var(--ink2, #374151);
  line-height: 1.7;
  resize: vertical;
  outline: none;
  box-sizing: border-box;
  word-break: break-word;
  white-space: pre-wrap;
  min-height: 100px;
}

.bldr-r2-note-foot {
  font-size: 10px;
  color: var(--ink4, #9ca3af);
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: space-between;
}

.bldr-r2-note-status {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border-radius: 99px;
  font-size: 9px;
  font-weight: 700;
  background: transparent;
  color: var(--ink4, #9ca3af);
  min-height: 18px;
}
.bldr-r2-note-saving {
  background: var(--amber-light, #fef3c7);
  border: 1px solid var(--amber-mid, #fcd34d);
  color: var(--amber, #d97706);
}
.bldr-r2-note-saved {
  background: var(--green-light, #dcfce7);
  border: 1px solid var(--green-mid, #86efac);
  color: var(--green, #16a34a);
}

.bldr-r2-note-hint {
  font-size: 10px;
  color: var(--ink4, #9ca3af);
}

/* ── Ζ — Per-payment missing docs ───────────────────────────────── */
.bldr-r2-z-row-err  { background: var(--red-light,   #fee2e2); }
.bldr-r2-z-row-warn { background: var(--amber-light, #fef3c7); }

.bldr-r2-z-td-label {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  color: var(--ink2, #374151);
  font-weight: 600;
}
.bldr-r2-z-td-badge {
  text-align: center;
}
.bldr-r2-z-td-issue {
  font-size: 12px;
}
.bldr-r2-z-td-issue-err  { color: var(--red,   #dc2626); }
.bldr-r2-z-td-issue-warn { color: var(--amber, #d97706); }

.bldr-r2-z-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}
.bldr-r2-z-badge-err {
  background: var(--red-mid, #fca5a5);
  color: var(--red, #dc2626);
}
.bldr-r2-z-badge-warn {
  background: var(--amber-mid, #fcd34d);
  color: var(--amber, #d97706);
}

/* ════════════════════════════════════════════════════════════
   BATCH 1 (21/05/2026) — Tabs v3 με rings + pills (parity κεντρικής)
   • Tab bar πιο ψηλό (min-height 66px όπως κεντρική)
   • Progress ring 14×14 με color-coded stroke
   • Pill label "✓ Εντάξει" / "⚠ Εκκρεμεί" μόνο σε active tab
   • ΧΩΡΙΣ counter αριθμούς (αντικαταστάθηκαν με pill labels)
   ════════════════════════════════════════════════════════════ */

.bldr-case-tabs-v3 {
  padding: 8px 0;
  min-height: 66px;
  align-items: center;
}
.bldr-case-tabs-v3 .bldr-case-tab {
  padding: 6px 14px 7px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  position: relative;
}
.bldr-case-tabs-v3 .bldr-case-tab-inner {
  display: flex;
  align-items: center;
  gap: 6px;
}
.bldr-case-tabs-v3 .bldr-case-tab-label {
  white-space: nowrap;
}

/* SVG progress ring */
.bldr-case-tab-ring {
  display: inline-block;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.bldr-case-tab-ring-bg {
  fill: none;
  stroke: var(--border2, #d1d5db);
  stroke-width: 2;
}
.bldr-case-tab-ring-fill {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  transition: stroke-dashoffset .45s ease, stroke .3s ease;
  transform-origin: center;
  transform: rotate(-90deg);
}

/* Pill labels — εμφανίζονται μόνο όταν active */
.bldr-case-tab-pill {
  display: none;
  font-size: 10px;
  font-weight: 500;
  padding: 1px 7px;
  border-radius: 99px;
  line-height: 1.5;
  white-space: nowrap;
  border: 1px solid transparent;
}
.bldr-case-tabs-v3 .bldr-case-tab-active .bldr-case-tab-pill {
  display: inline-block;
}
.bldr-case-tab-pill-ok {
  background: var(--green-dim, rgba(5,150,105,.12));
  color: var(--green, #059669);
  border-color: var(--green-mid, #6ee7b7);
}
.bldr-case-tab-pill-warn {
  background: var(--amber-dim, rgba(217,119,6,.12));
  color: var(--amber, #d97706);
  border-color: var(--amber-mid, #fcd34d);
}
.bldr-case-tab-pill-err {
  background: var(--red-dim, rgba(220,38,38,.12));
  color: var(--red, #c53030);
  border-color: var(--red-mid, #fca5a5);
}
.bldr-case-tab-pill-idle {
  background: var(--bg2, #f3f4f6);
  color: var(--ink4, #9ca3af);
  border-color: var(--border, #e5e7eb);
}
.bldr-case-tab-pill-hint {
  background: var(--blue-light, #eff6ff);
  color: var(--blue, #3b6fca);
  border-color: var(--blue-mid, #bfdbfe);
}

/* BATCH Ε7 (24/05/2026): Placeholder pill για το report tab.
   Παίρνει χώρο (ώστε το active tab να μην "χάνει ύψος") αλλά είναι invisible.
   Αυτό κρατάει το container .bldr-case-tabs-v3 σταθερό όταν επισκεπτόμαστε
   την Αναφορά (όπου δεν θέλουμε ring ή badge "Εκκρεμεί"). */
.bldr-case-tab-pill-placeholder {
  background: transparent;
  color: transparent;
  border-color: transparent;
  pointer-events: none;
  user-select: none;
}
.bldr-case-tabs-v3 .bldr-case-tab-active .bldr-case-tab-pill-placeholder {
  display: inline-block;
}

/* Dark theme pills */
[data-theme="dark"] .bldr-case-tab-pill-ok {
  background: rgba(42,138,108,.15);
  color: #34d399;
  border-color: rgba(42,138,108,.3);
}
[data-theme="dark"] .bldr-case-tab-pill-warn {
  background: rgba(184,134,11,.15);
  color: #fbbf24;
  border-color: rgba(184,134,11,.3);
}
[data-theme="dark"] .bldr-case-tab-pill-err {
  background: rgba(197,48,48,.15);
  color: #fca5a5;
  border-color: rgba(197,48,48,.3);
}
[data-theme="dark"] .bldr-case-tab-pill-idle {
  background: rgba(255,255,255,.05);
  color: var(--ink4, #9ca3af);
  border-color: var(--border, #374151);
}
[data-theme="dark"] .bldr-case-tab-pill-hint {
  background: rgba(59,130,246,.12);
  color: #60a5fa;
  border-color: rgba(59,130,246,.3);
}

/* Mobile: μικρότερο tab bar */
@media (max-width: 720px) {
  .bldr-case-tabs-v3 {
    min-height: 60px;
  }
  .bldr-case-tabs-v3 .bldr-case-tab {
    padding: 6px 10px 6px;
    font-size: 12px;
  }
  .bldr-case-tab-pill {
    font-size: 9px;
    padding: 0 6px;
  }
}

/* ════════════════════════════════════════════════════════════
   BATCH 2 (21/05/2026) — Καθαρισμός μωβ accents
   • .bldr-invpmts-head-title / -count / panel border → blue (από #5b21b6)
   • Section Δ1 (Ανάλυση Κατανομής Π/Υ) → blue σε όλα τα θέματα
   • Συνέπεια dark theme — αντικαθιστά όλα τα μωβ που πάγωναν την ανάγνωση
   ════════════════════════════════════════════════════════════ */

/* "Πληρωμές & Παραδοτέα Πληρωμής" header — από μωβ σε blue */
.bldr-invpmts-panel {
  border-left: 3px solid rgba(59, 111, 202, 0.42);
}
.bldr-invpmts-head-title {
  color: var(--blue, #3b6fca);
}
.bldr-invpmts-head-count {
  background: rgba(59, 111, 202, 0.10);
  color: var(--blue, #3b6fca);
}

[data-theme="dark"] .bldr-invpmts-panel {
  border-left-color: rgba(96, 165, 250, 0.42);
}
[data-theme="dark"] .bldr-invpmts-head-title {
  color: #60a5fa;
}
[data-theme="dark"] .bldr-invpmts-head-count {
  background: rgba(96, 165, 250, 0.14);
  color: #60a5fa;
}

/* Section Δ1 (Ανάλυση Κατανομής): purple → blue σε όλα τα θέματα */
.bldr-r2-sec-purple {
  /* Override purple variant — γίνεται μπλε στις αναφορές για consistency.
     Αφήνουμε τη class να υπάρχει για backward-compat. */
}
.bldr-r2-sec-icon-purple,
.bldr-r2-sec-badge-purple {
  background: var(--blue, #3b6fca) !important;
}
.bldr-r2-sec-purple .bldr-r2-sec-letter {
  color: var(--blue, #3b6fca) !important;
}
[data-theme="dark"] .bldr-r2-sec-icon-purple,
[data-theme="dark"] .bldr-r2-sec-badge-purple {
  background: #60a5fa !important;
}
[data-theme="dark"] .bldr-r2-sec-purple .bldr-r2-sec-letter {
  color: #60a5fa !important;
}

/* ════════════════════════════════════════════════════════════
   BATCH 3 (21/05/2026) — Color-coded cat chips
   • .bldr-cat-chip-colored override: inline style έχει προτεραιότητα
   • Soft border για όλα τα θέματα
   ════════════════════════════════════════════════════════════ */
.bldr-cat-chip-colored {
  background: var(--surface2, #f3f4f6); /* fallback — inline style overrides */
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  display: inline-block;
  line-height: 1.5;
  letter-spacing: 0.01em;
}
.bldr-cat-chip-colored:hover {
  filter: brightness(0.97);
}
[data-theme="dark"] .bldr-cat-chip-colored:hover {
  filter: brightness(1.12);
}

/* Για το invoice docs panel header — να ξεχωρίζει σαν chip */
.bldr-invdocs-head-cat.bldr-cat-chip-colored {
  margin-left: 4px;
  padding: 2px 8px;
}

/* Dark theme — προσθέτει subtle border με matched alpha */
[data-theme="dark"] .bldr-cat-chip-colored {
  border-color: rgba(255,255,255,0.08);
}

/* ════════════════════════════════════════════════════════════
   BATCH 4 (21/05/2026) — Modal widening + visual hierarchy
   • Default modal: 520 → 580px
   • bldr-wide (invoice, payment): 640 → 820px
   • bldr-modal-edit-case: 760 → 880px
   • Section headers με accent border-left (4px blue)
   • Required asterisk με optional "required" badge
   • Field rows με καλύτερο spacing
   • h3 με icon badge στο πλάι
   ════════════════════════════════════════════════════════════ */

/* — Widening — */
.bldr-modal {
  width: 580px;
}
.bldr-modal.bldr-wide {
  width: 820px;
}
.bldr-modal-edit-case {
  max-width: 880px;
  width: 880px;
}
/* Mobile fallback (κρατάει max-width 96vw όπως ήδη) */
@media (max-width: 920px) {
  .bldr-modal.bldr-wide,
  .bldr-modal-edit-case {
    width: 96vw;
    max-width: 96vw;
  }
}

/* — Modal h3 με icon "callout" — */
.bldr-modal h3 {
  font-size: 17px;
  font-weight: 700;
  padding-bottom: 14px;
  margin-bottom: 22px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  position: relative;
  letter-spacing: -0.015em;
}
.bldr-modal h3::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 48px;
  height: 2px;
  background: var(--blue, #3b6fca);
  border-radius: 2px;
}
[data-theme="dark"] .bldr-modal h3 {
  border-bottom-color: var(--border, #374151);
}
[data-theme="dark"] .bldr-modal h3::after {
  background: #60a5fa;
}

/* — Required asterisk: πιο εμφανές — */
.bldr-field .bldr-req {
  color: var(--red, #dc2626);
  font-weight: 700;
  margin-left: 3px;
  font-size: 12px;
  display: inline-block;
  vertical-align: top;
}

/* — Label με accent χρωμα — */
.bldr-field label {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink2, #374151);
  letter-spacing: 0.01em;
  text-transform: none;
}

/* — Καλύτερο spacing για field rows σε wide modals — */
.bldr-modal.bldr-wide .bldr-field-row,
.bldr-modal-edit-case .bldr-field-row {
  gap: 16px;
}

/* — Section headers (μέσα σε edit case) με accent border — */
.bldr-edit-section {
  margin-top: 22px;
  padding: 14px 16px;
  background: var(--bg2, #f9fafb);
  border-left: 3px solid var(--blue, #3b6fca);
  border-radius: 0 8px 8px 0;
  border-right: 1px solid var(--border, #e5e7eb);
  border-top: 1px solid var(--border, #e5e7eb);
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.bldr-edit-section-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink, #111827);
  margin-bottom: 12px;
  letter-spacing: 0.01em;
  display: flex;
  align-items: center;
  gap: 8px;
}
[data-theme="dark"] .bldr-edit-section {
  background: rgba(255,255,255,0.02);
  border-left-color: #60a5fa;
}

/* — Hint: πιο διακριτικό με icon prefix — */
.bldr-field .bldr-hint {
  font-size: 11.5px;
  color: var(--ink4, #9ca3af);
  margin-top: 6px;
  line-height: 1.5;
  padding-left: 2px;
}

/* — Inputs: πιο γενναιόδωρο padding στα wide modals — */
.bldr-modal.bldr-wide .bldr-field input,
.bldr-modal.bldr-wide .bldr-field select,
.bldr-modal.bldr-wide .bldr-field textarea,
.bldr-modal-edit-case .bldr-field input,
.bldr-modal-edit-case .bldr-field select,
.bldr-modal-edit-case .bldr-field textarea {
  padding: 10px 13px;
  font-size: 13.5px;
}

/* — Money inputs (£/€) σε wider modal: φαίνονται με monospace για ευθυγράμμιση — */
.bldr-modal input[type="number"] {
  font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}

/* — Field groups με optional visual grouping — */
.bldr-field-group {
  padding: 12px 14px;
  background: var(--bg2, #f9fafb);
  border-radius: 8px;
  border: 1px solid var(--border, #e5e7eb);
  margin-bottom: 14px;
}
.bldr-field-group-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--ink3, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
}
[data-theme="dark"] .bldr-field-group {
  background: rgba(255,255,255,0.02);
}

/* — Footer keys hint: πιο sleek — */
.bldr-modal-keys-hint {
  margin-top: 14px;
  font-size: 11px;
  color: var(--ink4, #9ca3af);
  text-align: center;
  padding: 6px 0 0;
}

/* ════════════════════════════════════════════════════════════
   BATCH 6 (21/05/2026) — Program form polish + back button
   • Premium SVG icons σε square box στα section titles
   • Numbered circle πιο διακριτικό, accent στα κατώτερα
   • Form cards με subtle gradient + accent border-top
   • Back button πιο μεγάλο στο case view (slim header)
   ════════════════════════════════════════════════════════════ */

/* ── Premium SVG icons στα section titles ── */
.bldr-pf-icon-wrap {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  transition: all .25s cubic-bezier(.4,0,.2,1);
}
.bldr-pf-icon {
  width: 18px;
  height: 18px;
  display: block;
}

/* Color variants — κάθε section έχει την δική του απαλή απόχρωση */
.bldr-pf-icon-info     { background: rgba(59,111,202,.10);  color: #2b5ea8; }
.bldr-pf-icon-money    { background: rgba(42,138,108,.10);  color: #1e7a5c; }
.bldr-pf-icon-phases   { background: rgba(14,116,144,.10);  color: #0c6680; }
.bldr-pf-icon-grid     { background: rgba(184,134,11,.10);  color: #8a6508; }
.bldr-pf-icon-package  { background: rgba(15,107,77,.12);   color: #0f6b4d; }
.bldr-pf-icon-card     { background: rgba(217,70,119,.10);  color: #be3464; }
.bldr-pf-icon-book     { background: rgba(234,88,12,.10);   color: #b84a10; }
.bldr-pf-icon-doc      { background: rgba(79,70,229,.10);   color: #4f46e5; }
.bldr-pf-icon-balance  { background: rgba(190,24,93,.10);   color: #a01858; }
.bldr-pf-icon-checklist{ background: rgba(124,58,237,.10);  color: #6d28d9; }

/* Dark theme — φωτεινά accent colors */
[data-theme="dark"] .bldr-pf-icon-info    { background: rgba(56,189,248,.15);  color: #7dd3fc; }
[data-theme="dark"] .bldr-pf-icon-money   { background: rgba(52,211,153,.14);  color: #6ee7b7; }
[data-theme="dark"] .bldr-pf-icon-phases  { background: rgba(34,211,238,.13);  color: #67e8f9; }
[data-theme="dark"] .bldr-pf-icon-grid    { background: rgba(251,191,36,.14);  color: #fcd34d; }
[data-theme="dark"] .bldr-pf-icon-package { background: rgba(74,222,128,.14);  color: #86efac; }
[data-theme="dark"] .bldr-pf-icon-card    { background: rgba(244,114,182,.14); color: #f9a8d4; }
[data-theme="dark"] .bldr-pf-icon-book    { background: rgba(249,115,22,.14);  color: #fb923c; }
[data-theme="dark"] .bldr-pf-icon-doc     { background: rgba(129,140,248,.14); color: #a5b4fc; }
[data-theme="dark"] .bldr-pf-icon-balance { background: rgba(236,72,153,.14);  color: #f472b6; }
[data-theme="dark"] .bldr-pf-icon-checklist { background: rgba(167,139,250,.16); color: #c4b5fd; }

/* Card hover — icon "ψυχή" effect */
.bldr-form-card:hover .bldr-pf-icon-wrap {
  transform: scale(1.06);
}

/* ── Numbered circle πιο διακριτικό (από βασικό μπλε σε πιο μικρό label) ── */
.bldr-form-card-title .bldr-num {
  width: 22px;
  height: 22px;
  font-size: 10.5px;
  background: var(--bg2, #f3f4f6);
  color: var(--ink3, #6b7280);
  border: 1px solid var(--border, #e5e7eb);
  font-weight: 700;
}
[data-theme="dark"] .bldr-form-card-title .bldr-num {
  background: rgba(255,255,255,0.05);
  color: var(--ink3, #9ca3af);
  border-color: var(--border, #374151);
}

.bldr-form-card-title-text {
  flex: 1;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink, #111827);
  letter-spacing: -0.005em;
}

/* ── Form cards με subtle gradient + top accent ── */
.bldr-form-card {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  padding: 24px 26px;
  margin-bottom: 16px;
  position: relative;
  transition: box-shadow .2s, border-color .2s;
  overflow: hidden;
}
.bldr-form-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--blue, #3b6fca), transparent);
  opacity: 0.3;
}
.bldr-form-card:hover {
  border-color: var(--blue-mid, #bfdbfe);
  box-shadow: 0 4px 12px -4px rgba(59,111,202,0.08);
}
[data-theme="dark"] .bldr-form-card::before {
  background: linear-gradient(90deg, transparent, #60a5fa, transparent);
  opacity: 0.4;
}
[data-theme="dark"] .bldr-form-card:hover {
  border-color: rgba(96,165,250,0.35);
  box-shadow: 0 4px 12px -4px rgba(0,0,0,0.4);
}

/* ── Form card title με καλύτερο spacing ── */
.bldr-form-card-title {
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 18px;
  font-size: 15px;
}

/* ── Mobile: μικρότερο icon box ── */
@media (max-width: 600px) {
  .bldr-pf-icon-wrap { width: 32px; height: 32px; border-radius: 8px; }
  .bldr-pf-icon { width: 16px; height: 16px; }
  .bldr-form-card { padding: 18px 16px; }
  .bldr-form-card-title-text { font-size: 14px; }
}

/* ════════════════════════════════════════════════════════════
   Back button: μεγαλύτερο στο case view (slim header)
   ════════════════════════════════════════════════════════════ */
.bldr-screen-header-slim .bldr-screen-header-back {
  padding: 10px 18px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  border-radius: 9px !important;
  min-height: 42px;
}
.bldr-screen-header-slim .bldr-screen-header-back-wrap {
  flex-shrink: 0;
}

/* Στα regular screens (non-slim), back button λίγο πιο μεγάλο επίσης */
.bldr-screen-header-back {
  padding: 10px 16px;
  font-size: 13px;
  min-height: 40px;
}

/* ════════════════════════════════════════════════════════════
   BATCH 7 (21/05/2026) — Γενικά Παραδοτέα: toolbar + visual polish
   Στόχοι:
   • Toolbar με stat chip + 2 buttons (open/close all + print)
   • Section cards με soft gradient + progress ring στο header
   • Καθαρά state-tinted backgrounds για items (γαλήνια χρώματα)
   • Better spacing σε όλες τις γραμμές + breathing room
   ════════════════════════════════════════════════════════════ */

/* ── Wrapper ── */
.bldr-cl-wrap {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ── Toolbar ── */
.bldr-cl-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  background: linear-gradient(135deg, var(--surface, #ffffff), var(--bg2, #f9fafb));
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  flex-wrap: wrap;
  position: sticky;
  top: 8px;
  z-index: 5;
  box-shadow: 0 2px 8px -3px rgba(0,0,0,0.06);
}
[data-theme="dark"] .bldr-cl-toolbar {
  background: linear-gradient(135deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  box-shadow: 0 2px 8px -3px rgba(0,0,0,0.3);
}

.bldr-cl-toolbar-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}
.bldr-cl-toolbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Summary chip — pct + text */
.bldr-cl-toolbar-summary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 5px 12px 5px 5px;
  border-radius: 99px;
  background: var(--bg2, #f3f4f6);
  border: 1px solid var(--border, #e5e7eb);
  min-width: 0;
  max-width: 100%;
}
.bldr-cl-toolbar-summary-pct {
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: var(--blue, #3b6fca);
  padding: 4px 10px;
  border-radius: 99px;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  flex-shrink: 0;
  min-width: 44px;
  text-align: center;
}
.bldr-cl-toolbar-summary-text {
  font-size: 12px;
  color: var(--ink2, #374151);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bldr-cl-toolbar-summary-ok .bldr-cl-toolbar-summary-pct {
  background: var(--green, #059669);
}
.bldr-cl-toolbar-summary-ok {
  background: rgba(5,150,105,0.08);
  border-color: rgba(5,150,105,0.25);
}
.bldr-cl-toolbar-summary-warn .bldr-cl-toolbar-summary-pct {
  background: var(--amber, #d97706);
}
.bldr-cl-toolbar-summary-idle .bldr-cl-toolbar-summary-pct {
  background: var(--ink4, #9ca3af);
}

[data-theme="dark"] .bldr-cl-toolbar-summary {
  background: rgba(255,255,255,0.04);
}
[data-theme="dark"] .bldr-cl-toolbar-summary-text {
  color: var(--ink2, #d1d5db);
}

/* Toolbar buttons */
.bldr-cl-toolbar-btn {
  font-size: 12px;
  padding: 7px 14px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.bldr-btn-sm {
  font-size: 12px;
  padding: 7px 14px;
}

/* Mobile: stack the toolbar */
@media (max-width: 600px) {
  .bldr-cl-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .bldr-cl-toolbar-left { width: 100%; }
  .bldr-cl-toolbar-right {
    width: 100%;
    justify-content: space-between;
  }
  .bldr-cl-toolbar-summary { width: 100%; justify-content: flex-start; }
  .bldr-cl-toolbar-btn { flex: 1; justify-content: center; }
}

/* ════════════════════════════════════════════════════════════
   Visual polish — sections (ξεκούραστα/ευχάριστα)
   ════════════════════════════════════════════════════════════ */
.bldr-cl-sections {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Section card — με ελαφρύ gradient + soft border */
.bldr-cl-section {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  margin-bottom: 0; /* gap handles it */
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}
.bldr-cl-section:hover {
  border-color: var(--blue-mid, #bfdbfe);
  box-shadow: 0 2px 8px -3px rgba(59,111,202,0.12);
}
[data-theme="dark"] .bldr-cl-section:hover {
  border-color: rgba(96,165,250,0.35);
}

/* Section header — gradient soft */
.bldr-cl-section-header {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 13px 16px;
  background: linear-gradient(180deg, var(--surface2, #f9fafb), var(--bg2, #f3f4f6));
  border-bottom: 1px solid var(--border, #e5e7eb);
  cursor: pointer;
  user-select: none;
  transition: background .15s ease;
}
.bldr-cl-section-header:hover {
  background: linear-gradient(180deg, var(--bg2, #f3f4f6), var(--border, #e5e7eb));
}
[data-theme="dark"] .bldr-cl-section-header {
  background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));
}
[data-theme="dark"] .bldr-cl-section-header:hover {
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.04));
}

.bldr-cl-section-icon {
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.bldr-cl-section-title {
  flex: 1;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink, #111827);
  letter-spacing: -0.005em;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Progress ring — μικρό 14×14 */
.bldr-cl-section-ring {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.bldr-cl-section-ring-bg {
  fill: none;
  stroke: var(--border, #e5e7eb);
  stroke-width: 2;
}
.bldr-cl-section-ring-fill {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  transition: stroke-dashoffset .45s ease, stroke .3s ease;
  transform-origin: center;
  transform: rotate(-90deg);
}

/* Counter — πιο polished */
.bldr-cl-section-counter {
  font-size: 11px;
  font-weight: 700;
  color: var(--ink3, #6b7280);
  padding: 3px 10px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 99px;
  font-family: var(--mono, 'JetBrains Mono', monospace);
  flex-shrink: 0;
  letter-spacing: 0;
}
[data-theme="dark"] .bldr-cl-section-counter {
  background: rgba(255,255,255,0.05);
  color: var(--ink2, #d1d5db);
}
.bldr-cl-section.bldr-cl-complete .bldr-cl-section-counter {
  background: rgba(5, 150, 105, 0.12);
  color: var(--green, #059669);
  border-color: rgba(5, 150, 105, 0.35);
}
.bldr-cl-section.bldr-cl-complete .bldr-cl-section-header {
  background: linear-gradient(180deg, rgba(5,150,105,0.05), rgba(5,150,105,0.02));
}
[data-theme="dark"] .bldr-cl-section.bldr-cl-complete .bldr-cl-section-counter {
  background: rgba(52,211,153,0.14);
  color: #6ee7b7;
  border-color: rgba(52,211,153,0.3);
}
[data-theme="dark"] .bldr-cl-section.bldr-cl-complete .bldr-cl-section-header {
  background: linear-gradient(180deg, rgba(52,211,153,0.08), rgba(52,211,153,0.02));
}

/* Toggle chevron */
.bldr-cl-section-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: var(--ink4, #9ca3af);
  transition: transform .25s cubic-bezier(.4,0,.2,1);
  margin-left: 2px;
  flex-shrink: 0;
}
.bldr-cl-section.bldr-cl-collapsed .bldr-cl-section-toggle {
  transform: rotate(-90deg);
}
.bldr-cl-section-toggle svg {
  width: 11px;
  height: 11px;
}

/* Section body — smooth animation */
.bldr-cl-section-body {
  padding: 0;
}
.bldr-cl-section.bldr-cl-collapsed .bldr-cl-section-body {
  display: none;
}

/* ════════════════════════════════════════════════════════════
   Items — calming state-tinted backgrounds
   ════════════════════════════════════════════════════════════ */
.bldr-cl-item {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  transition: background .15s;
}
.bldr-cl-item:last-child {
  border-bottom: none;
}
.bldr-cl-item:hover {
  background: var(--bg2, #f9fafb);
}
[data-theme="dark"] .bldr-cl-item:hover {
  background: rgba(255,255,255,0.02);
}

/* State-tinted items — απαλά */
.bldr-cl-item.bldr-cl-item-yes {
  background: rgba(5,150,105,0.04);
  border-left: 3px solid var(--green, #059669);
  padding-left: 13px;
}
.bldr-cl-item.bldr-cl-item-no {
  background: rgba(220,38,38,0.04);
  border-left: 3px solid var(--red, #dc2626);
  padding-left: 13px;
}
.bldr-cl-item.bldr-cl-item-na {
  background: rgba(59,111,202,0.03);
  border-left: 3px solid var(--ink4, #9ca3af);
  padding-left: 13px;
}
[data-theme="dark"] .bldr-cl-item.bldr-cl-item-yes {
  background: rgba(52,211,153,0.06);
}
[data-theme="dark"] .bldr-cl-item.bldr-cl-item-no {
  background: rgba(248,113,113,0.06);
}
[data-theme="dark"] .bldr-cl-item.bldr-cl-item-na {
  background: rgba(96,165,250,0.04);
}

/* ── Print: hide toolbar από το main checklist ── */
@media print {
  .bldr-cl-toolbar { display: none !important; }
}

/* ════════════════════════════════════════════════════════════
   BATCH 9 (21/05/2026) — Special Rules: 3 kinds support
   • Rule kind badge στο header
   • Διαφορετικό left-border accent ανά kind
   • Impl rules: info banner στην αρχή
   • Rules toolbar: 3 buttons (cat_share / phase_limit / completion)
   ════════════════════════════════════════════════════════════ */

/* Rule kind badge */
.bldr-rule-kind-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 99px;
  letter-spacing: 0.01em;
  white-space: nowrap;
  margin-left: 8px;
  margin-right: 4px;
  border: 1px solid transparent;
}
.bldr-rule-kind-badge-cat_share {
  background: rgba(59,111,202,.10);
  color: var(--blue, #3b6fca);
  border-color: rgba(59,111,202,.25);
}
.bldr-rule-kind-badge-phase_limit_pct {
  background: rgba(217,119,6,.10);
  color: var(--amber, #d97706);
  border-color: rgba(217,119,6,.30);
}
.bldr-rule-kind-badge-completion_threshold {
  background: rgba(5,150,105,.10);
  color: var(--green, #059669);
  border-color: rgba(5,150,105,.30);
}

[data-theme="dark"] .bldr-rule-kind-badge-cat_share {
  background: rgba(96,165,250,.14);
  color: #93c5fd;
  border-color: rgba(96,165,250,.30);
}
[data-theme="dark"] .bldr-rule-kind-badge-phase_limit_pct {
  background: rgba(251,191,36,.14);
  color: #fcd34d;
  border-color: rgba(251,191,36,.30);
}
[data-theme="dark"] .bldr-rule-kind-badge-completion_threshold {
  background: rgba(52,211,153,.14);
  color: #6ee7b7;
  border-color: rgba(52,211,153,.30);
}

/* Rule card left-border accent ανά kind */
.bldr-rule-card-cat_share { border-left: 3px solid var(--blue, #3b6fca); }
.bldr-rule-card-phase_limit_pct { border-left: 3px solid var(--amber, #d97706); }
.bldr-rule-card-completion_threshold { border-left: 3px solid var(--green, #059669); }

/* Impl rule info banner */
.bldr-rule-impl-info {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 14px;
  background: var(--bg2, #f9fafb);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  margin-bottom: 14px;
  font-size: 12.5px;
  color: var(--ink2, #374151);
  line-height: 1.5;
}
.bldr-rule-impl-info-icon {
  font-size: 16px;
  flex-shrink: 0;
  margin-top: -1px;
}
[data-theme="dark"] .bldr-rule-impl-info {
  background: rgba(255,255,255,0.03);
}

/* Rules toolbar — multiple buttons */
.bldr-rules-toolbar {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.bldr-rules-toolbar .bldr-btn-secondary {
  font-size: 12.5px;
}

/* Σ0 / Δ2 checks grid — pretty layout */
.bldr-r2-d2-checks-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ════════════════════════════════════════════════════════════
   BATCH 11 (21/05/2026) — Invoices/Payments: στοίχιση + row highlights
   Parity με κεντρική: όταν ανοίγει expanded panel η γραμμή γίνεται highlight
   με μπλε accent, ίδιο header + cell vertical alignment.
   ════════════════════════════════════════════════════════════ */

/* ── Vertical alignment: τα cells που έχουν αριθμητικά πεδία να είναι
   στοιχισμένα στη ΜΕΣΗ (όχι στο top που είναι default) ── */
.bldr-table tbody td {
  vertical-align: middle;
}

/* Cell padding: λίγο πιο γενναιόδωρο για να μην κολλάει το text στο border */
.bldr-table thead th {
  padding: 11px 13px;
  font-size: 11.5px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.bldr-table tbody td {
  padding: 10px 13px;
  font-size: 13px;
}

/* Money columns: text-align right ΚΑΙ ΣΤΟ HEADER */
th.bldr-th-money { text-align: right; }

/* ── Row highlight όταν είναι ανοιχτό expanded panel ── */
.bldr-table tbody tr.bldr-row-expanded > td {
  background: rgba(37,99,235,0.12) !important;
  border-top: 2px solid var(--blue, #3b6fca) !important;
  border-bottom: 2px solid var(--blue, #3b6fca) !important;
}
.bldr-table tbody tr.bldr-row-expanded > td:first-child {
  border-left: 4px solid var(--blue, #3b6fca) !important;
  padding-left: 9px;
}
.bldr-table tbody tr.bldr-row-expanded:hover > td {
  background: rgba(37,99,235,0.18) !important;
}

/* Dark theme override */
[data-theme="dark"] .bldr-table tbody tr.bldr-row-expanded > td {
  background: rgba(96,165,250,0.15) !important;
  border-top-color: #60a5fa !important;
  border-bottom-color: #60a5fa !important;
}
[data-theme="dark"] .bldr-table tbody tr.bldr-row-expanded > td:first-child {
  border-left-color: #60a5fa !important;
}

/* ── Παραδοτέα στήλη: subtle highlight ── */
/* BATCH Ε1 (24/05/2026): Διαχωρισμός background-color (opaque base) από
   background-image (highlight gradient). Πριν, η linear-gradient εκάλυπτε ΟΛΗ
   τη background property, αφήνοντας το cell semi-transparent στο sticky thead
   — και ο χρήστης έβλεπε τα expanded panels rows να "ζωγραφίζονται" πίσω.
   Τώρα η solid base (--surface2) μπλοκάρει το see-through. */
.bldr-th-deliverables {
  background-color: var(--surface2, #f3f4f6) !important;
  background-image: linear-gradient(180deg, rgba(59,111,202,0.06), rgba(59,111,202,0.02)) !important;
  color: var(--blue, #3b6fca) !important;
  text-align: center;
  border-bottom: 1px solid rgba(59,111,202,0.25) !important;
}
.bldr-td-deliverables {
  background-color: var(--surface, #ffffff);
  background-image: linear-gradient(180deg, rgba(59,111,202,0.03), transparent);
  text-align: center;
  vertical-align: middle;
}
[data-theme="dark"] .bldr-th-deliverables {
  background-color: var(--surface2, #263040) !important;
  background-image: linear-gradient(180deg, rgba(96,165,250,0.10), rgba(96,165,250,0.04)) !important;
  color: #93c5fd !important;
  border-bottom-color: rgba(96,165,250,0.30) !important;
}
[data-theme="dark"] .bldr-td-deliverables {
  background-color: transparent;
  background-image: linear-gradient(180deg, rgba(96,165,250,0.05), transparent);
}

/* ── Row hover: ποιο σαφές αλλά πιο soft ── */
.bldr-table tbody tr:hover:not(.bldr-row-expanded) > td {
  background: var(--bg2, #f9fafb);
}
[data-theme="dark"] .bldr-table tbody tr:hover:not(.bldr-row-expanded) > td {
  background: rgba(255,255,255,0.03);
}

/* Expanded docs/pmts rows — όταν εμφανίζονται, βάλε accent border-left */
.bldr-inv-docs-row > td,
.bldr-inv-pmts-row > td,
.bldr-pmt-docs-row > td {
  padding: 0 !important;
  background: var(--bg2, #f9fafb);
  border-left: 4px solid var(--blue, #3b6fca);
  border-right: 1px solid var(--border, #e5e7eb);
}
[data-theme="dark"] .bldr-inv-docs-row > td,
[data-theme="dark"] .bldr-inv-pmts-row > td,
[data-theme="dark"] .bldr-pmt-docs-row > td {
  background: rgba(255,255,255,0.02);
  border-left-color: #60a5fa;
}

/* ── Payment "Ασύνδετη" link styling — κλικαμπιλίτητο ── */
.bldr-pmt-unlinked-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(217,119,6,.10);
  color: var(--amber, #d97706);
  border: 1px solid rgba(217,119,6,.30);
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
  user-select: none;
}
.bldr-pmt-unlinked-link:hover {
  background: rgba(217,119,6,.18);
  border-color: var(--amber, #d97706);
  transform: translateX(1px);
  box-shadow: 0 2px 6px -2px rgba(217,119,6,.25);
}
.bldr-pmt-unlinked-link::after {
  content: '🔗';
  font-size: 11px;
  opacity: 0.75;
}
[data-theme="dark"] .bldr-pmt-unlinked-link {
  background: rgba(251,191,36,.14);
  color: #fcd34d;
  border-color: rgba(251,191,36,.30);
}
[data-theme="dark"] .bldr-pmt-unlinked-link:hover {
  background: rgba(251,191,36,.22);
}

/* ════════════════════════════════════════════════════════════
   BATCH 12 (21/05/2026) — Link orphan payment to invoice modal
   • Payment info card στην κορυφή
   • Grid με invoice candidate cards
   • Exact match highlight (αν το ποσό ταιριάζει)
   • Status badges (partial / unpaid)
   ════════════════════════════════════════════════════════════ */

.bldr-link-inv-modal h3 {
  color: var(--blue, #3b6fca);
}

/* Payment info card (sticky στη κορυφή του modal) */
.bldr-link-inv-pmt-info {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 18px;
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(59,111,202,0.06), rgba(59,111,202,0.02));
  border: 1px solid rgba(59,111,202,0.25);
  border-radius: 10px;
  margin-bottom: 14px;
}
.bldr-link-inv-pmt-info-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 13px;
}
.bldr-link-inv-pmt-info-label {
  color: var(--ink3, #6b7280);
  font-size: 11.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  min-width: 65px;
}
.bldr-link-inv-pmt-info-val {
  color: var(--ink, #111827);
  font-weight: 500;
}
.bldr-link-inv-pmt-amount {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  color: var(--green, #059669);
  font-weight: 700;
  font-size: 14px;
}
[data-theme="dark"] .bldr-link-inv-pmt-info {
  background: linear-gradient(135deg, rgba(96,165,250,0.10), rgba(96,165,250,0.03));
  border-color: rgba(96,165,250,0.30);
}
[data-theme="dark"] .bldr-link-inv-pmt-amount {
  color: #6ee7b7;
}

/* Hint */
.bldr-link-inv-hint {
  font-size: 12.5px;
  color: var(--ink3, #6b7280);
  margin-bottom: 12px;
  line-height: 1.55;
}

/* Cards grid */
.bldr-link-inv-cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  max-height: 50vh;
  overflow-y: auto;
  padding-right: 4px;
}

/* Invoice candidate card */
.bldr-link-inv-card {
  display: block;
  width: 100%;
  text-align: left;
  padding: 12px 14px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
.bldr-link-inv-card:hover {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 4px 12px -3px rgba(59,111,202,0.20);
  transform: translateY(-1px);
}

.bldr-link-inv-card-match {
  border-color: var(--green, #059669);
  background: linear-gradient(135deg, rgba(5,150,105,0.05), transparent);
}
.bldr-link-inv-card-match:hover {
  border-color: var(--green, #059669);
  background: linear-gradient(135deg, rgba(5,150,105,0.10), rgba(5,150,105,0.03));
  box-shadow: 0 4px 12px -3px rgba(5,150,105,0.25);
}

[data-theme="dark"] .bldr-link-inv-card {
  background: rgba(255,255,255,0.03);
}
[data-theme="dark"] .bldr-link-inv-card:hover {
  background: rgba(255,255,255,0.05);
  border-color: #60a5fa;
}

/* Card head: num + status */
.bldr-link-inv-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}
.bldr-link-inv-card-num {
  font-family: var(--mono, 'JetBrains Mono', monospace);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink, #111827);
}

/* Status badge */
.bldr-link-inv-status {
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 99px;
  white-space: nowrap;
  border: 1px solid transparent;
}
.bldr-link-inv-status-partial {
  background: rgba(217,119,6,.10);
  color: var(--amber, #d97706);
  border-color: rgba(217,119,6,.30);
}
.bldr-link-inv-status-unpaid {
  background: rgba(220,38,38,.08);
  color: var(--red, #c53030);
  border-color: rgba(220,38,38,.25);
}
[data-theme="dark"] .bldr-link-inv-status-partial {
  background: rgba(251,191,36,.14);
  color: #fcd34d;
  border-color: rgba(251,191,36,.30);
}
[data-theme="dark"] .bldr-link-inv-status-unpaid {
  background: rgba(248,113,113,.14);
  color: #fca5a5;
  border-color: rgba(248,113,113,.30);
}

/* Supplier */
.bldr-link-inv-card-supplier {
  font-size: 13px;
  color: var(--ink2, #374151);
  margin-bottom: 6px;
  font-weight: 500;
}

/* Meta row: date + cat + remaining */
.bldr-link-inv-card-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  color: var(--ink3, #6b7280);
  flex-wrap: wrap;
}
.bldr-link-inv-card-date,
.bldr-link-inv-card-amount {
  font-family: var(--mono, 'JetBrains Mono', monospace);
}
.bldr-link-inv-card-amount {
  color: var(--ink2, #374151);
}
.bldr-link-inv-card-amount strong {
  color: var(--green, #059669);
  font-weight: 700;
}

/* Exact match highlight */
.bldr-link-inv-match {
  display: block;
  margin-top: 8px;
  padding: 5px 10px;
  background: linear-gradient(135deg, rgba(5,150,105,0.10), rgba(5,150,105,0.03));
  color: var(--green, #059669);
  font-size: 11.5px;
  font-weight: 700;
  border-radius: 6px;
  letter-spacing: 0.01em;
}
[data-theme="dark"] .bldr-link-inv-match {
  background: linear-gradient(135deg, rgba(52,211,153,0.14), rgba(52,211,153,0.04));
  color: #6ee7b7;
}

/* Mobile */
@media (max-width: 600px) {
  .bldr-link-inv-pmt-info {
    grid-template-columns: 1fr;
  }
  .bldr-link-inv-card-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}

/* ════════════════════════════════════════════════════════════
   BATCH Γ (21/05/2026) — UX IMPROVEMENTS
   • Filter row + dropdowns
   • Sticky table header (κολλάει στο scroll)
   • Row flash animation (μετά από navigation)
   • Close-all / Export-CSV / Clear-filters κουμπιά
   • Suggested same-supplier payments box (μέσα στο invoice modal)
   ════════════════════════════════════════════════════════════ */

/* ── BATCH ΣΤ4-Β (31/05/2026): Parity κεντρικής εφαρμογής — PAGE SCROLL αντί για
   εσωτερικό scroll box. Πριν: το .bldr-table-wrap-sticky είχε max-height +
   overflow:auto → εσωτερική μπάρα (το «διπλό scrollbar» / nested-scroll friction
   στην καρτέλα Παραστατικά/Πληρωμές). Τώρα ο πίνακας μεγαλώνει φυσικά και
   scrollάρει ΟΛΗ η σελίδα (#builderCaseView), όπως το .inv-table-wrap της
   κεντρικής (overflow:hidden + overflow-x:auto). Η κεφαλίδα στηλών ΔΕΝ είναι
   πλέον sticky — φεύγει με το scroll, ακριβώς όπως στην κεντρική εφαρμογή. ── */
.bldr-table-wrap-sticky {
  max-height: none;
  overflow: hidden;
  overflow-x: auto;
  position: relative;
}
.bldr-table-wrap-sticky .bldr-table thead,
.bldr-table-wrap-sticky .bldr-table thead th {
  position: static;
}
.bldr-table-wrap-sticky .bldr-table thead th {
  /* Διατηρούμε το opaque header look (parity με base), χωρίς το sticky drop-shadow */
  background: var(--surface2, #f3f4f6);
  box-shadow: none;
}
[data-theme="dark"] .bldr-table-wrap-sticky .bldr-table thead th {
  background: var(--surface2, #263040);
  box-shadow: none;
}
.bldr-table-wrap-sticky .bldr-table thead tr.bldr-filter-row th,
.bldr-table-wrap-sticky .bldr-table thead tr.bldr-filter-row td {
  position: static;
  background: var(--surface3, #eaecf1);
}
[data-theme="dark"] .bldr-table-wrap-sticky .bldr-table thead tr.bldr-filter-row th,
[data-theme="dark"] .bldr-table-wrap-sticky .bldr-table thead tr.bldr-filter-row td {
  background: var(--surface3, #2d3a4f);
}

/* ── Expanded panels (παραδοτέα 📦 + πληρωμές 💳) — z-index χαμηλότερα από thead ── */
.bldr-inv-docs-row,
.bldr-inv-pmts-row,
.bldr-pmt-docs-row {
  position: relative;
  z-index: 1;
}

/* ── BATCH Δ9 (23/05/2026) + Ε7 (24/05/2026): Smooth slide-in/out animations
   για expanded panels — parity με κεντρική εφαρμογή
   (βλ. index.html .panel-slide-in / .panel-closing).
   Animάρουμε το παιδί div μέσα στο td (όχι το tr) γιατί τα table-rows
   δεν υποστηρίζουν transforms/max-height ομοιόμορφα.
   ΕΞΑΛΕΙΨΗ απότομου ανοίγματος: αφαιρέθηκε το max-height από το slide-in
   keyframe (όπως κεντρική), ώστε το panel να ξεδιπλώνεται φυσικά
   βάσει του πραγματικού του ύψους αντί να "συμπιέζεται" από 0→2400px
   μέσα σε 0.2s (που έκανε το άνοιγμα να φαίνεται απότομο). Το close
   keyframe κρατά το max-height για να συμπιέζει το ύψος όταν κλείνει. */
@keyframes bldrPanelSlideIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes bldrPanelSlideOut {
  from { opacity: 1; transform: translateY(0);    max-height: 2400px; }
  to   { opacity: 0; transform: translateY(-8px); max-height: 0; }
}
.bldr-inv-docs-row.bldr-panel-slide-in > td > div,
.bldr-inv-pmts-row.bldr-panel-slide-in > td > div,
.bldr-pmt-docs-row.bldr-panel-slide-in > td > div {
  animation: bldrPanelSlideIn .2s ease-out;
}
.bldr-inv-docs-row.bldr-panel-closing > td > div,
.bldr-inv-pmts-row.bldr-panel-closing > td > div,
.bldr-pmt-docs-row.bldr-panel-closing > td > div {
  animation: bldrPanelSlideOut .2s ease-in forwards;
  overflow: hidden;
}

/* ── Filter row κάτω από headers ── */
.bldr-filter-row td {
  padding: 5px 8px !important;
  background: var(--surface3, #eaecf1);
  border-bottom: 1px solid var(--border, #e5e7eb);
}
[data-theme="dark"] .bldr-filter-row td {
  background: var(--surface3, #2d3a4f);
}
.bldr-filter-inp {
  width: 100%;
  font-size: 11px;
  padding: 4px 7px;
  border: 1px solid var(--border, #e0ddd6);
  border-radius: 6px;
  background: var(--surface, #fff);
  color: var(--ink2, #374151);
  outline: none;
  transition: border-color .15s;
}
.bldr-filter-inp:focus {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 2px rgba(59,111,202,.12);
}
[data-theme="dark"] .bldr-filter-inp {
  background: var(--surface, #1e293b);
  color: var(--ink2, #cbd5e1);
}
.bldr-filter-inp[type="text"] {
  font-family: var(--mono, monospace);
}

/* ── Toolbar extras (close-all / clear / export buttons) ── */
.bldr-tbl-extras {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
  align-items: center;
  min-height: 28px;
}
.bldr-tbl-extras:empty { display: none; }
.bldr-tbl-clearfilter {
  background: var(--amber-light, #fffbeb);
  color: var(--amber, #b8860b);
  border: 1px solid rgba(217,119,6,.30);
  font-weight: 700;
}
.bldr-tbl-clearfilter:hover {
  background: rgba(217,119,6,.18);
}
.bldr-tbl-closeall {
  background: var(--purple-light, #f5f3ff);
  color: var(--purple, #6d49c4);
  border: 1px solid rgba(109,73,196,.30);
  font-weight: 700;
}
.bldr-tbl-closeall:hover {
  background: rgba(109,73,196,.15);
}
.bldr-tbl-export {
  background: var(--green-light, #ecfdf5);
  color: var(--green, #059669);
  border: 1px solid rgba(5,150,105,.30);
  font-weight: 700;
}
.bldr-tbl-export:hover {
  background: rgba(5,150,105,.15);
}
[data-theme="dark"] .bldr-tbl-clearfilter {
  background: rgba(245,158,11,.10);
  color: #fbbf24;
  border-color: rgba(245,158,11,.30);
}
[data-theme="dark"] .bldr-tbl-closeall {
  background: rgba(167,139,250,.10);
  color: #c4b5fd;
  border-color: rgba(167,139,250,.30);
}
[data-theme="dark"] .bldr-tbl-export {
  background: rgba(16,185,129,.10);
  color: #6ee7b7;
  border-color: rgba(16,185,129,.30);
}

/* ── Row flash animation (μετά από navigation από report) ── */
@keyframes bldrRowFlashKf {
  0%   { background: rgba(59,111,202,.30); }
  30%  { background: rgba(59,111,202,.20); }
  100% { background: transparent; }
}
.bldr-row-flash > td {
  animation: bldrRowFlashKf .95s ease-out !important;
}

/* ── Suggested same-supplier payments box (μέσα στο invoice modal) ── */
.bldr-suggest-pmt-box {
  margin: 12px 0;
  padding: 12px 14px;
  background: linear-gradient(135deg, rgba(59,111,202,.06), rgba(59,111,202,.02));
  border: 1px solid rgba(59,111,202,.25);
  border-radius: 10px;
}
.bldr-suggest-pmt-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ink2, #374151);
  margin-bottom: 10px;
  line-height: 1.4;
}
.bldr-suggest-pmt-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 180px;
  overflow-y: auto;
}
.bldr-suggest-pmt-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  font-size: 12px;
}
.bldr-suggest-pmt-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  flex-wrap: wrap;
}
.bldr-suggest-pmt-date {
  font-family: var(--mono, monospace);
  color: var(--ink3, #6b7280);
}
.bldr-suggest-pmt-code {
  font-family: var(--mono, monospace);
  font-size: 11px;
  color: var(--blue, #3b6fca);
  font-weight: 600;
}
.bldr-suggest-pmt-amount {
  font-family: var(--mono, monospace);
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  margin-left: auto;
}
[data-theme="dark"] .bldr-suggest-pmt-box {
  background: linear-gradient(135deg, rgba(96,165,250,.10), rgba(96,165,250,.02));
  border-color: rgba(96,165,250,.30);
}
[data-theme="dark"] .bldr-suggest-pmt-row {
  background: var(--surface, #1e293b);
  border-color: var(--border, #2d3a50);
}
[data-theme="dark"] .bldr-suggest-pmt-amount {
  color: var(--ink, #f1f5f9);
}

/* ── Print: hide filter row + extras από εκτύπωση ── */
@media print {
  .bldr-filter-row { display: none !important; }
  .bldr-tbl-extras { display: none !important; }
  .bldr-table-wrap-sticky { max-height: none !important; overflow: visible !important; }
  .bldr-table-wrap-sticky .bldr-table thead { position: static !important; }
}

/* ════════════════════════════════════════════════════════════
   BATCH Δ1 (22/05/2026) — Checklist icon buttons polish
   Νέα v2 variants για add/edit/delete στο "Γενικά Παραδοτέα":
   • bldr-icon-btn-add    → πράσινο (νέο δικαιολογητικό)
   • bldr-icon-btn-edit   → μπλε   (επεξεργασία ενότητας/item)
   • bldr-icon-btn-del    → κόκκινο (διαγραφή ενότητας)
   ════════════════════════════════════════════════════════════ */

.bldr-icon-btn-v2 {
  position: relative;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  border: 1px solid var(--border, #e5e7eb);
  background: var(--surface, #fff);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink2, #374151);
  font-size: 14px;
  line-height: 1;
  transition: all .18s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.bldr-icon-btn-v2 .bldr-icon-btn-glyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .18s ease;
}
.bldr-icon-btn-v2:hover .bldr-icon-btn-glyph {
  transform: scale(1.12);
}
.bldr-icon-btn-v2:active .bldr-icon-btn-glyph {
  transform: scale(0.94);
}

/* Tooltip (custom) εμφανίζεται κάτω από το button στο hover */
.bldr-icon-btn-v2 .bldr-icon-btn-tooltip {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%) translateY(-4px);
  background: var(--ink, #1a1a1a);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 5px 9px;
  border-radius: 6px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity .18s ease, transform .18s ease;
  z-index: 20;
  letter-spacing: 0.01em;
  box-shadow: 0 4px 10px rgba(0,0,0,.18);
}
.bldr-icon-btn-v2 .bldr-icon-btn-tooltip::before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-bottom-color: var(--ink, #1a1a1a);
}
.bldr-icon-btn-v2:hover .bldr-icon-btn-tooltip {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* ── ADD variant — πράσινο (νέο δικαιολογητικό) ── */
.bldr-icon-btn-v2.bldr-icon-btn-add {
  background: linear-gradient(135deg,
              rgba(5, 150, 105, .06),
              rgba(5, 150, 105, .02));
  border-color: rgba(5, 150, 105, .25);
  color: var(--green, #059669);
  font-weight: 700;
  font-size: 18px;
}
.bldr-icon-btn-v2.bldr-icon-btn-add:hover {
  background: linear-gradient(135deg,
              rgba(5, 150, 105, .14),
              rgba(5, 150, 105, .04));
  border-color: rgba(5, 150, 105, .50);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(5, 150, 105, .18),
              0 2px 4px rgba(5, 150, 105, .08);
}
.bldr-icon-btn-v2.bldr-icon-btn-add:active {
  transform: translateY(0);
}

/* ── EDIT variant — μπλε (επεξεργασία ενότητας/item) ── */
.bldr-icon-btn-v2.bldr-icon-btn-edit {
  background: linear-gradient(135deg,
              rgba(59, 111, 202, .06),
              rgba(59, 111, 202, .02));
  border-color: rgba(59, 111, 202, .22);
  color: var(--blue, #3b6fca);
}
.bldr-icon-btn-v2.bldr-icon-btn-edit:hover {
  background: linear-gradient(135deg,
              rgba(59, 111, 202, .14),
              rgba(59, 111, 202, .04));
  border-color: rgba(59, 111, 202, .50);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(59, 111, 202, .18),
              0 2px 4px rgba(59, 111, 202, .08);
}
.bldr-icon-btn-v2.bldr-icon-btn-edit:active {
  transform: translateY(0);
}

/* ── DEL variant — κόκκινο (διαγραφή ενότητας) — override υπάρχοντος ── */
.bldr-icon-btn-v2.bldr-icon-btn-del {
  background: linear-gradient(135deg,
              rgba(220, 38, 38, .05),
              rgba(220, 38, 38, .02));
  border-color: rgba(220, 38, 38, .22);
  color: var(--red, #c53030);
}
.bldr-icon-btn-v2.bldr-icon-btn-del:hover {
  background: linear-gradient(135deg,
              rgba(220, 38, 38, .14),
              rgba(220, 38, 38, .04));
  border-color: rgba(220, 38, 38, .50);
  color: var(--red, #b22020);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(220, 38, 38, .18),
              0 2px 4px rgba(220, 38, 38, .08);
}
.bldr-icon-btn-v2.bldr-icon-btn-del:active {
  transform: translateY(0);
}

/* ── Dark mode variants ── */
[data-theme="dark"] .bldr-icon-btn-v2 {
  background: rgba(255,255,255,.02);
  border-color: var(--border, #2d3a50);
  box-shadow: none;
}
[data-theme="dark"] .bldr-icon-btn-v2.bldr-icon-btn-add {
  background: linear-gradient(135deg,
              rgba(16, 185, 129, .10),
              rgba(16, 185, 129, .03));
  border-color: rgba(16, 185, 129, .30);
  color: #34d399;
}
[data-theme="dark"] .bldr-icon-btn-v2.bldr-icon-btn-add:hover {
  background: linear-gradient(135deg,
              rgba(16, 185, 129, .20),
              rgba(16, 185, 129, .06));
  border-color: rgba(16, 185, 129, .50);
}
[data-theme="dark"] .bldr-icon-btn-v2.bldr-icon-btn-edit {
  background: linear-gradient(135deg,
              rgba(96, 165, 250, .10),
              rgba(96, 165, 250, .03));
  border-color: rgba(96, 165, 250, .30);
  color: #93c5fd;
}
[data-theme="dark"] .bldr-icon-btn-v2.bldr-icon-btn-edit:hover {
  background: linear-gradient(135deg,
              rgba(96, 165, 250, .20),
              rgba(96, 165, 250, .06));
  border-color: rgba(96, 165, 250, .50);
}
[data-theme="dark"] .bldr-icon-btn-v2.bldr-icon-btn-del {
  background: linear-gradient(135deg,
              rgba(248, 113, 113, .10),
              rgba(248, 113, 113, .03));
  border-color: rgba(248, 113, 113, .30);
  color: #fca5a5;
}
[data-theme="dark"] .bldr-icon-btn-v2.bldr-icon-btn-del:hover {
  background: linear-gradient(135deg,
              rgba(248, 113, 113, .20),
              rgba(248, 113, 113, .06));
  border-color: rgba(248, 113, 113, .50);
}
[data-theme="dark"] .bldr-icon-btn-v2 .bldr-icon-btn-tooltip {
  background: #f1f5f9;
  color: #0f172a;
}
[data-theme="dark"] .bldr-icon-btn-v2 .bldr-icon-btn-tooltip::before {
  border-bottom-color: #f1f5f9;
}

/* Bigger gap στο sec-actions ώστε τα νέα buttons να αναπνέουν */
.bldr-cl-sec-actions {
  gap: 6px !important;
}

/* ════════════════════════════════════════════════════════════
   BATCH Δ2 (22/05/2026) — Status column badges + Link Payment modal
   ════════════════════════════════════════════════════════════ */

/* Status column cell styling */
.bldr-td-status {
  text-align: center;
  padding: 8px 8px !important;
  white-space: nowrap;
}
.bldr-th-status {
  text-align: center !important;
}
.bldr-th-cat {
  text-align: center !important;
}

/* Status badges (clickable) */
.bldr-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid;
  font-family: var(--mono, monospace);
  cursor: pointer;
  transition: all .15s ease;
  white-space: nowrap;
}
button.bldr-status-badge {
  background: transparent;
}
.bldr-status-badge:not(button) {
  cursor: default;
}
button.bldr-status-badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0,0,0,.10);
}

.bldr-status-ok {
  background: var(--green-light, #ecfdf5);
  color: var(--green, #059669);
  border-color: rgba(5, 150, 105, .30);
}
.bldr-status-partial {
  background: var(--amber-light, #fffbeb);
  color: var(--amber, #b8860b);
  border-color: rgba(217, 119, 6, .35);
}
.bldr-status-partial:hover {
  background: rgba(217, 119, 6, .15);
  border-color: rgba(217, 119, 6, .60);
}
.bldr-status-unpaid {
  background: var(--red-light, #fef2f2);
  color: var(--red, #c53030);
  border-color: rgba(220, 38, 38, .35);
}
.bldr-status-unpaid:hover {
  background: rgba(220, 38, 38, .12);
  border-color: rgba(220, 38, 38, .60);
}
.bldr-status-over {
  background: var(--red, #c53030);
  color: #fff;
  border-color: var(--red, #c53030);
  font-weight: 700;
}
.bldr-status-over:hover {
  background: #a02020;
}

/* Dark mode */
[data-theme="dark"] .bldr-status-ok {
  background: rgba(16, 185, 129, .10);
  color: #6ee7b7;
  border-color: rgba(16, 185, 129, .35);
}
[data-theme="dark"] .bldr-status-partial {
  background: rgba(245, 158, 11, .10);
  color: #fbbf24;
  border-color: rgba(245, 158, 11, .35);
}
[data-theme="dark"] .bldr-status-unpaid {
  background: rgba(248, 113, 113, .10);
  color: #fca5a5;
  border-color: rgba(248, 113, 113, .35);
}

/* ── Link Payment Modal ── */
.bldr-modal-wide {
  max-width: 720px;
  width: 90vw;
}
.bldr-link-pmt-target {
  background: var(--blue-light, #f0f4fb);
  border: 1px solid rgba(59, 111, 202, .25);
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 16px;
}
.bldr-link-pmt-target-title {
  font-size: 13px;
  color: var(--ink, #1a1a1a);
  margin-bottom: 6px;
}
.bldr-link-pmt-target-amounts {
  font-size: 12px;
  color: var(--ink3, #6b7280);
  font-family: var(--mono, monospace);
}
.bldr-link-pmt-section {
  margin-bottom: 14px;
}
.bldr-link-pmt-section-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink2, #374151);
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.bldr-link-pmt-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 12px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  margin-bottom: 6px;
  transition: border-color .15s, box-shadow .15s;
}
.bldr-link-pmt-row:hover {
  border-color: rgba(59, 111, 202, .50);
  box-shadow: 0 2px 6px rgba(0,0,0,.05);
}
.bldr-link-pmt-row-warn {
  background: var(--amber-light, #fffbeb);
  border-color: rgba(217, 119, 6, .35);
}
.bldr-link-pmt-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.bldr-link-pmt-date {
  font-family: var(--mono, monospace);
  color: var(--ink3, #6b7280);
  font-size: 12px;
}
.bldr-link-pmt-code {
  font-family: var(--mono, monospace);
  font-size: 11px;
  color: var(--blue, #3b6fca);
  font-weight: 600;
}
.bldr-link-pmt-amount {
  font-family: var(--mono, monospace);
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  margin-left: auto;
  font-size: 13px;
}
.bldr-link-pmt-warn {
  font-size: 11px;
  color: var(--amber, #b8860b);
  font-weight: 600;
  padding: 6px 8px;
  background: rgba(217, 119, 6, .08);
  border-radius: 6px;
}
[data-theme="dark"] .bldr-link-pmt-target {
  background: rgba(96, 165, 250, .08);
  border-color: rgba(96, 165, 250, .30);
}
[data-theme="dark"] .bldr-link-pmt-row {
  background: var(--surface, #1e293b);
  border-color: var(--border, #2d3a50);
}
[data-theme="dark"] .bldr-link-pmt-row-warn {
  background: rgba(245, 158, 11, .08);
  border-color: rgba(245, 158, 11, .35);
}
[data-theme="dark"] .bldr-link-pmt-amount {
  color: var(--ink, #f1f5f9);
}

/* ════════════════════════════════════════════════════════════
   BATCH Δ4 (22/05/2026) — Case grouping στο drawer/popup
   ════════════════════════════════════════════════════════════ */

.bldr-case-group {
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 10px;
  transition: border-color .15s, box-shadow .15s;
}
.bldr-case-group:hover {
  border-color: rgba(59, 111, 202, .35);
  box-shadow: 0 2px 8px rgba(0, 0, 0, .05);
}
.bldr-case-group-nocode {
  border-style: dashed;
  background: var(--bg2, #f9fafb);
}
.bldr-case-group-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--border, #e5e7eb);
}
.bldr-case-group-name {
  flex: 1;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  letter-spacing: -0.01em;
}
.bldr-case-group-code {
  font-family: var(--mono, monospace);
  font-size: 11px;
  font-weight: 700;
  color: var(--blue, #3b6fca);
  background: var(--blue-light, #f0f4fb);
  border: 1px solid rgba(59, 111, 202, .25);
  padding: 3px 8px;
  border-radius: 6px;
  letter-spacing: 0.02em;
}
.bldr-case-group-code-empty {
  color: var(--ink4, #9ca3af);
  background: var(--bg2, #f3f4f6);
  border-color: var(--border, #e5e7eb);
  font-style: italic;
  font-family: var(--body, sans-serif);
  font-weight: 500;
}
.bldr-case-group-chips {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bldr-case-chip {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  background: var(--bg2, #f9fafb);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  cursor: pointer;
  transition: all .15s ease;
  border-left: 3px solid transparent;
}
.bldr-case-chip:hover {
  background: var(--surface, #fff);
  border-color: var(--blue-mid, #c8d8ef);
  transform: translateX(2px);
}
.bldr-case-chip-first { border-left-color: var(--blue, #3b6fca); }
.bldr-case-chip-mid { border-left-color: var(--amber, #b8860b); }
.bldr-case-chip-final { border-left-color: var(--green, #059669); }
.bldr-case-chip-phase {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  min-width: 110px;
}
.bldr-case-chip-meta {
  display: flex;
  gap: 10px;
  font-size: 11px;
  color: var(--ink3, #6b7280);
  font-family: var(--mono, monospace);
}
.bldr-case-chip-date {
  margin-left: auto;
  font-size: 11px;
  color: var(--ink4, #9ca3af);
  font-family: var(--mono, monospace);
}
.bldr-case-chip .bldr-case-list-delete {
  background: transparent;
  border: none;
  color: var(--ink4, #9ca3af);
  padding: 4px;
  cursor: pointer;
  border-radius: 6px;
  display: flex;
  align-items: center;
  transition: all .15s;
}
.bldr-case-chip .bldr-case-list-delete:hover {
  color: var(--red, #c53030);
  background: var(--red-light, #fef2f2);
}
[data-theme="dark"] .bldr-case-group {
  background: var(--surface, #1e293b);
  border-color: var(--border, #2d3a50);
}
[data-theme="dark"] .bldr-case-group-code {
  background: rgba(96, 165, 250, .10);
  color: #93c5fd;
  border-color: rgba(96, 165, 250, .30);
}
[data-theme="dark"] .bldr-case-chip {
  background: rgba(255, 255, 255, .02);
}
[data-theme="dark"] .bldr-case-chip:hover {
  background: rgba(255, 255, 255, .04);
}

/* ════════════════════════════════════════════════════════════
   BATCH Δ3 (22/05/2026) — Indirect expenses footer row
   ════════════════════════════════════════════════════════════ */

.bldr-tf-indirect td {
  background: var(--blue-light, #f0f4fb);
  border-top: 1px dashed var(--blue-mid, rgba(59, 111, 202, .25)) !important;
  padding: 8px 12px !important;
  font-size: 11.5px;
}
.bldr-tf-indirect-label {
  display: flex !important;
  align-items: center;
  gap: 8px;
}
.bldr-tf-indirect-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ink4, #9ca3af);
  text-transform: uppercase;
  font-family: var(--mono, monospace);
  background: rgba(59, 111, 202, .12);
  padding: 2px 6px;
  border-radius: 4px;
}
.bldr-tf-indirect-name {
  color: var(--ink2, #374151);
  font-style: italic;
  font-weight: 600;
}
.bldr-tf-indirect-pct {
  font-size: 10px;
  background: var(--blue, #3b6fca);
  color: #fff;
  padding: 2px 8px;
  border-radius: 99px;
  font-weight: 600;
  white-space: nowrap;
}
.bldr-tf-indirect-amount {
  color: var(--blue, #3b6fca) !important;
  font-weight: 700 !important;
}
.bldr-tf-indirect-note {
  font-size: 10px;
  color: var(--ink4, #9ca3af);
  font-style: italic;
  text-align: center;
}
[data-theme="dark"] .bldr-tf-indirect td {
  background: rgba(96, 165, 250, .08);
  border-top-color: rgba(96, 165, 250, .30) !important;
}
[data-theme="dark"] .bldr-tf-indirect-tag {
  background: rgba(96, 165, 250, .18);
  color: #cbd5e1;
}
[data-theme="dark"] .bldr-tf-indirect-pct {
  background: #60a5fa;
}
[data-theme="dark"] .bldr-tf-indirect-amount {
  color: #93c5fd !important;
}

/* ════════════════════════════════════════════════════════════
   BATCH Δ5 (22/05/2026) — Multi-link payment modal UI
   ════════════════════════════════════════════════════════════ */

.bldr-pmt-links-section {
  margin-top: 12px;
  padding: 12px 14px;
  background: linear-gradient(135deg, rgba(59, 111, 202, .04), rgba(59, 111, 202, .01));
  border: 1px solid rgba(59, 111, 202, .25);
  border-radius: 10px;
}
.bldr-pmt-links-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px dashed rgba(59, 111, 202, .20);
}
.bldr-pmt-links-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--blue, #3b6fca);
  letter-spacing: 0.02em;
}
.bldr-pmt-links-optional {
  font-size: 10px;
  font-weight: 600;
  color: var(--ink4, #9ca3af);
  letter-spacing: 0.04em;
}
.bldr-pmt-links-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 4px;
}
.bldr-pmt-link-row {
  display: grid;
  grid-template-columns: 1fr 130px 32px;
  gap: 8px;
  align-items: center;
  padding: 6px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
}
.bldr-pmt-link-inv {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  font-size: 12.5px;
  background: var(--surface, #fff);
  color: var(--ink2, #374151);
  outline: none;
}
.bldr-pmt-link-inv:focus {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 2px rgba(59, 111, 202, .12);
}
.bldr-pmt-link-amount {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  font-size: 12.5px;
  font-family: var(--mono, monospace);
  text-align: right;
  outline: none;
}
.bldr-pmt-link-amount:focus {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 0 0 2px rgba(59, 111, 202, .12);
}
.bldr-pmt-link-del {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid rgba(220, 38, 38, .25);
  background: rgba(220, 38, 38, .04);
  color: var(--red, #c53030);
  cursor: pointer;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all .15s ease;
}
.bldr-pmt-link-del:hover {
  background: rgba(220, 38, 38, .15);
  border-color: rgba(220, 38, 38, .50);
  transform: scale(1.05);
}

.bldr-pmt-links-footer {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed rgba(59, 111, 202, .20);
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: 8px;
}
.bldr-pmt-links-foot-item {
  display: flex;
  align-items: center;
  gap: 6px;
}
.bldr-pmt-links-foot-label {
  font-size: 11px;
  color: var(--ink3, #6b7280);
  font-weight: 600;
}
.bldr-pmt-links-foot-val {
  font-family: var(--mono, monospace);
  font-size: 13px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
}
.bldr-pmt-foot-blue { color: var(--blue, #3b6fca) !important; }
.bldr-pmt-foot-green { color: var(--green, #059669) !important; }
.bldr-pmt-foot-err { color: var(--red, #c53030) !important; }

/* Multi-link badge στη γραμμή της πληρωμής */
.bldr-pmt-link-multi {
  background: rgba(59, 111, 202, .10);
  color: var(--blue, #3b6fca);
  padding: 3px 10px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid rgba(59, 111, 202, .25);
  cursor: help;
}
.bldr-pmt-link-ghost {
  background: rgba(220, 38, 38, .08);
  color: var(--red, #c53030);
  padding: 3px 10px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid rgba(220, 38, 38, .25);
}

[data-theme="dark"] .bldr-pmt-links-section {
  background: linear-gradient(135deg, rgba(96, 165, 250, .08), rgba(96, 165, 250, .02));
  border-color: rgba(96, 165, 250, .30);
}
[data-theme="dark"] .bldr-pmt-link-row {
  background: var(--surface, #1e293b);
  border-color: var(--border, #2d3a50);
}
[data-theme="dark"] .bldr-pmt-link-inv,
[data-theme="dark"] .bldr-pmt-link-amount {
  background: var(--surface, #1e293b);
  border-color: var(--border, #2d3a50);
  color: var(--ink, #f1f5f9);
}
[data-theme="dark"] .bldr-pmt-link-multi {
  background: rgba(96, 165, 250, .15);
  color: #93c5fd;
  border-color: rgba(96, 165, 250, .35);
}

/* ════════════════════════════════════════════════════════════
   BATCH Δ1 (22/05/2026) — Program form header polish
   • Νέο όμορφο Άκυρο button (αριστερά, με κόκκινη υπόδειξη ακύρωσης)
   • Center title με μικρή απόσταση από το Άκυρο
   ════════════════════════════════════════════════════════════ */

/* Polish του Άκυρο button (μόνο όταν είναι το πρώτο action στο slim header) */
.bldr-screen-header-slim .bldr-screen-header-back {
  background: linear-gradient(135deg,
              rgba(220, 38, 38, 0.04),
              rgba(220, 38, 38, 0.01)) !important;
  border: 1px solid rgba(220, 38, 38, 0.18) !important;
  color: var(--red, #c53030) !important;
  font-weight: 600 !important;
  padding: 10px 16px !important;
  border-radius: 10px !important;
  transition: all .18s ease !important;
  box-shadow: 0 1px 2px rgba(220, 38, 38, 0.04);
}
.bldr-screen-header-slim .bldr-screen-header-back:hover {
  background: linear-gradient(135deg,
              rgba(220, 38, 38, 0.10),
              rgba(220, 38, 38, 0.04)) !important;
  border-color: rgba(220, 38, 38, 0.40) !important;
  color: var(--red, #b22020) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(220, 38, 38, 0.12), 0 2px 4px rgba(220, 38, 38, 0.08);
}
[data-theme="dark"] .bldr-screen-header-slim .bldr-screen-header-back {
  background: linear-gradient(135deg,
              rgba(248, 113, 113, 0.08),
              rgba(248, 113, 113, 0.02)) !important;
  border-color: rgba(248, 113, 113, 0.25) !important;
  color: #fca5a5 !important;
}
[data-theme="dark"] .bldr-screen-header-slim .bldr-screen-header-back:hover {
  background: linear-gradient(135deg,
              rgba(248, 113, 113, 0.15),
              rgba(248, 113, 113, 0.05)) !important;
  border-color: rgba(248, 113, 113, 0.45) !important;
}

/* Center του New Program header — λίγη παραπάνω απόσταση από το Άκυρο */
.bldr-screen-header-center-new {
  padding-left: 16px;
  border-left: 1px solid var(--border, #e5e7eb);
  margin-left: 4px;
}
[data-theme="dark"] .bldr-screen-header-center-new {
  border-left-color: var(--border, #2d3a50);
}
.bldr-screen-header-center-new .bldr-screen-header-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  letter-spacing: -0.01em;
}
.bldr-screen-header-center-new .bldr-screen-header-sub {
  font-size: 12px;
  color: var(--ink3, #6b7280);
  margin-top: 2px;
}

/* ════════════════════════════════════════════════════════════
   VISUAL REFRESH (31/05/2026) — ΜΟΝΟ εμφανισιακό · append-only.
   Πηγή: builder-visual-preview.html (εγκεκριμένο από χρήστη).
   Όλα μέσω CSS variables → δουλεύει σε cream / dark / light.
   ΔΕΝ αλλάζει δομή ή λειτουργία· υπερισχύει λόγω σειράς (append).
   ════════════════════════════════════════════════════════════ */

/* ── 1) DIALOGS: bldrConfirm / bldrAlert / bldrPrompt ───────── */
.bldr-modal.bldr-dialog-modal {
  padding: 24px 24px 18px;
  border-radius: 18px;
  position: relative;
}
/* Λεπτή accent γραμμή κορυφής — χρώμα ανά είδος */
.bldr-modal.bldr-dialog-modal::before {
  content: "";
  position: absolute;
  left: 22px; right: 22px; top: 0;
  height: 3px;
  border-radius: 0 0 3px 3px;
  background: var(--blue, #3b6fca);
  opacity: .9;
}
.bldr-modal.bldr-dialog-danger::before,
.bldr-modal.bldr-dialog-kind-error::before  { background: var(--red, #c53030); }
.bldr-modal.bldr-dialog-kind-warn::before    { background: var(--amber, #b8860b); }
.bldr-modal.bldr-dialog-kind-success::before { background: var(--green, #2a8a6c); }

/* Header: πλακίδιο εικονιδίου + καθαρός τίτλος, χωρίς divider */
.bldr-modal.bldr-dialog-modal h3 {
  display: flex;
  align-items: center;
  gap: 13px;
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 16px;
}
.bldr-dialog-icon {
  width: 42px; height: 42px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  font-size: 21px;
  line-height: 1;
  background: var(--blue-light, #f0f4fb);
  color: var(--blue, #3b6fca);
  box-shadow: inset 0 0 0 1px var(--blue-mid, rgba(59,111,202,.15));
}
.bldr-dialog-title {
  flex: 1;
  min-width: 0;
  color: var(--ink, #1a1a1a);
  font-weight: 800;
}
/* Χρώμα πλακιδίου ανά είδος (το emoji μένει, αλλάζει το tint) */
.bldr-dialog-danger .bldr-dialog-icon,
.bldr-dialog-kind-error .bldr-dialog-icon {
  background: var(--red-light, #fdf2f1);
  color: var(--red, #c53030);
  box-shadow: inset 0 0 0 1px var(--red-mid, rgba(197,48,48,.13));
}
.bldr-dialog-kind-warn .bldr-dialog-icon {
  background: var(--amber-light, #fdf8ee);
  color: var(--amber, #b8860b);
  box-shadow: inset 0 0 0 1px var(--amber-mid, rgba(184,134,11,.14));
}
.bldr-dialog-kind-success .bldr-dialog-icon {
  background: var(--green-light, #f0f9f5);
  color: var(--green, #2a8a6c);
  box-shadow: inset 0 0 0 1px var(--green-mid, rgba(42,138,108,.15));
}
/* Refined danger strip (το «🚫 δεν αναιρείται») */
.bldr-dialog-warn {
  border-radius: 11px;
  padding: 11px 13px;
  gap: 10px;
}
/* Solid κόκκινο CTA ΜΟΝΟ στο danger confirm dialog (όχι αλλού στο builder) */
.bldr-dialog-danger .bldr-modal-footer .bldr-btn-danger {
  background: var(--red, #c53030);
  border-color: var(--red, #c53030);
  color: #fff;
}
.bldr-dialog-danger .bldr-modal-footer .bldr-btn-danger:hover {
  background: var(--red, #c53030);
  border-color: var(--red, #c53030);
  filter: brightness(.93);
}

/* ── 2) PROGRAM CARD: όνομα σε soft badge (Εκδοχή Α) ────────── */
.bldr-prog-card-head-v2 .bldr-prog-card-title {
  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
  max-width: 100%;
  padding: 6px 12px 6px 10px;
  border-radius: 10px;
  background: var(--blue-light, #f0f4fb);
  border: 1px solid var(--blue-mid, rgba(59,111,202,.15));
}
.bldr-prog-card-title .bldr-pc-dot {
  width: 7px; height: 7px;
  flex-shrink: 0;
  margin-top: 6px;
  border-radius: 50%;
  background: var(--blue, #3b6fca);
  box-shadow: 0 0 0 3px var(--blue-dim, rgba(59,111,202,.07));
}
.bldr-prog-card-title .bldr-pc-txt {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink, #1a1a1a);
  letter-spacing: -0.01em;
  line-height: 1.35;
}
/* Κωδικός → μπλε accent badge */
.bldr-prog-card-head-v2 .bldr-prog-card-code {
  color: var(--blue, #3b6fca);
  background: var(--blue-dim, rgba(59,111,202,.07));
  border-color: var(--blue-mid, rgba(59,111,202,.15));
}
/* Χρωματιστό hover στις ενέργειες της κάρτας */
.bldr-prog-card-action:hover {
  background: var(--blue-light, #f0f4fb);
  color: var(--blue, #3b6fca);
}
.bldr-prog-card-action-danger:hover {
  background: var(--red-light, #fdf2f1);
  color: var(--red, #c53030);
}

/* ── 3) BUTTONS: διακριτικό φρεσκάρισμα ─────────────────────── */
.bldr-btn { border-radius: 9px; }
.bldr-btn-primary { box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.bldr-btn-primary:hover { box-shadow: 0 4px 12px -2px var(--blue-mid, rgba(59,111,202,.25)); }

/* ── 4) EMPTY STATES: πιο φιλικά ────────────────────────────── */
.bldr-empty-state {
  border: 1.5px dashed var(--blue-mid, rgba(59,111,202,.15));
  border-radius: 18px;
  background: linear-gradient(180deg, var(--blue-light, #f0f4fb), var(--surface, #fbfaf8) 72%);
}
.bldr-empty-state-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px; height: 64px;
  margin-bottom: 16px;
  border-radius: 18px;
  font-size: 30px;
  opacity: 1;
  background: var(--surface, #fbfaf8);
  box-shadow: inset 0 0 0 1px var(--blue-mid, rgba(59,111,202,.15)),
              0 4px 14px -6px var(--blue-mid, rgba(59,111,202,.30));
}

/* ── 5) TOASTS: καθαρή κάρτα + εικονίδιο-chip + accent λωρίδα ── */
.bldr-toast {
  background: var(--surface, #fbfaf8);
  color: var(--ink, #1a1a1a);
  border: 1px solid var(--border, #e0ddd6);
  border-radius: 13px;
  padding: 12px 16px 12px 14px;
  box-shadow: 0 12px 30px -8px rgba(0,0,0,.22);
  position: relative;
  overflow: hidden;
}
.bldr-toast::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: var(--ink3, #6b6860);
}
.bldr-toast.bldr-toast-ok,
.bldr-toast.bldr-toast-err,
.bldr-toast.bldr-toast-warn { background: var(--surface, #fbfaf8); }
.bldr-toast.bldr-toast-ok::before   { background: var(--green, #2a8a6c); }
.bldr-toast.bldr-toast-err::before  { background: var(--red, #c53030); }
.bldr-toast.bldr-toast-warn::before { background: var(--amber, #b8860b); }
.bldr-toast-icon {
  width: 26px; height: 26px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 14px;
  color: #fff;
  background: var(--ink3, #6b6860);
}
.bldr-toast-ok   .bldr-toast-icon { background: var(--green, #2a8a6c); }
.bldr-toast-err  .bldr-toast-icon { background: var(--red, #c53030); }
.bldr-toast-warn .bldr-toast-icon { background: var(--amber, #b8860b); }
/* ════════════════════ τέλος VISUAL REFRESH ════════════════════ */


/* ════════════════════════════════════════════════════════════
   CUSTOM BUILDER — Studio Banner (31/05/2026) · ΜΟΝΟ εμφανισιακό.
   Full-width banner στο home grid (αντί για κάρτα ίδια με τις επίσημες).
   Πηγή: custom-builder-banner-preview.html (Εκδοχή 1 «Studio», εγκεκριμένο).
   Η ροή (bldrEnterBuilder) μένει ίδια· αλλάζει μόνο διάταξη/στυλ.
   ════════════════════════════════════════════════════════════ */
#homeScreen .bldr-hs-prog-card-custom.bldr-hs-custom-banner {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 24px 26px;
  margin-top: 6px;
  border-radius: 18px;
  border: 1px solid var(--blue-mid, rgba(59,111,202,.15));
  background: linear-gradient(118deg, var(--blue-light, #f0f4fb) 0%, var(--surface, #fbfaf8) 58%);
  box-shadow: 0 14px 36px -20px var(--blue-mid, rgba(59,111,202,.4));
  overflow: hidden;
}
/* Hover — ίδιο «ανασήκωμα» όπως οι υπόλοιπες κάρτες, με μπλε accent */
#homeScreen .bldr-hs-prog-card-custom.bldr-hs-custom-banner:hover {
  border-color: var(--blue, #3b6fca);
  box-shadow: 0 18px 42px -18px var(--blue-mid, rgba(59,111,202,.5)),
              0 4px 12px -6px rgba(0,0,0,.06);
  transform: translateY(-2px);
}
.bldr-cb-deco {
  position: absolute;
  right: -26px; top: -40px;
  width: 200px; height: 200px;
  color: var(--blue, #3b6fca);
  opacity: .06;
  pointer-events: none;
}
.bldr-cb-tile {
  width: 60px; height: 60px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  color: #fff;
  background: linear-gradient(135deg, var(--blue, #3b6fca), var(--blue-hover, #2f5cb0));
  box-shadow: 0 8px 20px -6px var(--blue-mid, rgba(59,111,202,.45));
  transition: transform .25s ease;
}
#homeScreen .bldr-hs-prog-card-custom.bldr-hs-custom-banner:hover .bldr-cb-tile {
  transform: scale(1.05) rotate(4deg);
}
.bldr-cb-mid { flex: 1; min-width: 0; position: relative; }
.bldr-cb-kick {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--blue, #3b6fca);
  background: var(--blue-dim, rgba(59,111,202,.07));
  border: 1px solid var(--blue-mid, rgba(59,111,202,.15));
  padding: 4px 9px;
  border-radius: 6px;
}
.bldr-cb-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--ink, #1a1a1a);
  letter-spacing: -.02em;
  margin: 10px 0 4px;
}
.bldr-cb-sub {
  font-size: 13px;
  color: var(--ink3, #6b6860);
  line-height: 1.5;
  max-width: 560px;
}
.bldr-cb-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 13px;
}
.bldr-cb-chip {
  font-size: 11px;
  font-weight: 600;
  color: var(--ink2, #3d3b37);
  background: var(--surface, #fbfaf8);
  border: 1px solid var(--border, #e0ddd6);
  padding: 4px 10px;
  border-radius: 999px;
}
.bldr-cb-chip::before {
  content: "\203A";
  color: var(--blue, #3b6fca);
  font-weight: 800;
  margin-right: 5px;
}
.bldr-cb-right {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 11px;
  text-align: right;
}
.bldr-cb-stats {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  color: var(--ink3, #6b6860);
}
.bldr-cb-stat b {
  font-size: 16px;
  font-weight: 800;
  color: var(--ink, #1a1a1a);
}
.bldr-cb-dot { color: var(--ink4, #9c9890); }
#homeScreen .bldr-cb-cta {
  width: auto;
  padding: 12px 22px;
  border-radius: 11px;
  font-size: 14px;
  box-shadow: 0 6px 16px -5px var(--blue-mid, rgba(59,111,202,.45));
  white-space: nowrap;
}
/* Responsive — στενές οθόνες: στοίβα κάθετα */
@media (max-width: 760px) {
  #homeScreen .bldr-hs-prog-card-custom.bldr-hs-custom-banner {
    flex-direction: column;
    align-items: flex-start;
  }
  #homeScreen .bldr-hs-prog-card-custom.bldr-hs-custom-banner .bldr-cb-right {
    align-items: flex-start;
    text-align: left;
    width: 100%;
  }
}
/* ════════════════ τέλος Studio Banner ════════════════ */
