/*
 * Detaliul facturii — selecția pozițiilor incluse în dashboard (08_4).
 *
 * Fișier global, încărcat în App.razor DUPĂ tema generată (invoice-theme-generated/…), ca tokenurile
 * din invoice-theme-variables.css să fie deja definite și regulile de aici să nu fie suprascrise de
 * view.invoice.invoice-theme.css. Nu edităm fișierele generate. Selectorii poartă prefixul paginii
 * (.invoice-page-wrap / .invoice-dash-*); controalele sunt d-print-none, iar marcajul liniei excluse
 * există numai pe ecran: tipărirea arată documentul fiscal neschimbat.
 */

/* ---- Bifa de pe linie ---------------------------------------------------------------------------- */

.invoice-page-wrap .invoice-dash-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    margin-top: 2px;
    min-height: 44px;
}

/* SfCheckBox: clasa aplicației pereche cu cea a furnizorului; eticheta în culorile temei. */
.invoice-page-wrap .e-checkbox-wrapper.invoice-dash-check .e-label {
    color: var(--invoice-theme-text-secondary);
    font-family: var(--invoice-theme-font-sans);
    font-size: 11.5px;
    font-weight: 600;
}

.invoice-page-wrap .e-checkbox-wrapper.invoice-dash-check .e-frame.e-check,
.invoice-page-wrap .e-checkbox-wrapper.invoice-dash-check:hover .e-frame.e-check {
    border-color: var(--invoice-theme-primary);
    background-color: var(--invoice-theme-primary);
}

.invoice-page-wrap .e-checkbox-wrapper.invoice-dash-check .e-frame {
    border-color: var(--invoice-theme-text-muted-ui);
}

/* Ținta de atingere: toată eticheta, cel puțin 44 px înălțime (specificația §3; măsurat 34 px înainte, 28.09.2026). */
.invoice-page-wrap .e-checkbox-wrapper.invoice-dash-check label {
    min-height: 44px;
    align-items: center;
    display: inline-flex;
}

.invoice-page-wrap .e-checkbox-wrapper.invoice-dash-check.e-focus .e-frame,
.invoice-page-wrap .e-checkbox-wrapper.invoice-dash-check input:focus-visible + .e-frame {
    box-shadow: var(--invoice-theme-focus-ring);
}

.invoice-page-wrap .invoice-dash-line-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: var(--invoice-theme-radius-pill);
    color: var(--invoice-theme-warning-text);
    background: var(--invoice-theme-warning-soft);
    border: 1px solid var(--invoice-theme-warning-border);
    font-size: 10.5px;
    font-weight: 700;
}

@media screen {
    /* Linia exclusă: atenuată numai pe ecran; valorile fiscale rămân lizibile și netăiate. */
    .invoice-page-wrap .invoice-table tbody tr.invoice-line-excluded td {
        background: var(--invoice-theme-surface-muted);
    }

    .invoice-page-wrap .invoice-table tbody tr.invoice-line-excluded .invoice-line-name {
        color: var(--invoice-theme-text-secondary);
    }
}

/* ---- Panoul „Contribuția în dashboard” ------------------------------------------------------------ */

.invoice-page-wrap .invoice-dash-panel {
    margin-top: var(--invoice-theme-space-4);
    padding: var(--invoice-theme-space-4) var(--invoice-theme-space-5);
    border: 1px solid var(--invoice-theme-border);
    border-left: 4px solid var(--invoice-theme-primary);
    border-radius: var(--invoice-theme-radius-md);
    background: var(--invoice-theme-surface-soft);
    color: var(--invoice-theme-text);
    font-family: var(--invoice-theme-font-sans);
}

.invoice-page-wrap .invoice-dash-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px 16px;
}

.invoice-page-wrap .invoice-dash-head h2 {
    margin: 4px 0 0;
    color: var(--invoice-theme-text);
    font-size: 16px;
    font-weight: 800;
    letter-spacing: -0.01em;
}

.invoice-page-wrap .invoice-dash-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: var(--invoice-theme-radius-pill);
    border: 1px solid transparent;
    font-size: 11px;
    font-weight: 750;
    white-space: nowrap;
}

.invoice-page-wrap .invoice-dash-chip-muted {
    color: var(--invoice-theme-text-secondary);
    background: var(--invoice-theme-surface-muted);
    border-color: var(--invoice-theme-border);
}

.invoice-page-wrap .invoice-dash-chip-accent {
    color: var(--invoice-theme-primary);
    background: var(--invoice-theme-primary-soft);
    border-color: var(--invoice-theme-info-border);
}

.invoice-page-wrap .invoice-dash-chip-info {
    color: var(--invoice-theme-info);
    background: var(--invoice-theme-info-soft);
    border-color: var(--invoice-theme-info-border);
}

.invoice-page-wrap .invoice-dash-chip-warning {
    color: var(--invoice-theme-warning-text);
    background: var(--invoice-theme-warning-soft);
    border-color: var(--invoice-theme-warning-border);
}

.invoice-page-wrap .invoice-dash-explain,
.invoice-page-wrap .invoice-dash-state {
    margin: 10px 0 0;
    color: var(--invoice-theme-text-secondary);
    font-size: 12.5px;
    line-height: var(--invoice-theme-line-height);
}

.invoice-page-wrap .invoice-dash-state .spinner-border {
    margin-right: 6px;
    color: var(--invoice-theme-primary);
}

.invoice-page-wrap .invoice-dash-figures {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
    gap: 1px;
    margin: 14px 0 0;
    overflow: hidden;
    border: 1px solid var(--invoice-theme-border);
    border-radius: var(--invoice-theme-radius-sm);
    background: var(--invoice-theme-border);
}

.invoice-page-wrap .invoice-dash-figures > div {
    padding: 10px 14px;
    background: var(--invoice-theme-surface);
}

.invoice-page-wrap .invoice-dash-figures dt {
    color: var(--invoice-theme-text-muted-ui);
    font-size: 11px;
    font-weight: 700;
}

.invoice-page-wrap .invoice-dash-figures dt span {
    font-weight: 500;
}

.invoice-page-wrap .invoice-dash-figures dd {
    margin: 3px 0 0;
    color: var(--invoice-theme-text);
    font-size: 15px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}

.invoice-page-wrap .invoice-dash-hints {
    margin: 10px 0 0;
    padding-left: 18px;
    color: var(--invoice-theme-text-secondary);
    font-size: 12px;
    line-height: var(--invoice-theme-line-height);
    /* Numele autorului este adesea un e-mail lung, fără spații: se rupe în loc să lărgească panoul. */
    overflow-wrap: anywhere;
}

.invoice-page-wrap .invoice-dash-hints:empty {
    display: none;
}

.invoice-page-wrap .invoice-dash-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
}

.invoice-page-wrap .invoice-dash-actions .invoice-action-btn,
.invoice-page-wrap .invoice-dash-alert .invoice-action-btn {
    min-height: 44px;
}

/*
 * Butoane dezactivate. `.btn:disabled` din Bootstrap folosește variabile `--bs-btn-disabled-*` pe care
 * `invoice-action-btn` nu le definește: fundalul și chenarul devin transparente, culoarea textului se
 * moștenește (închisă), iar tema adaugă `opacity: 0.48`. La butonul principal gradientul rămâne sub
 * textul devenit închis — text ilizibil. Aici starea este explicită, fără opacitate (care ar coborî
 * contrastul): suprafață gri stinsă, chenar punctat, fără umbră, text gri lizibil (≥ 4,5:1). Aceeași
 * stare pentru exporturile din bara de sus, blocate cât rulează un export.
 */
.invoice-page-wrap .invoice-dash-panel .invoice-action-btn:disabled,
.invoice-page-wrap .invoice-dash-panel .invoice-action-btn-primary:disabled,
.invoice-toolbar .invoice-action-btn:disabled {
    opacity: 1;
    color: var(--invoice-theme-text-muted-ui);
    background-color: var(--invoice-theme-surface-muted);
    background-image: none;
    border: 1px dashed var(--invoice-theme-border-strong);
    box-shadow: none;
    transform: none;
    cursor: not-allowed;
}

.invoice-page-wrap .invoice-dash-panel .invoice-action-btn:disabled i,
.invoice-toolbar .invoice-action-btn:disabled i {
    color: var(--invoice-theme-text-subtle);
}

/* În timpul salvării/pregătirii butonul e dezactivat, dar spinnerul trebuie să rămână vizibil. */
.invoice-page-wrap .invoice-dash-panel .invoice-action-btn:disabled .spinner-border {
    color: var(--invoice-theme-primary);
}

.invoice-page-wrap .invoice-dash-dirty {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: auto;
    color: var(--invoice-theme-info);
    font-size: 12px;
    font-weight: 700;
}

/* ---- Mesaje și stări ------------------------------------------------------------------------------- */

.invoice-page-wrap .invoice-dash-alert,
.invoice-dash-leave,
.invoice-dash-missing {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid var(--invoice-theme-border);
    border-radius: var(--invoice-theme-radius-sm);
    background: var(--invoice-theme-surface);
    color: var(--invoice-theme-text);
    font-family: var(--invoice-theme-font-sans);
    font-size: 12.5px;
    line-height: var(--invoice-theme-line-height);
}

.invoice-page-wrap .invoice-dash-alert > .bi,
.invoice-dash-leave > .bi,
.invoice-dash-missing > .bi {
    flex: none;
    margin-top: 1px;
    font-size: 16px;
}

.invoice-page-wrap .invoice-dash-alert > div,
.invoice-dash-leave > div,
.invoice-dash-missing > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
}

.invoice-page-wrap .invoice-dash-alert-info {
    border-color: var(--invoice-theme-info-border);
    background: var(--invoice-theme-info-soft);
}

.invoice-page-wrap .invoice-dash-alert-info > .bi {
    color: var(--invoice-theme-info);
}

.invoice-page-wrap .invoice-dash-alert-success {
    border-color: var(--invoice-theme-success-border);
    background: var(--invoice-theme-success-soft);
}

.invoice-page-wrap .invoice-dash-alert-success > .bi {
    color: var(--invoice-theme-success-text);
}

.invoice-page-wrap .invoice-dash-alert-warning,
.invoice-dash-leave {
    border-color: var(--invoice-theme-warning-border);
    background: var(--invoice-theme-warning-soft);
}

.invoice-page-wrap .invoice-dash-alert-warning > .bi,
.invoice-dash-leave > .bi {
    color: var(--invoice-theme-warning-text);
}

.invoice-page-wrap .invoice-dash-alert-danger,
.invoice-dash-missing {
    border-color: var(--invoice-theme-danger-border);
    background: var(--invoice-theme-danger-soft);
}

.invoice-page-wrap .invoice-dash-alert-danger > .bi,
.invoice-dash-missing > .bi {
    color: var(--invoice-theme-danger);
}

.invoice-page-wrap .invoice-dash-alert a {
    color: var(--invoice-theme-primary);
    font-weight: 700;
}

/* Excluderile vechi, în reverificare: informație, nu bife. */
.invoice-page-wrap .invoice-dash-old {
    width: 100%;
    margin-top: 8px;
    padding: 8px 10px;
    border: 1px dashed var(--invoice-theme-warning-border);
    border-radius: var(--invoice-theme-radius-sm);
    background: var(--invoice-theme-surface);
}

.invoice-page-wrap .invoice-dash-old-title {
    color: var(--invoice-theme-text-secondary);
    font-size: 11.5px;
    font-weight: 700;
}

.invoice-page-wrap .invoice-dash-old ul {
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.invoice-page-wrap .invoice-dash-old li {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 2px 12px;
    padding: 3px 0;
    border-top: 1px solid var(--invoice-theme-border);
    font-size: 12px;
}

.invoice-page-wrap .invoice-dash-old li:first-child {
    border-top: 0;
}

.invoice-page-wrap .invoice-dash-old-amount {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* Confirmarea navigării cu modificări nesalvate și factura inexistentă în firmă: în afara foii. */
.invoice-dash-leave,
.invoice-dash-missing {
    max-width: 1120px;
    margin: 16px auto 0;
}

.invoice-dash-leave-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.invoice-dash-leave-actions .invoice-action-btn {
    min-height: 44px;
}

@media screen and (max-width: 575.98px) {
    .invoice-page-wrap .invoice-dash-panel {
        padding: 14px;
    }

    .invoice-page-wrap .invoice-dash-actions {
        justify-content: stretch;
    }

    .invoice-page-wrap .invoice-dash-actions .invoice-action-btn {
        flex: 1 1 140px;
        justify-content: center;
    }

    .invoice-page-wrap .invoice-dash-dirty {
        flex-basis: 100%;
    }
}

@media print {
    .invoice-dash-panel,
    .invoice-dash-line,
    .invoice-dash-leave,
    .invoice-dash-missing {
        display: none !important;
    }
}
