/* Fonturile, servite local (CSP, instalări on-prem fără internet). Fișierele complete din
   github.com/google/fonts, convertite în woff2; licența OFL e lângă fiecare font.
   Manrope: interfața (latin extins ȘI grec). Sora: doar numele din antet (nu are grec). */
@font-face {
    font-family: "Manrope";
    src: url("fonts/manrope/Manrope-Variable.woff2") format("woff2");
    font-weight: 200 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Sora";
    src: url("fonts/sora/Sora-Variable.woff2") format("woff2");
    font-weight: 100 800;
    font-style: normal;
    font-display: swap;
}

body {
    font-family: "Manrope", system-ui, sans-serif;
}

h1:focus {
    outline: none;
}

/* Antetul: semnul și numele („Edi" 700, „Plan" 400, în Sora). */
.ediplan-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-left: 8px;
    color: inherit;
    text-decoration: none;
}

.ediplan-wordmark {
    font-family: "Sora", "Manrope", system-ui, sans-serif;
    font-size: 1.25rem;
    letter-spacing: -0.01em;
}

.ediplan-wordmark-lead {
    font-weight: 700;
}

.ediplan-wordmark-tail {
    font-weight: 400;
}

/* Numele editurii în antet, despărțit de marcă. */
.ediplan-tenant-name {
    margin-left: 16px;
    padding-left: 16px;
    border-left: 1px solid rgba(246, 243, 236, 0.35);
    font-size: 1rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Paginile statice din afara unei edituri (Landing, TenantNotFound): fără MudBlazor. */
.ediplan-static {
    margin: 0;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F6F3EC;
    color: #2B3642;
    box-sizing: border-box;
}

.ediplan-static-card {
    max-width: 560px;
    margin: 24px;
    padding: 32px 36px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(21, 35, 59, 0.12);
}

.ediplan-static-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    color: #15233B;
}

.ediplan-static h1 {
    margin: 0 0 12px;
    font-size: 1.5rem;
    font-weight: 600;
    color: #15233B;
}

.ediplan-static p {
    margin: 0;
    line-height: 1.6;
}

.ediplan-static-env-label {
    position: fixed;
    right: 8px;
    bottom: 6px;
    font-size: 0.75rem;
    color: rgba(43, 54, 66, 0.7);
}

/* Paginile de autentificare (login, cod, parolă): statice, centrate. Texte cu ~30% mai lungi
   în română decât în engleză: nimic nu se dimensionează după textul englezesc. */
.ediplan-auth {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    box-sizing: border-box;
    background: #F6F3EC;
}

.ediplan-auth-card {
    width: 100%;
    max-width: 440px;
    padding: 28px 32px 24px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(21, 35, 59, 0.12);
    color: #2B3642;
}

.ediplan-auth-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #15233B;
}

.ediplan-auth-tenant {
    margin: 4px 0 20px;
    font-size: 0.875rem;
    color: rgba(43, 54, 66, 0.75);
}

.ediplan-auth-title {
    margin: 0 0 16px;
    font-size: 1.5rem;
    font-weight: 600;
    color: #15233B;
}

.ediplan-auth-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}

.ediplan-auth-field label {
    font-size: 0.875rem;
    font-weight: 600;
}

.ediplan-input {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid rgba(43, 54, 66, 0.35);
    border-radius: 6px;
    font: inherit;
    font-size: 1rem;
    color: inherit;
    background: #fff;
}

.ediplan-input:focus {
    outline: 2px solid #2F6F8F;
    outline-offset: 0;
    border-color: #2F6F8F;
}

.ediplan-auth-check {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin-bottom: 16px;
    font-size: 0.875rem;
    line-height: 1.4;
}

.ediplan-auth-check input {
    margin-top: 3px;
}

.ediplan-auth-hint {
    margin: 0 0 16px;
    font-size: 0.8125rem;
    color: rgba(43, 54, 66, 0.75);
}

.ediplan-auth-links {
    margin: 16px 0 0;
    text-align: center;
    font-size: 0.875rem;
}

.ediplan-auth-links a,
.ediplan-static-actions a {
    color: #2F6F8F;
}

.ediplan-password-rules {
    margin-bottom: 16px;
    font-size: 0.875rem;
}

.ediplan-password-rules ul {
    margin: 4px 0 0;
    padding-left: 20px;
}

.ediplan-form-stack {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 480px;
}

.ediplan-recovery-codes {
    columns: 2;
    margin: 0 0 12px;
    padding-left: 20px;
    font-family: ui-monospace, Consolas, monospace;
    font-size: 1rem;
}

.ediplan-totp-manual {
    display: inline-block;
    margin-top: 4px;
    font-family: ui-monospace, Consolas, monospace;
    letter-spacing: 0.04em;
}

/* Deconectarea e un formular POST în meniul utilizatorului. */
.ediplan-logout-form {
    margin: 0;
}

.ediplan-logout {
    width: 100%;
    padding: 8px 16px;
    border: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    color: inherit;
    cursor: pointer;
}

.ediplan-logout:hover {
    background: var(--mud-palette-action-default-hover);
}

.ediplan-user-button,
.ediplan-user-menu .mud-button-root {
    text-transform: none !important;
}

/* Cifra clopoțelului coboară puțin, ca să nu fie tăiată de marginea de sus a antetului. */
.ediplan-bell-badge .mud-badge.mud-badge-top.right.mud-badge-overlap {
    inset: auto auto calc(100% - 14px) calc(100% - 10px);
}

/* Un buton dezactivat din antet rămâne vizibil pe fundalul închis (MudBlazor îl face gri
   închis, aproape invizibil pe Cerneală). */
.mud-appbar .mud-icon-button:disabled {
    color: rgba(246, 243, 236, 0.5) !important;
}

/* Eticheta mediului în antet, pe TOATE mediile (inclusiv Production): oriunde ai fi,
   citești unde ești, nu deduci din absența benzii. */
.ediplan-env-label {
    margin-right: 8px;
    padding: 2px 10px;
    border: 1px solid rgba(246, 243, 236, 0.45);
    border-radius: 999px;
    font-size: 0.75rem;
    white-space: nowrap;
}

/* Banda de mediu (din LibConX, 23.004): sus, fixă, pe orice mediu care NU e Production.
   Fără configurare de culoare: e un dispozitiv de siguranță, nu o temă. Deplasările de mai
   jos se sprijină pe STRUCTURA MudBlazor (.mud-layout, .mud-appbar-fixed-top, .mud-drawer):
   la un upgrade al pachetului, primul suspect dacă banda acoperă bara sau meniul. */
.ediplan-env-band {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 22px;
    z-index: 1400;
    background: #c62828;
    color: #fff;
    font: 700 12px/22px "Manrope", system-ui, sans-serif;
    text-align: center;
    letter-spacing: 0.08em;
    white-space: nowrap;
    overflow: hidden;
}

/* Tot ce e sub bandă coboară cu înălțimea ei: conținutul prin padding pe body, bara fixă
   și meniul lateral (fixe, ignoră padding-ul) prin top. */
body:has(> .ediplan-env-band) {
    padding-top: 22px;
}

.ediplan-env-band ~ .mud-layout .mud-appbar.mud-appbar-fixed-top {
    top: 22px;
}

/* Meniul lateral „clipped always" stă sub bara DENSĂ: MudBlazor îi dă top = 3/4 din
   --mud-appbar-height; cu banda, bara începe la 22px, deci și meniul coboară cu 22px. */
.ediplan-env-band ~ .mud-layout .mud-appbar-dense ~ .mud-drawer-fixed {
    top: calc(var(--mud-appbar-height) - var(--mud-appbar-height) / 4 + 22px) !important;
    height: calc(100% - var(--mud-appbar-height) + var(--mud-appbar-height) / 4 - 22px) !important;
}

/* UI-ul de eroare Blazor (circuit căzut). */
#blazor-error-ui {
    background: #fff4d6;
    color: #2b3642;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1500;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* Selectorul de limbă (01.004): formular POST, un buton per limbă, cu numele nativ. Prima literă
   majusculă din CSS (numele native ale limbilor încep cu literă mică în română), niciodată din
   ToUpper în cod. */
.ediplan-culture-switch {
    margin: 0;
}

.ediplan-culture {
    font: inherit;
    cursor: pointer;
}

.ediplan-culture::first-letter {
    text-transform: uppercase;
}

.ediplan-culture-switch-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ediplan-culture-switch-inline .ediplan-culture {
    border: 1px solid var(--mud-palette-lines-inputs, rgba(43, 54, 66, 0.25));
    border-radius: 999px;
    background: transparent;
    padding: 2px 10px;
    font-size: 0.75rem;
    color: inherit;
}

.ediplan-culture-switch-inline .ediplan-culture-current {
    border-color: var(--mud-palette-secondary, #2F6F8F);
    background: var(--mud-palette-action-default-hover, rgba(47, 111, 143, 0.12));
    font-weight: 700;
}

/* În meniul din antet: rânduri ca ale meniului (lățimea după textul cel mai lung, nu după engleză). */
.ediplan-culture-switch-menu {
    display: flex;
    flex-direction: column;
    min-width: 160px;
}

.ediplan-culture-switch-menu .ediplan-culture {
    padding: 8px 16px;
    border: 0;
    background: transparent;
    text-align: left;
    color: inherit;
}

.ediplan-culture-switch-menu .ediplan-culture:hover {
    background: var(--mud-palette-action-default-hover);
}

.ediplan-culture-switch-menu .ediplan-culture-current {
    font-weight: 700;
}

.ediplan-auth-header .ediplan-culture-switch {
    justify-content: flex-end;
}

/* Modul întunecat al paginilor statice (01.004): fără utilizator și fără circuit, doar setarea
   sistemului. Aceeași paletă ca tema întunecată a aplicației (EdiPlanTheme.PaletteDark). */
@media (prefers-color-scheme: dark) {
    .ediplan-static,
    .ediplan-auth {
        background: #0F1726;
        color: #E6E9EF;
    }

    .ediplan-static-card,
    .ediplan-auth-card {
        background: #18233A;
        color: #E6E9EF;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
    }

    .ediplan-static-brand,
    .ediplan-static h1,
    .ediplan-auth-header,
    .ediplan-auth-title {
        color: #E6E9EF;
    }

    .ediplan-auth-tenant,
    .ediplan-auth-hint,
    .ediplan-static-env-label {
        color: #A9B3C1;
    }

    .ediplan-input {
        background: #0F1726;
        color: #E6E9EF;
        border-color: rgba(230, 233, 239, 0.35);
    }

    .ediplan-input:focus {
        outline-color: #7FB3D0;
        border-color: #7FB3D0;
    }

    .ediplan-auth-links a,
    .ediplan-static-actions a {
        color: #7FB3D0;
    }
}

/* ---------------- 01.005: componente standard, accesibilitate, lățimi ---------------- */

/* Ascuns vizual, dar citit de cititoarele de ecran. */
.ediplan-visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* „Sari la conținut": primul element focusabil, vizibil doar la focus. */
.ediplan-skip-link {
    position: fixed;
    left: 8px;
    top: -48px;
    z-index: 2000;
    padding: 8px 16px;
    border-radius: 6px;
    background: var(--mud-palette-secondary);
    color: var(--mud-palette-secondary-text);
    font-weight: 700;
    text-decoration: none;
}

.ediplan-skip-link:focus {
    top: 30px;
}

.ediplan-main:focus {
    outline: none;
}

/* Focus vizibil în ambele teme (tastatura): contur în culoarea de acțiune. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.mud-button-root:focus-visible,
.mud-nav-link:focus-visible {
    outline: 3px solid var(--mud-palette-secondary) !important;
    outline-offset: 2px;
}

/* Titlul și zona principală primesc focus programatic (după navigare, „Sari la conținut"): nu sunt
   ținte de tastatură, deci fără contur. */
h1:focus-visible,
[tabindex="-1"]:focus-visible {
    outline: none !important;
}

.mud-appbar a:focus-visible,
.mud-appbar button:focus-visible {
    outline-color: #E0A526 !important;
}

/* Antetul paginii: titlu, firimituri, acțiuni. */
.ediplan-page-header {
    margin-bottom: 20px;
}

.ediplan-page-header-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.ediplan-page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ediplan-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 4px;
    padding: 0;
    list-style: none;
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
}

.ediplan-breadcrumbs li + li::before {
    content: "›";
    margin: 0 6px;
}

.ediplan-breadcrumbs a {
    color: var(--mud-palette-secondary);
}

/* Starea goală. */
.ediplan-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 32px 16px;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.ediplan-empty-title {
    color: var(--mud-palette-text-primary);
    font-weight: 600;
}

/* Tabelul standard: coloana de acțiuni fixată la dreapta, la derularea orizontală. */
.ediplan-standard-table .ediplan-actions-column {
    position: sticky;
    right: 0;
    width: 1%;
    white-space: nowrap;
    background: var(--mud-palette-surface);
    z-index: 1;
}

.ediplan-table-filter {
    max-width: 360px;
}

.ediplan-filters .ediplan-filter-type {
    min-width: 240px;
}

/* Formularele și setările. */
.ediplan-field-form {
    margin: 0;
}

.ediplan-field-help {
    margin: 2px 0 0;
    color: var(--mud-palette-text-secondary);
}

/* 03.001-fix2 (TODO-UI-4): „+ Adaugă" e ultima opțiune din lista câmpului de alegere, scrisă ca o acțiune. */
.ediplan-lookup-add-option {
    color: var(--mud-palette-primary);
    font-weight: 600;
}

/* 03.001-fix2 (TODO-UI-1): antetul unei fișe mari, lipit sus la derulare (de la 600 px; pe telefon ar acoperi jumătate de ecran) (sub bara aplicației, densă: 3/4 din înălțimea ei;
   cu banda de mediu, încă 22px), deasupra taburilor; fundalul paginii, ca să nu se vadă conținutul de dedesubt. */
@media (min-width: 600px) {
.ediplan-page-header-sticky {
    position: sticky;
    top: calc(var(--mud-appbar-height) - var(--mud-appbar-height) / 4);
    z-index: 5;
    margin: -8px -8px 12px;
    padding: 8px;
    background: var(--mud-palette-background);
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.ediplan-env-band ~ .mud-layout .ediplan-page-header-sticky {
    top: calc(var(--mud-appbar-height) - var(--mud-appbar-height) / 4 + 22px);
}
}

.ediplan-page-status {
    display: flex;
    align-items: center;
}

/* Taburile fișei: bara derulează orizontal pe telefon (MudTabs); semnul de eroare lângă eticheta tabului. */
.ediplan-record-tabs,
.ediplan-record-tabs .mud-tabs-panels,
.ediplan-record-tabs .mud-tab-panel,
.ediplan-record-tab {
    /* Containerele flex ale MudTabs nu se strâng sub lățimea conținutului (min-width: auto): un tabel lat ar împinge pagina
       (390 px); tabelele derulează în containerul lor. */
    min-width: 0;
    max-width: 100%;
}

.ediplan-record-tabs-header {
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.ediplan-tab-error {
    vertical-align: middle;
}

/* 03.001-fix2: tabelul editabil standard (EditableTable): câmpurile în celule, fără etichete vizibile (antetul le are). */
.ediplan-editable-table-wrap {
    /* relative: textele ascunse vizual (poziționate absolut, ex. eticheta coloanei de meniu) rămân în containerul care
       derulează, altfel ar lăți pagina (390 px). */
    position: relative;
    overflow-x: auto;
    max-width: 100%;
}

.ediplan-editable-table {
    width: 100%;
    border-collapse: collapse;
}

.ediplan-editable-table th,
.ediplan-editable-table td {
    padding: 6px 8px;
    text-align: left;
    vertical-align: top;
}

.ediplan-editable-table thead th {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
    border-bottom: 1px solid var(--mud-palette-lines-default);
    white-space: nowrap;
}

.ediplan-editable-group-header th {
    font-weight: 400;
    padding-top: 14px;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.ediplan-editable-row td {
    border-bottom: 1px solid var(--mud-palette-table-lines);
}

.ediplan-editable-row td .mud-input-control {
    margin-top: 0;
}

.ediplan-editable-menu-column,
.ediplan-editable-menu {
    width: 48px;
    text-align: right;
}

.ediplan-royalty-from {
    white-space: nowrap;
    padding-top: 14px !important;
}

.ediplan-royalty-rest {
    display: inline-block;
    padding-top: 8px;
    color: var(--mud-palette-text-secondary);
}

.ediplan-royalty-basis {
    max-width: 280px;
}

/* 03.001-fix2 (TODO-UI-2): jurnalul ca tabel; textul lung se rupe pe rânduri. */
.ediplan-journal-text {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    min-width: 240px;
}

.ediplan-journal-when {
    white-space: nowrap;
}

.ediplan-journal-filter-kind,
.ediplan-journal-filter-direction,
.ediplan-journal-filter-author {
    max-width: 220px;
}

.ediplan-settings {
    /* 02.003: trei secțiuni; coloane de cel puțin 420 px (100% pe ecranele înguste), ca textele lungi ale
       secțiunii Securitate să încapă (la 1280 px cu meniul deschis: două coloane). */
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
    gap: 16px;
}

.ediplan-muted {
    color: var(--mud-palette-text-secondary);
}

/* Meniul lateral: titlurile grupurilor. */
.ediplan-nav-group {
    display: block;
    padding: 12px 16px 4px;
    color: var(--mud-palette-text-secondary);
}

.ediplan-nav-tooltip {
    display: block !important;
}

/* Clopoțelul. */
.ediplan-bell-panel {
    width: min(380px, 92vw);
}

.ediplan-bell-item .mud-menu-item-text {
    display: flex;
    flex-direction: column;
    white-space: normal;
}

.ediplan-bell-when {
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
}

.ediplan-unread {
    font-weight: 700;
}

/* Pagina de start. */
.ediplan-shortcuts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}

.ediplan-shortcut {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 8px;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    text-decoration: none;
    font-weight: 600;
}

.ediplan-shortcut:hover {
    border-color: var(--mud-palette-secondary);
}

.ediplan-home-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 16px;
}

.ediplan-home-notifications {
    margin: 0;
    padding-left: 18px;
}

.ediplan-home-notifications li {
    display: flex;
    flex-direction: column;
    margin-bottom: 8px;
}

.ediplan-dev-section {
    margin-bottom: 32px;
}

/* Telefon și tabletă: antetul nu forțează derularea orizontală a paginii. */
@media (max-width: 768px) {
    .ediplan-env-label,
    .ediplan-tenant-name {
        display: none;
    }

    .ediplan-user-menu .mud-button-label {
        max-width: 120px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (max-width: 480px) {
    .ediplan-wordmark {
        display: none;
    }
}

/* 01.009: filtrele coloanelor UDF, deasupra tabelului standard, pe mai multe rânduri când nu încap. */
.ediplan-udf-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-bottom: 12px;
}

.ediplan-udf-filters .ediplan-udf-filter {
    flex: 1 1 200px;
    max-width: 320px;
    min-width: 0;
}

/* 01.009: titlul unui grup de sloturi UDF și butonul lui de adăugare pe același rând. */
.ediplan-udf-type {
    margin-top: 24px;
}

.ediplan-udf-type-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

/* 02.001: valorile ierarhice ale unui nomenclator, indentate pe niveluri; drumul complet sub denumire. */
.ediplan-lookup-level-2 {
    padding-left: 32px !important;
}

.ediplan-lookup-level-3 {
    padding-left: 56px !important;
}

.ediplan-lookup-path {
    display: block;
    font-size: 0.75rem;
}

/* 02.005: atașamentele. Zona de tragere: câmpul de fișiere acoperă toată zona (tragerea și clicul ajung în el), invizibil;
   focusul de tastatură se vede pe zonă. */
.ediplan-dropzone {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 24px 16px;
    text-align: center;
    border: 2px dashed var(--mud-palette-lines-inputs, rgba(43, 54, 66, 0.25));
    border-radius: 8px;
}

.ediplan-dropzone-active,
.ediplan-dropzone:hover {
    border-color: var(--mud-palette-secondary, #2F6F8F);
    background: var(--mud-palette-action-default-hover, rgba(47, 111, 143, 0.12));
}

.ediplan-dropzone:focus-within {
    outline: 3px solid var(--mud-palette-secondary);
    outline-offset: 2px;
}

.ediplan-dropzone-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.ediplan-dropzone-icon {
    font-size: 2.5rem !important;
}

.ediplan-uploads {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}

.ediplan-upload {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, 2fr);
    align-items: center;
    gap: 12px;
}

.ediplan-upload-name {
    overflow-wrap: anywhere;
}

.ediplan-attachment-images {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 16px;
}

.ediplan-attachment-image {
    margin: 0;
    min-width: 0;
}

.ediplan-attachment-image figcaption {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
}

.ediplan-attachment-title {
    flex: 1 1 100%;
    overflow-wrap: anywhere;
}

.ediplan-attachment-thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 3 / 4;
    padding: 0;
    border: 1px solid var(--mud-palette-lines-default, rgba(43, 54, 66, 0.12));
    border-radius: 6px;
    background: var(--mud-palette-background-gray, #F6F3EC);
    cursor: pointer;
    overflow: hidden;
}

.ediplan-attachment-main .ediplan-attachment-thumb {
    border: 2px solid var(--mud-palette-primary);
}

.ediplan-attachment-thumb img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Imaginea principală în antetul fișei și în liste. */
.ediplan-record-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 16px;
}

.ediplan-record-image {
    max-width: min(160px, 40vw);
    max-height: 220px;
    border-radius: 6px;
    border: 1px solid var(--mud-palette-lines-default, rgba(43, 54, 66, 0.12));
}

.ediplan-thumbnail-column {
    width: 56px;
}

.ediplan-list-thumbnail {
    display: block;
    width: 40px;
    height: 52px;
    object-fit: contain;
    border-radius: 4px;
}

.ediplan-list-thumbnail-empty {
    background: transparent;
}

.ediplan-preview-image {
    display: block;
    max-width: 100%;
    max-height: 75vh;
    margin: 0 auto;
}

.ediplan-preview-frame {
    display: block;
    width: 100%;
    height: 75vh;
    border: 0;
}

.ediplan-preview-title {
    overflow-wrap: anywhere;
}

.ediplan-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* 03.006: faptele doar de citit ale unei versiuni și ale unui act adițional (eticheta în textul secundar, valoarea alături). */
.ediplan-facts {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 6px 16px;
    margin: 0;
}

.ediplan-facts dt {
    color: var(--mud-palette-text-secondary);
}

.ediplan-facts dd {
    margin: 0;
}

@media (max-width: 599.98px) {
    .ediplan-facts {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .ediplan-facts dd {
        margin-bottom: 8px;
    }
}

/* 03.demo: banda editurii demonstrative (în fluxul paginii, deasupra conținutului): Chihlimbar cu text Cerneală (~7:1), în ambele teme. */
.ediplan-demo-band {
    margin: 0 0 16px;
    padding: 6px 12px;
    border-radius: 6px;
    background: #E0A526;
    color: #15233B;
    font-weight: 600;
    text-align: center;
}

/* 04.001: calendarul standard (MonthCalendar): grila lunii; sub 768 px, agenda. Doar culorile temei; ce e „estompat" folosește textul secundar, nu opacitatea (contrast). */
.ediplan-calendar-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.ediplan-calendar-pick {
    flex: 0 1 200px;
}

.ediplan-calendar-title {
    margin-bottom: 8px;
}

.ediplan-calendar-title::first-letter {
    text-transform: uppercase;
}

.ediplan-calendar-grid {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    background: var(--mud-palette-surface);
}

.ediplan-calendar-grid th {
    padding: 6px;
    color: var(--mud-palette-text-secondary);
    font-weight: 600;
    text-align: left;
    border: 1px solid var(--mud-palette-lines-default);
}

.ediplan-calendar-grid td {
    height: 112px;
    padding: 4px;
    vertical-align: top;
    border: 1px solid var(--mud-palette-lines-default);
}

.ediplan-calendar-day {
    display: inline-block;
    min-width: 26px;
    padding: 1px 4px;
    margin-bottom: 2px;
    border-radius: 13px;
    font-weight: 600;
    text-align: center;
}

.ediplan-calendar-outside .ediplan-calendar-day {
    color: var(--mud-palette-text-secondary);
    font-weight: 400;
}

.ediplan-calendar-is-today .ediplan-calendar-day {
    background: var(--mud-palette-secondary);
    color: var(--mud-palette-secondary-text);
}

.ediplan-calendar-more {
    padding: 2px 4px;
    border: 0;
    background: none;
    color: var(--mud-palette-text-primary);
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
}

.ediplan-calendar-agenda {
    display: none;
}

.ediplan-calendar-agenda ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ediplan-calendar-agenda li {
    padding: 8px 0;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.ediplan-calendar-agenda-day {
    margin-bottom: 4px;
    font-weight: 600;
}

.ediplan-calendar-agenda-today .ediplan-calendar-agenda-day {
    color: var(--mud-palette-secondary);
}

@media (max-width: 767.98px) {
    .ediplan-calendar-grid {
        display: none;
    }

    .ediplan-calendar-agenda {
        display: block;
    }
}

/* 04.001: eticheta unui termen; tipul = bara colorată + iconița. */
.ediplan-deadline-tag {
    display: flex;
    align-items: center;
    gap: 4px;
    width: 100%;
    margin-bottom: 2px;
    padding: 2px 4px;
    border: 1px solid var(--mud-palette-lines-default);
    border-left: 4px solid var(--mud-palette-text-secondary);
    border-radius: 3px;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    font: inherit;
    font-size: 0.8125rem;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
}

.ediplan-deadline-tag span {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
}

.ediplan-deadline-tag:hover {
    border-color: var(--mud-palette-secondary);
}

.ediplan-deadline-publication { border-left-color: var(--mud-palette-secondary); }
.ediplan-deadline-reporting { border-left-color: var(--mud-palette-info); }
.ediplan-deadline-tranche { border-left-color: var(--mud-palette-success); }
.ediplan-deadline-freecopies { border-left-color: var(--mud-palette-tertiary); }
.ediplan-deadline-expiry { border-left-color: var(--mud-palette-warning); }
.ediplan-deadline-selloffend { border-left-color: var(--mud-palette-warning); border-left-style: dashed; }

.ediplan-deadline-overdue {
    border-left-color: var(--mud-palette-error);
    color: var(--mud-palette-error-darken);
    font-weight: 600;
}

.ediplan-deadline-closed {
    color: var(--mud-palette-text-secondary);
    text-decoration: line-through;
}

.ediplan-deadline-details {
    display: grid;
    grid-template-columns: minmax(96px, max-content) 1fr;
    gap: 6px 16px;
    margin: 0 0 8px;
}

.ediplan-deadline-details dt {
    color: var(--mud-palette-text-secondary);
}

.ediplan-deadline-details dd {
    margin: 0;
}

.ediplan-my-deadlines-list {
    margin: 0;
    padding-left: 18px;
}

.ediplan-my-deadlines-list li {
    display: flex;
    flex-direction: column;
    margin-bottom: 8px;
}

/* 04.003: tabloul „la risc": cartonașele unul sub altul sub 768 px, în aceeași ordine. */
.ediplan-risk-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
    gap: 16px;
    align-items: start;
}

.ediplan-risk-title {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.ediplan-risk-count {
    font-variant-numeric: tabular-nums;
}

.ediplan-risk-card:focus {
    outline: none;
}

.ediplan-risk-rows,
.ediplan-risk-summary-list {
    list-style: none;
    margin: 0 0 8px;
    padding: 0;
}

.ediplan-risk-rows li,
.ediplan-risk-summary-list li {
    padding: 4px 0;
    overflow-wrap: anywhere;
}

.ediplan-risk-rows .ediplan-muted {
    display: block;
    font-size: 0.875rem;
}

.ediplan-risk-links {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

@media (max-width: 767.98px) {
    .ediplan-risk-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* 05.001: planul editorial — vederea Anul (o coloană pe lună, rânduri după lățime; pe telefon lunile una sub alta) și fișele scurte. */
.ediplan-plan-view {
    display: inline-flex;
    gap: 4px;
    flex-wrap: wrap;
}

.ediplan-plan-year {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 12px;
    align-items: start;
}

.ediplan-plan-month {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 8px;
    padding: 8px;
    background: var(--mud-palette-surface);
    min-height: 120px;
    min-width: 0;
}

.ediplan-plan-month-name {
    text-transform: capitalize;
}

.ediplan-plan-month-totals {
    display: flex;
    flex-wrap: wrap;
    column-gap: 8px;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
}

.ediplan-plan-card {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 6px;
    padding: 6px 8px;
    margin-top: 8px;
    background: var(--mud-palette-background);
    overflow-wrap: anywhere;
}

.ediplan-plan-card-title {
    font-weight: 600;
}

.ediplan-plan-card-line,
.ediplan-plan-card-responsible {
    font-size: 0.8125rem;
}

.ediplan-plan-calendar-item {
    display: block;
    overflow-wrap: anywhere;
    font-size: 0.8125rem;
}

@media (max-width: 767px) {
    .ediplan-plan-year {
        grid-template-columns: 1fr;
    }
}

/* 05.003: tragerea fișelor între luni (MudDropContainer): fișa se apucă de oriunde. */
.ediplan-plan-month [draggable="true"] {
    cursor: grab;
}


/* 07.001: tragerea rândurilor unui tabel editabil (mânerul) și locul unde cade; previzualizarea fazelor. */
.ediplan-editable-drag-column,
.ediplan-editable-drag {
    width: 2rem;
}

.ediplan-editable-drag-handle {
    display: inline-flex;
    color: var(--mud-palette-text-secondary);
}

.ediplan-editable-drop > td {
    box-shadow: inset 0 2px 0 var(--mud-palette-primary);
}

.ediplan-production-template-preview-list,
.ediplan-production-apply-preview {
    margin: 0;
    padding-left: 1.25rem;
}

.ediplan-production-phases .ediplan-production-phase-start,
.ediplan-production-phases .ediplan-production-phase-end {
    min-width: 10rem;
}

/* 07.002: procentul pe fișa planului; întârzierea (iconiță + text); „Ziua mea". */
.ediplan-plan-card-progress {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 0.8125rem;
}

.ediplan-plan-card-progress .mud-progress-linear {
    flex: 1;
}

.ediplan-production-late {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    color: var(--mud-palette-error-darken);
}

.ediplan-my-day-rows {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ediplan-my-day-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 6px;
    padding: 6px 0;
    border-bottom: 1px solid var(--mud-palette-lines-default);
    overflow-wrap: anywhere;
}

.ediplan-my-day-actions {
    display: flex;
    gap: 6px;
}

.ediplan-my-day-zone,
.ediplan-my-day-page {
    display: grid;
    gap: 12px;
}

/* 07.003: grila de timp (TimelineGrid): eticheta în stânga, pista cu barele și marcajele; sub 768 px, lista. */
.ediplan-timeline-head,
.ediplan-timeline-row {
    display: grid;
    grid-template-columns: minmax(140px, 22%) 1fr;
    align-items: center;
}

.ediplan-timeline-rows {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ediplan-timeline-group {
    padding: 8px 0 2px;
    font-weight: 600;
    text-transform: capitalize;
}

.ediplan-timeline-row {
    min-height: 34px;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.ediplan-timeline-label {
    padding-right: 8px;
    overflow-wrap: anywhere;
    font-size: 0.875rem;
}

.ediplan-timeline-track {
    position: relative;
    height: 26px;
    min-width: 0;
}

.ediplan-timeline-months {
    height: 22px;
    font-size: 0.75rem;
}

.ediplan-timeline-month {
    position: absolute;
    top: 0;
    border-left: 1px solid var(--mud-palette-lines-default);
    padding-left: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-transform: capitalize;
    color: var(--mud-palette-text-secondary);
}

.ediplan-timeline-today,
.ediplan-timeline-today-label {
    position: absolute;
    top: 0;
}

.ediplan-timeline-today {
    bottom: 0;
    width: 2px;
    background: var(--mud-palette-tertiary);
}

.ediplan-timeline-today-label {
    transform: translateX(-50%);
    font-weight: 600;
    color: var(--mud-palette-text-primary);
}

.ediplan-timeline-bar {
    position: absolute;
    top: 5px;
    height: 16px;
    min-width: 4px;
    padding: 0;
    border: 1px solid var(--mud-palette-primary);
    border-radius: 4px;
    background: var(--mud-palette-surface);
    overflow: hidden;
    cursor: pointer;
    display: flex;
    align-items: center;
}

.ediplan-timeline-done {
    position: absolute;
    inset: 0 auto 0 0;
    background: var(--mud-palette-primary);
    opacity: 0.55;
}

.ediplan-timeline-bar-late {
    border-color: var(--mud-palette-error);
    border-width: 2px;
}

.ediplan-timeline-late-icon {
    position: relative;
    color: var(--mud-palette-error);
}

.ediplan-timeline-status-blocked {
    border-style: dashed;
}

.ediplan-timeline-marker {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 0;
    border-left: 2px solid var(--mud-palette-secondary);
}

.ediplan-timeline-deadline {
    border-left: 2px dashed var(--mud-palette-error);
}

.ediplan-timeline-task {
    top: 18px;
    bottom: 2px;
    border-left: 3px solid var(--mud-palette-warning);
}

.ediplan-timeline-task-done {
    border-left-color: var(--mud-palette-success);
}

.ediplan-timeline-phone {
    display: none;
}

.ediplan-production-phone-list {
    margin: 0;
    padding-left: 1.25rem;
}

@media (max-width: 767.98px) {
    .ediplan-timeline-grid {
        display: none;
    }

    .ediplan-timeline-phone {
        display: block;
    }
}

/* 07.003: Kanban-ul (coloanele pe stări; pe telefon, una sub alta). */
.ediplan-kanban {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
    align-items: start;
}

.ediplan-kanban-column {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 8px;
    padding: 8px;
    background: var(--mud-palette-surface);
    min-height: 160px;
    min-width: 0;
}

.ediplan-kanban-card {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 6px;
    padding: 6px 8px;
    margin-top: 8px;
    background: var(--mud-palette-background);
    overflow-wrap: anywhere;
    font-size: 0.875rem;
}

.ediplan-kanban-card-title {
    font-weight: 600;
}

.ediplan-kanban [draggable="true"] {
    cursor: grab;
}

@media (max-width: 767.98px) {
    .ediplan-kanban {
        grid-template-columns: 1fr;
    }
}

/* 07.003 (găsit de axe, link-in-text-block): legăturile din rândurile de text (lista de pe telefon, „Ziua mea", Kanban) se deosebesc și altfel decât prin culoare. */
.ediplan-production-phone-row a,
.ediplan-my-day-what a,
.ediplan-kanban-card a,
.ediplan-production-phone-list a {
    text-decoration: underline;
}

/* 07.003: „Azi" sub numele lunilor (nu peste ele); faptele din panoul fazei, pe două coloane. */
.ediplan-timeline-months {
    height: 34px;
}

.ediplan-timeline-today-label {
    top: 16px;
}

.ediplan-production-phase-facts {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 12px;
    row-gap: 2px;
    margin: 0;
}

.ediplan-production-phase-facts dt {
    color: var(--mud-palette-text-secondary);
}

.ediplan-production-phase-facts dd {
    margin: 0;
}
