/**


 * RoomUpItalia Template Builder — asset privato migrato.


 * Modificare questo file per le aree private; il percorso storico


 * resta disponibile solo per aree non migrate che lo usano ancora.


 */





.language-switcher {


    position: relative;


    display: inline-flex;


    align-items: center;


}





.language-switcher > summary {


    display: inline-flex;


    align-items: center;


    gap: 7px;


    min-height: 38px;


    padding: 7px 10px;


    border: 1px solid #d8e0ec;


    border-radius: 999px;


    background: #ffffff;


    color: #0f172a;


    font-size: 13px;


    font-weight: 800;


    cursor: pointer;


    list-style: none;


}





.language-switcher > summary::-webkit-details-marker {


    display: none;


}





.language-switcher > summary img {


    width: 17px;


    height: 17px;


    filter: brightness(0);


}





.language-switcher__menu {


    position: absolute;


    z-index: 60;


    top: calc(100% + 8px);


    right: 0;


    display: grid;


    min-width: 150px;


    padding: 7px;


    border: 1px solid #dbe3ef;


    border-radius: 13px;


    background: #ffffff;


    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.14);


}





.language-switcher__menu a {


    display: flex;


    justify-content: space-between;


    gap: 12px;


    padding: 9px 10px;


    border-radius: 9px;


    color: #334155;


    text-decoration: none;


}





.language-switcher__menu a:hover,


.language-switcher__menu a:focus-visible,


.language-switcher__menu a.is-active {


    background: #eef5ff;


    color: #0b57d0;


}





.admin-translations-page,


.admin-translation-edit-page {


    display: grid;


    gap: 20px;


}





.admin-translations-header {


    display: flex;


    flex-wrap: wrap;


    justify-content: space-between;


    gap: 16px;


    align-items: flex-start;


}





.admin-translations-header h1 {


    margin: 2px 0 8px;


}





.admin-translations-header p {


    margin: 0;


    color: #64748b;


}





.translation-stat-grid {


    display: grid;


    grid-template-columns: repeat(2, minmax(0, 1fr));


    gap: 10px;


}





.translation-stat-grid article {


    padding: 15px;


    border: 1px solid #dbe3ef;


    border-radius: 14px;


    background: #ffffff;


}





.translation-stat-grid article.is-warning {


    border-color: #f5c87a;


    background: #fff9ed;


}





.translation-stat-grid span {


    display: block;


    color: #64748b;


    font-size: 12px;


}





.translation-stat-grid strong {


    display: block;


    margin-top: 5px;


    color: #0f172a;


    font-size: 24px;


}





.admin-translation-settings,


.admin-translation-catalog,


.translation-edit-form {


    padding: 18px;


    border: 1px solid #dbe3ef;


    border-radius: 18px;


    background: #ffffff;


    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);


}





.admin-translation-settings {


    display: grid;


    gap: 18px;


}





.admin-translation-settings h2 {


    margin: 0 0 6px;


}





.admin-translation-settings p {


    margin: 0;


    color: #64748b;


}





.admin-translation-settings form,


.translation-filter-form {


    display: grid;


    gap: 12px;


}





.translation-locale-list {


    display: grid;


    grid-template-columns: repeat(2, minmax(0, 1fr));


    gap: 10px;


}





.translation-locale-card {


    display: flex;


    align-items: center;


    gap: 10px;


    padding: 12px;


    border: 1px solid #dbe3ef;


    border-radius: 12px;


    background: #f8fafc;


}





.translation-locale-card span,


.translation-locale-card strong,


.translation-locale-card small {


    display: block;


}





.translation-locale-card small {


    color: #64748b;


}





.translation-default-field,


.translation-filter-form label,


.translation-edit-form label {


    display: grid;


    gap: 7px;


    color: #0f172a;


    font-weight: 800;


}





.translation-default-field select,


.translation-filter-form input,


.translation-filter-form select,


.translation-edit-form input,


.translation-edit-form textarea,


.translation-table textarea {


    box-sizing: border-box;


    width: 100%;


    padding: 10px 11px;


    border: 1px solid #cbd5e1;


    border-radius: 10px;


    background: #ffffff;


    color: #0f172a;


    font: inherit;


}





.translation-edit-form {


    display: grid;


    gap: 16px;


}





.translation-edit-form small {


    color: #64748b;


    font-weight: 500;


}





.translation-edit-form footer,


.translation-bulk-actions {


    display: flex;


    flex-wrap: wrap;


    justify-content: flex-end;


    gap: 10px;


    align-items: center;


}





.translation-table-wrap {


    margin-top: 16px;


    overflow-x: auto;


}





.translation-table {


    width: 100%;


    border-collapse: collapse;


}





.translation-table th,


.translation-table td {


    padding: 12px;


    border-bottom: 1px solid #e2e8f0;


    text-align: left;


    vertical-align: top;


}





.translation-table th {


    color: #475569;


    font-size: 12px;


    text-transform: uppercase;


}





.translation-table code,


.translation-table small {


    display: block;


}





.translation-table small {


    margin-top: 5px;


    color: #64748b;


}





.translation-table td.is-missing {


    background: #fff9ed;


}





.translation-table textarea {


    min-width: 260px;


    resize: vertical;


}





.translation-bulk-actions {


    margin-top: 16px;


}





.translation-bulk-actions p {


    margin: 0 auto 0 0;


    color: #64748b;


}





@media (min-width: 760px) {


    .translation-stat-grid {


        grid-template-columns: repeat(4, minmax(0, 1fr));


    }





    .admin-translation-settings {


        grid-template-columns: minmax(0, 1fr) minmax(420px, 1.2fr);


        align-items: start;


    }





    .translation-settings-form {


        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;


        align-items: end;


    }





    .translation-filter-form {


        grid-template-columns: minmax(260px, 1fr) minmax(180px, 0.5fr) auto;


        align-items: end;


    }


}





@media (max-width: 759px) {


    .translation-table,


    .translation-table tbody,


    .translation-table tr,


    .translation-table td {


        display: block;


        width: 100%;


    }





    .translation-table thead {


        display: none;


    }





    .translation-table tr {


        margin-bottom: 14px;


        border: 1px solid #dbe3ef;


        border-radius: 14px;


        overflow: hidden;


    }





    .translation-table td {


        box-sizing: border-box;


    }





    .translation-table td::before {


        display: block;


        margin-bottom: 6px;


        color: #64748b;


        content: attr(data-label);


        font-size: 11px;


        font-weight: 800;


        text-transform: uppercase;


    }





    .translation-table textarea {


        min-width: 0;


    }


}





.translation-stat-grid small {


    display: block;


    margin-top: 4px;


    color: #64748b;


    font-size: 11px;


}





.admin-translation-settings__forms {


    display: grid;


    gap: 16px;


}





.translation-settings-form,


.translation-new-locale-form {


    display: grid;


    gap: 12px;


    padding: 14px;


    border: 1px solid #e2e8f0;


    border-radius: 14px;


    background: #f8fafc;


}





.translation-new-locale-form h3,


.translation-new-locale-form p {


    margin: 0;


}





.translation-new-locale-form p {


    color: #64748b;


    font-size: 13px;


}





.translation-new-locale-form label {


    display: grid;


    gap: 6px;


    color: #0f172a;


    font-weight: 800;


}





.translation-new-locale-form input[type="text"] {


    box-sizing: border-box;


    width: 100%;


    padding: 10px 11px;


    border: 1px solid #cbd5e1;


    border-radius: 10px;


    background: #ffffff;


    color: #0f172a;


    font: inherit;


}





.translation-inline-check {


    display: flex !important;


    grid-template-columns: none !important;


    align-items: center;


    gap: 9px !important;


}





@media (min-width: 980px) {


    .admin-translation-settings__forms {


        grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);


    }


}





/* V25.18.85 - copertura, pubblicazione e quote traduzioni. */


.admin-translation-settings {


    grid-template-columns: 1fr;


}





.admin-translation-settings__intro {


    display: grid;


    gap: 6px;


}





.admin-translation-settings__forms {


    display: contents;


}





.translation-settings-form {


    padding: 0;


    border: 0;


    background: transparent;


}





.translation-locale-list {


    grid-template-columns: 1fr;


}





.translation-locale-card {


    display: grid;


    gap: 14px;


    align-items: stretch;


    padding: 15px;


    background: #ffffff;


}





.translation-locale-card.is-complete {


    border-color: #86c7a2;


}





.translation-locale-card.is-progress {


    border-color: #e8bd6a;


}





.translation-locale-card.is-low {


    border-color: #e4a0a0;


}





.translation-locale-card__header,


.translation-progress__labels,


.translation-settings-form__footer,


.translation-provider-section > div:first-child,


.translation-runs-section > div:first-child,


.admin-translation-catalog__heading,


.translation-provider-grid article header {


    display: flex;


    flex-wrap: wrap;


    align-items: center;


    justify-content: space-between;


    gap: 10px;


}





.translation-locale-card__header strong {


    color: #0f172a;


    font-size: 17px;


}





.translation-visibility-badge {


    display: inline-flex;


    align-items: center;


    min-height: 28px;


    padding: 4px 9px;


    border-radius: 999px;


    font-size: 12px;


    font-weight: 800;


}





.translation-visibility-badge.is-public {


    background: #e8f7ee;


    color: #17663b;


}





.translation-visibility-badge.is-hidden {


    background: #eef2f7;


    color: #566273;


}





.translation-progress {


    display: grid;


    gap: 7px;


}





.translation-progress__labels span {


    color: #64748b;


    font-size: 12px;


    font-weight: 700;


}





.translation-progress__labels strong {


    color: #0f172a;


    font-size: 15px;


}





.translation-progress__track {


    width: 100%;


    height: 9px;


    overflow: hidden;


    border-radius: 999px;


    background: #e8edf4;


}





.translation-progress__track > span {


    display: block;


    min-width: 0;


    height: 100%;


    border-radius: inherit;


    background: #2563eb;


}





.translation-locale-card.is-complete .translation-progress__track > span {


    background: #178249;


}





.translation-locale-card.is-progress .translation-progress__track > span {


    background: #c27a05;


}





.translation-locale-card.is-low .translation-progress__track > span {


    background: #c64040;


}





.translation-coverage-details {


    display: grid;


    gap: 8px;


    margin: 0;


}





.translation-coverage-details div {


    display: flex;


    justify-content: space-between;


    gap: 12px;


    padding-top: 8px;


    border-top: 1px solid #e7edf5;


}





.translation-coverage-details dt {


    color: #64748b;


    font-size: 12px;


}





.translation-coverage-details dd {


    margin: 0;


    color: #0f172a;


    font-size: 12px;


    font-weight: 800;


    text-align: right;


}





.translation-locale-card__controls {


    display: grid;


    gap: 8px;


}





.translation-inline-check {


    display: flex;


    align-items: flex-start;


    gap: 9px;


    color: #0f172a;


    font-size: 13px;


    font-weight: 700;


}





.translation-inline-check input {


    width: 18px;


    height: 18px;


    margin: 0;


    accent-color: #1d4ed8;


}





.translation-inline-check.is-locked {


    color: #64748b;


}





.translation-settings-form__footer {


    align-items: end;


    padding-top: 14px;


    border-top: 1px solid #e2e8f0;


}





.translation-settings-form__footer .translation-default-field {


    width: min(100%, 420px);


}





.translation-default-field small {


    color: #64748b;


    font-size: 12px;


    font-weight: 500;


}





.translation-provider-section,


.translation-runs-section {


    display: grid;


    gap: 16px;


    padding: 18px;


    border: 1px solid #dbe3ef;


    border-radius: 18px;


    background: #ffffff;


    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);


}





.translation-provider-section h2,


.translation-provider-section p,


.translation-runs-section h2,


.translation-runs-section p,


.admin-translation-catalog__heading h2,


.admin-translation-catalog__heading p {


    margin: 0;


}





.translation-provider-section p,


.translation-runs-section p,


.admin-translation-catalog__heading p {


    color: #64748b;


}





.translation-provider-grid {


    display: grid;


    grid-template-columns: 1fr;


    gap: 10px;


}





.translation-provider-grid article {


    display: grid;


    gap: 8px;


    padding: 14px;


    border: 1px solid #e2e8f0;


    border-radius: 13px;


    background: #f8fafc;


}





.translation-provider-grid article p,


.translation-provider-grid article small {


    margin: 0;


}





.translation-provider-grid article small {


    color: #64748b;


}





.translation-runs-table-wrap {


    overflow-x: auto;


}





.translation-runs-table-wrap table {


    width: 100%;


    min-width: 620px;


    border-collapse: collapse;


}





.translation-runs-table-wrap th,


.translation-runs-table-wrap td {


    padding: 10px 12px;


    border-bottom: 1px solid #e2e8f0;


    text-align: left;


}





.translation-runs-table-wrap th {


    color: #64748b;


    font-size: 12px;


    text-transform: uppercase;


}





.admin-translation-catalog__heading {


    margin-bottom: 14px;


}





.admin-translation-catalog__heading > span {


    display: inline-flex;


    padding: 5px 9px;


    border-radius: 999px;


    background: #edf4ff;


    color: #174ea6;


    font-size: 12px;


    font-weight: 800;


}





@media (min-width: 760px) {


    .admin-translation-settings {


        grid-template-columns: 1fr;


    }





    .translation-settings-form {


        grid-template-columns: 1fr;


        align-items: stretch;


    }





    .translation-locale-list {


        grid-template-columns: repeat(2, minmax(0, 1fr));


    }





    .translation-provider-grid {


        grid-template-columns: repeat(3, minmax(0, 1fr));


    }


}





@media (min-width: 1180px) {


    .translation-locale-list {


        grid-template-columns: repeat(3, minmax(0, 1fr));


    }


}





/* v25.18.89 - correzione proporzioni e rimozione overflow orizzontale. */


.admin-translations-page,


.admin-translation-edit-page {


    width: 100%;


    max-width: 100%;


    min-width: 0;


    margin: 0;


    overflow-x: clip;


}





.admin-translation-settings,


.translation-provider-section,


.translation-runs-section,


.admin-translation-catalog,


.translation-edit-form {


    box-sizing: border-box;


    width: 100%;


    min-width: 0;


}





.translation-settings-form,


.translation-locale-list,


.translation-locale-card,


.translation-locale-card > *,


.translation-locale-card__header > div,


.translation-progress,


.translation-coverage-details,


.translation-locale-card__controls {


    min-width: 0;


}





/* Una lingua per riga: evita card tagliate e mantiene dati leggibili. */


.translation-locale-list {


    grid-template-columns: minmax(0, 1fr);


    gap: 14px;


}





.translation-locale-card {


    display: grid;


    grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);


    grid-template-areas:


        "header header"


        "progress progress"


        "details controls";


    gap: 14px 22px;


    align-items: start;


    box-sizing: border-box;


    width: 100%;


    padding: 17px 18px;


    border-radius: 15px;


}





.translation-locale-card__header {


    grid-area: header;


    align-items: flex-start;


}





.translation-locale-card__header > div {


    overflow-wrap: anywhere;


}





.translation-locale-card__header strong {


    font-size: 16px;


    line-height: 1.25;


}





.translation-locale-card__header small {


    margin-top: 3px;


    line-height: 1.35;


}





.translation-visibility-badge {


    flex: 0 0 auto;


    min-height: 26px;


    padding: 3px 9px;


    white-space: nowrap;


}





.translation-progress {


    grid-area: progress;


}





.translation-progress__track {


    height: 8px;


}





.translation-coverage-details {


    grid-area: details;


    gap: 0;


    align-content: start;


}





.translation-coverage-details div {


    min-height: 38px;


    padding: 9px 0;


}





.translation-coverage-details dt,


.translation-coverage-details dd {


    line-height: 1.35;


}





.translation-coverage-details dd {


    overflow-wrap: anywhere;


}





.translation-locale-card__controls {


    grid-area: controls;


    gap: 9px;


    align-content: start;


    padding-left: 20px;


    border-left: 1px solid #e7edf5;


}





.translation-inline-check {


    box-sizing: border-box;


    width: 100%;


    min-height: 40px;


    padding: 9px 11px;


    border: 1px solid #dbe3ef;


    border-radius: 11px;


    background: #f8fafc;


    line-height: 1.3;


}





.translation-inline-check input {


    flex: 0 0 18px;


}





.translation-inline-check span {


    min-width: 0;


    overflow-wrap: anywhere;


}





.translation-inline-check.is-locked {


    background: #f1f5f9;


}





.translation-settings-form__footer {


    gap: 14px;


}





.translation-settings-form__footer .translation-default-field {


    flex: 1 1 320px;


    width: auto;


    max-width: 480px;


}





.translation-settings-form__footer .btn {


    flex: 0 0 auto;


}





.translation-new-locale-form {


    grid-template-columns: repeat(3, minmax(0, 1fr));


    align-items: end;


}





.translation-new-locale-form > div {


    grid-column: 1 / -1;


}





.translation-new-locale-form .translation-inline-check {


    align-self: center;


}





.translation-provider-grid {


    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));


}





@media (max-width: 900px) {


    .translation-locale-card {


        grid-template-columns: minmax(0, 1fr);


        grid-template-areas:


            "header"


            "progress"


            "details"


            "controls";


        gap: 13px;


    }





    .translation-locale-card__controls {


        padding-top: 12px;


        padding-left: 0;


        border-top: 1px solid #e7edf5;


        border-left: 0;


    }





    .translation-new-locale-form {


        grid-template-columns: repeat(2, minmax(0, 1fr));


    }


}





@media (max-width: 620px) {


    .admin-translation-settings,


    .translation-provider-section,


    .translation-runs-section,


    .admin-translation-catalog,


    .translation-edit-form {


        padding: 15px;


        border-radius: 15px;


    }





    .translation-locale-card {


        padding: 15px;


    }





    .translation-locale-card__header {


        align-items: flex-start;


    }





    .translation-new-locale-form {


        grid-template-columns: minmax(0, 1fr);


    }





    .translation-new-locale-form > div {


        grid-column: auto;


    }





    .translation-settings-form__footer {


        align-items: stretch;


    }





    .translation-settings-form__footer .translation-default-field,


    .translation-settings-form__footer .btn,


    .translation-new-locale-form .btn {


        width: 100%;


        max-width: none;


    }


}




/* v538 - controllo centralizzato provider e test traduzioni Admin. */

.translation-provider-control-grid {

    display: grid;

    grid-template-columns: minmax(0, 1fr);

    gap: 14px;

}



.translation-provider-order-form,

.translation-provider-test-form {

    display: grid;

    gap: 14px;

    min-width: 0;

    padding: 16px;

    border: 1px solid #e2e8f0;

    border-radius: 14px;

    background: #f8fafc;

}



.translation-provider-order-form h3,

.translation-provider-test-form h3,

.translation-provider-section > div > h3 {

    margin: 0 0 5px;

    color: #0f172a;

}



.translation-provider-order-form p,

.translation-provider-test-form p {

    margin: 0;

}



.translation-provider-test-form textarea {

    box-sizing: border-box;

    width: 100%;

    min-height: 96px;

    padding: 10px 11px;

    border: 1px solid #cbd5e1;

    border-radius: 10px;

    background: #ffffff;

    color: #0f172a;

    font: inherit;

    resize: vertical;

}



.translation-provider-test-form .translation-default-field small {

    color: #64748b;

    font-size: 12px;

    font-weight: 500;

}



.translation-provider-test-languages {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 10px;

}



.translation-provider-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 9px;

    align-items: center;

}



.translation-provider-endpoint {

    overflow-wrap: anywhere;

}



.translation-provider-section > .alert {

    margin: 0;

}



.translation-provider-section > .alert p {

    margin-top: 6px;

}



.translation-provider-section > .alert small {

    display: block;

    margin-top: 7px;

}



@media (min-width: 980px) {

    .translation-provider-control-grid {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }

}



@media (max-width: 620px) {

    .translation-provider-test-languages {

        grid-template-columns: minmax(0, 1fr);

    }



    .translation-provider-actions .btn {

        width: 100%;

    }

}



/* v538 - override provider per lingua. */

.translation-provider-locale-form {

    display: grid;

    gap: 14px;

    min-width: 0;

    padding: 16px;

    border: 1px solid #e2e8f0;

    border-radius: 14px;

    background: #f8fafc;

}



.translation-provider-locale-heading {

    display: flex;

    justify-content: space-between;

    gap: 14px;

    align-items: flex-start;

}



.translation-provider-locale-heading h3,

.translation-provider-locale-heading p {

    margin: 0;

}



.translation-provider-locale-heading p {

    margin-top: 5px;

}



.translation-provider-locale-table-wrap {

    border: 1px solid #e2e8f0;

    border-radius: 12px;

    background: #ffffff;

}



.translation-provider-locale-table {

    min-width: 1080px !important;

}



.translation-provider-locale-table td {

    vertical-align: top;

}



.translation-provider-locale-table td:first-child strong,

.translation-provider-locale-table td:nth-child(5) strong {

    display: block;

    color: #0f172a;

}



.translation-provider-locale-table td small {

    display: block;

    margin-top: 4px;

    color: #64748b;

}



.translation-provider-locale-table select {

    box-sizing: border-box;

    width: 100%;

    min-width: 150px;

    min-height: 40px;

    padding: 8px 10px;

    border: 1px solid #cbd5e1;

    border-radius: 9px;

    background: #ffffff;

    color: #0f172a;

    font: inherit;

}



@media (max-width: 620px) {

    .translation-provider-locale-heading {

        display: grid;

        grid-template-columns: minmax(0, 1fr);

    }

}



/* v540 - pubblicazione automatica lingue al raggiungimento della soglia. */

.translation-default-field input[type="number"] {

    box-sizing: border-box;

    width: 100%;

    padding: 10px 11px;

    border: 1px solid #cbd5e1;

    border-radius: 10px;

    background: #ffffff;

    color: #0f172a;

    font: inherit;

}



.translation-publication-field {

    gap: 6px;

}



.translation-publication-status,

.translation-publication-note {

    margin: 0;

    padding: 9px 10px;

    border-radius: 10px;

    font-size: 12px;

    line-height: 1.45;

}



.translation-publication-status.is-ready {

    background: #e8f7ee;

    color: #17663b;

}



.translation-publication-status.is-waiting {

    background: #fff7e6;

    color: #8a5400;

}



.translation-publication-note {

    background: #f1f5f9;

    color: #64748b;

}


/* v559 - diagnostica pipeline e traduzione manuale a lotti. */
.translation-automation-control {
    display: grid;
    gap: 18px;
    margin-bottom: 22px;
    padding: 18px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #ffffff;
}

.translation-automation-control__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.translation-automation-control__heading h2,
.translation-automation-control__heading p,
.translation-manual-all-form p,
.translation-manual-note,
.translation-manual-progress p {
    margin: 0;
}

.translation-automation-control__heading p,
.translation-manual-all-form p,
.translation-manual-note,
.translation-manual-progress p {
    margin-top: 5px;
    color: #64748b;
}

.translation-diagnostic-list {
    margin: 8px 0 0;
    padding-left: 20px;
}

.translation-diagnostic-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.translation-diagnostic-grid article {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
}

.translation-diagnostic-grid article > span,
.translation-diagnostic-grid small {
    color: #64748b;
    font-size: 12px;
}

.translation-diagnostic-grid strong {
    color: #0f172a;
}

.translation-manual-actions {
    display: grid;
    gap: 12px;
}

.translation-manual-batch-form,
.translation-manual-all-form {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
}

.translation-manual-batch-form label {
    display: grid;
    gap: 6px;
    min-width: 180px;
}

.translation-manual-batch-form label > span {
    font-size: 12px;
    font-weight: 600;
    color: #475569;
}

.translation-manual-batch-form select {
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 9px;
    background: #ffffff;
    color: #0f172a;
    font: inherit;
}

.translation-manual-all-form > div:first-of-type {
    min-width: 0;
}

.translation-manual-all-buttons {
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
}

.translation-manual-progress {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #f8fafc;
}

.translation-manual-progress[hidden] {
    display: none;
}

.translation-manual-note {
    font-size: 13px;
    line-height: 1.5;
}

@media (max-width: 720px) {
    .translation-automation-control__heading,
    .translation-manual-batch-form,
    .translation-manual-all-form,
    .translation-manual-all-buttons {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .translation-manual-batch-form,
    .translation-manual-all-form {
        align-items: stretch;
    }

    .translation-manual-batch-form label {
        min-width: 0;
    }

    .translation-manual-all-buttons .btn,
    .translation-manual-batch-form .btn {
        width: 100%;
    }
}


/* v677 · Lingue apri/chiudi con stato sintetico */
details.translation-locale-card {
    display: block;
    overflow: hidden;
    padding: 0;
}

.translation-locale-card__summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.translation-locale-card__summary::-webkit-details-marker {
    display: none;
}

.translation-locale-card__summary::after {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    width: 9px;
    height: 9px;
    margin-left: 8px;
    border-right: 2px solid #64748b;
    border-bottom: 2px solid #64748b;
    content: "";
    transform: rotate(45deg);
    transition: transform .18s ease;
}

details.translation-locale-card[open] > .translation-locale-card__summary::after {
    transform: rotate(225deg);
}

.translation-locale-card__identity {
    min-width: 0;
}

.translation-locale-card__identity strong {
    display: block;
    color: #0f172a;
    font-size: .96rem;
}

.translation-locale-card__identity small {
    display: block;
    margin-top: 2px;
    color: #64748b;
    font-size: .76rem;
}

.translation-locale-card__summary-status {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
    padding-right: 24px;
}

.translation-summary-chip {
    display: inline-flex !important;
    align-items: center;
    min-height: 26px;
    padding: 4px 8px;
    border: 1px solid #dbe3ef;
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.translation-summary-chip--percentage {
    background: #eef4ff;
    color: #1d4ed8;
}

.translation-summary-chip.is-enabled,
.translation-summary-chip.is-automatic {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}

.translation-summary-chip.is-disabled {
    background: #f1f5f9;
    color: #64748b;
}

.translation-summary-chip.is-source,
.translation-summary-chip.is-manual {
    background: #f8fafc;
    color: #475569;
}

.translation-locale-card__body {
    display: grid;
    gap: 14px;
    padding: 0 16px 16px;
    border-top: 1px solid #e2e8f0;
}

.translation-locale-card__body > .translation-progress {
    margin-top: 14px;
}

@media (max-width: 820px) {
    .translation-locale-card__summary {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        align-items: start;
    }

    .translation-locale-card__summary::after {
        grid-column: 1;
        grid-row: 1;
        justify-self: end;
    }

    .translation-locale-card__summary-status {
        grid-column: 1;
        grid-row: 2;
        justify-content: flex-start;
        padding-right: 0;
    }
}

/* v679 · diagnostica compatta e card lingua senza sovrapposizioni */
.translation-diagnostic-grid--primary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.translation-diagnostic-grid--primary article,
.translation-diagnostic-grid--secondary article {
    position: relative;
    overflow: hidden;
}

.translation-diagnostic-grid article.is-success {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.translation-diagnostic-grid article.is-warning {
    border-color: #fde68a;
    background: #fffbeb;
}

.translation-diagnostic-grid article.is-danger {
    border-color: #fecaca;
    background: #fef2f2;
}

.translation-diagnostic-grid article.is-info {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.translation-diagnostic-grid article.is-neutral {
    border-color: #e2e8f0;
    background: #f8fafc;
}

.translation-diagnostic-grid--primary article > span {
    font-weight: 700;
}

.translation-diagnostic-grid--primary article strong {
    font-size: 15px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.translation-diagnostic-grid--primary article small,
.translation-diagnostic-grid--secondary article small {
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.translation-diagnostic-details {
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
}

.translation-diagnostic-details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
    padding: 10px 13px;
    color: #334155;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.translation-diagnostic-details > summary::-webkit-details-marker {
    display: none;
}

.translation-diagnostic-details > summary::after {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-right: 2px solid #64748b;
    border-bottom: 2px solid #64748b;
    content: "";
    transform: rotate(45deg);
    transition: transform .18s ease;
}

.translation-diagnostic-details[open] > summary::after {
    transform: rotate(225deg);
}

.translation-diagnostic-details[open] > summary {
    border-bottom: 1px solid #e2e8f0;
}

.translation-diagnostic-grid--secondary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 12px;
}

.translation-process-alert {
    display: block;
    margin: 0;
}

.translation-process-alert strong {
    display: inline;
}

.translation-process-alert > span {
    display: block;
    margin-top: 4px;
    font-size: 13px;
}

/* Il body del details deve governare esplicitamente il layout: le vecchie grid-area
   appartenevano alla card pre-collapsible e potevano creare colonne implicite. */
.translation-locale-card__body {
    grid-template-columns: minmax(0, 1fr) minmax(300px, .9fr);
    column-gap: 22px;
    row-gap: 14px;
    align-items: start;
}

.translation-locale-card__body > .translation-progress,
.translation-locale-card__body > .translation-coverage-details,
.translation-locale-card__body > .translation-locale-card__controls {
    grid-area: auto;
    min-width: 0;
    max-width: 100%;
}

.translation-locale-card__body > .translation-progress {
    grid-column: 1 / -1;
}

.translation-locale-card__body > .translation-coverage-details {
    grid-column: 1;
}

.translation-locale-card__body > .translation-locale-card__controls {
    grid-column: 2;
}

.translation-locale-card__controls {
    gap: 12px;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
}

.translation-locale-card__controls .translation-default-field,
.translation-locale-card__controls .translation-inline-check,
.translation-locale-card__controls .translation-publication-status,
.translation-locale-card__controls .translation-publication-note {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.translation-locale-card__controls .translation-default-field > span {
    color: #334155;
    font-size: 12px;
    line-height: 1.35;
}

.translation-locale-card__controls select,
.translation-locale-card__controls input[type="number"] {
    min-width: 0;
    max-width: 100%;
}

.translation-locale-card__controls .translation-inline-check {
    align-items: center;
    margin: 0;
}

.translation-locale-card__controls .translation-publication-status,
.translation-locale-card__controls .translation-publication-note {
    box-sizing: border-box;
}

.translation-locale-card__summary-status {
    min-width: 0;
}

@media (max-width: 980px) {
    .translation-diagnostic-grid--primary,
    .translation-diagnostic-grid--secondary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .translation-locale-card__body {
        grid-template-columns: minmax(0, 1fr);
    }

    .translation-locale-card__body > .translation-progress,
    .translation-locale-card__body > .translation-coverage-details,
    .translation-locale-card__body > .translation-locale-card__controls {
        grid-column: 1;
    }

    .translation-locale-card__controls {
        padding: 12px;
        border-left: 1px solid #e2e8f0;
    }
}

@media (max-width: 620px) {
    .translation-automation-control {
        gap: 12px;
        padding: 14px;
    }

    .translation-diagnostic-grid--primary,
    .translation-diagnostic-grid--secondary {
        grid-template-columns: minmax(0, 1fr);
        gap: 9px;
    }

    .translation-diagnostic-grid--primary article,
    .translation-diagnostic-grid--secondary article {
        gap: 3px;
        padding: 11px 12px;
    }

    .translation-diagnostic-grid--secondary {
        padding: 9px;
    }

    .translation-locale-card__summary {
        padding: 13px 14px;
    }

    .translation-locale-card__summary-status {
        gap: 6px;
    }

    .translation-summary-chip,
    .translation-visibility-badge {
        min-height: 24px;
        padding: 3px 7px;
        font-size: .68rem;
    }

    .translation-locale-card__body {
        gap: 12px;
        padding: 0 14px 14px;
    }

    .translation-locale-card__controls {
        gap: 10px;
        padding: 11px;
    }
}


/* v680 · ordine lingue governato centralmente */
.translation-summary-chip--order {
    background: #f7f8fa;
    border-color: #d9dde3;
    color: #4f5663;
}

.translation-locale-order-field {
    grid-column: 1 / -1;
}

.translation-locale-order-field select {
    max-width: 180px;
}

.translation-locale-order-field small {
    display: block;
    margin-top: 5px;
}

@media (max-width: 759px) {
    .translation-locale-order-field select {
        max-width: 100%;
    }
}

/* v681 · ordinamento lingue drag&drop con salvataggio automatico */
.translation-locale-card__identity {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.translation-locale-card__identity-text {
    min-width: 0;
}

.translation-locale-drag-handle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid #d9dde3;
    border-radius: 9px;
    background: #fff;
    color: #111;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.translation-locale-drag-handle:hover,
.translation-locale-drag-handle:focus-visible {
    border-color: #aeb7c5;
    background: #f8fafc;
}

.translation-locale-drag-handle:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.translation-locale-drag-handle:active,
.translation-locale-card.is-dragging .translation-locale-drag-handle {
    cursor: grabbing;
}

.translation-locale-drag-handle svg {
    display: block;
    width: 20px;
    height: 20px;
    fill: currentColor;
    pointer-events: none;
}

.translation-locale-list.is-reordering {
    user-select: none;
}

.translation-locale-card.is-dragging {
    position: relative;
    z-index: 4;
    opacity: .78;
    box-shadow: 0 10px 24px rgb(15 23 42 / 14%);
}

.translation-locale-card.is-dragging .translation-locale-card__summary {
    background: #f8fafc;
}

.translation-locale-order-status {
    flex: 1 1 220px;
    min-width: 220px;
    color: #64748b;
    font-size: .82rem;
    line-height: 1.4;
}

.translation-locale-order-status[data-state="saving"],
.translation-locale-order-status[data-state="sorting"] {
    color: #475569;
    font-weight: 700;
}

.translation-locale-order-status[data-state="saved"] {
    color: #166534;
    font-weight: 700;
}

.translation-locale-order-status[data-state="error"] {
    color: #991b1b;
    font-weight: 700;
}

@media (max-width: 820px) {
    .translation-locale-card__identity {
        padding-right: 28px;
    }

    .translation-locale-drag-handle {
        width: 38px;
        min-width: 38px;
        height: 38px;
    }
}

@media (max-width: 620px) {
    .translation-locale-card__identity {
        gap: 8px;
    }

    .translation-locale-order-status {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
}


/* v682 · drag&drop lingue robusto per mouse e touch */
html.is-locale-reordering,
body.is-locale-reordering {
    overscroll-behavior: contain;
}

body.is-locale-reordering {
    cursor: grabbing;
}

.translation-locale-list.is-reordering {
    touch-action: none;
}

.translation-locale-list.is-reordering .translation-locale-card:not(.is-dragging) {
    transition: transform .12s ease, box-shadow .12s ease;
}

.translation-locale-card.is-dragging {
    outline: 2px solid #64748b;
    outline-offset: 2px;
}

.translation-locale-card.is-dragging > .translation-locale-card__summary {
    pointer-events: none;
}

/* v683 · maniglia drag fuori dal summary e wrapper ordinabile */
.translation-locale-sort-item {
    position: relative;
    min-width: 0;
}

.translation-locale-sort-item > .translation-locale-card {
    width: 100%;
    min-width: 0;
}

.translation-locale-sort-item > .translation-locale-drag-handle {
    position: absolute;
    top: 13px;
    left: 14px;
    z-index: 8;
    margin: 0;
}

.translation-locale-sort-item > .translation-locale-card > .translation-locale-card__summary {
    padding-left: 60px;
}

.translation-locale-list.is-reordering .translation-locale-sort-item:not(.is-dragging) {
    transition: transform .12s ease, box-shadow .12s ease;
}

.translation-locale-sort-item.is-dragging {
    z-index: 7;
    opacity: .8;
}

.translation-locale-sort-item.is-dragging > .translation-locale-card {
    outline: 2px solid #64748b;
    outline-offset: 2px;
    box-shadow: 0 10px 24px rgb(15 23 42 / 14%);
}

.translation-locale-sort-item.is-dragging > .translation-locale-card > .translation-locale-card__summary {
    background: #f8fafc;
    pointer-events: none;
}

.translation-locale-sort-item.is-dragging > .translation-locale-drag-handle {
    cursor: grabbing;
}

@media (max-width: 820px) {
    .translation-locale-sort-item > .translation-locale-drag-handle {
        top: 12px;
        left: 12px;
    }

    .translation-locale-sort-item > .translation-locale-card > .translation-locale-card__summary {
        padding-left: 64px;
    }

    .translation-locale-card__identity {
        padding-right: 28px;
    }
}

/* v684 · DnD nativo desktop + touch dedicato */
.translation-locale-list[data-drag-ready="1"] .translation-locale-drag-handle {
    cursor: grab;
}

.translation-locale-list.is-reordering .translation-locale-drag-handle,
.translation-locale-sort-item.is-dragging > .translation-locale-drag-handle {
    cursor: grabbing;
}

.translation-locale-sort-item[draggable="true"] {
    -webkit-user-drag: element;
}

.translation-locale-sort-item.is-dragging {
    opacity: .58;
}

.translation-locale-list.is-reordering .translation-locale-sort-item:not(.is-dragging) {
    transition: transform .1s ease;
}

body.is-locale-reordering {
    overscroll-behavior: contain;
}

/* v685 · drop marker reale e drag dalla maniglia */
.translation-locale-drop-marker {
    height: 10px;
    margin: 5px 4px;
    border: 2px dashed #64748b;
    border-radius: 999px;
    background: #f8fafc;
    box-shadow: inset 0 0 0 2px #fff;
}

.translation-locale-drag-handle[draggable="true"] {
    -webkit-user-drag: element;
    user-select: none;
    touch-action: none;
}

.translation-locale-sort-item.is-dragging {
    opacity: .42;
}

.translation-locale-list.is-reordering .translation-locale-sort-item:not(.is-dragging) {
    transition: none;
}

.translation-locale-touch-ghost {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2147483000;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 58px;
    padding: 10px 14px;
    border: 1px solid #94a3b8;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 36px rgb(15 23 42 / 20%);
    pointer-events: none;
    opacity: .94;
    will-change: transform;
}

.translation-locale-touch-ghost strong {
    font-size: .9rem;
    line-height: 1.25;
}

.translation-locale-touch-ghost small {
    color: #64748b;
    font-size: .76rem;
    line-height: 1.25;
}

/* v686 · sortable manuale indipendente dal drag nativo del browser */
.translation-locale-list[data-drag-ready="manual-v686"] .translation-locale-drag-handle {
    cursor: grab;
    -webkit-user-drag: none;
    user-select: none;
    touch-action: none;
}

.translation-locale-list.is-manual-reordering .translation-locale-drag-handle,
.translation-locale-sort-item.is-manual-drag-source > .translation-locale-drag-handle {
    cursor: grabbing;
}

.translation-locale-sort-item.is-manual-drag-source {
    display: none !important;
}

.translation-locale-manual-placeholder {
    min-height: 62px;
    margin: 0;
    border: 2px dashed #64748b;
    border-radius: 14px;
    background: #f8fafc;
    box-shadow: inset 0 0 0 3px #fff;
}

.translation-locale-list.is-manual-reordering .translation-locale-manual-placeholder {
    animation: translation-locale-placeholder-pulse .9s ease-in-out infinite alternate;
}

@keyframes translation-locale-placeholder-pulse {
    from { border-color: #64748b; background: #f8fafc; }
    to { border-color: #0f172a; background: #eef2f7; }
}

.translation-locale-manual-drag-ghost {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2147483000;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 58px;
    padding: 10px 14px;
    border: 1px solid #64748b;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 38px rgb(15 23 42 / 24%);
    pointer-events: none;
    opacity: .96;
    will-change: transform;
}

.translation-locale-manual-drag-ghost strong {
    font-size: .9rem;
    line-height: 1.25;
}

.translation-locale-manual-drag-ghost small {
    color: #64748b;
    font-size: .76rem;
    line-height: 1.25;
}

body.is-locale-reordering {
    cursor: grabbing;
    user-select: none;
    overscroll-behavior: contain;
}

/* v687 · sortable lingue isolato dal runtime precedente */
.rui-locale-sort-placeholder {
    min-height: 58px;
    border: 2px dashed #0f172a;
    border-radius: 14px;
    background: #f8fafc;
    box-shadow: inset 0 0 0 3px #fff;
}

.rui-locale-sort-ghost {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2147483600;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 58px;
    padding: 10px 14px;
    border: 1px solid #64748b;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 38px rgb(15 23 42 / 24%);
    pointer-events: none;
    opacity: .97;
    will-change: transform;
}

.rui-locale-sort-ghost strong {
    font-size: .9rem;
    line-height: 1.25;
}

.rui-locale-sort-ghost small {
    color: #64748b;
    font-size: .76rem;
    line-height: 1.25;
}

.translation-locale-sort-item.rui-locale-sort-source {
    display: none !important;
}

body.rui-locale-sort-active {
    cursor: grabbing;
    user-select: none;
    overscroll-behavior: contain;
}

.translation-locale-list.rui-locale-sort-list-active {
    user-select: none;
}

.translation-locale-list[data-sortable-runtime="v687"] .translation-locale-drag-handle {
    cursor: grab;
    touch-action: none;
    user-select: none;
    -webkit-user-drag: none;
}
