/* Reserved controls only: no action, permission, visibility or navigation changes. */
.administration-page {
    display: flow-root;
    padding-block: 24px 40px;
}

.administration-page--eventi {
    padding-inline: 15px;
}

.administration-page .btn,
.administration-page .admin-actions > a,
.portal-admin-panel .admin-actions > .btn,
.portal-admin-icon-action,
.customer-offer-actions > .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-sizing: border-box;
    min-width: 44px;
    max-width: 100%;
    min-height: 48px;
    height: auto;
    margin: 0;
    padding: 11px 18px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
    white-space: normal;
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
}

.administration-page .btn > .fa,
.portal-admin-panel .btn > .fa,
.portal-admin-icon-action > .fa,
.customer-offer-actions > .btn > .fa {
    flex: 0 0 auto;
    margin: 0;
}

.administration-page .btn > .portal-icon-label {
    min-width: 0;
    white-space: normal;
    text-align: center;
}

.administration-page .admin-actions,
.portal-admin-panel .admin-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: flex-end;
    gap: 12px;
    margin-block: 16px;
}

/* A server-hidden action leaves no empty decorative row. */
.administration-page .admin-actions:not(:has(> a, > button, > input, > span)),
.portal-admin-panel .admin-actions:not(:has(> a, > button, > input, > span)) {
    margin: 0;
}

.administration-page .admin-actions > .btn,
.portal-admin-panel .admin-actions > .btn {
    flex: 0 1 auto;
    min-width: 0;
    margin: 0;
}

.administration-page .admin-lookup {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 10px;
    min-width: 0;
    margin-block: 12px;
}

.administration-page .select2-container {
    max-width: 100%;
}

.administration-page .admin-lookup > .form-control:not(.select2-hidden-accessible),
.administration-page .admin-lookup > .select2-container {
    flex: 1 1 0%;
    float: none;
    width: 0 !important;
    min-width: 0;
    max-width: 100%;
}

.administration-page .admin-lookup > .btn {
    flex: 0 0 48px;
    /* Existing search actions carry fixed 50px inline geometry. */
    width: 48px !important;
    height: auto !important;
    min-height: 48px;
    margin: 0;
    padding: 10px;
}

.administration-page .admin-lookup .select2-selection--single {
    height: auto;
    min-height: 48px;
    border-radius: 12px;
}

.administration-page .admin-lookup .select2-selection__rendered {
    height: auto;
    min-height: 46px;
    padding: 10px 32px 10px 12px;
    line-height: 1.5;
    white-space: normal;
    overflow-wrap: anywhere;
}

.administration-page .admin-lookup .select2-selection__arrow {
    height: 46px;
    top: 0;
    padding-top: 0;
}

.administration-page .admin-lookup .select2-selection__rendered :is(.placeholder, .comune, .localita, .struttura, .categoria, .selected) {
    height: auto;
    min-height: 0;
    padding: 0;
}

.administration-page .admin-lookup .select2-selection__rendered strong,
.administration-page .admin-lookup .select2-selection__rendered small {
    height: auto;
    padding-block: 0;
    font-size: 14px;
    line-height: 1.5;
    white-space: normal;
    text-align: start;
}

.administration-page .admin-lookup > .form-control:not(.select2-hidden-accessible) {
    min-height: 48px;
}

.administration-page--dashboard .list-group-item > a {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border-radius: 10px;
    line-height: 1.5;
    white-space: normal;
    text-decoration: none;
}

.administration-page--dashboard .list-group-item > a > .fa {
    flex: 0 0 auto;
}

.administration-page .admin-association-list > .list-group-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    overflow-wrap: anywhere;
}

.administration-page .admin-association-list > .list-group-item > a {
    display: inline-flex;
    flex: 0 0 44px;
    float: none !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-height: 44px;
    padding: 8px;
    border: 1px solid #dce7ee;
    border-radius: 10px;
    background: #f1f6fa;
    text-decoration: none;
}

.administration-page .admin-association-list > .list-group-item > a.text-danger {
    margin-left: auto;
    border-color: #eed3d3;
    background: #fff3f3;
    color: #a62b2b;
}

.administration-page .admin-table {
    width: 100%;
    table-layout: fixed;
}

.administration-page .admin-table > tbody > tr > td,
.administration-page .admin-table > tr > td {
    vertical-align: middle;
    overflow-wrap: anywhere;
}

.administration-page .admin-table > tbody > tr > td:first-child,
.administration-page .admin-table > tr > td:first-child {
    width: 120px;
}

.administration-page .admin-table > tbody > tr > td > .btn,
.administration-page .admin-table > tr > td > .btn {
    min-height: 44px;
    padding: 10px 12px;
}

.administration-page .management-modal .modal-footer {
    align-items: stretch;
    gap: 12px;
}

.administration-page .management-modal .modal-footer > .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    margin: 0;
}

.administration-page--svuotacache .input-group {
    display: flex;
    align-items: stretch;
    gap: 12px;
    width: 100%;
}

.administration-page--svuotacache .input-group > .form-control {
    flex: 1 1 0%;
    float: none;
    width: 0;
    min-width: 0;
    min-height: 48px;
    border-radius: 12px;
}

.administration-page--svuotacache .input-group-append {
    display: flex;
    flex: 0 1 auto;
    min-width: 0;
}

.portal-admin-panel {
    max-width: 100%;
}

.portal-admin-panel .form-control {
    max-width: 100%;
}

.portal-admin-panel .widget.guida {
    margin-inline: 0;
}

.portal-admin-icon-action {
    width: 44px;
    min-height: 44px;
    padding: 10px;
}

.portal-admin-panel .admin-actions > .portal-admin-icon-action {
    flex: 0 0 48px;
    width: 48px;
    padding: 10px;
}

.evento-box > .portal-admin-icon-action {
    margin: 6px 0 6px 8px;
}

/* Shared offer controls also occur outside customer pages. */
.customer-offer-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding-bottom: 12px;
}

.customer-offer-actions > .btn {
    flex: 0 0 44px;
    width: 44px;
    min-height: 44px;
    padding: 10px;
}

.customer-offer-status {
    float: none !important;
    flex: 0 1 auto;
    min-width: 0;
    margin-left: auto;
    line-height: 1.5;
}

.customer-offer-status > span {
    min-width: 0;
}

.administration-page :is(a, button, input[type="submit"]):focus-visible,
.portal-admin-panel :is(a, button, input[type="submit"]):focus-visible,
.portal-admin-icon-action:focus-visible,
.customer-offer-actions > .btn:focus-visible {
    outline: 3px solid #287ab9;
    outline-offset: 3px;
}

@media (hover: hover) {
    .administration-page--dashboard .list-group-item > a:not(.disabled):not(.aspNetDisabled):not([aria-disabled="true"]):hover {
        background: #edf4f9;
    }

    .administration-page .admin-association-list > .list-group-item > a:not(.disabled):not(.aspNetDisabled):not([aria-disabled="true"]):hover {
        box-shadow: 0 2px 8px rgba(0, 60, 112, .12);
    }
}

@media (max-width: 991px) {
    .administration-page .admin-card-body {
        padding: 20px 16px !important;
    }

    /* Keep each row's action with its data; dialogs keep their viewport positioning. */
    .administration-page .admin-table,
    .administration-page .admin-table > tbody {
        display: block;
        width: 100%;
    }

    .administration-page .admin-table > tbody > tr,
    .administration-page .admin-table > tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        margin-bottom: 16px;
        padding: 14px;
        border: 1px solid #dce7ee;
        border-radius: 14px;
        background: #fff;
    }

    .administration-page .admin-table > tbody > tr > td,
    .administration-page .admin-table > tr > td,
    .administration-page .admin-table > tbody > tr > td:first-child,
    .administration-page .admin-table > tr > td:first-child {
        display: block;
        width: auto;
        min-width: 0;
        padding: 8px 0;
        border: 0;
        text-align: start;
    }
}

@media (max-width: 575px) {
    .administration-page .admin-actions > .btn,
    .administration-page .admin-actions > a,
    .portal-admin-panel .admin-actions > .btn:not(.portal-admin-icon-action),
    .administration-page .management-modal .modal-footer > .btn {
        flex: 1 1 100%;
        width: 100%;
    }

    .administration-page--svuotacache .input-group {
        flex-wrap: wrap;
    }

    .administration-page--svuotacache .input-group > .form-control,
    .administration-page--svuotacache .input-group-append,
    .administration-page--svuotacache .input-group-append > .btn {
        flex: 1 1 100%;
        width: 100%;
    }

    .administration-page .pagination {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
    }

    .administration-page .pagination > li > a,
    .administration-page .pagination > li > span {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
        margin: 0;
        border-radius: 10px;
    }

    .customer-offer-status:has(svg) {
        flex-basis: 100%;
        margin-left: 0;
    }
}
