/* ============================================================================
   MMS — tema MUD (Modelul Unitar de Design al RM, HG nr. 677/2025) peste Universal Theme 23.2
   Token-uri: grilă 8px, paletă primară guvernamentală, tipografie, stări componente.
   Codurile de stare: verde = validat, galben = în lucru, roșu = necesită modificări / erori, albastru = transmis.
   Culorile NU sunt singurul purtător de informație: fiecare badge are text și pictogramă.
   ============================================================================ */

:root {
  /* Grila de spațiere 8px */
  --mud-space-1: 8px;  --mud-space-2: 16px; --mud-space-3: 24px; --mud-space-4: 32px; --mud-space-6: 48px;

  /* Paleta primară guvernamentală (valori aliniate mud.egov.md; se ajustează la token-urile oficiale la coordonarea cu AGE) */
  --mud-primary-900: #0B2A5B;
  --mud-primary-700: #143F86;
  --mud-primary-500: #1E5BB8;   /* acțiune principală */
  --mud-primary-100: #E3ECF8;
  --mud-neutral-900: #1C1C1E;
  --mud-neutral-700: #4A4A4F;
  --mud-neutral-500: #7A7A80;
  --mud-neutral-300: #C9C9CE;
  --mud-neutral-100: #F2F2F4;
  --mud-white: #FFFFFF;

  /* Semantice */
  --mud-success-700: #1B6E3A; --mud-success-100: #DFF3E6;   /* validat */
  --mud-warning-700: #8A6100; --mud-warning-100: #FFF3CD;   /* în lucru */
  --mud-danger-700:  #A61B1B; --mud-danger-100:  #FBE1E1;   /* necesită modificări / eroare */
  --mud-info-700:    #1E5BB8; --mud-info-100:    #E3ECF8;   /* transmis */

  /* Tipografie */
  --mud-font: "Inter", "Segoe UI", Roboto, Arial, sans-serif;
  --mud-font-size: 16px;
  --mud-line-height: 1.5;
  --mud-radius: 8px;
  --mud-focus-ring: 0 0 0 3px rgba(30, 91, 184, 0.45);
}

/* Aplicare pe Universal Theme */
body.t-PageBody, .t-Body { font-family: var(--mud-font); font-size: var(--mud-font-size); line-height: var(--mud-line-height); color: var(--mud-neutral-900); }
.t-Header { background: var(--mud-primary-900); }
.t-Header .t-Header-branding, .t-Header .t-Header-navBar a { color: var(--mud-white); }
.t-Body-nav .t-TreeNav .a-TreeView-node--topLevel > .a-TreeView-content { padding: var(--mud-space-1) var(--mud-space-2); }
.t-Region { border-radius: var(--mud-radius); margin-bottom: var(--mud-space-2); }
.t-Region-header { padding: var(--mud-space-1) var(--mud-space-2); }
.t-Region-body { padding: var(--mud-space-2); }

/* Butoane — stări default / hover / focus / disabled */
.t-Button--hot { background: var(--mud-primary-500); color: var(--mud-white); border-radius: var(--mud-radius); }
.t-Button--hot:hover { background: var(--mud-primary-700); }
.t-Button:focus-visible, .a-GV-cell:focus-visible, .apex-item-text:focus-visible, .apex-item-select:focus-visible { outline: none; box-shadow: var(--mud-focus-ring); }
.t-Button[disabled], .t-Button.is-disabled { background: var(--mud-neutral-300); color: var(--mud-neutral-700); cursor: not-allowed; }

/* Câmpuri de formular — stare de eroare */
.apex-item-text, .apex-item-select { border-radius: var(--mud-radius); border: 1px solid var(--mud-neutral-300); min-height: 40px; }
.apex-page-item-error .apex-item-text, .a-GV-cell.is-error { border-color: var(--mud-danger-700); background: var(--mud-danger-100); }
.t-Form-error { color: var(--mud-danger-700); }

/* Badge-uri de stare (text + pictogramă obligatorii) */
.mms-badge { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; font-weight: 600; font-size: 0.875rem; line-height: 1.5; }
.mms-badge::before { font-family: "Font APEX Small"; }
.mms-badge--draft     { background: var(--mud-warning-100); color: var(--mud-warning-700); }
.mms-badge--draft::before     { content: "\e0d6"; }   /* fa-pencil */
.mms-badge--submitted { background: var(--mud-info-100);    color: var(--mud-info-700); }
.mms-badge--submitted::before { content: "\e0cf"; }   /* fa-paper-plane */
.mms-badge--validated { background: var(--mud-success-100); color: var(--mud-success-700); }
.mms-badge--validated::before { content: "\e01a"; }   /* fa-check */
.mms-badge--returned  { background: var(--mud-danger-100);  color: var(--mud-danger-700); }
.mms-badge--returned::before  { content: "\e0f9"; }   /* fa-exclamation-triangle */
.mms-badge--aggregated{ background: var(--mud-neutral-100); color: var(--mud-neutral-700); }

/* Interactive Grid — celule SIME (read-only, gri), calculate (read-only), blocate de alt utilizator */
.a-GV-cell.mms-cell--sime     { background: var(--mud-neutral-100); color: var(--mud-neutral-700); font-style: italic; }
.a-GV-cell.mms-cell--computed { background: var(--mud-primary-100); font-weight: 600; }
.a-GV-cell.mms-cell--locked   { background: repeating-linear-gradient(45deg, var(--mud-neutral-100), var(--mud-neutral-100) 6px, var(--mud-white) 6px, var(--mud-white) 12px); cursor: not-allowed; }
.a-GV-cell.mms-cell--locked::after { content: "\e0b3"; font-family: "Font APEX Small"; float: right; color: var(--mud-neutral-500); } /* fa-lock */

/* Indicatorul de salvare automată (rol ARIA status) */
.mms-autosave-status { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: var(--mud-radius); font-size: 0.875rem; }
.mms-autosave-status--saving { background: var(--mud-info-100); color: var(--mud-info-700); }
.mms-autosave-status--saved  { background: var(--mud-success-100); color: var(--mud-success-700); }
.mms-autosave-status--error  { background: var(--mud-danger-100); color: var(--mud-danger-700); }

/* Bara de progres a stărilor: în lucru – transmis – validat – agregat */
.mms-progress { display: flex; gap: var(--mud-space-1); list-style: none; padding: 0; margin: 0 0 var(--mud-space-2); }
.mms-progress li { flex: 1; text-align: center; padding: var(--mud-space-1); border-radius: var(--mud-radius); background: var(--mud-neutral-100); color: var(--mud-neutral-700); font-size: 0.875rem; }
.mms-progress li.is-done    { background: var(--mud-success-100); color: var(--mud-success-700); }
.mms-progress li.is-current { background: var(--mud-primary-500); color: var(--mud-white); font-weight: 600; }

/* Carduri KPI */
.mms-kpi { padding: var(--mud-space-2); border-radius: var(--mud-radius); background: var(--mud-white); border: 1px solid var(--mud-neutral-300); }
.mms-kpi__value { font-size: 2rem; font-weight: 700; color: var(--mud-primary-900); }
.mms-kpi__label { color: var(--mud-neutral-700); }

/* Rezumatul erorilor deasupra gridului */
.mms-error-summary { border-left: 4px solid var(--mud-danger-700); background: var(--mud-danger-100); padding: var(--mud-space-1) var(--mud-space-2); border-radius: var(--mud-radius); margin-bottom: var(--mud-space-2); }
.mms-error-summary ul { margin: 0; padding-left: var(--mud-space-2); }

/* Contrast și accesibilitate */
a { color: var(--mud-primary-700); text-decoration: underline; }
.u-VisuallyHidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* Responsive */
@media (max-width: 768px) {
  .t-Region-body { padding: var(--mud-space-1); }
  .mms-progress { flex-direction: column; }
  .mms-kpi__value { font-size: 1.5rem; }
}

/* Centrul de notificări (pagina globală 0; mms-notifications.js) */
.mms-notif-panel { display: none; position: fixed; top: 56px; right: 12px; width: 380px; max-width: 95vw; max-height: 70vh; overflow: auto; z-index: 1500;
  background: #fff; border: 1px solid #d0d4d9; border-radius: 4px; box-shadow: 0 4px 16px rgba(0, 0, 0, .2); padding: 12px; }
.mms-notif-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.mms-notif-list { list-style: none; margin: 8px 0; padding: 0; }
.mms-notif-item { padding: 8px; border-bottom: 1px solid #eee; }
.mms-notif-item.is-unread { background: #eef5ff; }
.mms-notif-item.is-unread .mms-notif-subject::before { content: 'CF  '; color: #0a5fbe; }
.mms-notif-subject { font-weight: 600; }
.mms-notif-meta, .mms-notif-empty { font-size: .85em; color: #555; }
