
/* =========================================================
   PORTALE V8 — TEMA UNIFICATO
   Caricato per ultimo su tutte le pagine.
   ========================================================= */

:root{
    --v8-bg:#f4f7fa;
    --v8-sidebar:#14243a;
    --v8-sidebar-hover:#1d314d;
    --v8-sidebar-active:#293b56;
    --v8-card:#ffffff;
    --v8-card-soft:#fafcfd;
    --v8-border:#e1e7ed;
    --v8-border-soft:#edf1f4;
    --v8-text:#1c2d42;
    --v8-text-2:#526378;
    --v8-muted:#8592a2;
    --v8-accent:#1b87e5;
    --v8-radius:9px;
    --v8-shadow:0 2px 8px rgba(24,38,56,.035);
    --v8-font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

html,body{
    font-family:var(--v8-font)!important;
    background:var(--v8-bg)!important;
    color:var(--v8-text)!important;
}

body{
    font-size:14px!important;
}

/* ---------- Layout ---------- */
.app{
    min-height:100vh;
}

.main{
    min-width:0;
    padding-top:0!important;
}

.content{
    padding-top:14px!important;
}

.content.refined-dashboard,
.content.admin-compact-page,
.content.report-content,
.content.new-ticket-content,
.content.simple-user-dashboard,
.ticket-layout,
.content > .ticket-header{
    font-family:var(--v8-font)!important;
}

/* ---------- Sidebar, identical everywhere ---------- */
.portal-sidebar.sidebar{
    display:flex!important;
    flex-direction:column!important;
    width:258px!important;
    min-width:258px!important;
    background:var(--v8-sidebar)!important;
}

.portal-sidebar .brand{
    min-height:78px!important;
    padding:11px 13px!important;
    display:flex!important;
    align-items:center!important;
    gap:11px!important;
}

.portal-sidebar .brand-photo{
    width:66px!important;
    height:54px!important;
    object-fit:cover!important;
    border-radius:6px!important;
}

.portal-sidebar .brand-copy{
    min-width:0!important;
}

.portal-sidebar .brand-title{
    color:#fff!important;
    font-size:18px!important;
    line-height:1.05!important;
    font-weight:700!important;
}

.portal-sidebar .brand-subtitle{
    margin-top:5px!important;
    color:#b7c5d4!important;
    font-size:11.5px!important;
}

.portal-sidebar .sidebar-nav{
    flex:1 1 auto!important;
    min-height:0!important;
    padding:6px 9px 10px!important;
    overflow-y:auto!important;
}

.portal-sidebar .sidebar-nav a{
    min-height:45px!important;
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
    padding:0 13px!important;
    margin:2px 0!important;
    border-radius:7px!important;
    color:#d9e2eb!important;
    font-size:14px!important;
    font-weight:500!important;
    text-decoration:none!important;
}

.portal-sidebar .sidebar-nav a:hover{
    background:var(--v8-sidebar-hover)!important;
    color:#fff!important;
}

.portal-sidebar .sidebar-nav a.active{
    background:var(--v8-sidebar-active)!important;
    color:#fff!important;
    font-weight:650!important;
}

.portal-sidebar .nav-icon{
    width:21px!important;
    height:21px!important;
    flex:0 0 21px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
}

.portal-sidebar .nav-icon svg,
.portal-sidebar .sidebar-logout-icon svg{
    width:19px!important;
    height:19px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
}

.portal-sidebar .nav-separator{
    margin:9px 6px!important;
    border-top:1px solid rgba(255,255,255,.09)!important;
}

.portal-sidebar .sidebar-account{
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:9px!important;
    margin:8px 9px 5px!important;
    padding:10px!important;
    border:1px solid rgba(255,255,255,.09)!important;
    border-radius:9px!important;
    background:rgba(255,255,255,.045)!important;
}

.portal-sidebar .sidebar-account-avatar{
    width:38px!important;
    height:38px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:8px!important;
    background:rgba(255,255,255,.10)!important;
    color:#fff!important;
    font-size:12px!important;
    font-weight:800!important;
}

.portal-sidebar .sidebar-account-copy{
    min-width:0!important;
}

.portal-sidebar .sidebar-account-copy strong{
    display:block!important;
    overflow:hidden!important;
    color:#fff!important;
    font-size:11.5px!important;
    line-height:1.2!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}

.portal-sidebar .sidebar-account-copy small{
    display:block!important;
    overflow:hidden!important;
    margin-top:4px!important;
    color:#adbdcd!important;
    font-size:9px!important;
    line-height:1.15!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}

.portal-sidebar .sidebar-account-logout{
    min-width:56px!important;
    height:32px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    padding:0 8px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:7px!important;
    background:rgba(255,255,255,.055)!important;
    color:#dbe4ed!important;
    font-size:9.5px!important;
    font-weight:700!important;
    line-height:1!important;
    text-decoration:none!important;
}

.portal-sidebar .sidebar-account-logout:hover{
    background:rgba(255,255,255,.11)!important;
    color:#fff!important;
}

.portal-sidebar .sidebar-logout-icon{
    width:13px!important;
    height:13px!important;
    display:flex!important;
}

.portal-sidebar .sidebar-logout-icon svg{
    width:13px!important;
    height:13px!important;
}

.portal-sidebar .compact-sidebar-footer{
    flex:0 0 auto!important;
    padding:5px 14px 11px!important;
    border-top:0!important;
    color:#8395a8!important;
    font-size:8px!important;
}

/* ---------- Global typography ---------- */
.breadcrumb{
    margin:0 0 10px!important;
    color:var(--v8-muted)!important;
    font-size:11px!important;
}

.breadcrumb a{
    color:#64778d!important;
    text-decoration:none!important;
}

h1{
    color:var(--v8-text)!important;
}

.report-heading h1,
.new-ticket-heading h1,
.ticket-header h1,
.compact-page-head h1,
.simple-user-head h1{
    font-size:29px!important;
    line-height:1.12!important;
    letter-spacing:-.025em!important;
}

.report-heading p,
.new-ticket-heading p,
.compact-page-head p,
.simple-user-head p{
    font-size:13px!important;
    line-height:1.45!important;
    color:var(--v8-muted)!important;
}

/* ---------- Cards ---------- */
.panel,
.refined-card,
.compact-panel,
.catalog-category-box,
.mini-kpi,
.simple-user-summary > div{
    border:1px solid var(--v8-border)!important;
    border-radius:var(--v8-radius)!important;
    background:var(--v8-card)!important;
    box-shadow:var(--v8-shadow)!important;
}

.panel-header,
.refined-card-head,
.catalog-category-head{
    border-bottom:1px solid var(--v8-border-soft)!important;
    background:var(--v8-card-soft)!important;
}

.panel-header h2,
.panel-header h3,
.refined-card-head h2,
.catalog-title-line h2{
    color:#293c52!important;
    font-size:15px!important;
    font-weight:700!important;
}

.panel-header small,
.refined-card-head small,
.catalog-title-wrap small{
    color:var(--v8-muted)!important;
    font-size:10px!important;
}

/* ---------- Forms ---------- */
label{
    color:#647488!important;
    font-size:11.5px!important;
    font-weight:650!important;
}

input,
select,
textarea,
button{
    font-family:var(--v8-font)!important;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="date"],
input[type="datetime-local"],
input[type="number"],
select,
textarea{
    border:1px solid #d9e1e8!important;
    border-radius:7px!important;
    color:#27394e!important;
    background:#fff!important;
    font-size:13px!important;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="date"],
input[type="datetime-local"],
input[type="number"],
select{
    min-height:39px!important;
}

textarea{
    font-size:13px!important;
    line-height:1.45!important;
}

.btn{
    min-height:36px!important;
    border-radius:7px!important;
    padding:0 14px!important;
    font-size:11.5px!important;
    font-weight:700!important;
}

/* ---------- Tables ---------- */
.report-table{
    font-size:12.5px!important;
}

.report-table thead th{
    padding:11px 12px!important;
    font-size:10px!important;
}

.report-table tbody td{
    padding:12px!important;
    font-size:12px!important;
}

/* ---------- Users / Catalog ---------- */
.compact-user-row{
    min-height:68px!important;
}

.compact-user-name strong,
.location-main strong,
.catalog-item-main strong{
    font-size:12.5px!important;
}

.compact-user-sub,
.compact-user-location,
.catalog-item-main small,
.location-main small{
    font-size:10.5px!important;
}

.group-pill,
.soft-badge,
.priority-dot-badge{
    font-size:9px!important;
}

.catalog-title-line h2{
    font-size:14px!important;
}

.catalog-item-row{
    min-height:58px!important;
}

.compact-tabs a,
.filter-chip,
.compact-search input{
    font-size:10.5px!important;
}

/* ---------- Ticket ---------- */
.ticket-title-row h1{
    font-size:27px!important;
}

.comment-author{
    font-size:12.5px!important;
}

.comment-body{
    font-size:12.5px!important;
    line-height:1.55!important;
}

.comment-date,
.comment-source{
    font-size:9.5px!important;
}

.detail-list dd,
.ticket-info-compact-grid dd{
    font-size:12px!important;
}

/* ---------- Dashboard ---------- */
.refined-dashboard{
    padding-top:12px!important;
}

.refined-head{
    margin-top:0!important;
}

.refined-dashboard .refined-card-head h2{
    font-size:15px!important;
}

.refined-dashboard .metric-label strong,
.refined-dashboard .status-refined-top > span{
    font-size:12.5px!important;
}

.refined-dashboard .ticket-main-top > a{
    font-size:12.5px!important;
}

.refined-dashboard .ticket-main-meta{
    font-size:10.5px!important;
}

/* ---------- Responsive ---------- */
@media(max-width:900px){
    .portal-sidebar.sidebar{
        width:230px!important;
        min-width:230px!important;
    }

    .portal-sidebar .brand-photo{
        width:56px!important;
        height:48px!important;
    }

    .portal-sidebar .brand-title{
        font-size:16px!important;
    }
}

@media(max-width:760px){
    body{
        font-size:13px!important;
    }

    .report-heading h1,
    .new-ticket-heading h1,
    .ticket-header h1,
    .compact-page-head h1,
    .simple-user-head h1{
        font-size:25px!important;
    }
}


/* =========================================================
   V8.1 — DASHBOARD UTENTE SEMPLICE
   ========================================================= */

.simple-new-ticket{
    min-height:40px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    padding:0 16px!important;
    border-radius:8px!important;
    text-decoration:none!important;
    white-space:nowrap!important;
}

.simple-new-ticket svg{
    width:15px!important;
    height:15px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:2!important;
}

.simple-user-summary{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    margin-bottom:13px!important;
}

.simple-summary-card{
    width:100%!important;
    min-height:92px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;

    padding:13px 15px!important;

    border:1px solid var(--v8-border)!important;
    border-radius:9px!important;

    background:#fff!important;
    box-shadow:var(--v8-shadow)!important;

    color:var(--v8-text)!important;
    text-align:left!important;
    cursor:pointer!important;

    transition:
        border-color .15s ease,
        box-shadow .15s ease,
        transform .15s ease,
        background .15s ease!important;
}

.simple-summary-card:hover{
    transform:translateY(-1px)!important;
    border-color:#c8d4df!important;
    box-shadow:0 5px 14px rgba(24,38,56,.065)!important;
}

.simple-summary-card.active{
    border-color:#9cb8d1!important;
    background:#f5f9fc!important;
    box-shadow:inset 0 0 0 1px #d4e1eb!important;
}

.simple-summary-card span{
    display:block!important;
    color:#7b8999!important;
    font-size:10.5px!important;
    font-weight:750!important;
    letter-spacing:.035em!important;
    text-transform:uppercase!important;
}

.simple-summary-card strong{
    display:block!important;
    margin:4px 0!important;
    color:#21364e!important;
    font-size:27px!important;
    line-height:1!important;
}

.simple-summary-card small{
    display:block!important;
    color:#919ca9!important;
    font-size:9.5px!important;
}

.simple-filter-empty{
    padding:28px 15px!important;
    text-align:center!important;
    color:#8794a2!important;
    font-size:12px!important;
}

.refined-ticket-row[hidden]{
    display:none!important;
}

@media(max-width:760px){
    .simple-user-summary{
        grid-template-columns:1fr!important;
    }

    .simple-summary-card{
        min-height:76px!important;
    }

    .simple-new-ticket{
        width:100%!important;
    }
}


/* =========================================================
   V8.4 — POPUP PENDING ADMIN
   ========================================================= */

.mail-pending-modal-backdrop{
    position:fixed;
    inset:0;
    z-index:9999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(12,25,42,.38);
    backdrop-filter:blur(2px);
}

.mail-pending-modal{
    width:min(520px,100%);
    display:grid;
    grid-template-columns:46px minmax(0,1fr);
    gap:14px;
    padding:20px;
    border:1px solid #dce4eb;
    border-radius:12px;
    background:#fff;
    box-shadow:0 20px 60px rgba(18,34,54,.20);
}

.mail-pending-modal-icon{
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#eef5fb;
    color:#3d668d;
}

.mail-pending-modal-icon svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
}

.mail-pending-modal-copy h2{
    margin:3px 0 6px;
    font-size:20px;
    color:#23384f;
}

.mail-pending-modal-copy p{
    margin:0;
    color:#6f7f90;
    font-size:12.5px;
    line-height:1.5;
}

.mail-pending-modal-actions{
    grid-column:1 / -1;
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:4px;
}

/* =========================================================
   V8.4 — COMUNICAZIONI / GESTIONE CODA
   ========================================================= */

.mail-stats-three{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

.mail-config-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0!important;
}

.mail-config-grid > div{
    min-height:58px;
    padding:12px 15px!important;
    border-right:1px solid #edf1f4;
    border-bottom:1px solid #edf1f4;
}

.mail-config-grid span{
    display:block;
    margin-bottom:4px;
    color:#83909e;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
}

.mail-config-grid strong{
    color:#2c4056;
    font-size:12px;
    overflow-wrap:anywhere;
}

.mail-queue-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:11px 13px;
    border-bottom:1px solid #e8edf1;
    background:#fbfcfd;
}

.mail-queue-selection{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.mail-queue-selection label{
    display:flex;
    align-items:center;
    gap:7px;
    margin:0;
    cursor:pointer;
}

.mail-queue-selection input,
.mail-row-check{
    width:15px!important;
    height:15px!important;
    min-height:0!important;
}

#mail-selected-count{
    color:#8a97a5;
    font-size:10px;
}

.mail-queue-actions{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:7px;
}

.mail-danger-soft{
    border-color:#e4c7c7!important;
    color:#a34e4e!important;
    background:#fffafa!important;
}

.mail-danger{
    border-color:#c97878!important;
    color:#fff!important;
    background:#b85d5d!important;
}

.mail-check-cell{
    width:36px;
    text-align:center!important;
}

.mail-error-cell{
    max-width:260px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#9a6262;
}

.status-pill.mail-pending{
    background:#fff6df!important;
    color:#9b731d!important;
}

.status-pill.mail-retry{
    background:#fff0df!important;
    color:#a46325!important;
}

.status-pill.mail-processing{
    background:#eaf3fb!important;
    color:#3e6d95!important;
}

@media(max-width:900px){
    .mail-queue-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }

    .mail-queue-actions{
        justify-content:flex-start;
    }
}

@media(max-width:700px){
    .mail-stats-three,
    .mail-config-grid{
        grid-template-columns:1fr!important;
    }

    .mail-pending-modal{
        grid-template-columns:1fr;
    }

    .mail-pending-modal-actions{
        grid-column:1;
        flex-direction:column-reverse;
    }
}


/* =========================================================
   PRODUCTION CLEAN V1.2 — SISTEMA PULSANTI UNIFICATO
   Riferimento visivo: pulsante Admin "Invia email".
   Mantiene i colori semantici dove necessari.
   ========================================================= */

.btn,
a.btn,
button.btn,
input.btn{
    min-height:34px!important;
    padding:0 12px!important;
    border-width:1px!important;
    border-style:solid!important;
    border-radius:6px!important;
    box-sizing:border-box!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px!important;
    font-family:inherit!important;
    font-size:11px!important;
    font-weight:800!important;
    line-height:1!important;
    text-decoration:none!important;
    white-space:nowrap;
    cursor:pointer;
    box-shadow:none!important;
    transition:
        background-color .14s ease,
        border-color .14s ease,
        color .14s ease,
        opacity .14s ease,
        transform .14s ease!important;
}

.btn:hover,
a.btn:hover,
button.btn:hover{
    text-decoration:none!important;
}

.btn:active:not(:disabled):not([disabled]){
    transform:translateY(1px);
}

.btn-primary{
    border-color:rgba(74,112,143,.22)!important;
    background:rgba(67,112,148,.92)!important;
    color:#fff!important;
}

.btn-primary:hover{
    border-color:rgba(58,99,132,.30)!important;
    background:rgba(58,99,132,.98)!important;
    color:#fff!important;
}

.btn-secondary{
    border-color:#d3dde4!important;
    background:rgba(255,255,255,.92)!important;
    color:#536d81!important;
}

.btn-secondary:hover{
    border-color:#c3d0d9!important;
    background:#f6f9fb!important;
    color:#425f75!important;
}

.btn-danger-outline{
    border-color:rgba(166,95,95,.28)!important;
    background:rgba(166,95,95,.045)!important;
    color:#955858!important;
}

.btn-danger-outline:hover{
    border-color:rgba(145,82,82,.40)!important;
    background:rgba(166,95,95,.09)!important;
    color:#874d4d!important;
}

.btn[disabled],
.btn:disabled{
    opacity:.45!important;
    cursor:not-allowed!important;
    transform:none!important;
}

.btn-icon{
    width:34px!important;
    min-width:34px!important;
    padding:0!important;
}
