:root {
    color-scheme: light;
    --bg: #f5f7fb;
    --panel: #ffffff;
    --text: #172033;
    --muted: #647084;
    --line: #d9e0ec;
    --primary: #1f6feb;
    --primary-hover: #185abc;
    --danger: #c93535;
    --danger-hover: #a92c2c;
    --ok: #1a7f37;
    --AzzurroSky: #b8cbe0;
    --BlueSteel: #b0c4de;
    --MildGray: #eef2f6;
    --TestataSky: linear-gradient(#d8e5f3, #b7cbe1);
    --label-width: 220px;
    /* Reference monitor: 1600x900. Reference browser work area: 1600x820. */
    --screen-reference-width: 1600px;
    --screen-reference-height: 900px;
    --app-workarea-reference-height: 820px;
    --app-system-ui-reference-height: calc(var(--screen-reference-height) - var(--app-workarea-reference-height));
    --app-base-width: var(--screen-reference-width);
    --app-page-gutter: 16px;
    --app-wide-width: calc(var(--app-base-width) - (var(--app-page-gutter) * 2));
    --list-bottom-safe-gap: 24px;
    --table-fixed-offset: 190px;
    --list-table-fixed-offset: 166px;
    font-family: Arial, Helvetica, sans-serif;
}

.contract-preview-page {
    background: #d7dbe3;
    height: max(100vh, var(--app-workarea-reference-height));
    overflow: hidden;
}

.contract-preview-shell {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: max(100vh, var(--app-workarea-reference-height));
    max-width: var(--app-wide-width);
    padding-bottom: 16px;
    padding-top: 16px;
    width: var(--app-wide-width);
}

.contract-preview-toolbar {
    align-items: center;
    flex: 0 0 auto;
    margin-bottom: 12px;
}

.contract-preview-actions {
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px;
}

.copies-field {
    align-items: center;
    display: inline-flex;
    gap: 7px;
}

.copies-field span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.copies-field input {
    height: 34px;
    min-height: 34px;
    padding: 4px 6px;
    text-align: center;
    width: 58px;
}

.contract-preview-stage {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 14px;
    justify-content: flex-start;
    min-height: 0;
    overflow: auto;
    padding: 18px 0 22px;
}

.contract-preview-paper {
    aspect-ratio: 210 / 297;
    background: #ffffff;
    box-sizing: border-box;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.2);
    color: #111827;
    font-family: "Times New Roman", Times, serif;
    font-size: 13pt;
    height: auto;
    line-height: 1.34;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
    padding: 53px;
    position: relative;
    width: min(794px, calc(100% - 32px));
}

.contract-preview-paper p {
    margin: 0 0 8pt;
    white-space: normal;
}

.contract-preview-paper p.contract-preview-flow-line {
    margin: 0;
}

.contract-preview-paper p.contract-preview-flow-line-end {
    margin-bottom: 8pt;
}

.contract-preview-paper p:first-child {
    font-weight: 700;
    text-align: center;
}

.contract-preview-paper-copy {
    margin-top: 0;
}

.print-workflow-overlay {
    align-items: center;
    background: rgba(23, 32, 51, 0.34);
    display: none;
    inset: 0;
    justify-content: center;
    position: fixed;
    z-index: 3000;
}

.print-workflow-overlay.active {
    display: flex;
}

.print-workflow-dialog {
    background: var(--panel);
    border: 1px solid var(--line);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.24);
    width: 680px;
}

.print-workflow-title {
    background: var(--primary);
    color: #ffffff;
    font-size: 18px;
    font-weight: 700;
    padding: 14px 24px;
}

.print-workflow-body {
    display: grid;
    gap: 16px;
    padding: 24px;
}

.print-workflow-body .field {
    grid-template-columns: 180px minmax(0, 1fr);
    margin: 0;
    max-width: none;
}

.print-workflow-body input:disabled,
.print-workflow-body select:disabled {
    background: #eef1f5;
    color: var(--muted);
    cursor: not-allowed;
}

.print-workflow-note {
    color: var(--muted);
    font-size: 14px;
    margin: 0;
}

.print-workflow-actions {
    border-top: 1px solid var(--line);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    padding: 16px 24px;
}

.print-workflow-actions button {
    min-width: 120px;
}

.print-page-copy {
    margin-top: 0;
}

.print-preview-page {
    background: #d7dbe3;
    height: max(100dvh, var(--app-workarea-reference-height));
    overflow: hidden;
}

.print-preview-shell {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: calc(max(100dvh, var(--app-workarea-reference-height)) - 24px);
    max-width: var(--app-wide-width);
    padding-bottom: 12px;
    padding-top: 12px;
    width: var(--app-wide-width);
}

.print-preview-toolbar {
    flex: 0 0 auto;
    margin-bottom: 12px;
}

.print-preview-actions {
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px;
}

.print-preview-zoom {
    align-items: center;
    display: inline-flex;
    gap: 4px;
}

.print-preview-zoom .button {
    height: 34px;
    min-height: 34px;
    min-width: 34px;
    padding: 0;
    width: 34px;
}

.print-preview-zoom select {
    height: 34px;
    min-height: 34px;
    padding: 4px 8px;
    width: 82px;
}

.print-preview-stage {
    align-items: safe center;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 18px;
    min-height: 0;
    overflow-x: auto;
    overflow-y: auto;
    padding: 14px 0 18px;
    scrollbar-gutter: stable both-edges;
}

.print-preview-paper-frame {
    flex: 0 0 auto;
    position: relative;
}

.print-preview-paper {
    background: #ffffff;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.2);
    box-sizing: border-box;
    color: #111827;
    overflow: hidden;
    padding: 34px;
    position: relative;
}

.print-preview-paper-portrait {
    height: 1123px;
    width: 794px;
}

.print-preview-paper-landscape {
    aspect-ratio: 297 / 210;
    width: min(1460px, calc(100vw - 76px));
}

.contratto-cliente-print-preview .print-preview-paper-portrait {
    font-family: "Courier New", Courier, monospace;
    font-size: 11pt;
    line-height: 1.35;
    padding: 94px 94px 76px;
    position: relative;
}

.contratto-cliente-print-preview .print-preview-paper-portrait p {
    margin: 0 0 8pt;
    white-space: pre-wrap;
}

.contratto-cliente-print-preview .print-preview-paper-portrait p:first-child {
    font-weight: 400;
    text-align: left;
}

.contratto-cliente-print-preview .contract-preview-page-number {
    bottom: 28px;
    color: #111827;
    font-family: "Courier New", Courier, monospace;
    font-size: 11pt;
    position: absolute;
    right: 54px;
}

.lista-presenze-print-preview .print-preview-paper-landscape {
    min-height: 1032px;
    overflow: hidden;
    padding-bottom: 36px;
}

.print-preview-page-header {
    align-items: flex-start;
    display: flex;
    gap: 18px;
    justify-content: space-between;
    margin-bottom: 8px;
}

.print-preview-page-title {
    align-items: baseline;
    display: flex;
    gap: 18px;
}

.print-preview-page-header h2 {
    font-size: 20px;
    margin: 0 0 2px;
    text-align: left;
}

.print-preview-page-header p {
    color: #111827;
    font-weight: 700;
    margin: 0;
}

.print-preview-page-meta {
    align-items: flex-end;
    color: #111827;
    display: flex;
    flex-direction: column;
    font-size: 12px;
    font-weight: 700;
    gap: 3px;
    line-height: 1.2;
    text-align: right;
    white-space: nowrap;
}

.print-preview-page-header > span {
    color: #111827;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.print-preview-paper > h2 {
    font-size: 22px;
    margin: 0 0 4px;
    text-align: center;
}

.print-preview-paper > p {
    color: var(--muted);
    font-weight: 700;
    margin: 0 0 12px;
    text-align: center;
}

.contratto-cliente-print-preview .print-preview-paper-portrait p {
    color: #111827;
    font-weight: 400;
    margin: 0;
    text-align: left;
    white-space: pre-wrap;
}

.contratto-cliente-print-preview .contract-preview-paper p.contract-preview-template-line,
.contratto-cliente-print-preview .print-preview-paper-portrait p.contract-preview-template-line {
    line-height: 1.34;
    margin: 0;
    min-height: 1.34em;
    white-space: pre-wrap;
}

.contratto-cliente-print-preview .contract-preview-paper p.contract-preview-blank-line,
.contratto-cliente-print-preview .print-preview-paper-portrait p.contract-preview-blank-line {
    min-height: 1.34em;
}

.contratto-cliente-print-preview .print-preview-paper-portrait .contract-preview-title {
    font-weight: 700;
    text-align: center;
}

.contratto-cliente-print-preview .contract-preview-paper p:first-child {
    font-weight: 400;
    text-align: left;
}

.contratto-cliente-print-preview .contract-preview-paper .contract-preview-title {
    font-weight: 700;
    text-align: center;
}

.contratto-cliente-print-preview .contract-preview-paper p.contract-preview-title:first-child {
    font-weight: 700;
    text-align: center;
}

.contratto-cliente-print-preview .contract-preview-paper p.contract-preview-center-bold,
.contratto-cliente-print-preview .print-preview-paper-portrait p.contract-preview-center-bold {
    font-weight: 700;
    text-align: center;
}

.contratto-cliente-print-preview .contract-preview-paper p.contract-preview-center-normal,
.contratto-cliente-print-preview .print-preview-paper-portrait p.contract-preview-center-normal {
    font-weight: 400;
    text-align: center;
}

.contratto-cliente-print-preview .contract-preview-paper .contract-preview-timbro,
.contratto-cliente-print-preview .print-preview-paper-portrait .contract-preview-timbro {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 400;
    line-height: 1.25;
    text-align: center;
}

.contratto-cliente-print-preview .contract-preview-signature {
    margin: 8pt 0;
    text-align: center;
}

.contratto-cliente-print-preview .contract-preview-logo {
    margin: 0 0 8pt;
    text-align: left;
}

.contratto-cliente-print-preview .contract-preview-signature img {
    display: inline-block;
    max-height: 90px;
    max-width: 260px;
    object-fit: contain;
}

.contratto-cliente-print-preview .contract-preview-logo img {
    display: inline-block;
    max-height: 80px;
    max-width: 220px;
    object-fit: contain;
}

.contratto-cliente-print-preview .contract-preview-dati-azienda {
    margin: 0 0 8pt;
    white-space: pre-wrap;
}

.contratto-cliente-print-preview .contract-preview-tab-line {
    display: inline-block;
    min-height: inherit;
    position: relative;
    width: 100%;
}

.contratto-cliente-print-preview .contract-preview-tab-line-with-company-data {
    min-height: inherit;
}

.contratto-cliente-print-preview .contract-preview-tab-stop {
    position: absolute;
    top: 0;
}

.contratto-cliente-print-preview .contract-preview-tab-stop-right {
    text-align: right;
}

.contratto-cliente-print-preview .contract-preview-absolute-line {
    display: block;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.contratto-cliente-print-preview .contract-preview-tab-measure {
    display: inline-block;
    pointer-events: none;
    visibility: hidden;
    vertical-align: top;
}

.contratto-cliente-print-preview .contract-preview-inline-logo,
.contratto-cliente-print-preview .contract-preview-dati-azienda-inline,
.contratto-cliente-print-preview .contract-preview-timbro-inline,
.contratto-cliente-print-preview .contract-preview-inline-signature {
    display: inline-block;
    vertical-align: top;
}

.contratto-cliente-print-preview .contract-preview-inline-logo img {
    display: inline-block;
    max-height: 80px;
    max-width: 220px;
    object-fit: contain;
}

.contratto-cliente-print-preview .contract-preview-inline-signature img {
    display: inline-block;
    max-height: 90px;
    max-width: 260px;
    object-fit: contain;
}

.print-preview-table {
    border-collapse: collapse;
    font-size: 11px;
    line-height: 1.12;
    table-layout: fixed;
    width: 100%;
}

.print-preview-table th,
.print-preview-table td {
    border: 1px solid #aeb7c5;
    overflow: hidden;
    padding: 3px 4px;
    text-overflow: ellipsis;
    vertical-align: top;
}

.print-preview-table th {
    background: #eef2f7;
    color: #111827;
    font-weight: 700;
}

.print-preview-table td span {
    color: #374151;
}

.lista-presenze-print-preview .print-preview-table .col-code {
    width: 5.5%;
}

.lista-presenze-print-preview .print-preview-table .col-name {
    width: 16%;
}

.lista-presenze-print-preview .print-preview-table .col-contract {
    width: 7.5%;
}

.lista-presenze-print-preview .print-preview-table .col-period {
    width: 9.5%;
}

.lista-presenze-print-preview .print-preview-table .col-money {
    width: 7.5%;
}

.lista-presenze-print-preview .print-preview-table .col-days,
.lista-presenze-print-preview .print-preview-table .col-absence {
    width: 4.8%;
}

.lista-presenze-print-preview .print-preview-table .col-bank {
    width: 17.7%;
}

.lista-presenze-print-preview .print-preview-table th:nth-child(1),
.lista-presenze-print-preview .print-preview-table td:nth-child(1),
.lista-presenze-print-preview .print-preview-table th:nth-child(3),
.lista-presenze-print-preview .print-preview-table td:nth-child(3),
.lista-presenze-print-preview .print-preview-table th:nth-child(4),
.lista-presenze-print-preview .print-preview-table td:nth-child(4),
.lista-presenze-print-preview .print-preview-table th:nth-child(n+6):nth-child(-n+11),
.lista-presenze-print-preview .print-preview-table td:nth-child(n+6):nth-child(-n+11) {
    text-align: center;
}

.lista-presenze-print-preview .print-preview-table th:nth-child(5),
.lista-presenze-print-preview .print-preview-table td:nth-child(5),
.lista-presenze-print-preview .print-preview-table th:nth-child(12),
.lista-presenze-print-preview .print-preview-table td:nth-child(12) {
    text-align: right;
}

.fattura-commerciale-print-preview .print-preview-paper {
    background: transparent;
    border: 0;
    height: 297mm;
    padding: 0;
    width: 210mm;
}

.fattura-commerciale-print-preview .invoice-page {
    box-shadow: none;
    margin: 0;
}

@media print {
    body {
        min-height: 0;
        min-width: 0;
    }

    @page contractPreview {
        size: 210mm 297mm;
        margin: 0;
    }

    .contract-preview-page {
        background: #ffffff;
    }

    .contract-preview-page .contract-preview-toolbar,
    .contract-preview-page .loading-overlay {
        display: none !important;
    }

    .contract-preview-page .page,
    .contract-preview-page .contract-preview-shell,
    .contract-preview-page .contract-preview-stage {
        background: #ffffff;
        box-shadow: none;
        margin: 0;
        max-width: none;
        padding: 0;
        width: auto;
    }

    .contract-preview-paper {
        break-after: page;
        box-shadow: none;
        font-size: 11pt;
        height: auto;
        line-height: 1.26;
        min-height: 0;
        overflow: visible;
        padding: 0;
        width: auto;
    }

    .contract-preview-paper-copy {
        break-before: page;
        margin-top: 0;
    }
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    min-height: 100vh;
    min-width: var(--app-base-width);
}

.page {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
    padding: 28px 0 48px;
}

.wide-page {
    width: var(--app-wide-width);
}

.list-page {
    padding: 20px 0 28px;
}

.list-page .topbar {
    margin-bottom: 16px;
}

.list-page .panel {
    padding: 14px 16px 16px;
}

.list-page .toolbar {
    margin-bottom: 12px;
}

.data-list-skin .table-wrap th {
    background: linear-gradient(#c7d7e8, #b8cbe0 52%, #a9bed6);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72), inset 0 -1px 0 rgba(72, 91, 112, 0.26);
    color: #0e1824;
    font-weight: 700;
    height: 28px;
    line-height: 1.15;
    min-height: 28px;
    padding-bottom: 0;
    padding-top: 0;
    vertical-align: middle;
}

.data-list-skin .table-wrap th a,
.data-list-skin .table-wrap .sort-link,
.data-list-skin .table-wrap .sort-link.active {
    align-items: center;
    color: #0e1824;
    display: inline-flex;
    min-height: 28px;
}

.provvigioni-filter-label {
    align-items: center;
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    box-sizing: border-box;
    color: #000000;
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 700;
    justify-content: center;
    height: 30px;
    min-height: 30px;
    padding: 2px 10px;
    white-space: nowrap;
}

.provvigioni-filter-form {
    align-items: center;
    flex: 1 1 auto;
    gap: 14px;
    max-width: none;
    min-width: 0;
    width: auto;
}

.provvigioni-filter-form input,
.provvigioni-filter-form select {
    border-radius: 6px;
    min-height: 30px;
}

.provvigioni-anno-filter {
    min-width: 96px;
}

.provvigioni-mese-filter {
    min-width: 145px;
}

.provvigioni-stato-filter {
    min-width: 165px;
}

.provvigioni-agenzia-filter {
    min-width: 220px;
}

.provvigioni-total-field {
    align-items: center;
    display: inline-flex;
    gap: 6px;
}

.provvigioni-total-field label {
    align-items: center;
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    box-sizing: border-box;
    color: #000000;
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 700;
    height: 30px;
    min-height: 30px;
    min-width: 112px;
    padding: 2px 10px;
    white-space: nowrap;
}

.provvigioni-total-field input {
    border-color: #8a8f98;
    border-radius: 6px;
    font-weight: 700;
    min-height: 30px;
    text-align: right;
    width: 120px;
}

.provvigioni-actions {
    margin-left: auto;
    margin-right: 16px;
}

.provvigioni-auto-submit {
    height: 1px;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 1px;
}

.provvigioni-agenzie-table-wrap th:nth-child(n+5):nth-child(-n+10),
.provvigioni-agenzie-table-wrap td:nth-child(n+5):nth-child(-n+10) {
    text-align: center;
}

.riepilogo-filter-form {
    align-items: center;
    flex: 1 1 auto;
    gap: 16px;
    max-width: none;
    min-width: 0;
    width: auto;
}

.riepilogo-filter-form select {
    border-radius: 6px;
    min-height: 30px;
}

.riepilogo-filter-form #riepilogo_anno {
    min-width: 96px;
}

.riepilogo-filter-form #riepilogo_mese {
    min-width: 150px;
}

.riepilogo-auto-submit {
    height: 1px;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 1px;
}

.riepilogo-actions {
    margin-left: auto;
    margin-right: 16px;
}

.riepilogo-table-wrap table {
    min-width: 1540px;
}

.riepilogo-table-wrap th:nth-child(1),
.riepilogo-table-wrap td:nth-child(1),
.riepilogo-table-wrap th:nth-child(3),
.riepilogo-table-wrap td:nth-child(3),
.riepilogo-table-wrap th:nth-child(6),
.riepilogo-table-wrap td:nth-child(6),
.riepilogo-table-wrap th:nth-child(7),
.riepilogo-table-wrap td:nth-child(7),
.riepilogo-table-wrap th:nth-child(9),
.riepilogo-table-wrap td:nth-child(9) {
    text-align: center;
}

.riepilogo-table-wrap .numeric-cell {
    text-align: right;
}

.riepilogo-incassato-input,
.riepilogo-pagato-input {
    background: #ffffff;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    box-sizing: border-box;
    height: 28px;
    min-height: 28px;
    padding: 3px 8px;
    text-align: right;
    width: 118px;
}

.riepilogo-table-wrap th:nth-child(2),
.riepilogo-table-wrap td:nth-child(2),
.riepilogo-table-wrap th:nth-child(8),
.riepilogo-table-wrap td:nth-child(8) {
    min-width: 190px;
}

.riepilogo-table-wrap th:nth-child(12),
.riepilogo-table-wrap td:nth-child(12) {
    min-width: 230px;
}

.attivita-utenti-filter-form select {
    min-width: 190px;
}

.attivita-utenti-filter-form .attivita-anno-filter,
.attivita-utenti-filter-form .attivita-giorno-filter {
    min-width: 92px;
}

.attivita-utenti-filter-form .attivita-mese-filter {
    min-width: 150px;
}

.attivita-utenti-filter-form .attivita-utente-filter {
    min-width: 260px;
}

.attivita-utenti-table-wrap table {
    min-width: 1240px;
}

.attivita-utenti-table-wrap th:nth-child(1),
.attivita-utenti-table-wrap td:nth-child(1) {
    width: 92px;
    text-align: center;
}

.attivita-utenti-table-wrap th:nth-child(2),
.attivita-utenti-table-wrap td:nth-child(2) {
    width: 72px;
    text-align: center;
}

.attivita-utenti-table-wrap th:nth-child(3),
.attivita-utenti-table-wrap td:nth-child(3) {
    width: 260px;
}

.attivita-utenti-table-wrap th:nth-child(4),
.attivita-utenti-table-wrap td:nth-child(4),
.attivita-utenti-table-wrap th:nth-child(5),
.attivita-utenti-table-wrap td:nth-child(5) {
    width: 130px;
}

.attivita-utenti-table-wrap th:nth-child(6),
.attivita-utenti-table-wrap td:nth-child(6) {
    width: 70px;
    text-align: center;
}

.attivita-utenti-table-wrap th:nth-child(7),
.attivita-utenti-table-wrap td:nth-child(7),
.attivita-utenti-table-wrap th:nth-child(8),
.attivita-utenti-table-wrap td:nth-child(8) {
    width: 170px;
}

.topbar {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 22px;
}

.top-actions {
    align-items: center;
    display: flex;
    gap: 10px;
}

.field-Importo input,
.field-Imponibile input,
.field-Iva input,
.field-Totale input {
    text-align: right;
}

.invoice-calculate-button {
    min-width: 132px;
}

.fattura-calcolo-overlay {
    align-items: center;
    background: rgba(23, 32, 51, 0.34);
    display: none;
    inset: 0;
    justify-content: center;
    padding: 26px;
    position: fixed;
    z-index: 90;
}

.fattura-calcolo-overlay.active {
    display: flex;
}

.fattura-calcolo-dialog {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 22px 48px rgba(23, 32, 51, 0.22);
    max-height: calc(100vh - 52px);
    overflow: hidden;
    width: 1180px;
}

.fattura-calcolo-title {
    background: var(--primary);
    color: #ffffff;
    font-size: 18px;
    font-weight: 700;
    padding: 13px 18px;
}

.fattura-calcolo-content {
    display: grid;
    gap: 14px;
    padding: 36px 18px 16px;
}

.fattura-calcolo-client {
    align-items: center;
    display: flex;
    gap: 14px;
}

.fattura-calcolo-client span,
.fattura-calcolo-column span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.fattura-calcolo-client strong {
    color: var(--text);
    font-size: 18px;
}

.fattura-calcolo-contracts {
    border: 1px solid var(--line);
    border-radius: 6px;
    height: 240px;
    max-height: 240px;
    overflow: auto;
}

.fattura-calcolo-contracts table {
    border-collapse: collapse;
    min-width: 1060px;
    width: 100%;
}

.fattura-calcolo-contracts th,
.fattura-calcolo-contracts td {
    border-bottom: 1px solid var(--line);
    font-size: 13px;
    padding: 9px 10px;
    text-align: left;
    white-space: nowrap;
}

.fattura-calcolo-contracts th {
    background: #eef3fb;
    color: var(--text);
    font-weight: 700;
    position: sticky;
    top: 0;
    z-index: 1;
}

.fattura-calcolo-contracts tr.is-current td {
    background: #f4f6ff;
}

.fattura-calcolo-summary {
    display: grid;
    gap: 18px;
    grid-template-columns: 1fr 1fr;
}

.fattura-calcolo-column {
    border: 1px solid var(--line);
    border-radius: 6px;
    display: grid;
    gap: 8px;
    padding: 12px;
}

.fattura-calcolo-column div {
    align-items: center;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(190px, 1fr) minmax(120px, auto);
}

.fattura-calcolo-column strong {
    color: var(--text);
    font-size: 14px;
    text-align: right;
}

.fattura-calcolo-actions {
    border-top: 1px solid var(--line);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    padding: 14px 18px;
}

.fattura-calcolo-actions button {
    min-width: 128px;
}

.settings-save-button {
    min-width: 128px;
}

.settings-page {
    padding-top: 18px;
}

.settings-page .topbar {
    margin-bottom: 12px;
}

.settings-page .brand-heading {
    gap: 9px;
}

.settings-page .app-logo {
    height: 52px;
    width: 52px;
}

.settings-page h1 {
    font-size: 23px;
}

.settings-page .subtitle {
    font-size: 13px;
    margin-top: 2px;
}

.user-box {
    align-items: center;
    display: flex;
    gap: 12px;
}

.user-box span {
    color: var(--muted);
    font-weight: 400;
}

.brand-heading {
    align-items: center;
    display: flex;
    gap: 12px;
}

.app-logo-link {
    border-radius: 8px;
    display: block;
    line-height: 0;
}

.app-logo-link:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 3px;
}

.app-logo {
    display: block;
    height: 52px;
    object-fit: contain;
    width: 52px;
}

h1 {
    font-size: 28px;
    line-height: 1.2;
    margin: 0;
}

.subtitle {
    color: var(--muted);
    margin: 6px 0 0;
}

.panel {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(23, 32, 51, 0.06);
    padding: 18px;
}

.login-body {
    align-items: center;
    background:
        radial-gradient(circle at 18% 15%, rgba(255, 237, 232, 0.78), transparent 34%),
        linear-gradient(135deg, #fff8f6 0%, #f7f8fb 52%, #fff 100%);
    display: flex;
    justify-content: center;
    min-height: 100vh;
    padding: 24px;
}

.login-shell {
    background: #ffffff;
    border-radius: 30px;
    box-shadow: 0 24px 60px rgba(25, 34, 52, 0.16);
    display: grid;
    grid-template-columns: minmax(560px, 1fr) minmax(560px, 1fr);
    min-height: min(650px, calc(100vh - 48px));
    overflow: hidden;
    width: min(1500px, calc(100vw - 48px));
}

.login-brand-panel {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.82) 48%, rgba(255, 255, 255, 0.08) 72%),
        url("/assets/ebe3ba16a58e87d85b3208ba316c6861.jpg") center bottom / cover no-repeat;
    color: #172236;
    min-height: 650px;
    overflow: hidden;
    padding: 32px 70px 0;
    position: relative;
}

.login-brand-content {
    position: relative;
    text-align: center;
    z-index: 2;
}

.login-brand {
    align-items: center;
    display: inline-flex;
    gap: 24px;
    justify-content: center;
    margin-bottom: 12px;
}

.login-brand-mark {
    align-items: center;
    background: #e6002e;
    border-radius: 50%;
    display: inline-flex;
    height: 78px;
    justify-content: center;
    width: 78px;
}

.login-brand-mark img,
.login-card-logo img {
    display: block;
    height: 72%;
    object-fit: contain;
    width: 72%;
}

.login-brand-text {
    color: #172236;
    font-size: 50px;
    font-weight: 700;
    line-height: 1;
}

.login-brand-text span,
.login-brand-panel h1 span {
    color: #e6002e;
}

.login-brand-panel h1 {
    font-size: 26px;
    font-weight: 700;
    line-height: 1.32;
    margin: 0;
}

.login-brand-separator {
    align-items: center;
    color: #e6002e;
    display: grid;
    gap: 18px;
    grid-template-columns: 1fr 28px 1fr;
    margin: 14px auto 10px;
    max-width: 420px;
}

.login-brand-separator span {
    background: #f0264d;
    height: 2px;
}

.login-brand-separator svg,
.login-care-band svg,
.login-feature svg,
.login-input-wrap svg,
.login-submit svg,
.login-secure-note svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.login-brand-separator svg {
    height: 28px;
    stroke-width: 2.2;
    width: 28px;
}

.login-brand-subtitle {
    color: #46546a;
    font-size: 16px;
    line-height: 1.42;
    margin: 0 auto;
}

.login-feature-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(4, 1fr);
    margin: 14px auto 0;
    max-width: 560px;
}

.login-feature {
    align-items: center;
    display: grid;
    gap: 8px;
    justify-items: center;
}

.login-feature span {
    align-items: center;
    background: rgba(255, 255, 255, 0.96);
    border-radius: 16px;
    box-shadow: 0 10px 22px rgba(25, 34, 52, 0.12);
    color: #e6002e;
    display: inline-flex;
    height: 46px;
    justify-content: center;
    width: 46px;
}

.login-feature svg {
    height: 25px;
    stroke-width: 2.1;
    width: 25px;
}

.login-feature strong {
    color: #1a263a;
    font-size: 13px;
    line-height: 1.25;
}

.login-photo {
    display: none;
}

.login-care-band {
    align-items: center;
    background: linear-gradient(135deg, #ed0035 0%, #ff6479 100%);
    bottom: 0;
    color: #ffffff;
    display: flex;
    gap: 22px;
    height: 104px;
    left: 0;
    padding: 25px 70px 16px;
    position: absolute;
    right: 0;
    z-index: 2;
}

.login-care-band::before {
    background: rgba(255, 255, 255, 0.26);
    border-radius: 50% 50% 0 0;
    content: "";
    height: 58px;
    left: -8%;
    position: absolute;
    right: -8%;
    top: -34px;
}

.login-care-band svg {
    flex: 0 0 auto;
    height: 42px;
    stroke-width: 1.9;
    width: 42px;
}

.login-care-band p {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    margin: 0;
    position: relative;
}

.login-form-panel {
    align-items: center;
    background: #ffffff;
    display: flex;
    justify-content: center;
    padding: 24px 70px;
}

.login-card {
    border: 1px solid #e5eaf1;
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(25, 34, 52, 0.06);
    max-width: 610px;
    padding: 24px 44px 22px;
    width: 100%;
}

.login-card-logo {
    align-items: center;
    background: #ffe3e8;
    border-radius: 50%;
    display: flex;
    height: 62px;
    justify-content: center;
    margin: 0 auto 14px;
    width: 62px;
}

.login-card-logo img {
    background: #e6002e;
    border-radius: 50%;
    padding: 10px;
}

.login-card h2 {
    color: #172236;
    font-size: 28px;
    line-height: 1.2;
    margin: 0;
    text-align: center;
}

.login-card-copy {
    color: #647187;
    font-size: 16px;
    line-height: 1.45;
    margin: 8px 0 22px;
    text-align: center;
}

.login-error {
    margin: -8px 0 18px;
}

.login-modern-field {
    display: grid;
    align-items: center;
    gap: 12px;
    grid-template-columns: 150px minmax(0, 1fr);
    margin-bottom: 16px;
}

.login-modern-field:last-of-type {
    margin-bottom: 0;
}

.login-credential-panel {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    border: 1px solid #d6e0ec;
    border-radius: 14px;
    box-shadow: 0 8px 18px rgba(25, 34, 52, 0.06);
    display: grid;
    gap: 16px;
    margin: 0 0 18px;
    padding: 18px 18px 16px;
}

.login-credential-panel .login-modern-field {
    margin-bottom: 0;
}

.login-credential-panel legend {
    background: #b0c4de;
    border: 1px solid #9fb6d2;
    border-radius: 999px;
    color: #172236;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    padding: 7px 16px;
}

.login-user-panel {
    margin-bottom: 22px;
    transition: opacity 0.16s ease, filter 0.16s ease;
}

.login-user-panel-disabled {
    filter: grayscale(0.08);
    opacity: 0.62;
}

.login-modern-field label {
    color: #1f2b42;
    font-weight: 700;
    line-height: 1.2;
    text-align: right;
}

.login-input-wrap {
    align-items: center;
    background: #ffffff;
    border: 1px solid #dbe2eb;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(25, 34, 52, 0.05);
    color: #69778d;
    display: flex;
    min-height: 52px;
    padding: 0 18px;
    position: relative;
}

.login-input-wrap:focus-within {
    border-color: #e6002e;
    box-shadow: 0 0 0 4px rgba(230, 0, 46, 0.11);
}

.login-input-wrap > svg {
    flex: 0 0 auto;
    height: 25px;
    stroke-width: 1.8;
    width: 25px;
}

.login-input-wrap input {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #1f2b42;
    flex: 1 1 auto;
    font-size: 16px;
    font-style: italic;
    height: 50px;
    min-width: 0;
    padding: 0 18px;
}

.login-input-wrap input:focus {
    box-shadow: none;
    outline: none;
}

.login-input-wrap input::placeholder {
    color: #99a5b8;
}

.login-submit {
    align-items: center;
    background: linear-gradient(135deg, #e6002e 0%, #f0143d 100%);
    border: 0;
    border-radius: 10px;
    box-shadow: 0 14px 26px rgba(230, 0, 46, 0.24);
    color: #ffffff;
    display: inline-flex;
    font-size: 21px;
    font-weight: 700;
    gap: 14px;
    justify-content: center;
    min-height: 56px;
    width: 100%;
}

.login-submit:hover,
.login-submit:focus-visible {
    background: linear-gradient(135deg, #d6002a 0%, #e6002e 100%);
}

.login-submit svg {
    height: 28px;
    stroke-width: 2.2;
    width: 28px;
}

.login-social-divider {
    align-items: center;
    color: #8b98ab;
    display: grid;
    gap: 22px;
    grid-template-columns: 1fr auto 1fr;
    margin: 20px 0 14px;
}

.login-social-divider span {
    background: #dce3ec;
    height: 1px;
}

.login-social-divider em {
    font-style: normal;
}

.login-social-row {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr 1fr;
}

.login-social-button {
    align-items: center;
    background: #ffffff;
    border: 1px solid #dfe5ee;
    border-radius: 10px;
    box-shadow: 0 6px 14px rgba(25, 34, 52, 0.07);
    color: #26334b;
    display: inline-flex;
    font-size: 16px;
    font-weight: 600;
    gap: 13px;
    justify-content: center;
    min-height: 48px;
}

.login-google-mark {
    color: #4285f4;
    font-size: 24px;
    font-weight: 800;
}

.login-microsoft-mark {
    display: grid;
    gap: 2px;
    grid-template-columns: 10px 10px;
}

.login-microsoft-mark i {
    display: block;
    height: 10px;
    width: 10px;
}

.login-microsoft-mark i:nth-child(1) { background: #f35325; }
.login-microsoft-mark i:nth-child(2) { background: #81bc06; }
.login-microsoft-mark i:nth-child(3) { background: #05a6f0; }
.login-microsoft-mark i:nth-child(4) { background: #ffba08; }

.login-secure-note {
    align-items: center;
    color: #8b98ab;
    display: flex;
    font-size: 16px;
    gap: 12px;
    justify-content: center;
    margin: 22px 0 0;
}

.login-secure-note svg {
    color: #e6002e;
    height: 26px;
    stroke-width: 1.9;
    width: 26px;
}

.login-copyright {
    color: #8b98ab;
    font-size: 15px;
    margin: 18px 0 0;
    text-align: center;
}

.menu-home {
    background: #edf2f8;
}

.menu-home .topbar {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(23, 32, 51, 0.08);
    margin-left: auto;
    margin-right: auto;
    padding: 16px 18px;
    width: min(1204px, 100%);
}

.main-menu-panel {
    padding: 0;
}

.main-menu {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 auto;
    min-height: 420px;
    position: relative;
    width: min(1204px, 100%);
    -webkit-user-select: none;
    user-select: none;
}

.main-menu *,
.main-menu *::before,
.main-menu *::after {
    -webkit-user-drag: none;
    user-select: none;
}

.menu-group {
    background: #f8fafc;
    border: 1px solid #dce4ef;
    border-left: 5px solid #9aa6b7;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(23, 32, 51, 0.06);
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 10px 12px;
    position: static;
    width: 280px;
    z-index: 4;
}

.menu-group.menu-work {
}

.menu-group.menu-tables {
}

.menu-group.is-open {
    background: #dbeafe;
    border-left-color: #1f6feb;
    box-shadow: inset 0 0 0 1px rgba(31, 111, 235, 0.18), 0 12px 28px rgba(31, 111, 235, 0.16);
    z-index: 5;
}

.menu-group.is-open .menu-group-heading {
    color: #164f9f;
}

.menu-group.is-open .menu-icon {
    box-shadow: 0 0 0 2px rgba(31, 111, 235, 0.18);
}

.menu-group.disabled {
    background: #f8fafc;
    border-left-color: #9aa6b7;
}

.menu-group-heading {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: flex;
    font: inherit;
    gap: 10px;
    margin: 0;
    padding: 0;
    text-align: left;
    width: 100%;
    -webkit-user-select: none;
    user-select: none;
    z-index: 5;
}

.menu-group h2 {
    font-size: 19px;
    line-height: 1.2;
    margin: 0;
}

.menu-toggle-mark {
    align-items: center;
    background: #eef3f8;
    border: 1px solid #d9e0ec;
    border-radius: 999px;
    color: #647084;
    display: inline-flex;
    flex: 0 0 26px;
    font-size: 18px;
    font-weight: 700;
    height: 26px;
    justify-content: center;
    margin-left: auto;
    width: 26px;
}

.menu-group.is-open .menu-toggle-mark {
    background: #dbeafe;
    border-color: #b9d1f5;
    color: #164f9f;
}

.menu-group.is-open .menu-toggle-mark::before {
    content: "-";
}

.menu-group.is-open .menu-toggle-mark {
    font-size: 0;
}

.menu-group.is-open .menu-toggle-mark::before {
    font-size: 18px;
}

.menu-mark {
    border-radius: 6px;
    display: inline-block;
    flex: 0 0 12px;
    height: 34px;
    width: 12px;
}

.menu-icon {
    border-radius: 8px;
    display: block;
    flex: 0 0 40px;
    height: 40px;
    object-fit: contain;
    width: 40px;
}

.menu-group.menu-prints:not(.is-open) .menu-icon {
    filter: grayscale(1) saturate(0.2);
    opacity: 0.86;
}

.menu-mark-clienti {
    background: #1f6feb;
}

.menu-mark-badanti {
    background: #227a68;
}

.menu-mark-tabelle {
    background: #866118;
}

.menu-mark-contabilita {
    background: #7d6a96;
}

.menu-mark-documenti {
    background: #b25757;
}

.menu-mark-strumenti {
    background: #647084;
}

.menu-links {
    display: grid;
    gap: 8px;
    left: 304px;
    margin-top: 0;
    position: absolute;
    top: 0;
    width: min(900px, calc(100vw - 360px));
    z-index: 2;
}

.menu-group.is-open .menu-links {
    background: #f8fafc;
    border: 1px solid #dce4ef;
    border-left: 5px solid #1f6feb;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(23, 32, 51, 0.06);
    padding: 16px;
}

.menu-links-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.menu-links-disabled-group {
    display: grid;
    gap: 8px;
}

.menu-link-left,
.menu-links-disabled-group .menu-link-left {
    grid-column: 1;
}

.menu-links-disabled-group .menu-link-right-row-2,
.menu-links-disabled-group .menu-link-right-row-3 {
    grid-column: 2;
}

.menu-links-disabled-group .menu-link-left-row-1,
.menu-links-disabled-group .menu-link-left-row-2,
.menu-links-disabled-group .menu-link-left-row-3 {
    grid-column: 1;
}

.menu-links-disabled-group .menu-link-left-row-1 {
    grid-row: 1;
}

.menu-links-disabled-group .menu-link-left-row-2 {
    grid-row: 2;
}

.menu-links-disabled-group .menu-link-left-row-3 {
    grid-row: 3;
}

.menu-links-disabled-group .menu-link-right-row-2 {
    grid-row: 2;
}

.menu-links-disabled-group .menu-link-right-row-3 {
    grid-row: 3;
}

.menu-link {
    align-items: center;
    background: #f6f8fb;
    border: 1px solid #dce4ef;
    border-radius: 6px;
    color: var(--text);
    display: flex;
    font-weight: 700;
    justify-content: space-between;
    min-height: 40px;
    overflow: hidden;
    padding: 8px 11px;
    text-decoration: none;
    text-overflow: ellipsis;
    -webkit-user-select: none;
    user-select: none;
    white-space: nowrap;
}

button.menu-link {
    appearance: none;
    cursor: pointer;
    font: inherit;
    text-align: left;
    width: 100%;
}

.menu-link::after {
    display: none;
}

.menu-link:hover,
.menu-link:focus-visible {
    background: #e7f0ff;
    border-color: #b9d1f5;
    color: #164f9f;
    outline: none;
}

.menu-link.placeholder {
    color: var(--muted);
    font-weight: 400;
}

.menu-home .menu-link,
.menu-home .menu-link.placeholder {
    font-weight: 400;
}

.menu-link.placeholder:hover {
    background: #f6f8fb;
    border-color: #dce4ef;
    color: var(--muted);
}

.menu-exercise-overlay {
    align-items: center;
    background: rgba(23, 32, 51, 0.34);
    display: none;
    inset: 0;
    justify-content: center;
    padding: 26px;
    position: fixed;
    z-index: 100;
}

.menu-exercise-overlay.active {
    display: flex;
}

.menu-exercise-dialog {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 22px 48px rgba(23, 32, 51, 0.22);
    max-height: calc(100vh - 52px);
    overflow: hidden;
    width: min(390px, calc(100vw - 48px));
}

.menu-exercise-title {
    background: var(--primary);
    color: #ffffff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
    padding: 13px 18px;
}

.menu-exercise-fields {
    display: grid;
    gap: 14px;
    grid-template-columns: 1fr;
    padding: 36px 18px 16px;
}

.menu-exercise-fields .field {
    max-width: none;
}

.menu-exercise-fields label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.menu-exercise-fields input {
    border-color: var(--line);
}

.menu-exercise-error {
    color: #9a3412;
    font-size: 13px;
    font-weight: 700;
    margin: 0;
}

.menu-exercise-actions {
    align-items: center;
    border-top: 1px solid var(--line);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 18px;
    padding: 14px 18px;
}

.menu-exercise-actions .button,
.menu-exercise-actions button {
    min-width: 104px;
}

.print-module-layout {
    align-items: stretch;
    display: grid;
    gap: 16px;
    grid-template-columns: 420px minmax(0, 1fr);
}

.print-client-list,
.print-client-detail {
    min-height: 620px;
}

.stampa-rinuncia-incarico-page .print-module-layout {
    grid-template-columns: 420px minmax(0, 1fr);
}

.stampa-rinuncia-incarico-page .print-client-list,
.stampa-rinuncia-incarico-page .rinuncia-detail-panel {
    height: calc(100vh - 126px);
    min-height: 620px;
}

.stampa-rinuncia-incarico-page .rinuncia-detail-panel {
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow: auto;
}

.stampa-rinuncia-incarico-page .rinuncia-assignment-frame {
    margin-top: 0;
}

.rinuncia-client-grid {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.rinuncia-client-headings,
.rinuncia-client-row {
    display: grid;
    gap: 8px;
    grid-template-columns: 100px minmax(260px, 1fr) minmax(170px, 0.65fr) 72px;
}

.rinuncia-client-heading {
    align-items: center;
    background: var(--BlueSteel);
    border: 1px solid #8aa8c5;
    border-radius: 4px;
    color: #17395c;
    display: flex;
    font-weight: 700;
    min-height: 28px;
    padding: 3px 8px;
}

.rinuncia-client-row input,
.rinuncia-client-row .lookup-button {
    height: 30px;
    min-height: 30px;
}

.rinuncia-client-actions {
    display: grid;
    gap: 4px;
    grid-template-columns: repeat(2, 34px);
}

.rinuncia-client-actions .lookup-button,
.rinuncia-client-clear {
    height: 30px;
    min-height: 30px;
    width: 34px;
}

.rinuncia-client-clear {
    background: #fff;
    border: 1px solid var(--field-border, #9ca3af);
    border-radius: 4px;
    cursor: pointer;
    position: relative;
}

.rinuncia-client-clear::before,
.rinuncia-client-clear::after {
    background: #8b2f2f;
    content: "";
    height: 2px;
    left: 9px;
    position: absolute;
    top: 13px;
    width: 14px;
}

.rinuncia-client-clear::before {
    transform: rotate(45deg);
}

.rinuncia-client-clear::after {
    transform: rotate(-45deg);
}

.rinuncia-client-clear:hover,
.rinuncia-client-clear:focus-visible {
    background: #fff0f0;
    border-color: #b85c5c;
    outline: none;
}

.rinuncia-client-code {
    text-align: center;
}

.rinuncia-motivation-row {
    display: grid;
    gap: 8px;
    grid-template-columns: 100px minmax(0, 1fr);
    margin-top: 12px;
}

.rinuncia-motivation-row label {
    align-items: flex-start;
    background: var(--BlueSteel);
    border: 1px solid #8aa8c5;
    border-radius: 4px;
    color: #17395c;
    display: flex;
    font-weight: 700;
    padding: 8px;
}

.rinuncia-motivation-row textarea {
    min-height: 82px;
    resize: vertical;
}

.compact-toolbar {
    justify-content: flex-start;
    margin-bottom: 10px;
}

.print-client-table-wrap {
    max-height: 560px;
    min-height: 560px;
}

.print-client-table-wrap table {
    min-width: 0;
    table-layout: fixed;
}

.print-client-table-wrap th:nth-child(1),
.print-client-table-wrap td:nth-child(1) {
    text-align: center;
    width: 92px;
}

.print-client-table-wrap tbody tr {
    cursor: pointer;
}

.stampa-determinato-page .print-module-layout,
.stampa-indeterminato-page .print-module-layout,
.stampa-occasionale-page .print-module-layout {
    grid-template-columns: 540px minmax(0, 1fr);
}

.stampa-determinato-page .print-client-table-wrap th:nth-child(1),
.stampa-determinato-page .print-client-table-wrap td:nth-child(1),
.stampa-indeterminato-page .print-client-table-wrap th:nth-child(1),
.stampa-indeterminato-page .print-client-table-wrap td:nth-child(1),
.stampa-occasionale-page .print-client-table-wrap th:nth-child(1),
.stampa-occasionale-page .print-client-table-wrap td:nth-child(1) {
    width: 132px;
}

.print-detail-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 14px;
}

.stampa-scheda-cliente-page .topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    width: 100%;
}

.stampa-scheda-cliente-page .stampa-scheda-cliente-actions {
    justify-self: end;
    margin-right: 14px;
    position: relative;
    z-index: 2;
}

.print-detail-header h2 {
    font-size: 24px;
    line-height: 1.15;
    margin: 0;
}

.print-detail-sections {
    display: grid;
    gap: 14px;
}

.print-detail-grid {
    display: grid;
    gap: 9px 14px;
    grid-template-columns: 150px minmax(0, 1fr);
}

.print-detail-grid-two {
    grid-template-columns: 150px minmax(0, 1fr) 150px minmax(0, 1fr);
}

.scheda-badante-detail-grid {
    grid-template-columns: 170px minmax(0, 1fr) 170px minmax(0, 1fr);
}

.scheda-badante-detail-grid .print-label {
    white-space: nowrap;
}

.data-form-skin .print-detail-sections {
    gap: 8px;
}

.data-form-skin .print-detail-grid {
    gap: 8px 12px;
}

.data-form-skin .print-detail-grid .print-label {
    align-items: center;
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    color: #0e1824;
    display: flex;
    font-weight: 500;
    height: 30px;
    line-height: 1.15;
    min-height: 30px;
    padding: 5px 8px;
    white-space: nowrap;
}

.data-form-skin .print-detail-grid .print-label + span {
    align-items: center;
    background: #f0f3f8;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    color: var(--text);
    display: flex;
    font-weight: 700;
    min-height: 30px;
    overflow: hidden;
    padding: 5px 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.stampa-contratto-cliente-page .print-detail-grid {
    column-gap: 6px;
    row-gap: 8px;
}

.stampa-contratto-cliente-page .print-detail-grid .print-label {
    border-radius: 6px;
}

.stampa-contratto-cliente-page .print-detail-grid-two .print-label:nth-child(4n + 3) {
    margin-left: 8px;
}

.ricevuta-filter-bar {
    display: grid;
    gap: 8px 10px;
    grid-template-columns: 1fr;
    margin-bottom: 10px;
}

.ricevuta-filter-search,
.ricevuta-filter-status {
    align-items: end;
    display: grid;
    gap: 8px;
}

.ricevuta-filter-search {
    grid-template-columns: 112px minmax(0, 1fr);
}

.ricevuta-filter-status {
    grid-template-columns: 72px 170px 128px;
    justify-content: start;
}

.ricevuta-filter-bar label,
.ricevuta-compenso-form label,
.detrazioni-form label,
.detrazioni-family-grid > span {
    align-items: center;
    background: #b8cbe0;
    color: #0e1824;
    display: flex;
    font-weight: 500;
    min-height: 24px;
    padding: 2px 8px;
}

.data-form-skin .ricevuta-compenso-form label,
.data-form-skin .detrazioni-form label,
.data-form-skin .detrazioni-family-grid > span {
    border: 1px solid #8a8f98;
    font-weight: 500;
    height: 30px;
    line-height: 1.15;
    min-height: 30px;
    padding: 5px 8px;
}

.ricevuta-filter-bar input,
.ricevuta-filter-bar select,
.ricevuta-compenso-form input,
.detrazioni-form input,
.detrazioni-form select {
    border: 1px solid #8a8f98;
    min-height: 24px;
    padding: 2px 6px;
}

.data-form-skin .ricevuta-compenso-form input,
.data-form-skin .detrazioni-form input,
.data-form-skin .detrazioni-form select {
    min-height: 30px;
    padding: 5px 8px;
}

.ricevuta-records {
    align-items: center;
    border: 1px solid #8a8f98;
    display: flex;
    justify-content: space-between;
    min-height: 24px;
    padding: 2px 8px;
}

.ricevuta-detail-title {
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    font-size: 16px;
    margin-bottom: 42px;
    padding: 3px 8px;
    text-align: center;
    text-transform: uppercase;
}

.detrazioni-detail-title {
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    font-size: 16px;
    margin-bottom: 26px;
    padding: 3px 8px;
    text-align: center;
    text-transform: uppercase;
}

.ricevuta-detail-grid {
    display: grid;
    gap: 8px 12px;
    grid-template-columns: 122px 130px 190px 162px 130px;
}

.ricevuta-detail-grid input {
    font-weight: 700;
}

.ricevuta-detail-grid input[readonly] {
    pointer-events: none;
}

.detrazioni-detail-grid input[readonly] {
    pointer-events: none;
}

.ricevuta-detail-grid .ricevuta-numeric-input {
    text-align: right;
}

.ricevuta-field-wide {
    grid-column: span 2;
}

.ricevuta-field-span {
    grid-column: span 4;
}

.ricevuta-compenso-page .print-module-layout {
    grid-template-columns: 540px minmax(0, 1fr);
}

.detrazioni-page .print-module-layout {
    grid-template-columns: 560px minmax(0, 1fr);
}

.detrazioni-page .print-client-table-wrap table {
    min-width: 0 !important;
    table-layout: fixed;
    width: 100%;
}

.detrazioni-record-row {
    grid-template-columns: 112px 128px;
}

.detrazioni-record-row input[readonly] {
    pointer-events: none;
}

.detrazioni-records-hidden {
    display: none;
}

.detrazioni-detail-grid {
    display: grid;
    gap: 8px 12px;
    grid-template-columns: 150px 240px 150px 240px;
}

.detrazioni-detail-grid input,
.detrazioni-detail-grid select,
.detrazioni-family-grid input {
    font-weight: 700;
}

.detrazioni-detail-grid .detrazioni-code {
    text-align: center;
}

.detrazioni-span {
    grid-column: span 3;
}

.detrazioni-family-grid {
    display: grid;
    gap: 8px 12px;
    grid-template-columns: 96px minmax(140px, 1fr) 180px 220px;
}

.detrazioni-family-grid > span {
    justify-content: center;
}

.detrazioni-family-grid label {
    justify-content: flex-start;
}

.detrazioni-col-codice {
    width: 76px;
}

.detrazioni-col-nome {
    width: 330px;
}

.detrazioni-col-citta {
    width: 150px;
}

.detrazioni-page .print-client-table-wrap th:nth-child(1),
.detrazioni-page .print-client-table-wrap td:nth-child(1) {
    text-align: center;
    width: 76px;
}

.detrazioni-page .print-client-table-wrap th:nth-child(2),
.detrazioni-page .print-client-table-wrap td:nth-child(2),
.detrazioni-page .print-client-table-wrap th:nth-child(3),
.detrazioni-page .print-client-table-wrap td:nth-child(3) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ricevuta-compenso-page .print-client-table-wrap table {
    min-width: 0 !important;
    table-layout: fixed;
    width: 100%;
}

.ricevuta-col-codice {
    width: 68px;
}

.ricevuta-col-nome {
    width: 250px;
}

.ricevuta-col-contratto {
    width: 92px;
}

.ricevuta-col-anno {
    width: 62px;
}

.ricevuta-compenso-page .print-client-table-wrap th:nth-child(1),
.ricevuta-compenso-page .print-client-table-wrap td:nth-child(1) {
    width: 68px;
}

.ricevuta-compenso-page .print-client-table-wrap th:nth-child(2),
.ricevuta-compenso-page .print-client-table-wrap td:nth-child(2) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 250px;
}

.ricevuta-compenso-page .print-client-table-wrap th:nth-child(3),
.ricevuta-compenso-page .print-client-table-wrap td:nth-child(3) {
    text-align: center;
    width: 92px;
}

.ricevuta-compenso-page .print-client-table-wrap th:nth-child(4),
.ricevuta-compenso-page .print-client-table-wrap td:nth-child(4) {
    text-align: center;
    width: 62px;
}

.print-label {
    color: var(--muted);
    font-weight: 700;
}

.toolbar {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
    margin-bottom: 16px;
}

.toolbar-actions {
    align-items: center;
    display: flex;
    gap: 28px;
    margin-left: auto;
}

.list-filter-summary {
    flex: 0 0 auto;
    gap: 0;
}

.list-records-box {
    align-items: center;
    background: #ffffff;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    box-sizing: border-box;
    color: #0e1824;
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 600;
    gap: 6px;
    height: 30px;
    justify-content: center;
    min-height: 30px;
    min-width: 96px;
    padding: 2px 10px;
    white-space: nowrap;
}

.fatture-actions {
    flex: 1 1 auto;
    margin-left: auto;
    margin-right: 16px;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    max-width: 980px;
}

.fatture-actions .subtitle {
    margin-right: 8px;
    white-space: nowrap;
}

.fatture-actions .button,
.fatture-actions button {
    white-space: nowrap;
}

.fatture-electronic-overlay {
    align-items: center;
    background: rgba(23, 32, 51, 0.34);
    display: none;
    inset: 0;
    justify-content: center;
    padding: 26px;
    position: fixed;
    z-index: 100;
}

.fatture-electronic-overlay.active {
    display: flex;
}

.fatture-electronic-dialog {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 22px 48px rgba(23, 32, 51, 0.22);
    overflow: hidden;
    width: min(720px, calc(100vw - 48px));
}

.fatture-electronic-title {
    background: var(--primary);
    color: #ffffff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
    padding: 13px 18px;
}

.fatture-electronic-fields {
    display: grid;
    gap: 14px;
    grid-template-columns: 1fr 1fr;
    padding: 24px 18px 0;
}

.fatture-electronic-fields .field {
    grid-column: auto;
    grid-template-columns: 96px minmax(0, 1fr);
    max-width: none;
}

.fatture-electronic-fields .field-full {
    grid-column: 1 / -1;
}

.fatture-electronic-fields label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.fatture-electronic-fields input,
.fatture-electronic-fields select {
    border-color: var(--line);
    min-height: 36px;
}

.fatture-electronic-fields #fe_cartella {
    font-family: Consolas, "Courier New", monospace;
    width: 100%;
}

.fatture-electronic-error {
    color: #9a3412;
    font-size: 13px;
    font-weight: 700;
    grid-column: 1 / -1;
    margin: 0;
}

.fatture-electronic-actions {
    align-items: center;
    border-top: 1px solid var(--line);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 18px;
    padding: 14px 18px;
}

.fatture-electronic-actions .button,
.fatture-electronic-actions button {
    min-width: 104px;
}

.xml-preview-overlay {
    align-items: center;
    background: rgba(23, 32, 51, 0.34);
    display: none;
    inset: 0;
    justify-content: center;
    padding: 18px 22px;
    position: fixed;
    z-index: 120;
}

.xml-preview-overlay.active {
    display: flex;
}

.xml-preview-dialog {
    background: #ffffff;
    border: 1px solid #7898b8;
    border-radius: 8px;
    box-shadow: 0 22px 48px rgba(23, 32, 51, 0.26);
    display: grid;
    grid-template-rows: 36px minmax(0, 1fr);
    height: min(820px, calc(100vh - 38px));
    overflow: hidden;
    width: min(1480px, calc(100vw - 44px));
}

.xml-preview-titlebar {
    align-items: center;
    background: linear-gradient(#d8e5f3, #b7cbe1);
    border-bottom: 1px solid #8aa8c5;
    display: flex;
    justify-content: space-between;
    padding: 4px 8px 4px 14px;
}

.xml-preview-titlebar h2 {
    color: #17395c;
    font-size: 15px;
    font-weight: 700;
    margin: 0;
}

.xml-preview-close {
    background: transparent;
    border: 0;
    cursor: pointer;
    height: 26px;
    position: relative;
    width: 26px;
}

.xml-preview-close::before,
.xml-preview-close::after {
    background: #17395c;
    content: "";
    height: 2px;
    left: 6px;
    position: absolute;
    top: 12px;
    width: 15px;
}

.xml-preview-close::before {
    transform: rotate(45deg);
}

.xml-preview-close::after {
    transform: rotate(-45deg);
}

.xml-preview-dialog iframe {
    border: 0;
    height: 100%;
    width: 100%;
}

.mail-send-overlay {
    align-items: center;
    background: rgba(23, 32, 51, 0.34);
    display: none;
    inset: 0;
    justify-content: center;
    padding: 18px 22px;
    position: fixed;
    z-index: 121;
}

.mail-send-overlay.active {
    display: flex;
}

.mail-send-dialog {
    background: #ffffff;
    border: 1px solid #7898b8;
    border-radius: 8px;
    box-shadow: 0 22px 48px rgba(23, 32, 51, 0.26);
    display: grid;
    grid-template-rows: 36px minmax(0, 1fr) 52px;
    height: min(760px, calc(100vh - 44px));
    overflow: hidden;
    width: min(1320px, calc(100vw - 44px));
}

.mail-send-titlebar {
    align-items: center;
    background: var(--TestataSky);
    border-bottom: 1px solid #8aa8c5;
    display: flex;
    justify-content: space-between;
    padding: 4px 8px 4px 14px;
}

.mail-send-titlebar h2 {
    color: #17395c;
    font-size: 15px;
    font-weight: 700;
    margin: 0;
}

.mail-send-close {
    background: transparent;
    border: 0;
    cursor: pointer;
    height: 26px;
    position: relative;
    width: 26px;
}

.mail-send-close::before,
.mail-send-close::after {
    background: #17395c;
    content: "";
    height: 2px;
    left: 6px;
    position: absolute;
    top: 12px;
    width: 15px;
}

.mail-send-close::before {
    transform: rotate(45deg);
}

.mail-send-close::after {
    transform: rotate(-45deg);
}

.mail-send-body {
    background: #f4f7fb;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(620px, 1fr) 390px;
    min-height: 0;
    padding: 14px;
}

.mail-send-left {
    display: grid;
    gap: 12px;
    grid-template-rows: auto minmax(0, 1fr);
    min-width: 0;
}

.mail-send-panel {
    background: #ffffff;
    border: 1px solid #b8c8d9;
    border-radius: 8px;
    margin: 0;
    min-width: 0;
    padding: 18px 14px 14px;
}

.mail-send-panel legend {
    color: #17395c;
    font-size: 14px;
    font-weight: 700;
    padding: 0 6px;
}

.mail-send-message-panel {
    display: grid;
    min-height: 0;
}

.mail-send-grid {
    display: grid;
    gap: 10px 14px;
    grid-template-columns: 124px minmax(0, 1fr) 124px minmax(0, 1fr);
}

.mail-send-grid .field {
    display: contents;
}

.mail-send-grid .field-full input,
.mail-send-grid .field-full textarea {
    grid-column: 1 / -1;
}

.mail-send-grid .field-full label + input,
.mail-send-grid .field-full label + textarea {
    grid-column: 2 / -1;
}

.mail-send-dialog .mail-send-grid label,
.mail-send-dialog .mail-send-preview-title {
    align-items: center;
    background: var(--AzzurroSky);
    border: 1px solid #8a8f98;
    border-radius: 6px;
    color: #000000;
    display: flex;
    font-size: 13px;
    font-weight: 500;
    height: 30px;
    line-height: 1.15;
    min-height: 30px;
    padding: 5px 8px;
}

.mail-send-grid input,
.mail-send-grid textarea {
    background: #ffffff;
    border: 1px solid #aebdcc;
    border-radius: 6px;
    color: #111827;
    font: inherit;
    min-height: 30px;
    padding: 5px 8px;
    width: 100%;
}

.mail-send-grid input[readonly] {
    background: var(--MildGray);
}

.mail-message-field {
    align-items: stretch;
    min-height: 210px;
}

.mail-message-field label {
    align-items: flex-start;
    padding-top: 7px;
}

.mail-message-field textarea {
    min-height: 210px;
    resize: none;
}

.mail-send-error {
    background: #fff7ed;
    border: 1px solid #fdba74;
    border-radius: 6px;
    color: #9a3412;
    font-size: 13px;
    font-weight: 700;
    grid-column: 1 / -1;
    margin: 0;
    padding: 8px 10px;
}

.mail-send-preview {
    background: #ffffff;
    border: 1px solid #b8c8d9;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    grid-template-rows: 30px minmax(0, 1fr);
    min-height: 0;
    padding: 14px;
}

.mail-send-preview iframe {
    background: #d9e2ec;
    border: 1px solid #9fb3c8;
    border-radius: 6px;
    height: 100%;
    width: 100%;
}

.mail-send-actions {
    align-items: center;
    background: #f8fafc;
    border-top: 1px solid #c4d0dd;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    padding: 9px 14px;
}

.mail-send-actions .button.primary,
.mail-send-actions .button.secondary {
    background: rgb(200, 200, 240);
    color: var(--text);
    min-width: 96px;
    width: 96px;
}

.mail-send-actions .button.primary:hover,
.mail-send-actions .button.secondary:hover {
    background: rgb(184, 184, 230);
}

.embedded-print-preview {
    background: #d9e2ec;
    overflow: hidden;
}

.embedded-print-preview .print-preview-shell {
    margin: 0;
    max-width: none;
    padding: 8px;
}

.embedded-print-preview .print-preview-stage {
    min-height: 100vh;
    padding: 8px;
}

.search {
    display: flex;
    gap: 8px;
    max-width: 520px;
    width: 100%;
}

.fatture-filter {
    align-items: center;
    flex: 1 1 auto;
    gap: 14px;
    max-width: none;
    min-width: 0;
    width: auto;
}

.fatture-filter select {
    border-radius: 6px;
    min-height: 30px;
}

.fatture-filter .provvigioni-filter-label {
    border-radius: 6px;
    box-sizing: border-box;
    font-size: 0.9rem;
    height: 30px;
    min-height: 30px;
    padding: 2px 10px;
    white-space: nowrap;
}

.fatture-filter select[name="anno"] {
    flex: 0 0 86px;
    width: 86px;
}

.fatture-filter-mese,
.fatture-filter-causale {
    flex: 0 0 150px;
    width: 150px;
}

.fatture-filter-cliente {
    flex: 0 0 240px;
    width: 240px;
}

.badanti-filter {
    align-items: center;
    flex: 1 1 auto;
    gap: 14px;
    max-width: none;
    min-width: 0;
    width: auto;
}

.badanti-filter .provvigioni-filter-label {
    border-radius: 6px;
    box-sizing: border-box;
    font-size: 0.9rem;
    height: 30px;
    min-height: 30px;
    padding: 2px 10px;
    white-space: nowrap;
}

.badanti-filter input,
.badanti-filter select {
    border-radius: 6px;
    min-height: 30px;
}

.badanti-filter-search {
    flex: 0 0 190px;
    width: 190px;
}

.badanti-filter-agenzia {
    flex: 0 0 210px;
    width: 210px;
}

.badanti-filter-stato {
    flex: 0 0 130px;
    width: 130px;
}

.badanti-filter-situazione {
    flex: 0 0 160px;
    width: 160px;
}

.badanti-actions {
    margin-left: auto;
    margin-right: 16px;
}

.clienti-filter {
    align-items: center;
    flex: 1 1 auto;
    gap: 14px;
    max-width: none;
    min-width: 0;
    width: auto;
}

.clienti-filter .provvigioni-filter-label {
    border-radius: 6px;
    box-sizing: border-box;
    font-size: 0.9rem;
    height: 30px;
    min-height: 30px;
    padding: 2px 10px;
    white-space: nowrap;
}

.clienti-filter input,
.clienti-filter select {
    border-radius: 6px;
    min-height: 30px;
}

.clienti-filter-search {
    flex: 0 0 190px;
    width: 190px;
}

.clienti-filter-sesso {
    flex: 0 0 76px;
    width: 76px;
}

.clienti-filter-stato {
    flex: 0 0 140px;
    width: 140px;
}

.clienti-filter-agenzia {
    flex: 0 0 210px;
    width: 210px;
}

.clienti-actions {
    margin-left: auto;
    margin-right: 16px;
}

.utenti-actions {
    margin-left: auto;
    margin-right: 16px;
}

.agenzie-actions {
    margin-left: auto;
    margin-right: 16px;
}

.aliquote-iva-actions {
    margin-left: auto;
    margin-right: 16px;
}

.comuni-actions {
    margin-left: auto;
    margin-right: 16px;
}

.pagamenti-actions {
    margin-left: auto;
    margin-right: 16px;
}

.aziende-actions {
    margin-left: auto;
    margin-right: 16px;
}

.azienda-db-check-page .panel {
    display: grid;
    gap: 16px;
}

.azienda-db-summary {
    background: #f8fbff;
    border: 1px solid #d6e0ec;
    border-radius: 8px;
    display: grid;
    gap: 10px 18px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 14px 16px;
}

.azienda-db-summary div {
    display: grid;
    gap: 5px;
}

.azienda-db-summary span {
    color: #334155;
    font-size: 13px;
    font-weight: 700;
}

.azienda-db-summary strong {
    color: #111827;
    font-size: 15px;
    font-weight: 700;
}

.azienda-db-check-table {
    max-height: none;
}

.azienda-db-step-ok td:nth-child(2) {
    color: #15803d;
    font-weight: 700;
}

.azienda-db-step-error td:nth-child(2) {
    color: #dc2626;
    font-weight: 700;
}

.azienda-db-step-skipped td:nth-child(2) {
    color: #b45309;
    font-weight: 700;
}

.tipi-cessazione-actions {
    margin-left: auto;
    margin-right: 16px;
}

.tipi-documenti-actions {
    margin-left: auto;
    margin-right: 16px;
}

.contratti-filter {
    align-items: center;
    flex: 1 1 auto;
    gap: 14px;
    max-width: none;
    min-width: 0;
    width: auto;
}

.list-filter-group {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    gap: 6px;
    min-width: 0;
}

.contratti-filter .provvigioni-filter-label {
    border-radius: 6px;
    box-sizing: border-box;
    font-size: 0.9rem;
    height: 30px;
    min-height: 30px;
    padding: 2px 10px;
    white-space: nowrap;
}

.contratti-filter input,
.contratti-filter select {
    border-radius: 6px;
    min-height: 30px;
}

.contratti-filter-search {
    flex: 0 0 190px;
    width: 190px;
}

.contratti-filter-tipo {
    flex: 0 0 180px;
    width: 180px;
}

.contratti-filter-stato {
    flex: 0 0 130px;
    width: 130px;
}

.contratti-filter-agenzia {
    flex: 0 0 210px;
    width: 210px;
}

.contratti-filter-expiring {
    align-items: center;
    background: transparent;
    border: 0;
    display: grid;
    flex: 0 0 auto;
    gap: 6px;
    grid-template-columns: 96px 68px;
    min-height: 34px;
    position: relative;
    user-select: none;
}

.contratti-filter-expiring input {
    opacity: 0;
    position: absolute;
    width: 1px;
}

.contratti-filter-expiring .check-text {
    align-items: center;
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    box-sizing: border-box;
    color: #0e1824;
    display: flex;
    font-size: 0.9rem;
    font-weight: 600;
    height: 30px;
    justify-content: center;
    padding: 2px 8px;
    white-space: nowrap;
}

.contratti-filter-expiring .check-button-wrap {
    align-items: center;
    background: #ffffff;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    height: 30px;
    justify-content: center;
    margin: 0;
    position: relative;
}

.contratti-filter-expiring .check-button-wrap::before {
    background: rgb(210, 210, 210);
    border: 1px solid #c2ccda;
    border-radius: 999px;
    content: "";
    display: block;
    height: 22px;
    position: relative;
    width: 42px;
}

.contratti-filter-expiring .check-button-wrap::after {
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(23, 32, 51, 0.28);
    content: "";
    height: 16px;
    left: 16px;
    position: absolute;
    top: 7px;
    transition: transform 0.16s ease;
    width: 16px;
}

.contratti-filter-expiring input:checked ~ .check-button-wrap::before {
    background: var(--primary);
    border-color: var(--primary);
}

.contratti-filter-expiring input:checked ~ .check-button-wrap::after {
    transform: translateX(20px);
}

.contratti-filter-expiring input:focus-visible ~ .check-button-wrap {
    box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.18);
}

.contratti-filter-days-label {
    flex: 0 0 78px;
    min-width: 78px;
    white-space: nowrap;
    width: 78px;
}

.contratti-filter-days {
    flex: 0 0 72px;
    text-align: right;
    width: 72px;
}

.contratti-actions {
    margin-left: auto;
    margin-right: 16px;
}

.lista-presenze-search {
    align-items: center;
    flex: 1 1 auto;
    gap: 14px;
    max-width: none;
    min-width: 0;
    width: auto;
}

.lista-presenze-search select {
    flex: 0 0 130px;
}

.lista-presenze-search .period-year-input {
    flex: 0 0 92px;
}

.lista-presenze-search .provvigioni-filter-label {
    border-radius: 6px;
    box-sizing: border-box;
    font-size: 0.9rem;
    height: 30px;
    min-height: 30px;
    padding: 2px 10px;
    white-space: nowrap;
}

.lista-presenze-search input,
.lista-presenze-search select {
    border-radius: 6px;
    min-height: 30px;
}

.lista-presenze-actions {
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    margin-left: auto;
    margin-right: 16px;
}

.lista-presenze-final-actions {
    align-items: center;
    display: flex;
    gap: 10px;
}

.lista-presenze-actions button,
.lista-presenze-final-actions button {
    flex: 0 0 auto;
    white-space: nowrap;
}

input,
select,
textarea,
button,
.button {
    border-radius: 6px;
    font: inherit;
}

button,
.button,
.messagebox {
    -webkit-user-select: none;
    user-select: none;
}

[hidden] {
    display: none !important;
}

input,
select,
textarea {
    background: #ffffff;
    border: 1px solid var(--line);
    min-height: 36px;
    padding: 6px 10px;
    width: 100%;
}

textarea {
    line-height: 1.4;
    resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.15);
    outline: none;
}

.password-control {
    position: relative;
}

.password-control input {
    padding-right: 44px;
}

.password-toggle {
    background: transparent;
    border: 0;
    color: #526173;
    height: 34px;
    min-height: 34px;
    padding: 0;
    position: absolute;
    right: 1px;
    top: 1px;
    width: 40px;
}

.password-toggle:hover,
.password-toggle.active {
    background: #eef4ff;
    color: var(--primary);
}

.password-toggle svg {
    fill: none;
    height: 20px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    width: 20px;
}

.login-password-toggle {
    border-radius: 10px;
    height: 44px;
    min-height: 44px;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
}

.login-password-toggle:hover,
.login-password-toggle.active {
    background: #fff0f3;
    color: #e6002e;
}

.login-input-wrap.password-control input {
    padding-right: 58px;
}

input[type="date"].date-empty::-webkit-datetime-edit,
input[type="date"].date-empty::-webkit-datetime-edit-fields-wrapper,
input[type="date"].date-empty::-webkit-datetime-edit-text,
input[type="date"].date-empty::-webkit-datetime-edit-month-field,
input[type="date"].date-empty::-webkit-datetime-edit-day-field,
input[type="date"].date-empty::-webkit-datetime-edit-year-field {
    color: transparent;
}

input[type="date"].date-empty::-webkit-calendar-picker-indicator {
    color: var(--text);
    cursor: pointer;
    opacity: 1;
}

input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 1;
}

.readonly-input,
input[readonly] {
    background: #f0f3f8;
    color: var(--text);
    cursor: default;
}

.button,
button {
    align-items: center;
    border: 0;
    cursor: pointer;
    display: inline-flex;
    font-weight: 700;
    gap: 7px;
    justify-content: center;
    min-height: 40px;
    padding: 9px 13px;
    text-decoration: none;
    white-space: nowrap;
}

.button.primary,
button.primary {
    background: var(--primary);
    color: #ffffff;
}

.button.primary:hover,
button.primary:hover {
    background: var(--primary-hover);
}

.button.secondary {
    background: #c7ddfb;
    color: var(--text);
}

.button.secondary:hover {
    background: #adcdf8;
}

.button.edit {
    background: rgb(200, 200, 240);
    color: var(--text);
}

.button.edit:hover,
button.edit:hover {
    background: rgb(200, 200, 240);
}

button.edit {
    background: rgb(200, 200, 240);
    color: var(--text);
}

.print-preview-actions > .button,
.print-preview-actions > button {
    background: rgb(200, 200, 240);
    color: var(--text);
    height: 34px;
    min-height: 34px;
    min-width: 96px;
    padding: 5px 12px;
    width: 96px;
}

.print-preview-actions > .button:hover,
.print-preview-actions > button:hover,
.print-preview-actions > .button:focus-visible,
.print-preview-actions > button:focus-visible {
    background: rgb(184, 184, 230);
    color: var(--text);
}

.print-preview-actions .print-preview-zoom .button {
    background: rgb(200, 200, 240);
    color: var(--text);
    height: 34px;
    min-height: 34px;
    min-width: 34px;
    padding: 0;
    width: 34px;
}

.print-preview-actions .print-preview-zoom .button:hover,
.print-preview-actions .print-preview-zoom .button:focus-visible {
    background: rgb(184, 184, 230);
    color: var(--text);
}

.button.danger,
button.danger {
    background: var(--danger);
    color: #ffffff;
}

.button.danger:hover,
button.danger:hover {
    background: var(--danger-hover);
}

.notice,
.success-box {
    background: #eaf7ee;
    border: 1px solid #b8e0c4;
    border-radius: 8px;
    color: var(--ok);
    margin-bottom: 16px;
    padding: 10px 12px;
}

.error-box {
    background: #fff0f0;
    border: 1px solid #f0b6b6;
    border-radius: 8px;
    color: var(--danger);
    margin-bottom: 16px;
    padding: 10px 12px;
}

.danger-panel {
    border-color: #f0b6b6;
}

.confirm-text {
    font-size: 18px;
    line-height: 1.5;
    margin: 0 0 8px;
}

.table-wrap {
    border: 1px solid var(--line);
    border-radius: 8px;
    height: max(220px, calc(100vh - var(--table-fixed-offset) - var(--list-bottom-safe-gap)));
    min-height: 220px;
    overflow: auto;
}

.list-page .table-wrap {
    height: max(220px, calc(100vh - var(--list-table-fixed-offset) - var(--list-bottom-safe-gap)));
    min-height: 220px;
}

.table-wrap table {
    border-collapse: collapse;
    min-width: 980px;
    width: 100%;
}

.list-page .table-wrap table {
    min-width: 1280px;
}

.ricevuta-compenso-page.list-page .print-client-table-wrap table {
    min-width: 0 !important;
    table-layout: fixed;
    width: 100%;
}

.contratti-table-wrap table {
    min-width: 1540px;
}

.fatture-table-wrap table {
    min-width: 1580px;
    table-layout: fixed;
}

.fatture-table-wrap th:nth-child(1),
.fatture-table-wrap td:nth-child(1),
.fatture-table-wrap th:nth-child(2),
.fatture-table-wrap td:nth-child(2),
.fatture-table-wrap th:nth-child(3),
.fatture-table-wrap td:nth-child(3),
.fatture-table-wrap th:nth-child(4),
.fatture-table-wrap td:nth-child(4),
.fatture-table-wrap th:nth-child(6),
.fatture-table-wrap td:nth-child(6) {
    text-align: center;
    width: 86px;
}

.fatture-table-wrap th:nth-child(5),
.fatture-table-wrap td:nth-child(5) {
    width: 300px;
}

.fatture-table-wrap th:nth-child(7),
.fatture-table-wrap td:nth-child(7),
.fatture-table-wrap th:nth-child(8),
.fatture-table-wrap td:nth-child(8),
.fatture-table-wrap th:nth-child(9),
.fatture-table-wrap td:nth-child(9) {
    text-align: right;
    width: 102px;
}

.fatture-table-wrap th:nth-child(10),
.fatture-table-wrap td:nth-child(10) {
    width: 250px;
}

.fatture-table-wrap td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.assenze-ferie-table-wrap table {
    min-width: 1320px;
}

.assenze-ferie-actions {
    margin-left: auto;
    margin-right: 16px;
}

.assenze-ferie-filter {
    align-items: center;
    flex: 1 1 auto;
    gap: 14px;
    max-width: none;
    min-width: 0;
    width: auto;
}

.assenze-ferie-filter input,
.assenze-ferie-filter select {
    border-radius: 6px;
    min-height: 30px;
}

.assenze-ferie-filter-search {
    flex: 0 0 360px;
    width: 360px;
}

.lista-presenze-table-wrap table {
    min-width: 2360px;
    table-layout: fixed;
}

.lista-presenze-table-wrap th:nth-child(1),
.lista-presenze-table-wrap td:nth-child(1) {
    text-align: center;
    width: 82px;
}

.lista-presenze-table-wrap th:nth-child(2),
.lista-presenze-table-wrap td:nth-child(2),
.lista-presenze-table-wrap th:nth-child(3),
.lista-presenze-table-wrap td:nth-child(3) {
    width: 190px;
}

.lista-presenze-table-wrap th:nth-child(4),
.lista-presenze-table-wrap td:nth-child(4),
.lista-presenze-table-wrap th:nth-child(17),
.lista-presenze-table-wrap td:nth-child(17) {
    width: 150px;
}

.lista-presenze-table-wrap th:nth-child(5),
.lista-presenze-table-wrap td:nth-child(5),
.lista-presenze-table-wrap th:nth-child(8),
.lista-presenze-table-wrap td:nth-child(8),
.lista-presenze-table-wrap th:nth-child(n+11):nth-child(-n+15),
.lista-presenze-table-wrap td:nth-child(n+11):nth-child(-n+15) {
    text-align: center;
    width: 86px;
}

.lista-presenze-table-wrap th:nth-child(6),
.lista-presenze-table-wrap td:nth-child(6) {
    text-align: center;
    width: 185px;
}

.lista-presenze-table-wrap th:nth-child(7),
.lista-presenze-table-wrap td:nth-child(7),
.lista-presenze-table-wrap th:nth-child(9),
.lista-presenze-table-wrap td:nth-child(9),
.lista-presenze-table-wrap th:nth-child(10),
.lista-presenze-table-wrap td:nth-child(10),
.lista-presenze-table-wrap th:nth-child(16),
.lista-presenze-table-wrap td:nth-child(16) {
    text-align: right;
    width: 108px;
}

.lista-presenze-table-wrap th:nth-child(18),
.lista-presenze-table-wrap td:nth-child(18) {
    width: 230px;
}

.lista-presenze-table-wrap td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.print-assistito {
    display: none;
}

.print-periodo {
    display: none;
}

.print-iban {
    display: none;
}

.assenze-ferie-table-wrap th:nth-child(n+5):nth-child(-n+10),
.assenze-ferie-table-wrap td:nth-child(n+5):nth-child(-n+10) {
    text-align: center;
}

.ferie-editor {
    align-items: start;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1fr) 132px;
}

.assenza-ferie-page {
    --label-width: 158px;
    padding: 16px 0 28px;
    width: min(var(--app-wide-width), calc(100% - (var(--app-page-gutter) * 2)));
}

.assenza-ferie-page .topbar {
    margin-bottom: 12px;
}

.assenza-ferie-page .panel {
    padding: 14px;
}

.assenza-ferie-page .form-grid,
.assenza-ferie-page .compact-frame .form-frame-grid {
    gap: 8px 12px;
}

.assenza-ferie-page .field {
    gap: 6px;
    grid-template-columns: minmax(128px, var(--label-width)) minmax(0, 1fr);
    min-height: 30px;
}

.assenza-ferie-page .form-frame {
    padding: 10px 12px 12px;
}

.assenza-ferie-page .compact-frame + .compact-frame {
    margin-top: 10px;
}

.ferie-detail-table-wrap {
    height: 232px;
    min-height: 232px;
}

.ferie-detail-table-wrap table {
    min-width: 760px;
    table-layout: fixed;
}

.ferie-detail-table-wrap th:nth-child(1),
.ferie-detail-table-wrap td:nth-child(1) {
    width: 220px;
    white-space: nowrap;
}

.ferie-detail-table-wrap th:nth-child(2),
.ferie-detail-table-wrap td:nth-child(2),
.ferie-detail-table-wrap th:nth-child(3),
.ferie-detail-table-wrap td:nth-child(3) {
    width: 116px;
}

.ferie-detail-table-wrap th:nth-child(4),
.ferie-detail-table-wrap td:nth-child(4),
.ferie-detail-table-wrap th:nth-child(5),
.ferie-detail-table-wrap td:nth-child(5) {
    width: 88px;
}

.ferie-detail-table-wrap th:nth-child(n+2):nth-child(-n+5),
.ferie-detail-table-wrap td:nth-child(n+2):nth-child(-n+5) {
    text-align: center;
}

.ferie-detail-table-wrap th,
.ferie-detail-table-wrap td {
    line-height: 1.2;
    padding-bottom: 5px;
    padding-top: 5px;
}

.ferie-detail-table-wrap th:nth-child(6),
.ferie-detail-table-wrap td:nth-child(6) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ferie-grid-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ferie-grid-actions .edit {
    width: 100%;
}

.ferie-close-button {
    width: 132px;
}

.ferie-detail-table-wrap tbody tr[data-riga] {
    cursor: pointer;
}

.ferie-detail-table-wrap tbody tr[data-riga]:hover td {
    background: #f3f8ff;
}

.ferie-modal-overlay {
    align-items: center;
    background: rgba(23, 32, 51, 0.34);
    display: none;
    inset: 0;
    justify-content: center;
    padding: 24px;
    position: fixed;
    z-index: 50;
}

.ferie-modal-overlay.active {
    display: flex;
}

.ferie-modal {
    background: #ffffff;
    border: 1px solid #8a8f98;
    border-radius: 0;
    box-shadow: 0 22px 48px rgba(23, 32, 51, 0.22);
    max-width: 820px;
    overflow: hidden;
    width: min(820px, 100%);
}

.ferie-modal-title {
    background: linear-gradient(#c7d7e8, #b8cbe0 52%, #a9bed6);
    border-bottom: 1px solid #8a8f98;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72), inset 0 -1px 0 rgba(72, 91, 112, 0.26);
    color: #0e1824;
    font-size: 16px;
    font-weight: 700;
    padding: 8px 14px;
}

.ferie-modal form {
    margin: 0;
}

.ferie-modal-grid {
    display: grid;
    gap: 8px 12px;
    grid-template-columns: 1fr 1fr;
    padding: 14px;
}

.ferie-modal-grid .field {
    grid-column: span 1;
    grid-template-columns: minmax(128px, var(--label-width)) minmax(0, 1fr);
    min-height: 30px;
}

.ferie-modal-grid .field-full {
    grid-column: 1 / -1;
    max-width: none;
}

.ferie-modal-grid .field-spacer {
    grid-column: span 1;
}

.ferie-modal-check {
    grid-column: 1 / -1;
    margin-top: 0;
    max-width: none;
}

.data-form-skin .field-check.ferie-modal-check .check-button-field {
    grid-template-columns: minmax(430px, 460px) 68px;
}

.data-form-skin .field-check.ferie-modal-check .check-text {
    white-space: nowrap;
}

.ferie-modal-grid input[type="date"] {
    width: 100%;
}

.ferie-modal-grid textarea[name="ferie_notes"] {
    font-size: 16px;
}

.ferie-modal-actions {
    background: #f8fafc;
    border-top: 1px solid #cbd5e1;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    padding: 12px 14px;
}

.ferie-modal-actions .button,
.ferie-modal-actions button {
    min-width: 112px;
}

.ferie-modal-error {
    border-radius: 0;
    margin: 0;
}

.form-grid .field-Notes {
    grid-column: 1 / -1;
    max-width: none;
}

.form-grid .field-CompensoLrd {
    grid-column: 7 / span 6;
}

.form-grid .field-Convivenza {
    grid-column: 7 / span 3;
}

.form-grid .field-Firmato {
    grid-column: 10 / span 3;
}

.table-wrap th,
.table-wrap td {
    border-bottom: 1px solid var(--line);
    padding: 7px 9px;
    text-align: left;
    vertical-align: middle;
}

.table-wrap th {
    background: #f7f9fc;
    color: var(--muted);
    font-size: 13px;
    position: sticky;
    top: 0;
    text-transform: uppercase;
    z-index: 2;
}

.table-wrap tbody tr:last-child td {
    border-bottom: 0;
}

.table-wrap tbody tr[data-edit-url],
.table-wrap tbody tr[data-grid-selectable] {
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
}

.print-client-table-wrap tbody tr,
.ferie-detail-table-wrap tbody tr[data-riga] {
    -webkit-user-select: none;
    user-select: none;
}

.table-wrap tbody tr input,
.table-wrap tbody tr select,
.table-wrap tbody tr textarea,
.print-client-table-wrap tbody tr input,
.print-client-table-wrap tbody tr select,
.print-client-table-wrap tbody tr textarea,
.ferie-detail-table-wrap tbody tr input,
.ferie-detail-table-wrap tbody tr select,
.ferie-detail-table-wrap tbody tr textarea {
    -webkit-user-select: text;
    user-select: text;
}

.table-wrap tbody tr[data-edit-url]:hover td,
.table-wrap tbody tr[data-grid-selectable]:hover td {
    background: #f3f8ff;
}

.table-wrap tbody tr.selected-row td {
    background: #dbeafe;
}

.table-wrap tbody tr.selected-row:hover td {
    background: #d2e5ff;
}

.table-wrap tbody tr[data-edit-url]:focus-visible,
.table-wrap tbody tr[data-grid-selectable]:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}

.sort-link {
    color: inherit;
    display: inline-flex;
    min-height: 28px;
    text-decoration: none;
}

.sort-link:hover,
.sort-link.active {
    color: var(--primary);
}

.actions {
    display: flex;
    gap: 8px;
}

.actions .button,
.form-actions .button,
.form-actions button {
    min-width: 88px;
}

.table-wrap .actions .button {
    font-size: 14px;
    min-height: 32px;
    min-width: 82px;
    padding: 6px 10px;
}

.inline-form {
    margin: 0;
}

.form-grid {
    display: grid;
    gap: 10px 14px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.form-frame {
    border: 1px solid var(--line);
    border-radius: 8px;
    grid-column: 1 / -1;
    margin: 0;
    padding: 18px 16px 16px;
}

.form-frame + .form-frame {
    margin-top: 4px;
}

.form-frame legend {
    color: var(--text);
    font-size: 14px;
    font-weight: 700;
    padding: 0 8px;
}

.form-frame-grid {
    margin-top: 2px;
}

.compact-frame {
    padding: 12px 14px 12px;
}

.compact-frame + .compact-frame {
    margin-top: 8px;
}

.compact-frame .form-frame-grid {
    gap: 10px 14px;
}

.compact-frame .field {
    gap: 8px;
    min-height: 36px;
}

.compact-frame .field label,
.compact-frame .comune-side .field label {
    padding-top: 8px;
}

.compact-frame input,
.compact-frame select,
.compact-frame textarea {
    min-height: 36px;
    padding-bottom: 6px;
    padding-top: 6px;
}

.compact-frame .field-check {
    min-height: 36px;
}

.data-form-skin .form-frame {
    background: #ffffff;
    border: 1px solid #8a8f98;
    border-radius: 0;
}

.data-form-skin .form-frame legend {
    background: transparent;
    border: 1px solid #8a8f98;
    color: #0e1824;
    font-size: 15px;
    font-weight: 700;
    padding: 3px 10px;
    text-transform: uppercase;
}

.data-form-skin .field label,
.data-form-skin .compact-frame .field label,
.data-form-skin .compact-frame .comune-side .field label,
.data-form-skin .comune-side .field label {
    align-items: center;
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    color: #0e1824;
    display: flex;
    font-weight: 500;
    height: 30px;
    line-height: 1.15;
    min-height: 30px;
    padding: 5px 8px;
}

.data-form-skin input,
.data-form-skin select,
.data-form-skin textarea,
.data-form-skin .compact-frame input,
.data-form-skin .compact-frame select,
.data-form-skin .compact-frame textarea {
    border: 1px solid #8a8f98;
    font-weight: 700;
    min-height: 30px;
    padding-bottom: 5px;
    padding-top: 5px;
}

.data-form-skin .field-check {
    min-height: 30px;
}

.data-form-skin .field-check .check-label {
    height: 30px;
    min-height: 30px;
    padding-bottom: 2px;
    padding-top: 2px;
}

.data-form-skin .compact-frame .field-check {
    height: 30px;
    min-height: 30px;
}

.cliente-page,
.badante-page,
.agenzia-page,
.aliquota-iva-page,
.comune-page,
.pagamento-page,
.azienda-page,
.tipo-cessazione-page,
.tipo-documento-page,
.utente-page {
    --label-width: 158px;
    padding: 16px 0 28px;
    width: min(var(--app-wide-width), calc(100% - (var(--app-page-gutter) * 2)));
}

.cliente-page .topbar,
.badante-page .topbar,
.agenzia-page .topbar,
.aliquota-iva-page .topbar,
.comune-page .topbar,
.pagamento-page .topbar,
.azienda-page .topbar,
.tipo-cessazione-page .topbar,
.tipo-documento-page .topbar,
.utente-page .topbar {
    margin-bottom: 12px;
}

.cliente-page .panel,
.badante-page .panel,
.agenzia-page .panel,
.aliquota-iva-page .panel,
.comune-page .panel,
.pagamento-page .panel,
.azienda-page .panel,
.tipo-cessazione-page .panel,
.tipo-documento-page .panel,
.utente-page .panel {
    padding: 14px;
}

.cliente-page .tabs,
.badante-page .tabs,
.agenzia-page .tabs,
.utente-page .tabs {
    margin-bottom: 12px;
}

.cliente-page .form-grid,
.cliente-page .compact-frame .form-frame-grid,
.badante-page .form-grid,
.badante-page .compact-frame .form-frame-grid,
.agenzia-page .form-grid,
.agenzia-page .compact-frame .form-frame-grid,
.aliquota-iva-page .form-grid,
.aliquota-iva-page .compact-frame .form-frame-grid,
.comune-page .form-grid,
.comune-page .compact-frame .form-frame-grid,
.pagamento-page .form-grid,
.pagamento-page .compact-frame .form-frame-grid,
.azienda-page .form-grid,
.azienda-page .compact-frame .form-frame-grid,
.tipo-cessazione-page .form-grid,
.tipo-cessazione-page .compact-frame .form-frame-grid,
.tipo-documento-page .form-grid,
.tipo-documento-page .compact-frame .form-frame-grid,
.utente-page .form-grid,
.utente-page .compact-frame .form-frame-grid {
    gap: 8px 14px;
}

.cliente-page .field,
.badante-page .field,
.agenzia-page .field,
.aliquota-iva-page .field,
.comune-page .field,
.pagamento-page .field,
.azienda-page .field,
.tipo-cessazione-page .field,
.tipo-documento-page .field,
.utente-page .field {
    gap: 6px;
    grid-template-columns: minmax(128px, var(--label-width)) minmax(0, 1fr);
    min-height: 30px;
}

.cliente-page .form-frame,
.badante-page .form-frame,
.agenzia-page .form-frame,
.aliquota-iva-page .form-frame,
.comune-page .form-frame,
.pagamento-page .form-frame,
.azienda-page .form-frame,
.tipo-cessazione-page .form-frame,
.tipo-documento-page .form-frame,
.utente-page .form-frame {
    padding: 10px 12px 12px;
}

.azienda-page .form-grid,
.azienda-page .compact-frame .form-frame-grid {
    grid-template-columns: minmax(0, 1fr);
}

.azienda-page .field-AbilitaLoginUtente .check-button-field {
    grid-template-columns: minmax(0, 1fr) 68px !important;
    width: 100% !important;
}

.azienda-page .field-AbilitaLoginUtente .check-text {
    white-space: nowrap !important;
}

.pagamento-page .field-Condizioni,
.pagamento-page .field-Modalita {
    grid-template-columns: 230px minmax(0, 1fr);
}

.pagamento-page .field-Condizioni > label,
.pagamento-page .field-Modalita > label {
    white-space: nowrap;
}

.cliente-page .compact-frame + .compact-frame,
.badante-page .compact-frame + .compact-frame,
.agenzia-page .compact-frame + .compact-frame,
.utente-page .compact-frame + .compact-frame {
    margin-top: 6px;
}

.cliente-page .comune-row,
.badante-page .comune-row,
.agenzia-page .comune-row,
.utente-page .comune-row {
    gap: 8px 14px;
}

.cliente-page .comune-row > .field,
.badante-page .comune-row > .field,
.agenzia-page .comune-row > .field,
.utente-page .comune-row > .field {
    grid-template-columns: minmax(128px, var(--label-width)) minmax(0, 1fr);
}

.cliente-page .comune-side,
.badante-page .comune-side,
.agenzia-page .comune-side,
.utente-page .comune-side {
    gap: 6px;
    grid-template-columns: minmax(128px, var(--label-width)) 76px 56px minmax(0, 1fr);
}

.badante-page .field-DataDomanda,
.badante-page .field-DataQuotaS,
.badante-page .field-DataQuotaA {
    grid-template-columns: minmax(215px, 215px) minmax(0, 1fr);
}

.badante-page .field-NotePersonali {
    grid-column: 1 / -1;
}

.cliente-page .field-DatiAltezza {
    grid-column: 1 / span 3;
    grid-template-columns: minmax(128px, var(--label-width)) 100px;
}

.cliente-page .field-DatiPeso {
    grid-column: 1 / span 3;
    grid-template-columns: minmax(128px, var(--label-width)) 100px;
}

.cliente-page .field-DatiFumatore {
    grid-column: 4 / span 2;
    grid-row: 1;
}

.cliente-page .field-DatiAnimali {
    grid-column: 4 / span 2;
    grid-row: 2;
}

.cliente-page .field-DatiAscensore {
    grid-column: 4 / span 2;
    grid-row: 3;
}

.cliente-page .field-DatiCamera {
    grid-column: 4 / span 2;
    grid-row: 4;
}

.cliente-page .field-DatiConviventi {
    grid-column: 1 / span 3;
    grid-template-columns: minmax(128px, var(--label-width)) 100px;
}

.cliente-page .field-DatiPiano {
    grid-column: 1 / span 3;
    grid-row: 3;
    grid-template-columns: minmax(128px, var(--label-width)) 100px;
}

.cliente-page .field-DatiOraLibera1 {
    grid-column: 1 / span 3;
    grid-row: 6;
}

.cliente-page .field-DatiOraLibera2 {
    grid-column: 1 / span 3;
    grid-row: 7;
}

.cliente-page .field-DatiAssistito2 {
    grid-column: 1 / span 5;
    grid-row: 8;
}

.cliente-page .field-DatiAssistData {
    grid-column: 1 / span 3;
    grid-row: 9;
}

.cliente-page .field-DatiAssistSesso {
    grid-column: 1 / span 3;
    grid-row: 10;
}

.cliente-page .field-DatiNota1 {
    grid-column: 6 / span 7;
    grid-row: 1;
}

.cliente-page .field-DatiNota2 {
    grid-column: 6 / span 7;
    grid-row: 2;
}

.cliente-page .field-DatiNota3 {
    grid-column: 6 / span 7;
    grid-row: 3;
}

.cliente-page .field-DatiNota4 {
    grid-column: 6 / span 7;
    grid-row: 4;
}

.cliente-page .field-DatiNota5 {
    grid-column: 6 / span 7;
    grid-row: 5;
}

.cliente-page .field-DatiNota6 {
    grid-column: 6 / span 7;
    grid-row: 6;
}

.cliente-page .field-DatiBisogno1,
.cliente-page .field-DatiBisogno2,
.cliente-page .field-DatiBisogno3,
.cliente-page .field-DatiBisogno4,
.cliente-page .field-DatiBisogno5,
.cliente-page .field-DatiBisogno6 {
    grid-column: 6 / span 7;
}

.contratto-page {
    --label-width: 148px;
    padding: 16px 0 28px;
    width: min(var(--app-wide-width), calc(100% - (var(--app-page-gutter) * 2)));
}

.contratto-page .topbar {
    margin-bottom: 12px;
}

.contratto-page .panel {
    padding: 14px;
}

.contratto-page form {
    display: grid;
    gap: 6px;
}

.contratto-page .form-frame {
    padding: 10px 12px 12px;
}

.contratto-page .compact-frame + .compact-frame {
    margin-top: 0;
}

.contratto-page .form-grid,
.contratto-page .compact-frame .form-frame-grid {
    gap: 8px 12px;
}

.contratto-page .field {
    gap: 6px;
    grid-column: span 4;
    grid-template-columns: minmax(112px, var(--label-width)) minmax(0, 1fr);
    min-height: 30px;
}

main.contratto-page.data-form-skin .field > label,
main.contratto-page.data-form-skin .field-check .check-button-field .check-text {
    border-radius: 6px;
    font-weight: 600;
}

.data-form-skin .top-actions {
    margin-right: 14px;
}

.data-form-skin .top-actions .button,
.data-form-skin .top-actions button {
    background: rgb(200, 200, 240);
    color: var(--text);
    min-width: 96px;
    width: 96px;
}

.data-form-skin .top-actions .button:hover,
.data-form-skin .top-actions button:hover {
    background: rgb(184, 184, 230);
}

.data-form-skin .top-actions .detrazioni-save-print {
    min-width: 132px;
    width: 132px;
}

.data-form-skin .top-actions .azienda-create-db-button {
    min-width: 144px;
    width: 144px;
}

.data-form-skin .top-actions .azienda-delete-db-button {
    min-width: 154px;
    width: 154px;
}

.data-form-skin .top-actions .azienda-delete-company-button {
    min-width: 144px;
    width: 144px;
}

.data-form-skin .top-actions button.danger {
    background: var(--danger);
    color: #ffffff;
}

.data-form-skin .top-actions button.danger:hover {
    background: var(--danger-hover);
}

.contratto-page .field-Codice,
.contratto-page .field-Anno,
.contratto-page .field-DataReg,
.contratto-page .field-Tipo,
.contratto-page .field-DataIni,
.contratto-page .field-DataEnd,
.contratto-page .field-AlIrpef,
.contratto-page .field-OreLav,
.contratto-page .field-OraIni,
.contratto-page .field-OraEnd,
.contratto-page .field-Stato,
.contratto-page .field-DataCess,
.contratto-page .field-Penale {
    grid-column: span 4;
}

.contratto-page .field-Causale {
    grid-column: 1 / span 4;
}

.contratto-page .field-Notes {
    grid-column: 5 / -1;
}

.contratto-page .field-Compenso,
.contratto-page .field-CompensoLrd {
    grid-column: span 4;
}

.contratto-page .field-Convivenza,
.contratto-page .field-Firmato,
.contratto-page .field-PartTime {
    grid-column: span 4;
    grid-template-columns: minmax(0, 1fr);
}

.contratto-page .field-Anno {
    grid-column: 5 / span 4;
}

.contratto-page .field-DataReg,
.contratto-page .field-Stato,
.contratto-page .field-DataCess,
.contratto-page .field-Convivenza,
.contratto-page .field-Firmato,
.contratto-page .field-PartTime {
    grid-column: 1 / span 4;
}

.contratto-page .field-Badante,
.contratto-page .field-Cliente,
.contratto-page .field-Agenzia {
    grid-column: 1 / span 8;
}

.contratto-page .contract-party-control,
.fattura-page .contract-party-control {
    display: grid;
    gap: 8px;
    grid-template-columns: 94px minmax(0, 1fr) 34px;
}

.contratto-page .contract-party-code {
    text-align: center;
}

.contratto-page .lookup-button {
    background: rgb(200, 200, 240);
    border-color: #8a8f98;
}

.contratto-page .lookup-button:hover,
.contratto-page .lookup-button:focus-visible {
    background: rgb(184, 184, 230);
    border-color: #707784;
}

.lookup-button {
    align-self: stretch;
    background: #fff;
    border: 1px solid var(--field-border, #9ca3af);
    border-radius: 4px;
    cursor: pointer;
    min-height: 30px;
    min-width: 34px;
    position: relative;
}

.lookup-button::before {
    border: 2px solid #315f8f;
    border-radius: 50%;
    content: "";
    height: 12px;
    left: 8px;
    position: absolute;
    top: 6px;
    width: 12px;
}

.lookup-button::after {
    background: #315f8f;
    content: "";
    height: 2px;
    left: 20px;
    position: absolute;
    top: 20px;
    transform: rotate(45deg);
    transform-origin: left center;
    width: 9px;
}

.lookup-button:hover,
.lookup-button:focus-visible {
    background: #eef5ff;
    border-color: #5b8fc7;
    outline: none;
}

.lookup-overlay {
    align-items: center;
    background: rgba(17, 24, 39, 0.22);
    display: none;
    inset: 0;
    justify-content: center;
    position: fixed;
    z-index: 2600;
}

.lookup-overlay.is-open {
    display: flex;
}

.lookup-dialog {
    background: #fff;
    border: 1px solid #7898b8;
    box-shadow: 0 18px 34px rgba(15, 23, 42, 0.24);
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    max-height: calc(100vh - 72px);
    width: min(940px, calc(100vw - 48px));
}

.lookup-titlebar {
    align-items: center;
    background: linear-gradient(#d8e5f3, #b7cbe1);
    border-bottom: 1px solid #8aa8c5;
    display: flex;
    justify-content: space-between;
    min-height: 34px;
    padding: 4px 8px 4px 12px;
}

.lookup-titlebar h2 {
    color: #17395c;
    font-size: 15px;
    font-weight: 700;
    margin: 0;
}

.lookup-close {
    background: transparent;
    border: 0;
    cursor: pointer;
    height: 24px;
    position: relative;
    width: 24px;
}

.lookup-close::before,
.lookup-close::after {
    background: #17395c;
    content: "";
    height: 2px;
    left: 5px;
    position: absolute;
    top: 11px;
    width: 14px;
}

.lookup-close::before {
    transform: rotate(45deg);
}

.lookup-close::after {
    transform: rotate(-45deg);
}

.lookup-toolbar {
    align-items: center;
    display: grid;
    gap: 8px;
    grid-template-columns: 72px minmax(0, 1fr);
    padding: 10px 12px;
}

.lookup-toolbar label {
    align-items: center;
    background: var(--BlueSteel);
    border: 1px solid #8aa8c5;
    color: #17395c;
    display: flex;
    font-weight: 700;
    height: 28px;
    justify-content: center;
}

.lookup-search {
    height: 28px;
}

.lookup-table-wrap {
    border-bottom: 1px solid #cbd5e1;
    border-top: 1px solid #cbd5e1;
    margin: 0 12px;
    max-height: 420px;
    overflow: auto;
}

.lookup-table-wrap:focus {
    outline: 1px solid #5b8fc7;
    outline-offset: -1px;
}

.lookup-table {
    border-collapse: collapse;
    font-size: 13px;
    width: 100%;
}

.lookup-table th:nth-child(1),
.lookup-table td:nth-child(1) {
    width: 76px;
}

.lookup-table th:nth-child(2),
.lookup-table td:nth-child(2) {
    width: 260px;
}

.lookup-table th:nth-child(3),
.lookup-table td:nth-child(3) {
    width: 300px;
}

.lookup-table th {
    background: linear-gradient(#d8e5f3, #b7cbe1);
    border-bottom: 1px solid #8aa8c5;
    color: #17395c;
    height: 28px;
    position: sticky;
    top: 0;
    z-index: 1;
}

.lookup-table th button {
    align-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    gap: 5px;
    height: 100%;
    justify-content: flex-start;
    padding: 0;
    text-align: left;
    width: 100%;
}

.lookup-table th button::after {
    color: #315f8f;
    content: "";
    font-size: 10px;
    min-width: 10px;
}

.lookup-table th button.is-active[data-direction="asc"]::after {
    content: "▲";
}

.lookup-table th button.is-active[data-direction="desc"]::after {
    content: "▼";
}

.lookup-table th,
.lookup-table td {
    padding: 5px 8px;
    text-align: left;
    white-space: nowrap;
}

.lookup-table td {
    border-bottom: 1px solid #e5e7eb;
}

.lookup-table tr {
    cursor: default;
}

.lookup-table tr.selected td {
    background: #cfe1f5;
    color: #102a43;
}

.lookup-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding: 10px 12px 12px;
}

.lookup-actions .button {
    background: #d8e5f3;
    border-color: #8aa8c5;
    color: #17395c;
}

.lookup-actions .button:hover,
.lookup-actions .button:focus-visible {
    background: #c6d8ec;
}

.linked-contracts-dialog {
    width: min(1280px, calc(100vw - 80px));
}

.linked-contracts-subtitle {
    color: #17395c;
    font-size: 14px;
    font-weight: 700;
    padding: 10px 12px 4px;
}

.linked-contracts-table-wrap {
    max-height: 470px;
}

.linked-contracts-table {
    min-width: 1080px;
}

.linked-contracts-table th:nth-child(1),
.linked-contracts-table td:nth-child(1) {
    width: 62px;
}

.linked-contracts-table th:nth-child(2),
.linked-contracts-table td:nth-child(2) {
    width: 82px;
}

.linked-contracts-table th:nth-child(4),
.linked-contracts-table td:nth-child(4),
.linked-contracts-table th:nth-child(5),
.linked-contracts-table td:nth-child(5),
.linked-contracts-table th:nth-child(6),
.linked-contracts-table td:nth-child(6) {
    text-align: center;
    width: 92px;
}

.linked-contracts-table th:nth-child(8),
.linked-contracts-table td:nth-child(8) {
    width: 180px;
}

.linked-contracts-table th:nth-child(9),
.linked-contracts-table td:nth-child(9) {
    text-align: right;
    width: 104px;
}

.contratto-page .field-DataIni,
.contratto-page .field-DataEnd,
.contratto-page .field-OreLav,
.contratto-page .field-OraIni,
.contratto-page .field-OraEnd,
.contratto-page .field-Penale {
    grid-column: 5 / span 4;
}

.contratto-page .field-Compenso,
.contratto-page .field-AlIrpef,
.contratto-page .field-CompensoLrd {
    grid-column: 9 / span 4;
}

.data-form-skin .field-check .check-button-field {
    align-items: stretch;
    background: transparent;
    border: 0;
    display: grid;
    gap: 6px;
    grid-template-columns: minmax(112px, var(--label-width)) 68px;
    height: 30px;
    min-height: 30px;
    padding: 0;
    width: 100%;
}

.data-form-skin .field-check .check-button-field .check-text {
    align-items: center;
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    box-sizing: border-box;
    color: #0e1824;
    display: flex;
    font-weight: 500;
    height: 30px;
    min-height: 30px;
    padding: 5px 8px;
}

.data-form-skin .field-check .check-button-field input {
    opacity: 0;
    position: absolute;
    width: 1px;
}

.data-form-skin .field-check .check-button-field .check-button-wrap {
    align-items: center;
    background: #ffffff !important;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    box-sizing: border-box;
    display: flex;
    height: 30px;
    justify-content: center;
    min-height: 30px;
    padding: 0 !important;
    position: relative;
}

.data-form-skin .field-check .check-button-field .check-button-wrap::before {
    background: rgb(210, 210, 210);
    border: 1px solid #c2ccda;
    border-radius: 999px;
    content: "";
    display: block;
    height: 22px;
    transition: background 0.15s ease, border-color 0.15s ease;
    width: 42px;
}

.data-form-skin .field-check .check-button-field .check-button-wrap::after {
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(23, 32, 51, 0.28);
    content: "";
    height: 16px;
    left: 16px;
    position: absolute;
    top: 7px;
    transition: transform 0.15s ease;
    width: 16px;
}

.data-form-skin .field-check .check-button-field input:checked ~ .check-button-wrap::before {
    background: var(--primary);
    border-color: var(--primary);
}

.data-form-skin .field-check .check-button-field input:checked ~ .check-button-wrap::after {
    transform: translateX(20px);
}

.data-form-skin .field-check .check-button-field input:focus-visible ~ .check-button-wrap {
    box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.18);
}

.contratto-page .field-Notes {
    max-width: none;
}

.tabs {
    border-bottom: 1px solid var(--line);
    display: flex;
    gap: 4px;
    margin-bottom: 18px;
    overflow-x: auto;
}

.tab-button {
    background: transparent;
    border: 1px solid transparent;
    border-bottom: 0;
    border-radius: 6px 6px 0 0;
    color: var(--muted);
    min-height: 42px;
    padding: 9px 12px;
}

.tab-button:hover {
    background: #eef2f8;
    color: var(--text);
}

.tab-button.active {
    background: #ffffff;
    border-color: var(--primary);
    border-bottom-color: #ffffff;
    box-shadow: 0 -1px 0 var(--primary), 1px 0 0 rgba(31, 111, 235, 0.18), -1px 0 0 rgba(31, 111, 235, 0.18);
    color: var(--primary);
    margin-bottom: -1px;
}

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
}

.impostazioni-panel {
    min-height: 420px;
}

.impostazioni-form-grid {
    gap: 12px 14px;
}

.settings-company-tab {
    --label-width: 158px;
}

.settings-owner-tab {
    --label-width: 158px;
}

.settings-application-tab {
    --label-width: 360px;
}

.settings-accounting-tab {
    --label-width: 220px;
}

.settings-billing-tab {
    --label-width: 220px;
}

.settings-einvoice-tab {
    --label-width: 220px;
}

.settings-mail-tab {
    --label-width: 158px;
}

.settings-backup-tab {
    --label-width: 330px;
}

.settings-print-tab {
    --label-width: 180px;
}

.settings-print-tab .field-print-data textarea {
    width: calc(100% - 40px);
}

.settings-company-tab .impostazioni-form-grid,
.settings-owner-tab .impostazioni-form-grid,
.settings-application-tab .impostazioni-form-grid,
.settings-accounting-tab .impostazioni-form-grid,
.settings-billing-tab .impostazioni-form-grid,
.settings-einvoice-tab .impostazioni-form-grid,
.settings-mail-tab .impostazioni-form-grid,
.settings-backup-tab .impostazioni-form-grid,
.settings-print-tab .impostazioni-form-grid,
.settings-print-tab .compact-frame .form-frame-grid,
.settings-backup-tab .compact-frame .form-frame-grid,
.settings-mail-tab .compact-frame .form-frame-grid,
.settings-einvoice-tab .compact-frame .form-frame-grid,
.settings-billing-tab .compact-frame .form-frame-grid,
.settings-accounting-tab .compact-frame .form-frame-grid,
.settings-application-tab .compact-frame .form-frame-grid,
.settings-owner-tab .compact-frame .form-frame-grid,
.settings-company-tab .compact-frame .form-frame-grid {
    gap: 8px 12px;
}

.settings-application-tab .field-check {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.settings-accounting-tab .field-check {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.settings-mail-tab .field-check {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.settings-backup-tab .field-check {
    align-items: start;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.settings-backup-tab .settings-weekday-check {
    --label-width: 112px;
}

.settings-backup-tab .settings-weekday-grid {
    grid-template-columns: repeat(3, minmax(210px, 1fr));
}

.settings-backup-tab .settings-weekday-check {
    background: transparent;
    border: 0;
    border-radius: 0;
    min-height: 30px;
    padding: 0;
}

.settings-backup-tab .settings-weekday-check .check-button-field {
    min-width: 186px;
}

.impostazioni-form-grid .impostazioni-panel {
    min-height: 0;
}

.impostazioni-form-grid .field-full-wide {
    grid-column: 1 / -1;
    max-width: none;
}

.impostazioni-form-grid .field-short input {
    max-width: 140px;
}

.impostazioni-form-grid .field-smtp-port {
    grid-column: span 3;
    grid-template-columns: 112px minmax(0, 1fr);
}

.impostazioni-form-grid .field-smtp-port input {
    max-width: 72px;
}

.impostazioni-form-grid .field-smtp-auth {
    grid-column: span 3;
    grid-template-columns: minmax(0, 1fr);
}

.impostazioni-form-grid .field-smtp-auth .check-label {
    min-height: 36px;
}

.impostazioni-form-grid .field-smtp-test {
    grid-column: span 6;
}

.impostazioni-form-grid .field-print-data {
    grid-column: 1 / span 8;
    grid-row: span 3;
}

.impostazioni-form-grid .field-print-data textarea {
    min-height: 136px;
}

.impostazioni-form-grid .field-timbro-text textarea {
    font-family: inherit;
    text-align: center;
}

.impostazioni-form-grid .field-print-side {
    grid-column: 9 / -1;
    grid-template-columns: 116px minmax(0, 1fr);
}

.impostazioni-form-grid .field-print-align {
    align-items: center;
}

.impostazioni-check {
    grid-column: 1 / -1;
}

.settings-weekday-grid {
    display: grid;
    gap: 8px 14px;
    grid-template-columns: repeat(3, minmax(170px, 1fr));
    min-width: 0;
}

.settings-weekday-field {
    grid-template-columns: 1fr;
}

.settings-weekday-field > label {
    padding-top: 0;
}

.settings-weekday-check {
    background: #f8fafc;
    border: 1px solid var(--line);
    border-radius: 6px;
    min-height: 36px;
    padding: 6px 8px;
}

.settings-image-control {
    align-items: center;
    display: grid;
    gap: 10px;
    grid-template-columns: 180px minmax(0, 1fr) 112px;
}

.settings-image-preview {
    align-items: center;
    background: #f8fafc;
    border: 1px solid var(--line);
    border-radius: 6px;
    color: var(--muted);
    display: flex;
    font-size: 13px;
    font-weight: 700;
    height: 86px;
    justify-content: center;
    overflow: hidden;
    padding: 8px;
}

.settings-image-preview img {
    display: block;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.settings-image-delete {
    min-width: 112px;
}

.settings-align-radio {
    display: inline-flex;
    gap: 8px;
}

.settings-align-option {
    background: transparent !important;
    border: 0 !important;
    height: auto !important;
    margin: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
}

.settings-align-option input {
    opacity: 0;
    position: absolute;
    width: 1px;
}

.settings-align-icon {
    align-items: center;
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 6px;
    display: inline-flex;
    flex-direction: column;
    gap: 3px;
    height: 34px;
    justify-content: center;
    padding: 5px;
    width: 42px;
}

.settings-align-icon span {
    background: var(--text);
    border-radius: 999px;
    display: block;
    height: 2px;
}

.settings-align-icon span:nth-child(1) {
    width: 24px;
}

.settings-align-icon span:nth-child(2) {
    width: 18px;
}

.settings-align-icon span:nth-child(3) {
    width: 26px;
}

.settings-align-icon.align-left {
    align-items: flex-start;
}

.settings-align-icon.align-center {
    align-items: center;
}

.settings-align-icon.align-right {
    align-items: flex-end;
}

.settings-align-option input:checked + .settings-align-icon {
    background: transparent;
    border-color: var(--primary);
    box-shadow: inset 0 0 0 1px var(--primary);
}

.settings-align-option input:focus-visible + .settings-align-icon {
    box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.18);
}

.sr-only {
    height: 1px;
    margin: -1px;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.impostazioni-layout {
    max-width: none;
}

.settings-shell {
    display: grid;
    gap: 18px;
    grid-template-columns: 240px minmax(0, 1fr);
    min-height: 470px;
}

.settings-tabs {
    border-right: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-right: 14px;
}

.settings-tab-button {
    background: transparent;
    border: 1px solid transparent;
    border-radius: 6px;
    color: var(--muted);
    justify-content: flex-start;
    min-height: 40px;
    padding: 9px 12px;
    text-align: left;
    width: 100%;
}

.settings-tab-button:hover {
    background: #eef2f8;
    color: var(--text);
}

.settings-tab-button.active {
    background: #ffffff;
    border-color: var(--primary);
    box-shadow: inset 3px 0 0 var(--primary);
    color: var(--primary);
}

.settings-content {
    min-width: 0;
}

.settings-note {
    align-items: center;
    background: #f8fafc;
    border: 1px solid var(--line);
    border-radius: 6px;
    color: var(--muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 15px;
    font-weight: 700;
    gap: 8px 26px;
    grid-column: 1 / -1;
    line-height: 1.2;
    min-height: 36px;
    padding: 7px 12px;
    width: 100%;
}

.settings-note-title {
    color: var(--text);
}

.settings-test-button {
    grid-column: 2;
    justify-self: start;
    min-width: 132px;
}

.form-section-title {
    border-top: 1px solid var(--line);
    font-size: 18px;
    margin: 22px 0 14px;
    padding-top: 18px;
}

.form-section-title:first-child {
    border-top: 0;
    margin-top: 0;
    padding-top: 0;
}

.field label {
    color: var(--muted);
    display: block;
    font-size: 13px;
    font-weight: 700;
    margin: 0;
    padding-top: 8px;
}

.field {
    align-items: start;
    display: grid;
    gap: 8px;
    grid-column: span 6;
    grid-template-columns: var(--label-width) minmax(0, 1fr);
    min-height: 36px;
}

.field-spacer {
    grid-column: span 6;
}

.field-force-left {
    grid-column: 1 / span 6;
}

.field-full {
    grid-column: 1 / -1;
    max-width: calc((100% - 14px) / 2);
}

.fattura-page .field-full {
    max-width: none;
}

.fattura-page {
    --label-width: 170px;
    padding: 16px 0 28px;
    width: min(var(--app-wide-width), calc(100% - (var(--app-page-gutter) * 2)));
}

.fattura-page .topbar {
    margin-bottom: 12px;
}

.fattura-page .panel {
    padding: 14px;
}

.fattura-page .form-grid,
.fattura-page .compact-frame .form-frame-grid {
    gap: 8px 12px;
}

.fattura-page .field {
    gap: 6px;
    grid-template-columns: minmax(140px, var(--label-width)) minmax(0, 1fr);
    min-height: 30px;
}

.fattura-page .form-frame {
    padding: 10px 12px 12px;
}

.fattura-page .compact-frame + .compact-frame {
    margin-top: 8px;
}

.fattura-page .fattura-description-inline,
.fattura-page .fattura-bottom-fields {
    gap: 8px 12px;
}

.fattura-page .fattura-description-inline {
    grid-template-columns: minmax(0, 1fr) 260px;
}

.fattura-page .field-Descrizione,
.fattura-page .field-Notes {
    grid-column: 1 / -1;
}

.fattura-page .field-TipoImporto {
    align-self: start;
    grid-column: 2;
    grid-row: 1;
    grid-template-columns: minmax(0, 1fr);
    justify-self: end;
    min-height: 82px;
    width: 260px;
}

.fattura-page .field-Descrizione {
    grid-column: 1;
    grid-row: 1;
}

.fattura-page .field-Codice {
    grid-column: 1 / span 3;
    grid-row: 1;
}

.fattura-page .field-Anno {
    grid-column: 4 / span 3;
    grid-row: 1;
}

.fattura-page .field-Causale {
    grid-column: 7 / span 6;
    grid-row: 1;
}

.fattura-page .field-NumDoc {
    grid-column: 1 / span 3;
    grid-row: 2;
}

.fattura-page .field-DataDoc {
    grid-column: 4 / span 3;
    grid-row: 2;
}

.fattura-page .field-Mese {
    grid-column: 7 / span 6;
    grid-row: 2;
}

.fattura-page .field-Cliente {
    grid-column: 1 / span 6;
}

.fattura-page textarea {
    resize: vertical;
}

.fattura-page .field-Descrizione > label,
.fattura-page .field-Notes > label {
    align-items: flex-start;
    height: auto;
    min-height: 82px;
}

.fattura-page .field-CalcolaImporti .invoice-calculate-button {
    grid-column: 2;
    min-height: 30px;
    width: 100%;
}

.fatturazione-parametri-overlay {
    align-items: center;
    background: rgba(23, 32, 51, 0.34);
    display: none;
    inset: 0;
    justify-content: center;
    padding: 26px;
    position: fixed;
    z-index: 100;
}

.fatturazione-parametri-overlay.active {
    display: flex;
}

.fatturazione-parametri-dialog {
    background: #ffffff;
    border: 1px solid #8a8f98;
    border-radius: 8px;
    box-shadow: 0 22px 48px rgba(23, 32, 51, 0.24);
    max-height: calc(100vh - 52px);
    overflow: hidden;
    width: min(390px, calc(100vw - 48px));
}

.fatturazione-parametri-title {
    background: var(--primary);
    color: #ffffff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    padding: 13px 18px;
}

.fatturazione-parametri-fields {
    display: grid;
    gap: 14px;
    grid-template-columns: 1fr;
    padding: 24px 18px 18px;
}

.fatturazione-parametri-fields .field {
    align-items: center;
    display: grid;
    gap: 6px;
    grid-template-columns: 142px minmax(0, 1fr);
    max-width: none;
}

.fatturazione-parametri-fields label {
    align-items: center;
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    box-sizing: border-box;
    color: #000000;
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 700;
    height: 30px;
    min-height: 30px;
    padding: 2px 10px;
    white-space: nowrap;
}

.fatturazione-parametri-fields input,
.fatturazione-parametri-fields select {
    background: #ffffff;
    border-color: #8a8f98;
    border-radius: 6px;
    height: 30px;
    min-height: 30px;
}

.fatturazione-parametri-fields small {
    color: #9a3412;
    font-size: 12px;
    font-weight: 700;
    grid-column: 2;
}

.fatturazione-parametri-actions {
    align-items: center;
    border-top: 1px solid var(--line);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 18px;
    padding: 14px 18px;
}

.fatturazione-parametri-actions .button,
.fatturazione-parametri-actions button {
    min-width: 104px;
}

.servizi-prestati-page {
    padding-bottom: 0;
}

.servizi-prestati-page .topbar {
    margin-bottom: 14px;
}

.servizi-record-box {
    border: 1px solid #9da9ba;
    display: grid;
    gap: 22px;
    grid-template-columns: auto 48px;
    margin-right: 20px;
    min-width: 180px;
    padding: 4px 10px;
}

.servizi-record-box span,
.servizi-record-box strong {
    color: #000000;
    font-size: 14px;
    line-height: 1.1;
}

.servizi-record-box strong {
    text-align: right;
}

.servizi-header-actions {
    margin-left: auto;
    margin-right: 16px;
}

.servizi-header-actions button {
    min-width: 132px;
}

.servizi-filter-panel {
    margin-bottom: 10px;
    padding: 10px;
}

.servizi-filter-form {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 18px;
    width: 100%;
}

.servizi-filter-form .field {
    align-items: center;
    display: flex;
    gap: 2px;
    max-width: none;
}

.servizi-filter-form label {
    flex: 0 0 auto;
}

.servizi-filter-form #q {
    width: 210px;
}

.servizi-filter-form #stato {
    width: 138px;
}

.servizi-filter-form #agenzia {
    width: 260px;
}

.servizi-filter-actions {
    margin-left: auto;
    margin-right: 10px;
}

.servizi-filter-form label,
.servizi-client-panel h2,
.servizi-detail-panel h2,
.servizi-contract-section h3 {
    align-items: center;
    background: var(--AzzurroSky);
    border: 1px solid #8a8f98;
    border-radius: 6px;
    color: #000000;
    display: flex;
    font-size: 13px;
    font-weight: 500;
    min-height: 30px;
    margin: 0;
    padding: 5px 8px;
    white-space: nowrap;
}

.servizi-filter-form input,
.servizi-filter-form select {
    background: #ffffff;
    border: 1px solid #aebdcc;
    border-radius: 6px;
    color: #111827;
    font: inherit;
    height: 30px;
    min-height: 30px;
    padding: 5px 8px;
}

.servizi-layout {
    align-items: stretch;
    display: grid;
    gap: 14px;
    grid-template-columns: 355px minmax(0, 1fr);
}

.servizi-client-panel,
.servizi-detail-panel {
    padding: 0;
}

.servizi-client-panel {
    min-height: 0;
}

.servizi-client-panel h2,
.servizi-detail-panel h2 {
    border-bottom: 1px solid var(--line);
}

.servizi-detail-panel h2 {
    margin-left: 20px;
    margin-right: 20px;
}

.servizi-client-list {
    height: 500px;
    min-height: 500px;
}

.servizi-client-list table,
.servizi-contract-list table {
    table-layout: fixed;
}

.servizi-client-list th:first-child,
.servizi-client-list td:first-child {
    text-align: center;
    width: 80px;
}

.servizi-detail-panel {
    min-width: 0;
    padding-bottom: 18px;
}

.servizi-customer-card {
    display: grid;
    gap: 40px;
    grid-template-columns: minmax(420px, 1fr) 344px;
    padding: 14px 20px 18px;
}

.servizi-main-fields {
    align-items: center;
    display: grid;
    gap: 12px 4px;
    grid-template-columns: 112px 86px minmax(300px, 1fr);
    min-width: 0;
}

.servizi-side-fields {
    align-content: start;
    align-items: center;
    display: grid;
    gap: 12px 4px;
    grid-template-columns: 58px 92px 58px 120px;
}

.servizi-main-fields label,
.servizi-side-fields label {
    align-items: center;
    background: var(--AzzurroSky);
    border: 1px solid #8a8f98;
    border-radius: 6px;
    color: #000000;
    display: flex;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.2;
    min-height: 30px;
    padding: 5px 8px;
}

.servizi-main-fields input,
.servizi-side-fields input {
    background: var(--MildGray);
    border: 1px solid #aebdcc;
    border-radius: 6px;
    color: #111827;
    font: inherit;
    font-weight: 700;
    height: 30px;
    min-height: 30px;
    padding: 5px 8px;
}

.servizi-main-fields .servizi-wide-field {
    grid-column: 2 / span 2;
}

.servizi-side-fields .servizi-side-wide-label {
    grid-column: 1 / span 2;
}

.servizi-side-fields .servizi-side-wide-input {
    grid-column: 3 / span 2;
}

.servizi-contract-section {
    border: 1px solid var(--line);
    margin: 0 20px;
}

.servizi-contract-section h3 {
    border-bottom: 1px solid var(--line);
}

.servizi-contract-list {
    height: 230px;
}

.servizi-contract-list th:nth-child(1),
.servizi-contract-list td:nth-child(1) {
    text-align: center;
    width: 92px;
}

.servizi-contract-list th:nth-child(3),
.servizi-contract-list td:nth-child(3) {
    width: 132px;
}

.servizi-contract-list th:nth-child(4),
.servizi-contract-list td:nth-child(4),
.servizi-contract-list th:nth-child(6),
.servizi-contract-list td:nth-child(6),
.servizi-contract-list th:nth-child(7),
.servizi-contract-list td:nth-child(7) {
    text-align: center;
    width: 82px;
}

.servizi-contract-list th:nth-child(5),
.servizi-contract-list td:nth-child(5) {
    text-align: center;
    width: 102px;
}

.servizi-contract-list th:nth-child(8),
.servizi-contract-list td:nth-child(8) {
    text-align: right;
    width: 96px;
}

.servizi-contract-list th:nth-child(9),
.servizi-contract-list td:nth-child(9) {
    text-align: center;
    width: 86px;
}

.servizi-actions {
    align-items: center;
    display: flex;
    margin-top: 18px;
}

.servizi-actions .button,
.servizi-actions button {
    min-width: 136px;
}

.fatturazione-elenco-riferimenti {
    align-items: end;
    display: grid;
    gap: 8px;
    grid-template-columns: 286px 252px;
    margin-top: 2px;
    min-width: 546px;
}

.fatturazione-elenco-riferimenti .field {
    align-items: center;
    gap: 6px;
    grid-column: auto;
    grid-template-columns: 86px minmax(0, 1fr);
    max-width: none;
}

.fatturazione-elenco-riferimenti label {
    align-items: center;
    background: #b8cbe0;
    border: 1px solid #8a8f98;
    border-radius: 6px;
    box-sizing: border-box;
    color: #000000;
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 700;
    height: 30px;
    min-height: 30px;
    padding: 2px 10px;
    white-space: nowrap;
}

.fatturazione-periodo-inputs {
    display: grid;
    gap: 5px;
    grid-template-columns: 1fr 56px;
}

.fatturazione-elenco-riferimenti input {
    border-color: #8a8f98;
    border-radius: 6px;
    min-height: 30px;
    padding: 4px 8px;
}

.fatturazione-elenco-riferimenti .field-DataDoc {
    grid-template-columns: 104px 140px;
}

.fatturazione-elenco-toolbar {
    align-items: center;
    gap: 18px;
    justify-content: space-between;
    flex-wrap: nowrap;
}

.fatturazione-elenco-actions {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    min-width: max-content;
}

.topbar .fatturazione-elenco-actions {
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;
    margin-right: 16px;
}

.fatturazione-elenco-table-wrap {
    margin-top: 14px;
}

.fatturazione-elenco-table-wrap table {
    min-width: 1160px;
    table-layout: fixed;
}

.fatturazione-elenco-table-wrap th:nth-child(2),
.fatturazione-elenco-table-wrap td:nth-child(2),
.fatturazione-elenco-table-wrap th:nth-child(5),
.fatturazione-elenco-table-wrap td:nth-child(5) {
    text-align: center;
    width: 96px;
}

.fatturazione-elenco-table-wrap th:nth-child(1),
.fatturazione-elenco-table-wrap td:nth-child(1) {
    text-align: center;
    width: 118px;
}

.fatturazione-elenco-table-wrap th:nth-child(6),
.fatturazione-elenco-table-wrap td:nth-child(6),
.fatturazione-elenco-table-wrap th:nth-child(7),
.fatturazione-elenco-table-wrap td:nth-child(7),
.fatturazione-elenco-table-wrap th:nth-child(8),
.fatturazione-elenco-table-wrap td:nth-child(8),
.fatturazione-elenco-table-wrap th:nth-child(9),
.fatturazione-elenco-table-wrap td:nth-child(9) {
    text-align: right;
    width: 104px;
}

.fatturazione-elenco-table-wrap th:nth-child(3),
.fatturazione-elenco-table-wrap td:nth-child(3),
.fatturazione-elenco-table-wrap th:nth-child(4),
.fatturazione-elenco-table-wrap td:nth-child(4) {
    width: 240px;
}

.fattura-description-inline {
    margin: 2px 0 12px;
}

.fattura-importi-grid {
    margin-top: 4px;
}

.fattura-bottom-fields {
    margin-top: 12px;
}

.invoice-type-options {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px 26px;
    min-height: 34px;
}

.fattura-page .field-TipoImporto .invoice-type-options {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
    min-height: 82px;
    width: 100%;
}

.fattura-page .field-TipoImporto .invoice-type-option {
    width: 100%;
}

.field .invoice-type-option {
    align-items: center;
    color: var(--text);
    cursor: pointer;
    display: inline-flex;
    font-size: 14px;
    font-weight: 600;
    gap: 8px;
    line-height: 1.2;
    margin: 0;
    padding-top: 0;
}

.field .invoice-type-option input {
    accent-color: var(--primary);
    height: 16px;
    margin: 0;
    width: 16px;
}

.field-Agenzie {
    grid-column: 1 / -1;
    max-width: none;
}

.utente-page .field-Agenzie {
    grid-column: 8 / span 5;
    grid-row: 1 / span 10;
    align-self: start;
}

.utente-page .tab-panel > .form-grid > .field:not(.field-Agenzie),
.utente-page .tab-panel > .form-grid > .comune-row {
    grid-column: 1 / span 7;
}

.utente-page .utente-check-row {
    display: grid;
    gap: 8px 12px;
    grid-column: 1 / span 7;
    grid-template-columns: 1fr 1fr;
}

.utente-page .utente-access-row {
    align-items: start;
    display: flex;
    gap: 8px 12px;
    grid-column: 1 / span 7;
}

.utente-page .utente-personal-row {
    align-items: start;
    display: grid;
    gap: 8px 12px;
    grid-column: 1 / span 7;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.utente-page .utente-check-row > .field {
    grid-column: auto;
    max-width: none;
}

.utente-page .utente-personal-row > .field {
    grid-column: auto !important;
    grid-template-columns: minmax(128px, var(--label-width)) minmax(0, 1fr);
    max-width: none;
    min-width: 0;
}

.utente-page .utente-personal-row input,
.utente-page .utente-personal-row select {
    min-width: 0;
    width: 100%;
}

.utente-page .utente-access-row > .field {
    flex: 1 1 0;
    grid-column: auto !important;
    grid-template-columns: minmax(128px, var(--label-width)) minmax(0, 1fr);
    max-width: none;
    min-width: 0;
}

.utente-page .utente-access-row input {
    min-width: 0;
    width: 100%;
}

.utente-page .tab-panel > .form-grid > .field-Agenzie > label {
    align-self: start;
    grid-column: 1 / -1;
    height: 30px;
    min-height: 30px;
}

.utente-page .field-Agenzie {
    grid-template-columns: minmax(0, 1fr);
}

.agenzie-picker {
    min-width: 0;
    width: 100%;
}

.agenzie-grid {
    --agenzie-row-height: 36px;
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 0;
    overflow: hidden;
    width: 100%;
}

.agenzie-grid-head,
.agenzie-row {
    align-items: center;
    display: grid;
    grid-template-columns: 48px 96px minmax(0, 1fr);
}

.agenzie-grid-head {
    background: linear-gradient(#c7d7e8, #b8cbe0 52%, #a9bed6);
    border-bottom: 1px solid #8a8f98;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72), inset 0 -1px 0 rgba(72, 91, 112, 0.26);
    color: #0e1824;
    font-size: 13px;
    font-weight: 700;
    min-height: 28px;
}

.agenzie-grid-head span,
.agenzie-row span {
    padding: 0 10px;
}

.agenzie-grid-head span {
    align-items: center;
    display: flex;
    min-height: 28px;
    padding-bottom: 0;
    padding-top: 0;
}

.agenzie-grid-body {
    background: #ffffff;
    height: calc(var(--agenzie-row-height) * 8);
    overflow-y: auto;
}

.agenzie-row {
    background: #ffffff;
    border-bottom: 1px solid #edf1f7;
    cursor: pointer;
    height: var(--agenzie-row-height);
    min-height: var(--agenzie-row-height);
}

.data-form-skin .field .agenzie-row {
    background: #ffffff;
    border-left: 0;
    border-right: 0;
    border-top: 0;
    color: var(--text);
    font-weight: 400;
    margin: 0;
    padding: 0;
}

.agenzie-row span {
    background: #ffffff;
}

.agenzie-row:last-child {
    border-bottom: 0;
}

.agenzie-row:hover {
    background: #ffffff;
}

.agenzie-row:hover span {
    background: #ffffff;
}

.agenzie-check-cell {
    text-align: center;
}

.agenzie-check-cell input {
    min-height: auto;
    width: auto;
}

.agenzie-code {
    color: var(--text);
    font-variant-numeric: tabular-nums;
}

.agenzie-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.readonly-picker .agenzie-grid {
    background: #ffffff;
}

.readonly-picker .agenzie-grid-body {
    background: #f0f3f8;
}

.readonly-picker .agenzie-row,
.agenzie-row:has(.agenzia-check:disabled) {
    background: #f0f3f8 !important;
    cursor: default;
}

.data-form-skin .field .readonly-picker .agenzie-row,
.data-form-skin .field .agenzie-row:has(.agenzia-check:disabled) {
    background: #f0f3f8 !important;
}

.readonly-picker .agenzie-row:hover,
.agenzie-row:has(.agenzia-check:disabled):hover {
    background: #f0f3f8 !important;
}

.readonly-picker .agenzie-row span,
.agenzie-row:has(.agenzia-check:disabled) span {
    background: #f0f3f8 !important;
}

.readonly-picker .agenzie-row:hover span,
.agenzie-row:has(.agenzia-check:disabled):hover span {
    background: #f0f3f8 !important;
}

.comune-row {
    display: grid;
    gap: 10px 14px;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.comune-row > .field {
    display: grid;
    grid-column: auto;
    grid-template-columns: var(--label-width) minmax(0, 1fr);
}

.comune-row > .field-Citta,
.comune-row > .field-RefCitta,
.comune-row > .field-FattCitta,
.comune-row > .field-RecCitta {
    grid-column: auto;
}

.comune-side {
    display: grid;
    gap: 6px;
    grid-template-columns: var(--label-width) 80px 60px minmax(0, 1fr);
}

.comune-side .field {
    display: contents;
    grid-column: auto;
}

.comune-side .field + .field label {
    margin-left: 8px;
}

.comune-side .field-Provincia,
.comune-side .field-Cap,
.comune-side .field-CAP,
.comune-side .field-RefProv,
.comune-side .field-RefCap,
.comune-side .field-FattProv,
.comune-side .field-FattCap,
.comune-side .field-RepProvincia,
.comune-side .field-RecCap {
    grid-column: auto;
}

.comune-side .field label {
    padding-top: 8px;
}

.comune-side .field small {
    grid-column: 2 / -1;
}

.field-check {
    align-items: center;
    display: flex;
    min-height: 36px;
}

.checkbox-grid {
    display: grid;
    gap: 10px 14px;
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.checkbox-grid .field-check {
    grid-column: auto;
}

.checkbox-grid .field-Sollevatore {
    grid-column: 2;
}

.checkbox-grid .field-Guida {
    grid-column: 1;
}

.check-label {
    align-items: center;
    display: flex !important;
    gap: 8px;
    justify-content: space-between;
    margin: 0 !important;
    width: 100%;
}

.check-label input {
    opacity: 0;
    position: absolute;
    width: 1px;
}

.check-text {
    min-width: 0;
}

.switch-track {
    background: #d6deea;
    border: 1px solid #c2ccda;
    border-radius: 999px;
    display: inline-flex;
    flex: 0 0 auto;
    height: 24px;
    padding: 2px;
    transition: background 0.15s ease, border-color 0.15s ease;
    width: 44px;
}

.switch-thumb {
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(23, 32, 51, 0.28);
    height: 18px;
    transition: transform 0.15s ease;
    width: 18px;
}

.check-label input:checked ~ .switch-track {
    background: var(--primary);
    border-color: var(--primary);
}

.check-label input:checked ~ .switch-track .switch-thumb {
    transform: translateX(20px);
}

.check-label input:focus-visible ~ .switch-track {
    box-shadow: 0 0 0 3px rgba(31, 111, 235, 0.18);
}

.field small {
    color: var(--danger);
    display: block;
    margin-top: 5px;
}

.messagebox-overlay {
    align-items: center;
    background: rgba(23, 32, 51, 0.32);
    display: none;
    inset: 0;
    justify-content: center;
    padding: 24px;
    position: fixed;
    z-index: 1000;
}

.messagebox-overlay.active {
    display: flex;
}

.messagebox {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 18px 42px rgba(23, 32, 51, 0.28);
    max-width: 620px;
    overflow: hidden;
    width: min(620px, 100%);
}

.messagebox-title {
    background: var(--danger);
    color: #ffffff;
    font-size: 16px;
    font-weight: 700;
    padding: 12px 18px;
}

.messagebox-success .messagebox-title {
    background: #15803d;
}

.messagebox-error .messagebox-title {
    background: #dc2626;
}

.messagebox-confirm .messagebox-title {
    background: #f59e0b;
}

.messagebox-body {
    padding: 24px 22px 20px;
    text-align: center;
}

.messagebox-message {
    color: var(--text);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
}

.messagebox-detail {
    color: var(--danger);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    margin-top: 14px;
    overflow-wrap: anywhere;
    white-space: pre-line;
}

.messagebox-success .messagebox-detail {
    color: #15803d;
}

.messagebox-error .messagebox-detail {
    color: #dc2626;
}

.messagebox-confirm .messagebox-detail {
    color: #b45309;
}

.messagebox-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
    padding: 0 22px 24px;
}

.messagebox-ok,
.messagebox-cancel {
    min-width: 132px;
}

.application-admin-overlay {
    position: fixed;
    inset: 0;
    z-index: 2600;
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding-top: 170px;
    background: rgba(15, 23, 42, 0.28);
}

.application-admin-dialog {
    min-width: 520px;
}

.application-admin-dialog .form-grid,
.application-admin-dialog .form-frame-grid {
    grid-template-columns: minmax(0, 1fr);
}

.application-admin-dialog .field {
    grid-template-columns: 150px minmax(0, 1fr);
}

.application-admin-dialog .password-control {
    min-width: 320px;
}

.application-admin-overlay.active {
    display: flex;
}

.application-admin-dialog {
    width: min(420px, calc(100vw - 40px));
    overflow: hidden;
    border: 1px solid rgba(70, 130, 180, 0.55);
    border-radius: 8px;
    background: #f8fbff;
    box-shadow: 0 20px 46px rgba(15, 23, 42, 0.28);
}

.application-admin-title {
    padding: 10px 16px;
    color: #111827;
    font-weight: 700;
    background: linear-gradient(#dceaf8, #b9cde5);
    border-bottom: 1px solid rgba(70, 130, 180, 0.45);
}

.application-admin-body {
    padding: 18px 18px 12px;
}

.application-admin-body .form-frame-grid {
    grid-template-columns: minmax(0, 1fr);
}

.application-admin-actions {
    display: flex;
    justify-content: flex-end;
    gap: 14px;
    padding: 12px 18px 16px;
}

.application-admin-actions .button,
.application-admin-actions button {
    min-width: 104px;
}

.login-brand-access-copy {
    color: #26364a;
    font-size: 15px;
    line-height: 1.45;
    margin: 34px 0 0;
    text-align: center;
    white-space: nowrap;
}

.system-admin-entry-button {
    align-items: center;
    border: 1px solid #9fb2c8;
    border-radius: 7px;
    color: #334155;
    display: flex;
    font-weight: 600;
    justify-content: center;
    margin-top: 10px;
    min-height: 42px;
    text-decoration: none;
}

.system-admin-entry-button:hover,
.system-admin-entry-button:focus-visible {
    background: #edf4fb;
    border-color: #6f8eae;
}

.system-admin-login-body {
    background: #eef3f8;
    min-height: 100vh;
}

.system-admin-login-background {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    position: fixed;
}

.system-admin-login-background img {
    height: 120px;
    opacity: 0.16;
    width: 120px;
}

.system-admin-access-dialog {
    min-width: 560px;
    width: min(560px, calc(100vw - 40px));
}

.system-admin-access-dialog .field {
    grid-template-columns: 130px minmax(0, 1fr);
}

.system-admin-access-dialog .password-control {
    min-width: 0;
    width: 100%;
}

.system-admin-login-body .messagebox-overlay {
    z-index: 2800;
}

.system-admin-direct-menu {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(260px, 360px));
    justify-content: center;
    padding-top: 18px;
}

.system-admin-menu {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 14px;
}

.system-admin-menu-link {
    background: #ffffff;
    border: 1px solid #9fb2c8;
    border-radius: 7px;
    color: #172236;
    display: grid;
    gap: 6px;
    min-height: 110px;
    padding: 22px;
    text-decoration: none;
}

.system-admin-menu-link:hover,
.system-admin-menu-link:focus-visible {
    background: #edf4fb;
    border-color: #6f8eae;
}

.system-admin-menu-link strong {
    font-size: 18px;
}

.system-admin-menu-link span {
    color: #5f6f82;
}

.loading-overlay {
    align-items: center;
    background: transparent;
    display: none;
    inset: 0;
    justify-content: center;
    padding: 24px;
    position: fixed;
    z-index: 4000;
}

.loading-overlay.active {
    display: flex;
}

.loading-box {
    align-items: center;
    background: transparent;
    border: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 0;
}

.loading-spinner {
    background: transparent url("/assets/Progress_Img.gif") center / contain no-repeat;
    height: 116px;
    width: 116px;
}

.loading-text {
    color: var(--text);
    font-size: 16px;
    font-weight: 700;
}

.loading-bar {
    display: none;
}

.form-actions {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    margin-top: 18px;
}

.form-actions-notice {
    align-items: center;
    display: inline-flex;
    margin: 0 auto 0 0;
    min-height: 40px;
    padding: 8px 12px;
}

.empty {
    color: var(--muted);
    padding: 28px 0;
    text-align: center;
}

@media (max-width: 1180px) {
    .login-shell {
        grid-template-columns: 1fr;
        max-width: 720px;
    }

    .login-brand-panel {
        min-height: 520px;
        padding: 48px 42px 0;
    }

    .login-form-panel {
        padding: 42px;
    }

    .login-feature-grid {
        gap: 18px;
    }
}

@media (max-width: 720px) {
    .login-body {
        padding: 12px;
    }

    .login-shell {
        border-radius: 20px;
        width: 100%;
    }

    .login-brand-panel {
        min-height: 470px;
        padding: 36px 24px 0;
    }

    .login-brand {
        gap: 14px;
    }

    .login-brand-mark {
        height: 78px;
        width: 78px;
    }

    .login-brand-text {
        font-size: 48px;
    }

    .login-brand-panel h1 {
        font-size: 24px;
    }

    .login-brand-subtitle {
        font-size: 16px;
    }

    .login-feature-grid {
        grid-template-columns: repeat(2, 1fr);
        margin-top: 24px;
    }

    .login-care-band {
        height: 118px;
        padding: 28px 28px 20px;
    }

    .login-care-band p {
        font-size: 18px;
    }

    .login-form-panel {
        padding: 24px;
    }

    .login-card {
        border: 0;
        box-shadow: none;
        padding: 26px 0 10px;
    }

    .login-modern-field {
        grid-template-columns: 1fr;
    }

    .login-modern-field label {
        text-align: left;
    }

    .login-social-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    .menu-group,
    .menu-group.menu-work,
    .menu-group.menu-tables,
    .menu-group.menu-prints {
        grid-column: span 6;
    }
}

@media (max-width: 760px) {
    .main-menu {
        grid-template-columns: 1fr;
    }

    .menu-group,
    .menu-group.menu-work,
    .menu-group.menu-tables,
    .menu-group.menu-prints {
        grid-column: 1 / -1;
    }

    .menu-links-grid {
        grid-template-columns: 1fr;
    }

    .topbar,
    .user-box,
    .toolbar,
    .search,
    .form-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .field,
    .field-Citta,
    .field-RefCitta,
    .field-FattCitta,
    .field-Provincia,
    .field-CAP,
    .field-RefProv,
    .field-RefCap,
    .field-FattProv,
    .field-FattCap,
    .field-full {
        grid-column: 1 / -1;
        max-width: none;
    }

    .comune-row {
        grid-template-columns: 1fr;
    }

    .comune-row > .field,
    .comune-side {
        display: grid;
        grid-template-columns: 1fr;
    }

    .comune-side .field {
        display: grid;
        grid-template-columns: 1fr;
    }

    .comune-side .field small {
        grid-column: auto;
    }

    .field,
    .field.login-field,
    .field-Provincia,
    .field-CAP,
    .field-Sesso {
        grid-template-columns: 1fr;
    }

    .field label {
        padding-top: 0;
    }
}

@media print {
    @page {
        size: A4 landscape;
        margin: 6mm;
    }

    body.lista-presenze-page {
        background: #ffffff;
    }

    .lista-presenze-page .page {
        box-shadow: none;
        padding: 0;
        position: relative;
        width: 100%;
    }

    .lista-presenze-page .topbar {
        margin-bottom: 4mm;
        min-height: 12mm;
        padding-right: 48mm;
    }

    .lista-presenze-page .app-logo {
        height: 30px;
        width: 30px;
    }

    .lista-presenze-page .brand-heading {
        gap: 7px;
    }

    .lista-presenze-page h1 {
        font-size: 16pt;
        line-height: 1.05;
        margin: 0;
    }

    .lista-presenze-page .subtitle {
        font-size: 8pt;
        margin: 1mm 0 0;
    }

    .lista-presenze-page .panel {
        border: 0;
        box-shadow: none;
        padding: 0;
    }

    .lista-presenze-page .table-wrap {
        border: 0;
        border-radius: 0;
        height: auto;
        max-height: none;
        min-height: 0;
        overflow: visible;
    }

    .lista-presenze-page .lista-presenze-table-wrap table {
        min-width: 0;
        table-layout: fixed;
        width: 100%;
    }

    .lista-presenze-page .lista-presenze-table-wrap thead {
        display: table-header-group;
    }

    .lista-presenze-page .lista-presenze-table-wrap th {
        position: static !important;
        top: auto;
        z-index: auto;
    }

    .lista-presenze-page .lista-presenze-table-wrap th,
    .lista-presenze-page .lista-presenze-table-wrap th a,
    .lista-presenze-page .lista-presenze-table-wrap .sort-link,
    .lista-presenze-page .lista-presenze-table-wrap .sort-link.active {
        color: #000000;
    }

    .lista-presenze-page .lista-presenze-table-wrap .sort-indicator {
        display: none;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(2) .sort-link::after {
        content: "Assistito";
        display: block;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(17) .sort-link::after {
        content: "Iban";
        display: block;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(2) .sort-link {
        display: block;
        line-height: 1.12;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(17) .sort-link {
        display: block;
        line-height: 1.12;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(3),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(3) {
        display: none;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(4),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(4) {
        display: none;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(9),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(9),
    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(10),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(10) {
        display: none;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(18),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(18) {
        display: none;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(2),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(2) {
        width: 170px;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(17),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(17) {
        width: 178px;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(6),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(6) {
        width: 100px;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(1),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(1) {
        width: 64px;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(5),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(5) {
        width: 86px;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(8),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(8),
    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(n+11):nth-child(-n+15),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(n+11):nth-child(-n+15) {
        width: 62px;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(7),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(7) {
        width: 92px;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(9),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(9),
    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(10),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(10) {
        width: 100px;
    }

    .lista-presenze-page .lista-presenze-table-wrap th:nth-child(16),
    .lista-presenze-page .lista-presenze-table-wrap td:nth-child(16) {
        width: 92px;
    }

    .lista-presenze-page .lista-presenze-table-wrap th,
    .lista-presenze-page .lista-presenze-table-wrap td {
        line-height: 1.12;
        padding-bottom: 1.1mm;
        padding-top: 1.1mm;
        vertical-align: top;
    }

    .lista-presenze-page .print-assistito {
        color: #374151;
        display: block;
        font-size: 8pt;
        margin-top: 0.6mm;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .lista-presenze-page .screen-periodo {
        display: none;
    }

    .lista-presenze-page .print-periodo {
        display: block;
    }

    .lista-presenze-page .print-periodo span {
        display: block;
        white-space: nowrap;
    }

    .lista-presenze-page .print-iban {
        color: #374151;
        display: block;
        font-size: 8pt;
        margin-top: 0.6mm;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .lista-presenze-page .toolbar {
        height: 0;
        margin: 0;
    }

    .lista-presenze-page .lista-presenze-search {
        align-items: center;
        column-gap: 3mm;
        display: grid;
        grid-template-columns: 24mm 15mm;
        position: absolute;
        right: 0;
        top: 0;
        width: 42mm;
        z-index: 1;
    }

    .lista-presenze-page .lista-presenze-search select,
    .lista-presenze-page .lista-presenze-search .period-year-input {
        border: 1px solid #9ca3af;
        font-size: 8pt;
        height: 6mm;
        min-height: 0;
        padding: 0 1mm;
    }

    .lista-presenze-page .lista-presenze-search select {
        width: 24mm;
    }

    .lista-presenze-page .lista-presenze-search .period-year-input {
        text-align: center;
        width: 15mm;
    }

    .lista-presenze-page .lista-presenze-search .edit,
    .lista-presenze-page .lista-presenze-actions,
    .lista-presenze-page .lista-presenze-final-actions {
        display: none;
    }
}

@media print {
    @page contractPreview {
        size: A4 portrait;
        margin: 14mm;
    }

    body.contract-preview-page {
        background: #ffffff !important;
    }

    body.contract-preview-page .contract-preview-toolbar,
    body.contract-preview-page .loading-overlay {
        display: none !important;
    }

    body.contract-preview-page .page,
    body.contract-preview-page .contract-preview-shell,
    body.contract-preview-page .contract-preview-stage {
        background: #ffffff !important;
        box-shadow: none !important;
        display: block !important;
        height: auto !important;
        margin: 0 !important;
        max-width: none !important;
        overflow: visible !important;
        padding: 0 !important;
        width: auto !important;
    }

    body.contract-preview-page .contract-preview-paper {
        aspect-ratio: auto !important;
        break-after: page;
        box-shadow: none !important;
        box-sizing: border-box !important;
        font-size: 11pt;
        height: 297mm !important;
        line-height: 1.26;
        margin: 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
        padding: 14mm 14mm 20mm !important;
        page: contractPreview;
        width: 210mm !important;
    }

    body.contract-preview-page .contract-preview-paper-copy {
        break-before: page;
        margin-top: 0 !important;
    }
}

@media print {
    @page printPreviewPortrait {
        size: 210mm 297mm;
        margin: 0;
    }

    @page printPreviewLandscape {
        size: 297mm 210mm;
        margin: 6mm;
    }

    body.print-preview-page {
        background: #ffffff !important;
        min-height: 0 !important;
        min-width: 0 !important;
        width: auto !important;
    }

    body.print-preview-page .print-preview-toolbar,
    body.print-preview-page .loading-overlay {
        display: none !important;
    }

    body.print-preview-page .page,
    body.print-preview-page .print-preview-shell,
    body.print-preview-page .print-preview-stage,
    body.print-preview-page .print-preview-paper-frame {
        background: #ffffff !important;
        box-shadow: none !important;
        display: block !important;
        height: auto !important;
        margin: 0 !important;
        max-width: none !important;
        overflow: visible !important;
        padding: 0 !important;
        width: auto !important;
    }

    body.print-preview-page .print-preview-paper {
        break-after: page;
        box-shadow: none !important;
        height: auto !important;
        margin: 0 !important;
        overflow: visible !important;
        padding: 0 !important;
        page: printPreviewLandscape;
        transform: none !important;
        width: auto !important;
    }

    body.contratto-cliente-print-preview .print-preview-paper {
        box-sizing: border-box !important;
        font-family: "Courier New", Courier, monospace !important;
        font-size: 11pt !important;
        height: 296.5mm !important;
        line-height: 1.35 !important;
        overflow: hidden !important;
        padding: var(--print-margin-top, 25mm) var(--print-margin-right, 25mm) var(--print-margin-bottom, 25mm) var(--print-margin-left, 25mm) !important;
        page: printPreviewPortrait;
        scale: 1 !important;
        transform: none !important;
        transform-origin: top left !important;
        width: 210mm !important;
        zoom: 1 !important;
    }

    body.contratto-cliente-print-preview .print-preview-paper-frame {
        break-after: auto;
        height: 296.5mm !important;
        page-break-after: auto;
        scale: 1 !important;
        transform: none !important;
        width: 210mm !important;
        zoom: 1 !important;
    }

    body.contratto-cliente-print-preview .print-preview-paper-frame + .print-preview-paper-frame {
        break-before: page;
        page-break-before: always;
    }

    body.contratto-cliente-print-preview .print-preview-paper {
        break-after: auto;
    }

    body.contratto-cliente-print-preview .contract-preview-page-number {
        bottom: 13mm !important;
    }

    body.print-preview-page .print-preview-table {
        font-size: 7pt;
    }

    body.print-preview-page .print-preview-table th,
    body.print-preview-page .print-preview-table td {
        padding: 1.2mm;
    }
}

@-moz-document url-prefix() {
    @media print {
        html,
        body.print-preview-page {
            max-width: 209mm !important;
            overflow: hidden !important;
        }

        body.contratto-cliente-print-preview .print-preview-shell,
        body.contratto-cliente-print-preview .print-preview-stage,
        body.contratto-cliente-print-preview .print-preview-paper-frame,
        body.contratto-cliente-print-preview .print-preview-paper {
            max-width: 209mm !important;
            width: 209mm !important;
        }

        body.contratto-cliente-print-preview .print-preview-paper-frame {
            height: auto !important;
        }
    }
}
.azienda-boolean-cell {
    text-align: center;
}

/* Login Colf24 a due passaggi, derivato dal flusso Micronote Food. */
.login-micronote-card {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    max-width: 620px;
    min-height: 540px;
    overflow: visible;
    padding: 0;
    position: relative;
}

.login-micronote-card > form {
    min-height: 540px;
    position: relative;
}

.mn-login-dialog {
    background: #f8fbff;
    border: 1px solid #8799ad;
    box-shadow: 0 20px 42px rgba(25, 34, 52, 0.18);
    color: #172236;
    width: min(560px, 100%);
}

.mn-company-dialog {
    left: 0;
    position: absolute;
    top: 8px;
}

.mn-login-brand {
    align-items: center;
    display: flex;
    gap: 15px;
    min-height: 92px;
    padding: 14px 20px;
}

.mn-login-logo {
    align-items: center;
    background: #e6002e;
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 68px;
    height: 68px;
    justify-content: center;
}

.mn-login-logo img {
    height: 74%;
    object-fit: contain;
    width: 74%;
}

.mn-login-brand h2 {
    color: #172236;
    font-size: 28px;
    line-height: 1.05;
    margin: 0;
    text-align: left;
}

.mn-login-brand p {
    color: #526173;
    font-size: 15px;
    font-weight: 600;
    margin: 5px 0 0;
}

.mn-login-panel {
    background: #eef3f8;
    border-top: 1px solid #8799ad;
}

.mn-login-panel > h3,
.mn-user-dialog > h3 {
    background: linear-gradient(#dceaf8, #b9cde5);
    border-bottom: 1px solid #8799ad;
    color: #172236;
    font-size: 15px;
    line-height: 34px;
    margin: 0;
    padding: 0 18px;
}

.mn-login-body {
    background: #eef3f8;
    display: grid;
    gap: 14px;
    padding: 24px 24px 18px;
}

.mn-login-field {
    align-items: center;
    display: grid;
    gap: 10px;
    grid-template-columns: 145px minmax(0, 1fr);
}

.mn-login-field label {
    color: #172236;
    font-size: 14px;
    font-weight: 700;
    text-align: right;
}

.mn-login-field input,
.mn-login-field select,
.mn-password-control {
    box-sizing: border-box;
    height: 36px;
    min-height: 36px;
    min-width: 0;
    width: 100%;
}

.mn-login-field input,
.mn-login-field select {
    background: #ffffff;
    border: 1px solid #8799ad;
    border-radius: 6px;
    color: #172236;
    font-family: "Segoe UI", Arial, sans-serif;
    font-size: 14px;
    padding: 0 10px;
}

.mn-login-field input:focus,
.mn-login-field select:focus {
    border-color: #e6002e;
    box-shadow: 0 0 0 3px rgba(230, 0, 46, 0.12);
    outline: 0;
}

.mn-login-field input[readonly] {
    background: #e1e8f0;
    color: #334155;
}

.mn-password-control {
    position: relative;
}

.mn-password-control input {
    padding-right: 44px;
}

.mn-password-toggle {
    border-radius: 5px;
    height: 32px;
    min-height: 32px;
    right: 2px;
    top: 2px;
    transform: none;
    width: 38px;
}

.mn-password-toggle:hover,
.mn-password-toggle.active {
    background: #fff0f3;
    color: #e6002e;
}

.mn-login-actions {
    align-items: center;
    background: #eef3f8;
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    padding: 12px 24px 22px;
}

.mn-login-actions .button {
    min-width: 112px;
}

.mn-admin-button {
    margin-right: auto;
}

.mn-confirm-button {
    background: #e6002e;
    border-color: #cf0029;
}

.mn-confirm-button:hover,
.mn-confirm-button:focus-visible {
    background: #cf0029;
}

.mn-user-login-backdrop {
    display: none;
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 20;
}

.mn-user-login-backdrop.active {
    display: block;
}

.mn-user-dialog {
    left: 82px;
    pointer-events: auto;
    position: absolute;
    top: 218px;
    width: min(520px, calc(100% - 12px));
}

.mn-user-dialog .mn-login-body {
    border-bottom: 0;
    padding-top: 22px;
}

.mn-admin-login-brand {
    align-items: center;
    border-bottom: 1px solid #b8c6d6;
    display: flex;
    gap: 14px;
    min-height: 92px;
    padding: 12px 18px;
}

.mn-admin-login-brand h1 {
    color: #172236;
    font-size: 28px;
    line-height: 1.05;
    margin: 0;
}

.mn-admin-login-brand p {
    color: #526173;
    font-size: 15px;
    font-weight: 600;
    margin: 5px 0 0;
}

.mn-admin-tool-image {
    height: 58px;
    margin-left: auto;
    object-fit: contain;
    width: 58px;
}

.system-admin-access-dialog {
    width: min(600px, calc(100vw - 40px));
}

@media (max-width: 1180px) {
    .login-micronote-card,
    .login-micronote-card > form {
        min-height: 560px;
    }
}

@media (max-width: 720px) {
    .login-micronote-card {
        border: 0;
        box-shadow: none;
        min-height: 590px;
        padding: 0;
    }

    .login-micronote-card > form {
        min-height: 590px;
    }

    .mn-company-dialog,
    .mn-user-dialog {
        left: 0;
        width: 100%;
    }

    .mn-user-dialog {
        top: 205px;
    }

    .mn-login-field {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .mn-login-field label {
        text-align: left;
    }
}
