@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Sometype+Mono:ital,wght@0,400..700;1,400..700&display=swap');

/* ── Poppins — font globale SEMPLICE25 ──────────────────────────────────────── */
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Thin.woff2') format('woff2'),url('../fonts/poppins/Poppins-Thin.woff') format('woff'); font-weight:100; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-ThinItalic.woff2') format('woff2'),url('../fonts/poppins/Poppins-ThinItalic.woff') format('woff'); font-weight:100; font-style:italic; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-ExtraLight.woff2') format('woff2'),url('../fonts/poppins/Poppins-ExtraLight.woff') format('woff'); font-weight:200; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-ExtraLightItalic.woff2') format('woff2'),url('../fonts/poppins/Poppins-ExtraLightItalic.woff') format('woff'); font-weight:200; font-style:italic; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Light.woff2') format('woff2'),url('../fonts/poppins/Poppins-Light.woff') format('woff'); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-LightItalic.woff2') format('woff2'),url('../fonts/poppins/Poppins-LightItalic.woff') format('woff'); font-weight:300; font-style:italic; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Regular.woff2') format('woff2'),url('../fonts/poppins/Poppins-Regular.woff') format('woff'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Italic.woff2') format('woff2'),url('../fonts/poppins/Poppins-Italic.woff') format('woff'); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Medium.woff2') format('woff2'),url('../fonts/poppins/Poppins-Medium.woff') format('woff'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-MediumItalic.woff2') format('woff2'),url('../fonts/poppins/Poppins-MediumItalic.woff') format('woff'); font-weight:500; font-style:italic; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-SemiBold.woff2') format('woff2'),url('../fonts/poppins/Poppins-SemiBold.woff') format('woff'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-SemiBoldItalic.woff2') format('woff2'),url('../fonts/poppins/Poppins-SemiBoldItalic.woff') format('woff'); font-weight:600; font-style:italic; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Bold.woff2') format('woff2'),url('../fonts/poppins/Poppins-Bold.woff') format('woff'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-BoldItalic.woff2') format('woff2'),url('../fonts/poppins/Poppins-BoldItalic.woff') format('woff'); font-weight:700; font-style:italic; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-ExtraBold.woff2') format('woff2'),url('../fonts/poppins/Poppins-ExtraBold.woff') format('woff'); font-weight:800; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-ExtraBoldItalic.woff2') format('woff2'),url('../fonts/poppins/Poppins-ExtraBoldItalic.woff') format('woff'); font-weight:800; font-style:italic; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-Black.woff2') format('woff2'),url('../fonts/poppins/Poppins-Black.woff') format('woff'); font-weight:900; font-style:normal; font-display:swap; }
@font-face { font-family:'Poppins'; src:url('../fonts/poppins/Poppins-BlackItalic.woff2') format('woff2'),url('../fonts/poppins/Poppins-BlackItalic.woff') format('woff'); font-weight:900; font-style:italic; font-display:swap; }

body {
    font-family: 'Poppins', sans-serif !important;
}

/* Sfondo scuro solo nella SPA — escluse le pagine login/first-access */
body:not(.app-blank) {
    background-color: #202b46 !important;
}
.app-header {
    border-radius: 20px 0 0 0;
    margin-top: 7px;
}

.role-s { box-shadow: 0 0 0 3px #d1ac74; } /* Superadmin */
.role-a { box-shadow: 0 0 0 3px #14abeb; } /* Admin */
.role-u { box-shadow: 0 0 0 3px #4caf50; } /* User */
.role-m { box-shadow: 0 0 0 3px #f36e21; } /* Manager */

.menu-item.role-a {
    box-shadow: none;
}

.s25-tooltip .tooltip-inner {
    white-space: pre-line;
    text-align: left;
}

.avatar-fade {
    opacity: 0;
    transition: opacity 0.35s ease-in-out;
}

.avatar-fade.show {
    opacity: 1;
}

.role-gradient {
    border-radius: 50%;
    padding: 3px;
    background: conic-gradient(
        #00eaff,
        #4285f4,
        #9c27b0,
        #ff4081,
        #00eaff
    );
}

/* Campo errore Semplice25 */
.s25-error {
    border: 1px solid #ff4d4f !important;
    background-color: #fff6f6 !important;
}

.s25-error-text {
    font-size: 0.85rem;
    color: #d93025;
    margin-top: 4px;
}

/* ══════════════════════════════════════════════════════════
   PILL-BRIDGE SIDEBAR — App Center Grid  v2026.05.14
   ══════════════════════════════════════════════════════════ */

@keyframes s25-icon-alive {
    0%, 100% { box-shadow: 0 0 0 3px rgba(103,195,243,0.70), 0 0 16px rgba(103,195,243,0.45); }
    50%       { box-shadow: 0 0 0 3px rgba(103,195,243,1.0),  0 0 28px rgba(103,195,243,0.85); }
}

:root {
    --app-content-bg:    #ffffff;
    --s25-sidebar-bg:    #202B46;
    --s25-pill-r:        14px;
    --s25-content-r:     20px;
    --s25-bridge-color:  #ffffff;
}

/* ── Grid ───────────────────────────────────────────────── */
#left-sidebar { padding: 4px 0; }

.s25-app-group-label {
    font-size: 0.67rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.30);
    padding: 12px 12px 4px;
}

.s25-app-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 4px;
    padding: 2px 4px 2px 2px;
}

.s25-app-cell {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 10px 6px 8px;
    border-radius: var(--s25-pill-r);
    cursor: pointer;
    text-decoration: none !important;
    transition: background 0.15s ease;
    user-select: none;
}

.s25-app-cell:hover { background: rgba(255,255,255,0.09); }

.s25-app-cell.active {
    background: rgba(103,195,243,0.07);
    border-radius: var(--s25-pill-r);
    z-index: 5;
    color: rgba(255,255,255,0.90) !important;
}

.s25-app-cell.active .s25-app-name {
    color: rgba(103,195,243,1) !important;
    text-shadow: 0 0 8px rgba(103,195,243,0.70);
    font-weight: 600;
}

.s25-app-cell.active .s25-app-icon-wrap {
    box-shadow: 0 0 0 3px rgba(103,195,243,0.70), 0 0 16px rgba(103,195,243,0.45);
    animation: s25-icon-alive 2.5s ease-in-out infinite;
}

.s25-app-icon-wrap {
    background: #ffffff;
    border-radius: 8px;
    padding: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

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

.s25-app-name {
    font-size: 0.95rem;
    color: rgba(255,255,255,0.80);
    text-align: center;
    margin-top: 5px;
    line-height: 1.2;
    max-width: 100%;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
}

/* ── App Center — sidebar minimizzata ───────────────────── */
[data-kt-app-sidebar-minimize="on"] .app-sidebar:not(:hover) .s25-app-group-label,
body.app-sidebar-minimize .app-sidebar:not(:hover) .s25-app-group-label { display: none; }

[data-kt-app-sidebar-minimize="on"] .app-sidebar:not(:hover) .s25-app-grid,
body.app-sidebar-minimize .app-sidebar:not(:hover) .s25-app-grid {
    grid-template-columns: 1fr;
    padding: 2px;
    gap: 2px;
}

[data-kt-app-sidebar-minimize="on"] .app-sidebar:not(:hover) .s25-app-cell,
body.app-sidebar-minimize .app-sidebar:not(:hover) .s25-app-cell {
    align-items: flex-start;
}

[data-kt-app-sidebar-minimize="on"] .app-sidebar:not(:hover) .s25-app-name,
body.app-sidebar-minimize .app-sidebar:not(:hover) .s25-app-name { display: none; }

/* ── Wrapper scuro + contenuto arrotondato ──────────────── */
#kt_app_wrapper  { background-color: var(--s25-sidebar-bg); }

#kt_app_main {
    background:    var(--app-content-bg, #ffffff);
    /*border-radius: var(--s25-content-r);*/
    overflow:      clip;          /* clips border-radius senza rompere dropdown assoluti */
    /*margin:        8px 8px 8px 0;*/ /* 0 a sinistra: pill tocca il contenuto */
}

#contenuto_pagina { background: var(--app-content-bg, #ffffff); }

#kt_app_footer    { background: var(--app-content-bg, #ffffff); }

/* ── Menu classico — item inattivi più leggibili ─────────── */
#kt_app_sidebar_menu .menu-link .menu-title {
    color: rgba(255,255,255,0.82) !important;
}
#kt_app_sidebar_menu .menu-link .menu-icon i {
    color: rgba(255,255,255,0.75) !important;
}
#kt_app_sidebar_menu .menu-link:hover .menu-title,
#kt_app_sidebar_menu .menu-link:hover .menu-icon i {
    color: rgba(255,255,255,1) !important;
}

/* ── Pill per voci menu classico (solo top-level, classe custom) ── */
#kt_app_sidebar_menu .menu-item.s25-menu-active > .menu-link {
    background: var(--app-content-bg, #fff) !important;
    border-radius: var(--s25-pill-r) 0 0 var(--s25-pill-r) !important;
    margin-right: 0 !important;
}

#kt_app_sidebar_menu .menu-item.s25-menu-active::before,
#kt_app_sidebar_menu .menu-item.s25-menu-active::after {
    content: '';
    height: 20px;
    width: 20px;
    background: #fff;
    position: absolute;
    right: 0;
    top: -16px;
    z-index: 1;
}

#kt_app_sidebar_menu .menu-item.s25-menu-active::before {
    top: -17px;
    bottom: -20px;
}

#kt_app_sidebar_menu .menu-item.s25-menu-active::after {
    top: 37px;
    bottom: -18px;
}

#kt_app_sidebar_menu .menu-item.s25-menu-active > .menu-link::before,
#kt_app_sidebar_menu .menu-item.s25-menu-active > .menu-link::after {
    content: '';
    height: 40px;
    width: 40px;
    background: #202b46;
    position: absolute;
    top: 0;
    right: -40px;
    z-index: 2;
    border-radius: 50%;
}

#kt_app_sidebar_menu .menu-item.s25-menu-active > .menu-link::before {
    top: -38px;
    right: 0px;
}

#kt_app_sidebar_menu .menu-item.s25-menu-active > .menu-link::after {
    top: 38px;
    right: 0;
}

.menu-item {
    position: relative;
}
#kt_app_sidebar_menu .menu-item.s25-menu-active > .menu-link .menu-title,
#kt_app_sidebar_menu .menu-item.s25-menu-active > .menu-link .menu-icon i {
    color: #1a2035 !important;
}

/* ── Sub-item attivo: bullet glow ───────────────────────── */
#kt_app_sidebar_menu .menu-item.s25-sub-active > .menu-link {
    background: linear-gradient(to right, rgba(66, 133, 244, 0.18) 0%, transparent 70%);
    border-radius: 8px;
}

#kt_app_sidebar_menu .menu-item.s25-sub-active > .menu-link .bullet-dot {
    background-color: #4285f4 !important;
    width: 10px;
    height: 10px;
    box-shadow: 0 0 8px 2px rgba(66, 133, 244, 0.6);
}

#kt_app_sidebar_menu .menu-item.s25-sub-active > .menu-link .menu-title {
    color: #ffffff !important;
    font-weight: 600;
}

/* ── DataTables: length menu su una riga (Mostra N righe) ── */
label[for^="dt-length"] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

/* ── Fascia hero: sfumatura sinistra verso il pill-bridge ── */
.s25h-hero {
    box-shadow: inset 50px 0 35px -10px var(--s25-bridge-color, #fff);
}

/* ── Realtime switch: verde ON / rosso OFF ───────────────── */
#realtime-switch:checked {
    background-color: #198754 !important;
    border-color:     #198754 !important;
}
#realtime-switch:not(:checked) {
    background-color: #dc3545 !important;
    border-color:     #dc3545 !important;
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
