/* =========================================================
   MI SUPPORTI?! — MOBILE COMPATIBILITY LAYER
   Loaded after page styles. Desktop rules remain untouched.
========================================================= */

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

img,
svg,
video,
canvas,
iframe {
    max-width: 100%;
}

img,
video {
    height: auto;
}

button,
input,
select,
textarea {
    max-width: 100%;
}

textarea {
    resize: vertical;
}

pre,
code,
.fic-item-description,
.ticket-description,
.message-content,
.activity-text {
    overflow-wrap: anywhere;
    word-break: break-word;
}

@media (hover: none), (pointer: coarse) {
    button,
    [role="button"],
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    .v2-btn {
        min-height: 44px;
    }

    a,
    button,
    summary,
    label,
    select {
        touch-action: manipulation;
    }

    button:hover,
    .btn:hover,
    .v2-btn:hover {
        transform: none;
    }
}

@media screen and (max-width: 768px) {
    :root {
        --mobile-edge: max(12px, env(safe-area-inset-left));
        --mobile-bottom: max(20px, env(safe-area-inset-bottom));
    }

    html,
    body {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    body {
        min-height: 100dvh;
        overscroll-behavior-x: none;
    }

    .dashboard-layout,
    .main-content,
    .v2-page-content,
    .workspace-page,
    .workspace-container,
    .fic-page,
    .scadenze-page,
    .admin-flow-page,
    .profile-page,
    .credits-page,
    .tickets-page,
    .downloads-page,
    .mailing-page {
        min-width: 0;
        max-width: 100%;
    }

    .v2-page-content {
        padding-right: max(18px, env(safe-area-inset-right));
        padding-bottom: calc(24px + env(safe-area-inset-bottom));
        padding-left: max(18px, env(safe-area-inset-left));
    }

    .topbar {
        padding-top: max(12px, env(safe-area-inset-top));
        padding-right: max(18px, env(safe-area-inset-right));
        padding-left: max(18px, env(safe-area-inset-left));
    }

    .sidebar {
        padding-top: max(18px, env(safe-area-inset-top));
        padding-bottom: max(18px, env(safe-area-inset-bottom));
        padding-left: max(18px, env(safe-area-inset-left));
    }

    body.v2-mobile-nav-open {
        overflow: hidden;
        touch-action: none;
    }

    body.v2-mobile-nav-open .sidebar {
        touch-action: pan-y;
    }

    h1,
    .text-title {
        overflow-wrap: anywhere;
    }

    p,
    dd,
    td,
    th,
    label,
    small,
    .card-header,
    .workspace-title-group {
        min-width: 0;
    }

    input,
    select,
    textarea {
        /* Prevents automatic viewport zoom on iOS Safari. */
        font-size: 16px !important;
    }

    input[type="checkbox"],
    input[type="radio"] {
        min-width: 20px;
        min-height: 20px;
    }

    .workspace-header,
    .card-header,
    .fic-hero,
    .scadenze-hero,
    .admin-flow-hero,
    .profile-hero,
    .credits-hero,
    .ticket-hero,
    .downloads-hero {
        min-width: 0;
    }

    .workspace-header > *,
    .card-header > *,
    .fic-hero > *,
    .scadenze-hero > *,
    .admin-flow-hero > *,
    .profile-hero > *,
    .credits-hero > *,
    .ticket-hero > *,
    .downloads-hero > * {
        min-width: 0;
        max-width: 100%;
    }

    .workspace-toolbar,
    .toolbar-actions,
    .fic-toolbar,
    .scadenze-toolbar,
    .form-actions,
    .fic-hero-actions,
    .scadenze-form-actions {
        min-width: 0;
        max-width: 100%;
    }

    .workspace-toolbar input,
    .workspace-toolbar select,
    .fic-toolbar input,
    .fic-toolbar select,
    .scadenze-toolbar input,
    .scadenze-toolbar select {
        width: 100%;
    }

    .data-table-wrapper,
    .table-responsive,
    .fic-table-wrap,
    .scadenze-table-wrap,
    .admin-table-wrap,
    .consents-table-wrap,
    .ticket-table-wrap {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    table {
        max-width: none;
    }

    .data-table th,
    .data-table td,
    .fic-table th,
    .fic-table td,
    .scadenze-table th,
    .scadenze-table td {
        padding-right: 14px;
        padding-left: 14px;
    }

    dialog,
    [role="dialog"],
    .modal,
    .modal-content,
    .popup-card {
        max-width: calc(100vw - 24px);
        max-height: calc(100dvh - 24px);
    }

    dialog,
    .modal-content,
    .popup-card {
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .toast,
    .flash-message,
    .notification-toast {
        right: max(12px, env(safe-area-inset-right));
        bottom: max(12px, env(safe-area-inset-bottom));
        left: max(12px, env(safe-area-inset-left));
        width: auto;
        max-width: none;
    }
}

@media screen and (max-width: 480px) {
    .v2-page-content {
        padding-right: max(12px, env(safe-area-inset-right));
        padding-left: max(12px, env(safe-area-inset-left));
    }

    .topbar {
        padding-right: max(12px, env(safe-area-inset-right));
        padding-left: max(12px, env(safe-area-inset-left));
    }

    .workspace-card,
    .card-primary,
    .card-secondary,
    .card-glass,
    .fic-detail-card,
    .scadenze-table-card {
        border-radius: 16px;
    }

    .workspace-toolbar,
    .toolbar-actions,
    .fic-toolbar,
    .scadenze-toolbar,
    .form-actions,
    .fic-hero-actions,
    .scadenze-form-actions {
        align-items: stretch;
    }

    .workspace-toolbar > button,
    .workspace-toolbar > a,
    .toolbar-actions > button,
    .toolbar-actions > a,
    .fic-hero-actions > button,
    .fic-hero-actions > a,
    .scadenze-form-actions > button,
    .scadenze-form-actions > a,
    .form-actions > button,
    .form-actions > a {
        justify-content: center;
    }
}

@media screen and (max-height: 520px) and (orientation: landscape) {
    .sidebar {
        overflow-y: auto;
    }

    .topbar-notification-panel,
    .topbar-online-panel,
    dialog,
    [role="dialog"],
    .modal-content {
        max-height: calc(100dvh - 16px);
        overflow-y: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
