:root {
    --sg-dark: #050608;
    --sg-panel: #111722;
    --sg-panel-2: #182232;
    --sg-blue: #009ee3;
    --sg-blue-dark: #004b93;
    --sg-orange: #ff8a00;
    --sg-yellow: #ffcc00;
    --sg-white: #ffffff;
    --sg-muted: #9aa7b8;
    --sg-border: rgba(255,255,255,.12);
    --sg-shadow: 0 20px 55px rgba(0,0,0,.38);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(0,158,227,.26), transparent 30rem),
        radial-gradient(circle at top right, rgba(255,138,0,.18), transparent 26rem),
        var(--sg-dark);
    color: var(--sg-white);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a { text-decoration: none; }

.sg-wrapper { display: flex; min-height: 100vh; }

.sg-sidebar {
    width: 292px;
    position: fixed;
    inset: 0 auto 0 0;
    background: rgba(5, 6, 8, .94);
    border-right: 1px solid var(--sg-border);
    padding: 20px;
    overflow-y: auto;
    z-index: 50;
    backdrop-filter: blur(14px);
}

.sg-brand {
    text-align: center;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--sg-border);
    margin-bottom: 16px;
}

.sg-brand img {
    width: 180px;
    max-width: 100%;
    display: block;
    margin: 0 auto 8px;
}

.sg-brand span {
    font-weight: 950;
    letter-spacing: .08em;
    background: linear-gradient(90deg, var(--sg-blue), var(--sg-orange), var(--sg-yellow));
    -webkit-background-clip: text;
    color: transparent;
}

.sg-menu { display: grid; gap: 6px; }

.sg-menu-title {
    color: var(--sg-muted);
    text-transform: uppercase;
    font-size: .72rem;
    letter-spacing: .12em;
    font-weight: 900;
    padding: 16px 12px 6px;
}

.sg-menu a {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #d8e7f5;
    padding: 12px 13px;
    border-radius: 15px;
    font-weight: 750;
    transition: .2s ease;
}

.sg-menu a:hover {
    background: linear-gradient(135deg, rgba(0,158,227,.24), rgba(255,138,0,.18));
    color: var(--sg-white);
}

.sg-menu a i { color: var(--sg-yellow); }

.sg-main {
    margin-left: 292px;
    flex: 1;
    min-width: 0;
}

.sg-topbar {
    min-height: 88px;
    padding: 20px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border-bottom: 1px solid var(--sg-border);
    background: rgba(5,6,8,.62);
    position: sticky;
    top: 0;
    z-index: 30;
    backdrop-filter: blur(12px);
}

.sg-topbar h1 {
    margin: 0;
    line-height: 1;
    font-size: clamp(1.45rem, 3vw, 2.1rem);
    font-weight: 950;
}

.sg-topbar p {
    margin: 6px 0 0;
    color: var(--sg-muted);
    font-weight: 650;
}

.sg-userbox {
    display: flex;
    align-items: center;
    gap: 14px;
}

.sg-userbox strong,
.sg-userbox span {
    display: block;
    text-align: right;
}

.sg-userbox span {
    color: var(--sg-yellow);
    font-size: .78rem;
    font-weight: 900;
}

.sg-mobile-toggle {
    display: none;
    border: 1px solid var(--sg-border);
    color: var(--sg-white);
    background: rgba(255,255,255,.08);
    border-radius: 12px;
    padding: 8px 11px;
    font-size: 1.4rem;
}

.sg-content { padding: 30px; }

.sg-panel,
.sg-widget-card,
.sg-module-card,
.sg-module-tile,
.sg-action-card {
    background:
        linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.025)),
        var(--sg-panel);
    border: 1px solid var(--sg-border);
    border-radius: 28px;
    box-shadow: var(--sg-shadow);
}

.sg-panel { padding: 26px; }

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

.sg-panel-header h2 {
    margin: 0;
    font-weight: 950;
}

.sg-panel-header p {
    margin: 6px 0 0;
    color: var(--sg-muted);
}

.sg-widget-card {
    min-height: 145px;
    padding: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--sg-white);
    transition: .2s ease;
}

.sg-widget-card:hover,
.sg-module-card:hover,
.sg-module-tile:hover,
.sg-action-card:hover {
    transform: translateY(-4px);
    color: var(--sg-white);
    border-color: rgba(255,204,0,.50);
}

.sg-widget-card span {
    color: var(--sg-muted);
    font-weight: 800;
}

.sg-widget-card strong {
    display: block;
    font-size: 2.8rem;
    line-height: 1;
    margin-top: 8px;
    font-weight: 950;
}

.sg-widget-card i,
.sg-module-card i,
.sg-module-tile i,
.sg-big-icon,
.sg-action-card i {
    background: linear-gradient(135deg, var(--sg-blue), var(--sg-blue-dark));
    color: var(--sg-white);
    display: grid;
    place-items: center;
    box-shadow: 0 15px 30px rgba(0,158,227,.25);
}

.sg-widget-card i {
    width: 62px;
    height: 62px;
    border-radius: 22px;
    font-size: 1.9rem;
}

.sg-module-card {
    display: block;
    color: var(--sg-white);
    min-height: 210px;
    padding: 22px;
    transition: .2s ease;
}

.sg-module-card i,
.sg-module-tile i {
    width: 58px;
    height: 58px;
    border-radius: 20px;
    font-size: 1.8rem;
    margin-bottom: 16px;
}

.sg-module-card h3,
.sg-module-tile h2 {
    font-weight: 950;
    margin: 0 0 8px;
}

.sg-module-card p,
.sg-module-tile p {
    color: var(--sg-muted);
    margin: 0 0 12px;
}

.sg-module-card span,
.sg-module-tile span {
    color: var(--sg-yellow);
    font-weight: 900;
}

.sg-module-tile {
    display: block;
    color: var(--sg-white);
    padding: 24px;
    min-height: 255px;
}

.sg-big-icon {
    width: 82px;
    height: 82px;
    border-radius: 28px;
    font-size: 2.4rem;
}

.sg-action-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    color: var(--sg-white);
    min-height: 94px;
}

.sg-action-card i {
    width: 48px;
    height: 48px;
    border-radius: 17px;
}

.sg-table {
    --bs-table-bg: transparent;
    --bs-table-border-color: rgba(255,255,255,.08);
}

.form-control,
.form-select {
    background-color: rgba(255,255,255,.07);
    color: var(--sg-white);
    border: 1px solid rgba(255,255,255,.14);
    min-height: 45px;
}

.form-control:focus,
.form-select:focus {
    background-color: rgba(255,255,255,.10);
    color: var(--sg-white);
    border-color: var(--sg-yellow);
    box-shadow: 0 0 0 .25rem rgba(255,204,0,.15);
}

.form-label {
    color: var(--sg-muted);
    font-weight: 800;
}

.btn-warning {
    --bs-btn-bg: var(--sg-yellow);
    --bs-btn-border-color: var(--sg-yellow);
    --bs-btn-color: #101010;
    --bs-btn-hover-bg: var(--sg-orange);
    --bs-btn-hover-border-color: var(--sg-orange);
    --bs-btn-hover-color: #101010;
    font-weight: 900;
}

.sg-login-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 22px;
}

.sg-login-card {
    width: min(100%, 465px);
    padding: 34px;
    border-radius: 32px;
    background:
        linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.025)),
        var(--sg-panel);
    border: 1px solid var(--sg-border);
    box-shadow: var(--sg-shadow);
    text-align: center;
}

.sg-login-logo {
    width: 250px;
    max-width: 100%;
    margin-bottom: 12px;
}

.sg-login-card h1 {
    font-weight: 950;
    margin-bottom: 8px;
    background: linear-gradient(90deg, var(--sg-blue), var(--sg-orange), var(--sg-yellow));
    -webkit-background-clip: text;
    color: transparent;
}

.sg-login-card p {
    color: var(--sg-muted);
    margin-bottom: 24px;
}

.sg-login-card form { text-align: left; }

@media (max-width: 991.98px) {
    .sg-sidebar {
        transform: translateX(-100%);
        transition: .25s ease;
    }

    .sg-sidebar.open { transform: translateX(0); }

    .sg-main { margin-left: 0; }

    .sg-mobile-toggle { display: inline-flex; }

    .sg-topbar,
    .sg-content {
        padding-left: 18px;
        padding-right: 18px;
    }

    .sg-userbox div { display: none; }
}

@media (max-width: 575.98px) {
    .sg-topbar { min-height: 76px; }

    .sg-content { padding-top: 20px; }

    .sg-panel {
        padding: 18px;
        border-radius: 22px;
    }

    .sg-panel-header {
        flex-direction: column;
        align-items: stretch;
    }

    .sg-widget-card {
        min-height: 118px;
        padding: 18px;
        border-radius: 22px;
    }

    .sg-widget-card strong { font-size: 2.25rem; }

    .table-responsive { font-size: .9rem; }
}

/* FIX SELECT LEGGIBILI */
.form-select {
    background-color: rgba(255,255,255,.08) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,.18) !important;
}

.form-select:focus {
    background-color: rgba(255,255,255,.12) !important;
    color: #ffffff !important;
    border-color: #ffcc00 !important;
    box-shadow: 0 0 0 .25rem rgba(255,204,0,.18) !important;
}

/* Opzioni dropdown native */
.form-select option {
    background-color: #ffffff !important;
    color: #111722 !important;
}

/* Opzione selezionata */
.form-select option:checked {
    background-color: #ffcc00 !important;
    color: #111722 !important;
}

/* Placeholder/select vuote */
.form-select option[value=""] {
    color: #555555 !important;
}


/* FIX MENU MOBILE - PULSANTE CHIUDI */
.sg-sidebar-close {
    display: none;
}

@media (max-width: 991.98px) {
    .sg-sidebar-close {
        display: grid;
        place-items: center;
        position: absolute;
        top: 14px;
        right: 14px;
        width: 42px;
        height: 42px;
        border-radius: 14px;
        border: 1px solid rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        color: #ffffff;
        font-size: 1.25rem;
        z-index: 60;
    }

    .sg-sidebar-close:hover {
        background: #ffcc00;
        color: #111722;
    }

    body.sg-menu-open {
        overflow: hidden;
    }
}

/* SAFETYGEST360 RESTART - SCADENZE + DOCUMENTALE */
.sg-sidebar-close{display:none}
@media(max-width:991.98px){.sg-sidebar-close{display:grid;place-items:center;position:absolute;top:14px;right:14px;width:42px;height:42px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;z-index:60}body.sg-menu-open{overflow:hidden}}
.sg-mini-stat{min-height:110px;padding:20px;border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.025)),var(--sg-panel);border:1px solid var(--sg-border);box-shadow:var(--sg-shadow)}
.sg-mini-stat span{display:block;color:var(--sg-muted);font-weight:800;margin-bottom:8px}.sg-mini-stat strong{font-size:2.4rem;line-height:1;font-weight:950}.sg-mini-stat.danger{border-color:rgba(220,53,69,.45)}.sg-mini-stat.warning{border-color:rgba(255,204,0,.45)}.sg-mini-stat.success{border-color:rgba(25,135,84,.45)}
.sg-company-list,.sg-today-list,.sg-doc-list,.sg-timeline{display:grid;gap:12px}.sg-company-row,.sg-today-item,.sg-doc-item,.sg-file-item,.sg-tree-item{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);color:#fff;border-radius:16px;padding:13px 15px}.sg-company-row{display:flex;justify-content:space-between;align-items:center}.sg-company-row strong{color:var(--sg-yellow);font-size:1.25rem}.sg-today-item,.sg-doc-item,.sg-file-item,.sg-tree-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left}.sg-today-item:hover,.sg-doc-item:hover,.sg-file-item:hover,.sg-tree-item:hover,.sg-tree-item.active{border-color:rgba(255,204,0,.65);color:#fff}.sg-today-item>span:first-child,.sg-type-dot{width:12px;height:12px;display:inline-block;border-radius:999px;margin-right:6px}.sg-today-item small,.sg-file-item small{display:block;color:var(--sg-muted)}
.sg-row-expired td{background:rgba(220,53,69,.08)!important}.sg-priority-bassa,.sg-status-aperta{background:rgba(0,158,227,.20);color:#9ee4ff}.sg-priority-media,.sg-status-rimandata{background:rgba(255,204,0,.20);color:#ffe680}.sg-priority-alta{background:rgba(255,138,0,.22);color:#ffc27a}.sg-priority-critica{background:rgba(220,53,69,.24);color:#ff9aa5}.sg-status-chiusa{background:rgba(25,135,84,.25);color:#a8f0c2}
.sg-info-box{padding:16px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid var(--sg-border)}.sg-info-box span{display:block;color:var(--sg-muted);font-weight:750;margin-bottom:6px}.sg-info-box strong{font-size:1.1rem;font-weight:950}.sg-timeline-item{padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.055);border-left:4px solid var(--sg-yellow)}.sg-timeline-item strong{display:block;font-weight:950;text-transform:capitalize}.sg-timeline-item span{color:var(--sg-muted);font-size:.9rem}.sg-timeline-item p{margin:8px 0 0;color:#dbe7f2}
.sg-modal-content{background:var(--sg-panel);color:#fff;border:1px solid var(--sg-border);border-radius:24px}#sgPlanning{background:rgba(255,255,255,.03);border-radius:20px;padding:12px}.fc{color:#fff}.fc .fc-toolbar-title{font-weight:950}.fc .fc-button-primary{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18)}.fc .fc-button-primary:hover,.fc .fc-button-primary:not(:disabled).fc-button-active{background:var(--sg-yellow);border-color:var(--sg-yellow);color:#111722}.fc .fc-daygrid-day-number,.fc .fc-col-header-cell-cushion{color:#fff}.fc .fc-list-event:hover td{background:rgba(255,204,0,.12)}
.sg-doc-layout{display:grid;grid-template-columns:280px 330px 1fr;gap:16px;min-height:620px}.sg-doc-tree-panel,.sg-doc-file-panel,.sg-doc-preview-panel{background:rgba(255,255,255,.035);border:1px solid var(--sg-border);border-radius:22px;padding:16px;min-width:0}.sg-doc-panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.sg-doc-tree,.sg-doc-files{display:grid;gap:8px}.sg-tree-item{border-radius:14px}.sg-file-item{display:grid;grid-template-columns:auto 1fr auto}.sg-preview-box{min-height:460px;display:grid;place-items:center;background:rgba(0,0,0,.20);border:1px dashed rgba(255,255,255,.14);border-radius:18px;padding:14px}.sg-preview-frame{width:100%;min-height:520px;border:0;border-radius:14px;background:#fff}.sg-sticky-preview{position:sticky;top:110px}.form-select option{background-color:#fff!important;color:#111722!important}.form-select option:checked{background-color:#ffcc00!important;color:#111722!important}
@media(max-width:1199.98px){.sg-doc-layout{grid-template-columns:1fr}.sg-sticky-preview{position:static}}@media(max-width:767.98px){.sg-preview-frame{min-height:420px}.sg-doc-layout{min-height:auto}.fc .fc-toolbar{display:grid;gap:10px}.fc .fc-toolbar-chunk{display:flex;justify-content:center;flex-wrap:wrap}}
.sg-person-card {
    text-align: center;
    padding: 18px;
    border-radius: 22px;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--sg-border);
}

.sg-person-avatar {
    width: 92px;
    height: 92px;
    margin: 0 auto 14px;
    border-radius: 28px;
    display: grid;
    place-items: center;
    font-size: 2rem;
    font-weight: 950;
    background: linear-gradient(135deg, var(--sg-blue), var(--sg-yellow));
    color: #111722;
}

.sg-tabs {
    gap: 8px;
    flex-wrap: wrap;
}

.sg-tabs .nav-link {
    color: #fff;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.05);
    border-radius: 14px;
}

.sg-tabs .nav-link.active {
    background: var(--sg-yellow);
    color: #111722;
    font-weight: 900;
}

.sg-subform {
    background: rgba(255,255,255,.045);
    border: 1px solid var(--sg-border);
    border-radius: 20px;
    padding: 16px;
    margin-bottom: 18px;
}

.sg-badge-card {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 28px;
    align-items: center;
    padding: 28px;
    border-radius: 28px;
    background: linear-gradient(135deg, rgba(0,158,227,.18), rgba(255,204,0,.12));
    border: 1px solid var(--sg-border);
}

#badgeQr {
    background: #fff;
    padding: 14px;
    border-radius: 18px;
}

.sg-signature-pad {
    width: 100%;
    height: 260px;
    background: #fff;
    border: 3px dashed rgba(255,204,0,.8);
    border-radius: 18px;
    touch-action: none;
}

.sg-status-attivo {
    background: rgba(25,135,84,.25);
    color: #a8f0c2;
}

.sg-status-licenziato,
.sg-status-sospeso {
    background: rgba(220,53,69,.24);
    color: #ff9aa5;
}

@media (max-width: 767.98px) {
    .sg-badge-card {
        grid-template-columns: 1fr;
        text-align: center;
    }

    #badgeQr {
        margin: 0 auto;
        width: max-content;
    }

    .sg-signature-pad {
        height: 220px;
    }
}
/* FOTO RISORSA PERSONALE */

.sg-person-list-cell {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sg-person-list-photo {
    width: 46px;
    height: 46px;
    object-fit: cover;
    border-radius: 14px;
    border: 2px solid rgba(255,204,0,.55);
    background: rgba(255,255,255,.08);
}

.sg-person-photo {
    width: 128px;
    height: 128px;
    object-fit: cover;
    border-radius: 34px;
    border: 3px solid rgba(255,204,0,.75);
    box-shadow: 0 18px 40px rgba(0,0,0,.35);
    margin: 0 auto 16px;
    display: block;
    background: rgba(255,255,255,.08);
}

.sg-person-photo-preview {
    width: 110px;
    height: 110px;
    object-fit: cover;
    border-radius: 26px;
    border: 2px solid rgba(255,204,0,.65);
    background: rgba(255,255,255,.08);
}

.sg-badge-photo {
    width: 110px;
    height: 110px;
    object-fit: cover;
    border-radius: 28px;
    border: 3px solid rgba(255,204,0,.75);
    background: rgba(255,255,255,.08);
}

@media (max-width: 767.98px) {
    .sg-person-list-photo {
        width: 42px;
        height: 42px;
        border-radius: 12px;
    }

    .sg-person-photo {
        width: 112px;
        height: 112px;
        border-radius: 28px;
    }

    .sg-badge-photo {
        margin: 0 auto;
    }
}
/* FOTO RISORSA PERSONALE */

.sg-person-list-cell {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sg-person-list-photo {
    width: 46px;
    height: 46px;
    object-fit: cover;
    border-radius: 14px;
    border: 2px solid rgba(255,204,0,.55);
    background: rgba(255,255,255,.08);
}

.sg-person-photo {
    width: 128px;
    height: 128px;
    object-fit: cover;
    border-radius: 34px;
    border: 3px solid rgba(255,204,0,.75);
    box-shadow: 0 18px 40px rgba(0,0,0,.35);
    margin: 0 auto 16px;
    display: block;
    background: rgba(255,255,255,.08);
}

.sg-person-photo-preview {
    width: 110px;
    height: 110px;
    object-fit: cover;
    border-radius: 26px;
    border: 2px solid rgba(255,204,0,.65);
    background: rgba(255,255,255,.08);
}

.sg-badge-card {
    grid-template-columns: auto 1fr auto;
}

.sg-badge-photo {
    width: 110px;
    height: 110px;
    object-fit: cover;
    border-radius: 28px;
    border: 3px solid rgba(255,204,0,.75);
    background: rgba(255,255,255,.08);
}

@media (max-width: 767.98px) {
    .sg-person-list-photo {
        width: 42px;
        height: 42px;
        border-radius: 12px;
    }

    .sg-person-photo {
        width: 112px;
        height: 112px;
        border-radius: 28px;
    }

    .sg-badge-card {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .sg-badge-photo {
        margin: 0 auto;
    }
}
/* DPI V2 */

.sg-dpi-list-cell {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sg-dpi-list-photo {
    width: 52px;
    height: 52px;
    object-fit: cover;
    border-radius: 16px;
    border: 2px solid rgba(255,204,0,.55);
    background: rgba(255,255,255,.08);
}

.sg-dpi-card {
    text-align: center;
    padding: 18px;
    border-radius: 22px;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--sg-border);
}

.sg-dpi-photo {
    width: 150px;
    height: 150px;
    object-fit: cover;
    border-radius: 34px;
    border: 3px solid rgba(255,204,0,.75);
    box-shadow: 0 18px 40px rgba(0,0,0,.35);
    margin: 0 auto 16px;
    display: block;
    background: rgba(255,255,255,.08);
}

.sg-dpi-photo-preview {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 28px;
    border: 2px solid rgba(255,204,0,.65);
    background: rgba(255,255,255,.08);
}

.sg-signature-pad {
    width: 100%;
    height: 280px;
    background: #fff;
    border: 3px dashed rgba(255,204,0,.8);
    border-radius: 18px;
    touch-action: none;
}

.sg-status-attivo {
    background: rgba(25,135,84,.25);
    color: #a8f0c2;
}

.sg-status-non_attivo {
    background: rgba(220,53,69,.24);
    color: #ff9aa5;
}

@media (max-width: 767.98px) {
    .sg-dpi-list-photo {
        width: 44px;
        height: 44px;
        border-radius: 14px;
    }

    .sg-dpi-photo {
        width: 126px;
        height: 126px;
        border-radius: 30px;
    }

    .sg-signature-pad {
        height: 230px;
    }
}
/* AUDIT V1 */

.sg-audit-mobile-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 20px;
    margin-bottom: 20px;
    border-radius: 24px;
    background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025)), var(--sg-panel);
    border: 1px solid var(--sg-border);
    box-shadow: var(--sg-shadow);
}

.sg-audit-mobile-header h2 {
    margin: 0;
    font-weight: 950;
}

.sg-audit-mobile-header p {
    margin: 4px 0 0;
    color: var(--sg-muted);
}

#auditSaveStatus {
    white-space: nowrap;
    font-weight: 900;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
}

.sg-save-ok {
    color: #a8f0c2;
}

.sg-save-ko {
    color: #ff9aa5;
}

.sg-audit-questions {
    display: grid;
    gap: 16px;
}

.sg-audit-category,
.sg-audit-category-title {
    padding: 14px 18px;
    border-radius: 18px;
    background: rgba(255,204,0,.14);
    border: 1px solid rgba(255,204,0,.35);
    font-size: 1.1rem;
    font-weight: 950;
    color: #ffe680;
}

.sg-audit-question {
    padding: 18px;
    border-radius: 24px;
    background: rgba(255,255,255,.055);
    border: 1px solid var(--sg-border);
}

.sg-audit-question h3 {
    font-size: 1.08rem;
    font-weight: 950;
    margin-bottom: 8px;
}

.sg-audit-question p {
    color: var(--sg-muted);
}

.sg-answer-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 14px;
}

.sg-answer-btn {
    min-height: 54px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 16px;
    background: rgba(255,255,255,.06);
    color: #fff;
    font-weight: 950;
}

.sg-answer-btn.active.ok {
    background: rgba(25,135,84,.30);
    border-color: rgba(25,135,84,.75);
    color: #a8f0c2;
}

.sg-answer-btn.active.ko {
    background: rgba(220,53,69,.30);
    border-color: rgba(220,53,69,.75);
    color: #ff9aa5;
}

.sg-audit-photo-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.sg-audit-photo-list img {
    width: 82px;
    height: 82px;
    object-fit: cover;
    border-radius: 14px;
    border: 2px solid rgba(255,204,0,.45);
}

.sg-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.sg-check-card {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 14px;
    border-radius: 16px;
    background: rgba(255,255,255,.055);
    border: 1px solid var(--sg-border);
}

.sg-check-card input {
    width: 20px;
    height: 20px;
}

.sg-signature-pad {
    width: 100%;
    height: 240px;
    background: #fff;
    border: 3px dashed rgba(255,204,0,.8);
    border-radius: 18px;
    touch-action: none;
}

.sg-presente-card {
    padding: 16px;
    border-radius: 20px;
    background: rgba(255,255,255,.045);
    border: 1px solid var(--sg-border);
    margin-bottom: 14px;
}

.sg-audit-summary-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    padding: 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.045);
    border: 1px solid var(--sg-border);
    margin-bottom: 12px;
}

.sg-audit-summary-row p {
    margin: 8px 0 0;
    color: var(--sg-muted);
}

.sg-audit-status-bozza {
    background: rgba(255,204,0,.22);
    color: #ffe680;
}

.sg-audit-status-chiuso {
    background: rgba(25,135,84,.25);
    color: #a8f0c2;
}

@media (max-width: 767.98px) {
    .sg-audit-mobile-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .sg-answer-buttons {
        grid-template-columns: 1fr;
    }

    .sg-check-grid {
        grid-template-columns: 1fr;
    }

    .sg-signature-pad {
        height: 210px;
    }

    .sg-audit-summary-row {
        grid-template-columns: 1fr;
    }
}
/* AUDIT FIX FIRME VISIBILI */

.sg-saved-signature {
    display: grid;
    gap: 6px;
    margin-bottom: 10px;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.05);
}

.sg-saved-signature span {
    color: var(--sg-muted);
    font-weight: 800;
    font-size: .9rem;
}

.sg-saved-signature img {
    max-width: 240px;
    max-height: 110px;
    background: #fff;
    border-radius: 12px;
    padding: 8px;
}

@media (max-width: 767.98px) {
    .sg-saved-signature img {
        max-width: 100%;
    }
}
/* NEAR MISS V1 */

.sg-risk-basso {
    background: rgba(25,135,84,.25);
    color: #a8f0c2;
}

.sg-risk-medio {
    background: rgba(255,193,7,.24);
    color: #ffe680;
}

.sg-risk-alto {
    background: rgba(220,53,69,.28);
    color: #ff9aa5;
}

.sg-nearmiss-status-segnalato,
.sg-nearmiss-status-in_analisi {
    background: rgba(255,204,0,.22);
    color: #ffe680;
}

.sg-nearmiss-status-azioni_in_corso {
    background: rgba(13,202,240,.22);
    color: #9eeaf9;
}

.sg-nearmiss-status-chiuso {
    background: rgba(25,135,84,.25);
    color: #a8f0c2;
}

.sg-nearmiss-risk-card {
    display: grid;
    gap: 8px;
    padding: 22px;
    border-radius: 24px;
    background: rgba(255,255,255,.055);
    border: 1px solid var(--sg-border);
    text-align: center;
}

.sg-nearmiss-risk-card span {
    color: var(--sg-muted);
    font-weight: 800;
}

.sg-nearmiss-risk-card strong {
    font-size: 2.2rem;
    line-height: 1;
    font-weight: 950;
}

.sg-nearmiss-risk-card small {
    color: var(--sg-muted);
}

.sg-risk-border-basso {
    border-color: rgba(25,135,84,.55);
}

.sg-risk-border-medio {
    border-color: rgba(255,204,0,.55);
}

.sg-risk-border-alto {
    border-color: rgba(220,53,69,.65);
}

.sg-nearmiss-photo-list {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
}

.sg-nearmiss-photo-list img {
    width: 92px;
    height: 92px;
    object-fit: cover;
    border-radius: 16px;
    border: 2px solid rgba(255,204,0,.45);
}

.sg-color-dot {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 999px;
    margin-right: 8px;
    vertical-align: middle;
}

.sg-timeline {
    display: grid;
    gap: 12px;
}

.sg-timeline-item {
    padding: 14px;
    border-radius: 18px;
    background: rgba(255,255,255,.045);
    border: 1px solid var(--sg-border);
}

.sg-timeline-item strong {
    display: block;
}

.sg-timeline-item span {
    display: block;
    color: var(--sg-muted);
    font-size: .86rem;
}

.sg-timeline-item p {
    margin: 6px 0 0;
    color: var(--sg-muted);
}

@media (max-width: 767.98px) {
    .sg-nearmiss-risk-card strong {
        font-size: 1.8rem;
    }

    .sg-nearmiss-photo-list img {
        width: 78px;
        height: 78px;
    }
}
/* CANTIERI V1 */

.sg-cantiere-card {
    display: grid;
    gap: 10px;
    padding: 22px;
    border-radius: 24px;
    background: rgba(255,255,255,.055);
    border: 1px solid var(--sg-border);
}

.sg-cantiere-card h3 {
    font-size: 1.5rem;
    font-weight: 950;
    margin: 0;
}

.sg-cantiere-card p {
    color: var(--sg-muted);
    margin: 0;
}

.sg-cantiere-status-pianificato {
    background: rgba(255,204,0,.22);
    color: #ffe680;
}

.sg-cantiere-status-attivo {
    background: rgba(25,135,84,.25);
    color: #a8f0c2;
}

.sg-cantiere-status-sospeso {
    background: rgba(220,53,69,.24);
    color: #ff9aa5;
}

.sg-cantiere-status-chiuso {
    background: rgba(108,117,125,.32);
    color: #d7dce2;
}

@media (max-width: 767.98px) {
    .sg-cantiere-card {
        padding: 16px;
    }
}
/* STATISTICHE V1 */

.sg-chart-panel canvas {
    width: 100% !important;
    height: 330px !important;
}

.sg-stat-card strong {
    font-variant-numeric: tabular-nums;
}

@media (max-width: 767.98px) {
    .sg-chart-panel canvas {
        height: 280px !important;
    }
}
/* PATCH DASHBOARD -> SCADENZE AZIENDA */

.sg-company-row-link {
    text-decoration: none;
    color: inherit;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.sg-company-row-link:hover {
    transform: translateY(-1px);
    border-color: rgba(255,204,0,.55);
    background: rgba(255,204,0,.08);
    color: inherit;
}

.sg-company-row-link span {
    display: grid;
    gap: 2px;
}

.sg-company-row-link span small {
    color: var(--sg-muted);
    font-size: .78rem;
    font-weight: 700;
}

.sg-company-row-link strong {
    min-width: 46px;
    height: 38px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(255,204,0,.18);
    border: 1px solid rgba(255,204,0,.45);
    color: #ffe680;
}

.sg-selected-company-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(255,204,0,.10);
    border: 1px solid rgba(255,204,0,.30);
}

.sg-selected-company-banner span {
    display: block;
    color: var(--sg-muted);
    font-size: .86rem;
    font-weight: 800;
}

.sg-selected-company-banner strong {
    color: #ffe680;
    font-size: 1.05rem;
}

.sg-scadenza-actions {
    display: inline-flex;
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

@media (max-width: 767.98px) {
    .sg-selected-company-banner {
        align-items: flex-start;
        flex-direction: column;
    }

    .sg-scadenza-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 6px;
    }

    .sg-scadenza-actions .btn,
    .sg-scadenza-actions form,
    .sg-scadenza-actions form .btn {
        width: 100%;
    }
}
/* DOCUMENTALE DELETE PATCH */

.sg-file-row {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: stretch;
    gap: 8px;
    margin-bottom: 8px;
}

.sg-file-row .sg-file-item {
    margin-bottom: 0;
}

.sg-file-open-btn {
    width: 100%;
}

.sg-file-delete-btn {
    min-width: 42px;
    border-radius: 14px;
}

#deleteFolderBtn:disabled {
    opacity: .45;
    cursor: not-allowed;
}

@media (max-width: 767.98px) {
    .sg-doc-panel-title {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .sg-file-row {
        grid-template-columns: 1fr;
    }

    .sg-file-delete-btn {
        width: 100%;
    }
}
/* MANSIONI + AZIENDE ATECO */

.sg-ateco-box {
    padding: 18px;
    border-radius: 22px;
    background: rgba(255,255,255,.045);
    border: 1px solid var(--sg-border);
}

.sg-ateco-row {
    padding: 10px;
    border-radius: 16px;
    background: rgba(255,255,255,.035);
    border: 1px solid rgba(255,255,255,.08);
}

.sg-ateco-badge {
    background: rgba(255,204,0,.18);
    border: 1px solid rgba(255,204,0,.45);
    color: #ffe680;
    margin: 2px;
}

.sg-check {
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
}

@media (max-width: 767.98px) {
    .sg-ateco-box {
        padding: 12px;
    }
}
/* PARCO MEZZI V1 */
.sg-mezzo-card { display:grid; gap:10px; padding:22px; border-radius:24px; background:rgba(255,255,255,.055); border:1px solid var(--sg-border); }
.sg-mezzo-card strong { font-size:1.4rem; font-weight:950; }
.sg-mezzo-card small { color:var(--sg-muted); }
.sg-mezzo-status-attivo,.sg-attrezzatura-status-attiva,.sg-mezzo-scadenza-chiusa { background:rgba(25,135,84,.25); color:#a8f0c2; }
.sg-mezzo-status-manutenzione,.sg-mezzo-scadenza-aperta,.sg-attrezzatura-status-da_monitorare { background:rgba(255,204,0,.22); color:#ffe680; }
.sg-mezzo-status-fermo,.sg-attrezzatura-status-non_conforme,.sg-mezzo-scadenza-cancellata { background:rgba(220,53,69,.26); color:#ff9aa5; }
.sg-mezzo-status-venduto { background:rgba(108,117,125,.32); color:#d7dce2; }
.sg-timeline { display:grid; gap:12px; }
.sg-timeline-item { padding:14px; border-radius:18px; background:rgba(255,255,255,.045); border:1px solid var(--sg-border); }
.sg-timeline-item strong { display:block; }
.sg-timeline-item span { display:block; color:var(--sg-muted); font-size:.86rem; }
.sg-timeline-item p { margin:6px 0 0; color:var(--sg-muted); }
@media (max-width:767.98px){ .sg-mezzo-card{padding:16px;} }
/* AI CHAT V2 UNDERSTANDING */

.sg-ai-clarify {
    border-left: 4px solid #ffcc00;
}

.sg-ai-suggestion-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.sg-ai-inline-suggestion {
    text-align: left;
    border: 1px solid rgba(255,204,0,.32);
    background: rgba(255,204,0,.10);
    color: #ffe680;
    border-radius: 14px;
    padding: 10px 12px;
}

.sg-ai-inline-suggestion:hover {
    background: rgba(255,204,0,.18);
}
/* AI CHAT V3 RELAZIONI RISORSE */

.sg-ai-section-title {
    margin: 16px 0 8px;
    font-size: .98rem;
    font-weight: 900;
    color: #ffe680;
}

.sg-ai-muted {
    color: var(--sg-muted);
}

.sg-ai-answer .sg-ai-result-list + .sg-ai-section-title {
    margin-top: 20px;
}
/* AI CHAT V4 RISORSA / UTENTE */

.sg-ai-answer .sg-ai-muted strong {
    color: #ffe680;
}

.sg-ai-answer.sg-ai-clarify {
    border-left: 4px solid #ffcc00;
}
/* AI CHAT V5 SEMANTIC AI */

.sg-ai-semantic-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 14px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255,204,0,.10);
    border: 1px solid rgba(255,204,0,.28);
    color: #ffe680;
    font-size: .78rem;
    font-weight: 800;
}

.sg-ai-semantic-badge strong {
    color: #fff4bd;
}

.sg-ai-answer.sg-ai-clarify {
    border-left: 4px solid #ffcc00;
}
/* AI CHAT V1 */

.sg-ai-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 24px;
    align-items: start;
}

.sg-ai-main {
    min-height: calc(100vh - 160px);
    display: flex;
    flex-direction: column;
}

.sg-ai-messages {
    flex: 1;
    min-height: 520px;
    max-height: calc(100vh - 310px);
    overflow-y: auto;
    padding: 18px;
    border-radius: 24px;
    background: rgba(0,0,0,.18);
    border: 1px solid var(--sg-border);
}

.sg-ai-message {
    display: flex;
    margin-bottom: 14px;
}

.sg-ai-message.user {
    justify-content: flex-end;
}

.sg-ai-message.assistant {
    justify-content: flex-start;
}

.sg-ai-bubble {
    max-width: 88%;
    padding: 15px 17px;
    border-radius: 22px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.11);
    color: #fff;
}

.sg-ai-message.user .sg-ai-bubble {
    background: rgba(255,204,0,.18);
    border-color: rgba(255,204,0,.36);
    color: #fff8d6;
}

.sg-ai-bubble p:last-child {
    margin-bottom: 0;
}

.sg-ai-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    margin-top: 16px;
}

.sg-ai-form textarea {
    resize: none;
}

.sg-ai-examples {
    display: grid;
    gap: 10px;
}

.sg-ai-example {
    text-align: left;
    padding: 12px 14px;
    border-radius: 16px;
    color: #fff;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.12);
    transition: all .18s ease;
}

.sg-ai-example:hover {
    background: rgba(255,204,0,.12);
    border-color: rgba(255,204,0,.42);
    color: #ffe680;
}

.sg-ai-note {
    padding: 14px;
    border-radius: 18px;
    background: rgba(25,135,84,.10);
    border: 1px solid rgba(25,135,84,.28);
}

.sg-ai-note p {
    margin: 6px 0 0;
    color: var(--sg-muted);
}

.sg-ai-result-list {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.sg-ai-result-card {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border-radius: 16px;
    text-decoration: none;
    color: #fff;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.10);
    transition: all .18s ease;
}

.sg-ai-result-card:hover {
    color: #ffe680;
    background: rgba(255,204,0,.10);
    border-color: rgba(255,204,0,.38);
    transform: translateY(-1px);
}

.sg-ai-result-card span {
    color: var(--sg-muted);
    font-size: .9rem;
}

.sg-ai-result-card small {
    color: rgba(255,255,255,.66);
}

.sg-ai-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.sg-ai-typing {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 44px;
}

.sg-ai-typing span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ffcc00;
    opacity: .55;
    animation: sgAiTyping 1s infinite ease-in-out;
}

.sg-ai-typing span:nth-child(2) {
    animation-delay: .15s;
}

.sg-ai-typing span:nth-child(3) {
    animation-delay: .3s;
}

@keyframes sgAiTyping {
    0%, 80%, 100% { transform: translateY(0); opacity: .45; }
    40% { transform: translateY(-4px); opacity: 1; }
}

@media (max-width: 1199.98px) {
    .sg-ai-layout { grid-template-columns: 1fr; }
    .sg-ai-side { order: -1; }
}

@media (max-width: 767.98px) {
    .sg-ai-messages {
        min-height: 430px;
        max-height: 58vh;
        padding: 12px;
    }

    .sg-ai-bubble {
        max-width: 96%;
        padding: 13px 14px;
    }

    .sg-ai-form {
        grid-template-columns: 1fr;
    }

    .sg-ai-form .btn {
        width: 100%;
    }
}


/* AI CHAT FIX */

.sg-ai-inline-suggestion {
    text-align: left;
    border: 1px solid rgba(255,204,0,.32);
    background: rgba(255,204,0,.10);
    color: #ffe680;
    border-radius: 14px;
    padding: 10px 12px;
}

.sg-ai-inline-suggestion:hover {
    background: rgba(255,204,0,.18);
}

.sg-ai-section-title {
    margin: 16px 0 8px;
    font-size: .98rem;
    font-weight: 900;
    color: #ffe680;
}

.sg-ai-muted {
    color: var(--sg-muted);
}
/* AI CHAT V5 SEMANTIC AI */

.sg-ai-semantic-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 14px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255,204,0,.10);
    border: 1px solid rgba(255,204,0,.28);
    color: #ffe680;
    font-size: .78rem;
    font-weight: 800;
}

.sg-ai-semantic-badge strong {
    color: #fff4bd;
}

.sg-ai-answer.sg-ai-clarify {
    border-left: 4px solid #ffcc00;
}
.sg-ai-write-preview{border-left:4px solid #ffcc00}.sg-ai-write-table{display:grid;gap:8px;margin-top:12px}.sg-ai-write-table>div{display:grid;grid-template-columns:170px minmax(0,1fr);gap:12px;padding:9px 12px;border-radius:14px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10)}.sg-ai-write-table span{color:var(--sg-muted);font-size:.88rem}.sg-ai-write-table strong{color:#fff;word-break:break-word}.sg-ai-confirm-action{box-shadow:0 0 0 3px rgba(255,204,0,.16)}@media(max-width:767.98px){.sg-ai-write-table>div{grid-template-columns:1fr;gap:3px}}.sg-ai-missing-fields{display:grid;gap:10px;margin:12px 0}.sg-ai-missing-fields label{display:grid;gap:5px}.sg-ai-missing-fields label span{color:#ffe680;font-weight:800;font-size:.88rem}.sg-ai-missing-fields .form-control{background:rgba(255,255,255,.08)!important;color:#fff!important;border:1px solid rgba(255,204,0,.35)!important}.sg-ai-missing-fields .form-control:focus{border-color:#ffcc00!important;box-shadow:0 0 0 .25rem rgba(255,204,0,.18)!important}.sg-ai-write-preview .alert-warning{background:rgba(255,204,0,.18);border:1px solid rgba(255,204,0,.45);color:#fff4bd}/* SAFETYGEST360 - Delete actions */

.sg-table form.d-inline {
    margin: 0;
}

.btn-outline-danger {
    border-color: rgba(255, 90, 110, .65);
    color: #ff9aa5;
}

.btn-outline-danger:hover {
    background: rgba(220, 53, 69, .18);
    border-color: #dc3545;
    color: #fff;
}

.btn-outline-success {
    border-color: rgba(25, 135, 84, .65);
}
/* Patch operativa */
.sg-signature-pad { width: 100%; height: 170px; background: #fff; border-radius: 14px; border: 1px solid rgba(255,255,255,.25); touch-action: none; }
.sg-sede-row,.sg-medico-row { padding: 10px; border-radius: 16px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.08); }
.sg-doc-item small { display:block; opacity:.75; }
/* SAFETYGEST360 - Patch Operativa V2 */

.sg-company-logo-box {
    margin-bottom: 12px !important;
}

.sg-company-logo-preview {
    max-width: 150px;
    max-height: 80px;
    padding: 8px;
    border-radius: 14px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.16);
}

.sg-company-form .tab-pane,
.sg-company-form .card-body,
.sg-company-form fieldset {
    margin-bottom: 0 !important;
    padding-bottom: 12px !important;
}

.sg-company-form .nav-tabs,
.sg-company-form .nav-pills {
    margin-bottom: 10px !important;
}

.sg-company-form .fieldset-medici,
.sg-company-form #medici,
.sg-company-form .tab-pane-medici {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.sg-table .btn,
.sg-panel .btn {
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .sg-company-logo-preview {
        max-width: 120px;
        max-height: 65px;
    }
}
/* SAFETYGEST360 - Patch Operativa V3 */

.sg-signature-pad {
    display: block;
    width: 100%;
    min-height: 180px;
    height: 180px;
    background: #ffffff;
    border: 2px solid rgba(255, 204, 0, .45);
    border-radius: 14px;
    touch-action: none;
    cursor: crosshair;
}

.sg-signature-pad:focus {
    outline: 3px solid rgba(255, 204, 0, .22);
}

@media (max-width: 767.98px) {
    .sg-signature-pad {
        min-height: 220px;
        height: 220px;
    }
}
/* SAFETYGEST360 - Documentale V2 */

.sg-doc-layout {
    grid-template-columns: minmax(250px, 1fr) minmax(320px, 1.18fr) minmax(360px, 1.45fr);
    align-items: start;
}

.sg-doc-tree-panel,
.sg-doc-file-panel,
.sg-doc-preview-panel {
    min-width: 0;
    overflow: hidden;
}

.sg-doc-files {
    min-width: 0;
    overflow-x: hidden;
}

.sg-file-row {
    width: 100%;
    min-width: 0;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 44px;
    gap: 8px;
    align-items: center;
    overflow: hidden;
}

.sg-file-item {
    min-width: 0 !important;
    width: 100%;
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    overflow: hidden;
}

.sg-file-main-icon {
    flex: 0 0 auto;
}

.sg-file-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}

.sg-file-meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    white-space: nowrap;
}

.sg-file-delete-btn {
    width: 42px;
    min-width: 42px;
    max-width: 42px;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-self: end;
    position: static !important;
    z-index: 1;
}

.sg-file-deadline {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border-radius: 999px;
    padding: 2px 7px;
    background: rgba(255,204,0,.13);
    border: 1px solid rgba(255,204,0,.30);
    color: #ffe680;
    font-size: .72rem;
    font-weight: 800;
}

.sg-doc-upload-deadline {
    border: 1px solid rgba(255,204,0,.28);
    background: rgba(255,204,0,.08);
    border-radius: 16px;
    padding: 14px;
}

.sg-doc-upload-deadline .form-control,
.sg-doc-upload-deadline .form-select {
    background-color: rgba(255,255,255,.08);
    color: #fff;
    border-color: rgba(255,255,255,.16);
}

.sg-doc-upload-deadline .form-control:focus,
.sg-doc-upload-deadline .form-select:focus {
    border-color: #ffcc00;
    box-shadow: 0 0 0 .25rem rgba(255,204,0,.16);
}

@media (max-width: 1199.98px) {
    .sg-doc-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .sg-file-row {
        grid-template-columns: minmax(0, 1fr) 40px;
    }

    .sg-file-item {
        grid-template-columns: 20px minmax(0, 1fr);
    }

    .sg-file-meta {
        grid-column: 2 / 3;
    }
}
/* SAFETYGEST360 - Fix anteprima/log dettaglio scadenza */

.sg-scadenza-show-layout .sg-scadenza-preview-panel,
.sg-scadenza-show-layout .sg-sticky-preview {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
}

.sg-scadenza-show-layout .sg-preview-box {
    max-height: 520px;
    min-height: 360px;
    overflow: auto;
}

.sg-scadenza-show-layout .sg-preview-frame {
    width: 100%;
    height: 480px;
    min-height: 420px;
    border: 0;
    border-radius: 14px;
    background: #fff;
}

.sg-scadenza-show-layout .sg-timeline {
    max-height: none !important;
    overflow: visible !important;
}

@media (max-width: 1199.98px) {
    .sg-scadenza-show-layout .sg-preview-box {
        max-height: 460px;
        min-height: 280px;
    }

    .sg-scadenza-show-layout .sg-preview-frame {
        height: 420px;
        min-height: 320px;
    }
}

@media (max-width: 767.98px) {
    .sg-scadenza-show-layout .sg-preview-box {
        max-height: 380px;
        min-height: 240px;
    }

    .sg-scadenza-show-layout .sg-preview-frame {
        height: 340px;
        min-height: 260px;
    }
}
/* SAFETYGEST360 - Patch Operativa V4 */

.sg-auto-label {
    display: block;
    margin-bottom: 5px;
    color: #aebbd0;
    font-weight: 800;
    font-size: .86rem;
}

.sg-data-card {
    height: 100%;
    padding: 14px 16px;
    border-radius: 16px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.12);
}

.sg-data-card span {
    display: block;
    color: #9fb0c7;
    font-size: .82rem;
    font-weight: 800;
    margin-bottom: 6px;
}

.sg-data-card strong {
    display: block;
    color: #fff;
    font-size: 1rem;
    word-break: break-word;
}

.sg-person-photo-wrap {
    position: relative;
    display: inline-block;
    flex: 0 0 auto;
}

.sg-preposto-star {
    position: absolute;
    right: -5px;
    top: -7px;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #ffcc00;
    color: #111;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 900;
    border: 2px solid #202632;
    box-shadow: 0 0 0 3px rgba(255,204,0,.18);
}

.sg-mezzo-photo-preview {
    max-width: 220px;
    max-height: 140px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.06);
    padding: 6px;
}

.sg-mezzo-photo-detail {
    width: 100%;
    max-height: 220px;
    object-fit: cover;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.06);
}

.sg-inline-edit-hint,
.sg-inline-delete-hint {
    opacity: .75;
}

.sg-inline-edit-hint::after {
    content: " (gestione rapida)";
    font-size: .72rem;
    opacity: .7;
}

@media (max-width: 767.98px) {
    .sg-data-card {
        padding: 12px 14px;
    }
}
/* SAFETYGEST360 - V4.1 mezzi + record edit */

.sg-mezzo-list-cell {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 240px;
}

.sg-mezzo-list-photo {
    width: 54px;
    height: 42px;
    border-radius: 12px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex: 0 0 auto;
    color: #ffcc00;
    font-size: 1.4rem;
}

.sg-mezzo-list-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sg-mezzo-photo-preview {
    max-width: 220px;
    max-height: 145px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.18);
    padding: 6px;
    background: rgba(255,255,255,.06);
}

.sg-mezzo-photo-detail-box {
    width: 100%;
}

.sg-mezzo-photo-detail {
    width: 100%;
    max-height: 230px;
    object-fit: cover;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.06);
}

.sg-mezzo-photo-placeholder {
    min-height: 180px;
    border-radius: 18px;
    border: 1px dashed rgba(255,255,255,.25);
    background: rgba(255,255,255,.04);
    color: #9fb0c7;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.sg-mezzo-photo-placeholder i {
    font-size: 2rem;
    color: #ffcc00;
}

.sg-subform {
    border: 1px solid rgba(255,204,0,.22);
    background: rgba(255,204,0,.045);
    border-radius: 16px;
    padding: 14px;
}

.sg-subform .form-label {
    font-size: .82rem;
    color: #aebbd0;
    font-weight: 800;
}
/* SAFETYGEST360 - V4.2 Resize immagini operative */

/* Fix generale: impedisce immagini enormi in liste, dettagli, card, tab e anteprime */
.sg-panel img,
.sg-table img,
.card img,
.tab-pane img,
.modal img {
    max-width: 100%;
    height: auto;
}

/* Logo azienda */
.sg-company-logo-preview,
img.sg-company-logo-preview,
img[src*="/uploads/aziende/loghi"],
img[src*="uploads/aziende/loghi"] {
    width: auto !important;
    max-width: 180px !important;
    max-height: 90px !important;
    object-fit: contain !important;
    border-radius: 14px !important;
}

/* Foto lavoratore in lista */
.sg-person-list-photo,
img.sg-person-list-photo,
img[src*="/personale/foto/"],
img[src*="personale/foto/"] {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    object-fit: cover !important;
    border-radius: 14px !important;
}

/* Foto lavoratore dettaglio */
.sg-person-photo,
.sg-person-detail-photo,
img.sg-person-photo,
img.sg-person-detail-photo {
    width: 160px !important;
    height: 190px !important;
    max-width: 160px !important;
    max-height: 190px !important;
    object-fit: cover !important;
    border-radius: 18px !important;
}

/* Foto mezzi in lista */
.sg-mezzo-list-photo {
    width: 64px !important;
    height: 48px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    overflow: hidden !important;
    border-radius: 14px !important;
}

.sg-mezzo-list-photo img,
img.sg-mezzo-list-photo,
.sg-table img[src*="/uploads/mezzi/foto"],
.sg-table img[src*="uploads/mezzi/foto"] {
    width: 64px !important;
    height: 48px !important;
    max-width: 64px !important;
    max-height: 48px !important;
    object-fit: cover !important;
    border-radius: 14px !important;
}

/* Foto mezzi form */
.sg-mezzo-photo-preview,
img.sg-mezzo-photo-preview {
    width: auto !important;
    max-width: 240px !important;
    max-height: 155px !important;
    object-fit: cover !important;
    border-radius: 16px !important;
}

/* Foto mezzi dettaglio */
.sg-mezzo-photo-detail,
img.sg-mezzo-photo-detail,
.sg-panel img[src*="/uploads/mezzi/foto"],
.sg-panel img[src*="uploads/mezzi/foto"] {
    width: 100% !important;
    max-width: 340px !important;
    max-height: 230px !important;
    object-fit: cover !important;
    border-radius: 18px !important;
}

/* Immagini DPI */
.sg-dpi-img,
.sg-dpi-photo,
img.sg-dpi-img,
img.sg-dpi-photo,
.sg-panel img[src*="/uploads/dpi"],
.sg-panel img[src*="uploads/dpi"] {
    width: auto !important;
    max-width: 220px !important;
    max-height: 180px !important;
    object-fit: contain !important;
    border-radius: 16px !important;
}

/* Anteprime documentale e allegati */
.sg-preview-box img,
.sg-doc-preview-panel img,
.sg-document-preview img {
    width: auto !important;
    max-width: 100% !important;
    max-height: 520px !important;
    object-fit: contain !important;
}

/* Immagini dentro tabelle */
.table img,
.sg-table img {
    object-fit: cover;
}

/* Evita che immagini enormi allarghino colonne e layout */
.sg-panel,
.sg-table,
.table-responsive,
.tab-pane,
.card-body {
    min-width: 0;
}

.sg-panel img,
.tab-pane img,
.card-body img {
    display: inline-block;
}

/* Mobile */
@media (max-width: 767.98px) {
    .sg-person-detail-photo,
    img.sg-person-detail-photo {
        width: 130px !important;
        height: 155px !important;
        max-width: 130px !important;
        max-height: 155px !important;
    }

    .sg-mezzo-photo-detail,
    img.sg-mezzo-photo-detail,
    .sg-panel img[src*="/uploads/mezzi/foto"],
    .sg-panel img[src*="uploads/mezzi/foto"] {
        max-width: 100% !important;
        max-height: 210px !important;
    }

    .sg-company-logo-preview,
    img.sg-company-logo-preview,
    img[src*="/uploads/aziende/loghi"],
    img[src*="uploads/aziende/loghi"] {
        max-width: 145px !important;
        max-height: 70px !important;
    }
}
/* SAFETYGEST360 - V4.4 Fix foto dettaglio mezzo */

.sg-mezzo-anagrafica-card {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 22px;
    align-items: stretch;
    padding: 22px;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 20px 60px rgba(0,0,0,.22);
    overflow: hidden;
}

.sg-mezzo-photo-box {
    width: 280px;
    height: 210px;
    border-radius: 20px;
    overflow: hidden;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.16);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sg-mezzo-photo-box img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 280px !important;
    max-height: 210px !important;
    object-fit: cover !important;
    border-radius: 20px !important;
}

.sg-mezzo-photo-empty {
    width: 100%;
    height: 100%;
    color: #9fb0c7;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.sg-mezzo-photo-empty i {
    color: #ffcc00;
    font-size: 2.2rem;
}

.sg-mezzo-info-box {
    min-width: 0;
}

.sg-mezzo-anagrafica-card .sg-data-card {
    min-height: 84px;
}

/*
 * Blocco di sicurezza: qualunque immagine mezzo rimasta nella pagina
 * non può più diventare gigante.
 */
body img[src*="/uploads/mezzi/foto"],
body img[src*="uploads/mezzi/foto"] {
    max-width: 280px !important;
    max-height: 210px !important;
    width: auto !important;
    height: auto !important;
    object-fit: cover !important;
    border-radius: 18px !important;
}

/*
 * Se l'immagine è dentro il box corretto, usa invece la dimensione piena del box.
 */
.sg-mezzo-photo-box img[src*="/uploads/mezzi/foto"],
.sg-mezzo-photo-box img[src*="uploads/mezzi/foto"] {
    width: 100% !important;
    height: 100% !important;
    max-width: 280px !important;
    max-height: 210px !important;
}

@media (max-width: 991.98px) {
    .sg-mezzo-anagrafica-card {
        grid-template-columns: 1fr;
    }

    .sg-mezzo-photo-box {
        width: 100%;
        max-width: 360px;
        height: 240px;
    }

    .sg-mezzo-photo-box img {
        max-width: 360px !important;
        max-height: 240px !important;
    }
}

@media (max-width: 575.98px) {
    .sg-mezzo-anagrafica-card {
        padding: 16px;
    }

    .sg-mezzo-photo-box {
        height: 190px;
    }
}
/* SAFETYGEST360 - V4.5 Fix foto mezzi senza rompere le tab */

/*
 * LISTA MEZZI
 * La foto deve comportarsi come la foto lavoratore: miniatura fissa.
 */
.sg-mezzo-list-cell {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 0 !important;
}

.sg-mezzo-list-photo {
    width: 64px !important;
    height: 48px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    background: rgba(255,255,255,.08) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 64px !important;
}

.sg-mezzo-list-photo img {
    display: block !important;
    width: 64px !important;
    height: 48px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    object-fit: cover !important;
    border-radius: 14px !important;
}

/*
 * DETTAGLIO MEZZO
 * Nel dettaglio V4.1 la foto è dentro col-md-3 con classe sg-mezzo-photo-detail.
 * Deve restare piccola e non può mai occupare tutta la pagina.
 */
.sg-mezzo-photo-detail {
    display: block !important;
    width: 100% !important;
    max-width: 280px !important;
    height: 210px !important;
    max-height: 210px !important;
    object-fit: cover !important;
    border-radius: 18px !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    background: rgba(255,255,255,.06) !important;
}

/*
 * FORM MEZZO
 */
.sg-mezzo-photo-preview {
    display: block !important;
    width: auto !important;
    max-width: 240px !important;
    height: auto !important;
    max-height: 155px !important;
    object-fit: cover !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    background: rgba(255,255,255,.06) !important;
}

/*
 * Sicurezza: qualunque immagine dei mezzi caricata da uploads/mezzi/foto
 * viene limitata. Regola volutamente specifica per non influenzare le tab.
 */
body img[src*="/uploads/mezzi/foto"],
body img[src*="uploads/mezzi/foto"] {
    width: auto !important;
    height: auto !important;
    max-width: 280px !important;
    max-height: 210px !important;
    object-fit: cover !important;
    border-radius: 18px !important;
}

/*
 * Se l'immagine si trova dentro la miniatura lista, deve rispettare la miniatura,
 * non il limite dettaglio.
 */
.sg-mezzo-list-photo img[src*="/uploads/mezzi/foto"],
.sg-mezzo-list-photo img[src*="uploads/mezzi/foto"] {
    width: 64px !important;
    height: 48px !important;
    max-width: 64px !important;
    max-height: 48px !important;
    object-fit: cover !important;
    border-radius: 14px !important;
}

/*
 * Se l'immagine ha classe dettaglio, usa formato card dettaglio.
 */
img.sg-mezzo-photo-detail[src*="/uploads/mezzi/foto"],
img.sg-mezzo-photo-detail[src*="uploads/mezzi/foto"] {
    width: 100% !important;
    max-width: 280px !important;
    height: 210px !important;
    max-height: 210px !important;
}

/*
 * Evita allargamenti della tabella e della scheda.
 */
.sg-table,
.table-responsive,
.sg-panel,
.sg-mezzo-card,
.sg-tabs,
.tab-content,
.tab-pane {
    min-width: 0 !important;
}

@media (max-width: 767.98px) {
    .sg-mezzo-photo-detail {
        max-width: 100% !important;
        height: 180px !important;
        max-height: 180px !important;
    }

    body img[src*="/uploads/mezzi/foto"],
    body img[src*="uploads/mezzi/foto"] {
        max-width: 100% !important;
        max-height: 180px !important;
    }

    .sg-mezzo-list-photo,
    .sg-mezzo-list-photo img {
        width: 56px !important;
        height: 42px !important;
        min-width: 56px !important;
        max-width: 56px !important;
        min-height: 42px !important;
        max-height: 42px !important;
        flex-basis: 56px !important;
    }
}
/* SAFETYGEST360 - V4.9 Formazione aggiornamenti */

.sg-formazione-aggiornamento-form {
    border-color: rgba(255, 204, 0, .42) !important;
    background: rgba(255, 204, 0, .075) !important;
}

.sg-formazione-aggiornamento-form .badge {
    font-weight: 900;
}
/* SAFETYGEST360 - V4.9 Formazione aggiornamenti */

.sg-formazione-aggiornamento-form {
    border-color: rgba(255, 204, 0, .42) !important;
    background: rgba(255, 204, 0, .075) !important;
}

.sg-formazione-aggiornamento-form .badge {
    font-weight: 900;
}


/* V4.9.1 - Aggiornamenti formazione indentati sotto la formazione padre */

.sg-formazione-child-row {
    background: rgba(255, 204, 0, .035) !important;
}

.sg-formazione-child-row td:first-child {
    padding-left: 28px !important;
    border-left: 4px solid #ffcc00;
}

.sg-formazione-child-cell {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.sg-formazione-branch {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    min-width: 22px;
    height: 22px;
    border-radius: 999px;
    background: rgba(255, 204, 0, .18);
    color: #ffcc00;
    font-weight: 900;
    line-height: 1;
    margin-top: 2px;
}

@media (max-width: 767.98px) {
    .sg-formazione-child-row td:first-child {
        padding-left: 16px !important;
    }
}
/* SAFETYGEST360 - V4.9.2 Formazione aggiornamenti più indentati */

/*
 * Questa patch sovrascrive l'indentazione della V4.9.1.
 * L'aggiornamento viene spostato visivamente più a destra,
 * come una riga figlia sotto la formazione padre.
 */

.sg-formazione-child-row {
    background: rgba(255, 204, 0, .045) !important;
    position: relative;
}

.sg-formazione-child-row td {
    border-top-color: rgba(255, 204, 0, .18) !important;
}

/*
 * Rientro importante sulla prima colonna:
 * l'aggiornamento appare circa una colonna più a destra.
 */
.sg-formazione-child-row td:first-child {
    padding-left: 92px !important;
    border-left: 6px solid #ffcc00 !important;
    position: relative;
}

/*
 * Linea visiva tipo albero gerarchico.
 */
.sg-formazione-child-row td:first-child::before {
    content: "";
    position: absolute;
    left: 34px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: rgba(255, 204, 0, .45);
}

.sg-formazione-child-row td:first-child::after {
    content: "";
    position: absolute;
    left: 34px;
    top: 28px;
    width: 42px;
    height: 2px;
    background: rgba(255, 204, 0, .65);
}

.sg-formazione-child-cell {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
}

.sg-formazione-branch {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    border-radius: 999px !important;
    background: #ffcc00 !important;
    color: #111827 !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    margin-top: 0 !important;
    box-shadow: 0 0 0 4px rgba(255, 204, 0, .14) !important;
}

.sg-formazione-child-row .badge.bg-warning {
    font-size: .72rem !important;
    padding: 4px 8px !important;
}

/*
 * Alleggerisce i pulsanti sulla riga figlia.
 */
.sg-formazione-child-row .btn {
    transform: scale(.94);
    transform-origin: right center;
}

@media (max-width: 991.98px) {
    .sg-formazione-child-row td:first-child {
        padding-left: 68px !important;
    }

    .sg-formazione-child-row td:first-child::before {
        left: 24px;
    }

    .sg-formazione-child-row td:first-child::after {
        left: 24px;
        width: 34px;
    }
}

@media (max-width: 767.98px) {
    .sg-formazione-child-row td:first-child {
        padding-left: 48px !important;
    }

    .sg-formazione-child-row td:first-child::before {
        left: 18px;
    }

    .sg-formazione-child-row td:first-child::after {
        left: 18px;
        width: 24px;
    }
}
/* SAFETYGEST360 - Dettaglio azienda */

.sg-company-stat-card {
    min-height: 98px;
    padding: 18px;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 14px 36px rgba(0,0,0,.16);
}

.sg-company-stat-card span {
    display: block;
    color: #aebbd0;
    font-weight: 800;
    font-size: .82rem;
    margin-bottom: 10px;
}

.sg-company-stat-card strong {
    display: block;
    color: #ffcc00;
    font-size: 1.85rem;
    line-height: 1;
}

.sg-company-tabs {
    gap: 8px;
}

.sg-company-tabs .nav-link {
    color: #dbe5f5;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.055);
    border-radius: 999px;
    font-weight: 800;
}

.sg-company-tabs .nav-link.active {
    color: #111827;
    background: #ffcc00;
    border-color: #ffcc00;
}

.sg-company-detail-table {
    min-width: 860px;
}

.sg-company-detail-table td,
.sg-company-detail-table th {
    vertical-align: middle;
}

.sg-data-card {
    height: 100%;
    padding: 14px 16px;
    border-radius: 16px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.12);
}

.sg-data-card span {
    display: block;
    color: #9fb0c7;
    font-size: .82rem;
    font-weight: 800;
    margin-bottom: 6px;
}

.sg-data-card strong {
    display: block;
    color: #fff;
    font-size: 1rem;
    word-break: break-word;
}

@media (max-width: 767.98px) {
    .sg-company-stat-card {
        min-height: 82px;
        padding: 14px;
    }

    .sg-company-stat-card strong {
        font-size: 1.45rem;
    }
}


/* V4.12.3 - Report Audit / Near Miss */

.sg-anomaly-card {
    height: 100%;
    padding: 16px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,204,0,.12), rgba(255,255,255,.04));
    border: 1px solid rgba(255,204,0,.20);
}

.sg-anomaly-card span {
    display: block;
    color: #d9e2f1;
    font-weight: 900;
    font-size: .82rem;
    margin-bottom: 8px;
}

.sg-anomaly-card strong {
    display: block;
    color: #ffcc00;
    font-size: 1.8rem;
    line-height: 1;
    margin-bottom: 6px;
}

.sg-anomaly-card small {
    display: block;
    color: #9fb0c7;
    font-size: .76rem;
}

.sg-risk-box {
    padding: 18px;
    border-radius: 18px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.12);
}

.sg-risk-box > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}

.sg-risk-box span {
    color: #dbe5f5;
    font-weight: 900;
}

.sg-risk-box strong {
    color: #ffcc00;
    font-size: 1.25rem;
}

.sg-risk-box .progress {
    height: 10px;
    background: rgba(255,255,255,.12);
    border-radius: 999px;
    overflow: hidden;
}

.sg-risk-box .progress-bar {
    background: #ffcc00;
}
/* SAFETYGEST360 - V4.13 dettaglio lavoratore layout e tab */

.sg-personale-show-v413 .row.g-4 > .col-12.col-xl-4,
.sg-personale-show-v413 .row.g-4 > .col-xl-4 {
    flex: 0 0 auto !important;
    width: 25% !important;
}

.sg-personale-show-v413 .row.g-4 > .col-12.col-xl-8,
.sg-personale-show-v413 .row.g-4 > .col-xl-8 {
    flex: 0 0 auto !important;
    width: 75% !important;
}

.sg-personale-show-v413 .sg-profile-card,
.sg-personale-show-v413 .sg-worker-card,
.sg-personale-show-v413 .sg-photo-card {
    padding: 14px !important;
}

.sg-personale-show-v413 .sg-profile-card img,
.sg-personale-show-v413 .sg-worker-card img,
.sg-personale-show-v413 .sg-photo-card img,
.sg-personale-show-v413 img.sg-worker-photo,
.sg-personale-show-v413 .worker-photo,
.sg-personale-show-v413 .foto-lavoratore {
    max-width: 145px !important;
    max-height: 145px !important;
    object-fit: cover !important;
}

/*
 * La scheda delle tab operative diventa più spaziosa.
 * Serve soprattutto per Formazione, dove ci sono più colonne.
 */
.sg-personale-show-v413 .tab-content,
.sg-personale-show-v413 .sg-tabs-content,
.sg-personale-show-v413 .sg-panel:has(.sg-table) {
    overflow: visible !important;
}

.sg-personale-show-v413 .table-responsive {
    overflow-x: auto;
    padding-bottom: 10px;
}

.sg-personale-show-v413 .sg-table {
    min-width: 1040px;
}

.sg-personale-show-v413 .sg-actions-cell {
    min-width: 150px;
    white-space: normal !important;
}

.sg-personale-show-v413 .sg-actions-cell .btn,
.sg-personale-show-v413 .sg-actions-cell form {
    margin-bottom: 6px;
}

/*
 * Formazione: rende le righe aggiornamento meno invasive e più compatte.
 */
.sg-personale-show-v413 .sg-formazione-child-row td:first-child {
    padding-left: 76px !important;
}

.sg-personale-show-v413 .sg-formazione-child-row td {
    vertical-align: top;
}

.sg-personale-show-v413 .sg-formazione-child-cell strong {
    display: inline-block;
    max-width: 260px;
}

@media (max-width: 1199.98px) {
    .sg-personale-show-v413 .row.g-4 > .col-12.col-xl-4,
    .sg-personale-show-v413 .row.g-4 > .col-xl-4,
    .sg-personale-show-v413 .row.g-4 > .col-12.col-xl-8,
    .sg-personale-show-v413 .row.g-4 > .col-xl-8 {
        width: 100% !important;
    }

    .sg-personale-show-v413 .sg-table {
        min-width: 980px;
    }
}
/* SAFETYGEST360 - V4.13.3 Ripristino dettaglio + fix documenti fascicolo */

/*
 * Questa patch NON sposta il box Documenti fascicolo.
 * Corregge solo la lista documenti esistente, impedendo ai nomi file lunghi
 * di uscire dai bordi del box.
 */

.sg-doc-list {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.sg-doc-item {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    overflow: hidden !important;
}

.sg-doc-item i {
    flex: 0 0 auto !important;
    margin-top: 3px !important;
}

.sg-doc-item span {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    line-height: 1.25 !important;
}

.sg-doc-item span small {
    display: block !important;
    margin-top: 4px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

/*
 * Specifico per il dettaglio lavoratore.
 * Mantiene il box nella colonna esistente, ma evita overflow.
 */
.sg-personale-show-v4131 .sg-personale-left-col .sg-panel.mt-4 {
    overflow: hidden !important;
}

.sg-personale-show-v4131 .sg-personale-left-col .sg-doc-item {
    padding: 12px 14px !important;
}
/* SAFETYGEST360 - V4.14 Formazione / Attrezzature / DPI */

.sg-doc-item span,
.sg-doc-item small {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.sg-actions-cell .btn {
    margin-bottom: 6px;
}
.sg-tabs .nav-link {
    font-weight: 800;
}

.sg-table a.btn {
    white-space: normal;
    overflow-wrap: anywhere;
}

.sg-data-card {
    height: 100%;
}
/* SAFETYGEST360 - V4.15.1 fix tab azienda e spazio vuoto */

/*
 * In alcune versioni del tema le tab-pane nascoste restavano in layout,
 * creando un enorme spazio vuoto tra i pulsanti tab e la form attiva.
 * Qui forziamo il comportamento Bootstrap corretto.
 */

#aziendaForm .tab-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: 0 !important;
}

#aziendaForm .tab-content > .tab-pane {
    display: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

#aziendaForm .tab-content > .tab-pane.active,
#aziendaForm .tab-content > .tab-pane.show.active {
    display: block !important;
}

#aziendaForm .tab-content > .tab-pane:not(.active):not(.show) {
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

#aziendaForm .sg-tabs {
    margin-bottom: 16px !important;
}

/*
 * Compatta leggermente i pannelli interni.
 */
#aziendaForm #azMedici .sg-inner-panel,
#aziendaForm #azSedi .sg-inner-panel,
#aziendaForm #azAteco .sg-inner-panel {
    margin-top: 0 !important;
}

#aziendaForm .sg-medico-row {
    margin-bottom: 12px !important;
}
/* SAFETYGEST360 V4.15.2 - fix pulito medici azienda */

#aziendaForm .tab-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: 0 !important;
}

#aziendaForm .tab-content > .tab-pane:not(.show):not(.active) {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
}

#aziendaForm .tab-content > .tab-pane.show.active,
#aziendaForm .tab-content > .tab-pane.active {
    display: block !important;
    height: auto !important;
    visibility: visible !important;
}

#aziendaForm #azMedici .sg-ateco-box {
    margin-top: 0 !important;
}
