:root{
    font-family:Arial,Helvetica,sans-serif;
    color:#111827;
    background:#f4f6f8;
    color-scheme:light;
}

*{ box-sizing:border-box; }
html,body{ min-height:100%; }
[hidden]{ display:none !important; }

body.impianto-portal-body{
    margin:0;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px 16px;
    background:#f4f6f8;
    font-family:Arial,Helvetica,sans-serif;
    font-size:14px;
    color:#111827;
}

.impianto-portal-shell{
    width:min(100%,500px);
}

.impianto-portal-brand{
    display:flex;
    align-items:center;
    gap:14px;
    margin:0 0 16px;
    padding:0 6px;
}

.impianto-portal-brand img{
    width:52px;
    height:52px;
    object-fit:contain;
}

.impianto-portal-brand div{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.impianto-portal-brand span{
    font-size:13px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#6b7280;
}

.impianto-portal-brand strong{
    font-size:20px;
    color:#374151;
}

/* Login e cambio password restano compatti e separati dal portale principale. */
.impianto-portal-card{
    width:100%;
    max-width:500px;
    margin:0 auto;
    background:#fff;
    border:1px solid #d1d5db;
    border-radius:4px;
    padding:28px;
    box-shadow:0 1px 2px rgba(0,0,0,.04);
}

.impianto-portal-heading{ margin-bottom:22px; }
.impianto-portal-kicker{
    display:inline-block;
    margin-bottom:7px;
    color:#6b7280;
    font-size:12px;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.impianto-portal-heading h1{
    margin:0 0 8px;
    color:#374151;
    font-size:28px;
    line-height:1.1;
}
.impianto-portal-heading p,
.impianto-portal-loading{
    margin:0;
    color:#6b7280;
    line-height:1.55;
}

.impianto-portal-form{ display:grid; gap:15px; }
.impianto-portal-form label{
    display:grid;
    gap:7px;
    color:#374151;
    font-size:13px;
    font-weight:700;
}
.impianto-portal-form input{
    width:100%;
    height:42px;
    border:1px solid #cbd5e1;
    border-radius:5px;
    padding:0 12px;
    background:#fff;
    color:#111827;
    font:inherit;
    font-size:15px;
    outline:none;
}
.impianto-portal-form input:focus{
    border-color:#9ca3af;
    box-shadow:0 0 0 2px rgba(107,114,128,.12);
}
.impianto-portal-note{
    margin:0;
    padding:11px 12px;
    border:1px solid #e5e7eb;
    border-radius:5px;
    background:#f9fafb;
    color:#6b7280;
    font-size:12px;
    line-height:1.5;
}
.impianto-portal-feedback{
    margin:0;
    padding:10px 12px;
    border-radius:5px;
    background:#fff3f3;
    border:1px solid #efcaca;
    color:#a12d2d;
    font-size:13px;
    line-height:1.45;
}
.impianto-portal-feedback.is-success{
    background:#eff9f1;
    border-color:#c8e8ce;
    color:#28763a;
}
.impianto-portal-actions{
    display:flex;
    gap:10px;
    justify-content:flex-end;
    flex-wrap:wrap;
}
.impianto-portal-primary,
.impianto-portal-secondary{
    min-height:40px;
    border-radius:5px;
    padding:0 16px;
    font:inherit;
    font-size:14px;
    font-weight:700;
    cursor:pointer;
}
.impianto-portal-primary{
    border:1px solid #6b7280;
    background:#6b7280;
    color:#fff;
}
.impianto-portal-secondary{
    border:1px solid #cbd5e1;
    background:#fff;
    color:#374151;
}
.impianto-portal-primary:hover,
.impianto-portal-secondary:hover{ filter:brightness(.97); }
.impianto-portal-primary:disabled,
.impianto-portal-secondary:disabled{
    opacity:.6;
    cursor:wait;
}
.impianto-portal-identity{
    margin:-8px 0 18px;
    padding:12px 14px;
    border:1px solid #d1d5db;
    border-radius:5px;
    background:#f9fafb;
    color:#374151;
    font-size:13px;
    font-weight:700;
}

/* Area autenticata: riprende l'aspetto della pagina email_log.php. */
body.impianto-log-active{
    align-items:flex-start;
    justify-content:center;
    padding:24px;
    background:#f4f6f8;
}
body.impianto-log-active .impianto-portal-shell{
    width:100%;
    max-width:1500px;
}
body.impianto-log-active .impianto-portal-brand{ display:none; }

.impianto-log-panel{
    width:100%;
    max-width:1500px;
    margin:0 auto;
    background:#fff;
    border:1px solid #d1d5db;
    border-radius:4px;
    padding:24px;
    box-shadow:0 1px 2px rgba(0,0,0,.04);
}

.impianto-log-accountbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:18px;
    flex-wrap:wrap;
}
.impianto-log-accountinfo{
    display:flex;
    align-items:baseline;
    gap:12px;
    flex-wrap:wrap;
}
.impianto-log-accountinfo strong{
    font-size:20px;
    color:#111827;
}
.impianto-log-accountinfo span{
    color:#6b7280;
    font-size:13px;
}
.impianto-log-accountactions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.impianto-log-textbutton{
    height:34px;
    border:1px solid #cbd5e1;
    background:#fff;
    border-radius:5px;
    padding:0 11px;
    font:inherit;
    font-size:13px;
    cursor:pointer;
}
.impianto-log-textbutton:hover{ background:#f3f4f6; }

.impianto-log-title{
    background:#7a7a7a;
    color:#fff;
    font-size:18px;
    padding:9px 18px;
    margin-bottom:24px;
}

.impianto-log-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:8px;
    flex-wrap:wrap;
}
.impianto-log-toolbar-left,
.impianto-log-toolbar-right{
    display:flex;
    align-items:center;
    gap:8px;
}
.impianto-log-iconbutton,
.impianto-log-toolbar select,
.impianto-log-toolbar input,
.impianto-log-pager button{
    height:38px;
    border:1px solid #cbd5e1;
    background:#fff;
    border-radius:5px;
    font-size:14px;
}
.impianto-log-iconbutton{
    min-width:38px;
    cursor:pointer;
    font-size:20px;
    padding:0 10px;
}
.impianto-log-iconbutton:hover,
.impianto-log-pager button:hover:not(:disabled){ background:#f3f4f6; }
.impianto-log-toolbar select{ padding:0 34px 0 12px; }
.impianto-log-toolbar input{
    width:260px;
    padding:0 12px;
    font-size:16px;
}
.impianto-log-feedback{ margin:0 0 8px; }

.impianto-log-table-wrap{
    overflow-x:auto;
    border-top:1px solid #d1d5db;
}
.impianto-log-table{
    width:100%;
    border-collapse:collapse;
    min-width:1050px;
}
.impianto-log-table th,
.impianto-log-table td{
    border:1px solid #d7dce2;
    padding:6px 7px;
    vertical-align:top;
    text-align:left;
}
.impianto-log-table th{
    background:#fff;
    font-weight:700;
    white-space:nowrap;
}
.impianto-log-table tbody tr:nth-child(odd){ background:#ededed; }
.impianto-log-table tbody tr:nth-child(even){ background:#fff; }
.impianto-log-table .center{ text-align:center; }
.impianto-email-date,
.impianto-email-code,
.impianto-email-address{ white-space:nowrap; }
.impianto-email-address{ max-width:250px; overflow-wrap:anywhere; }
.impianto-email-text{
    min-width:300px;
    max-width:520px;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}
.impianto-email-subject{
    min-width:160px;
    max-width:260px;
    overflow-wrap:anywhere;
}
.impianto-email-status-cell{
    text-align:center !important;
    white-space:nowrap;
}
.impianto-email-status-wrap{
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.impianto-email-status-badge{
    display:inline-flex;
    width:32px;
    height:32px;
    border-radius:5px;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:20px;
    font-weight:700;
}
.impianto-email-status-badge.ok{ background:#39aa4b; }
.impianto-email-status-badge.ko{ background:#d9534f; }
.impianto-email-status-badge.pending{ background:#b38b2f; }
.impianto-email-status-label{
    font-size:12px;
    color:#4b5563;
}

.impianto-log-empty{
    padding:34px;
    text-align:center;
    color:#6b7280;
}
.impianto-log-footer{
    margin-top:12px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    color:#4b5563;
}
.impianto-log-pager{
    display:flex;
    gap:6px;
    align-items:center;
}
.impianto-log-pager button{
    min-width:42px;
    padding:0 10px;
    cursor:pointer;
}
.impianto-log-pager button:disabled{
    opacity:.45;
    cursor:default;
}

@media (max-width:700px){
    body.impianto-portal-body{ padding:10px; align-items:flex-start; }
    .impianto-portal-card{ padding:20px 16px; }
    .impianto-portal-heading h1{ font-size:24px; }
    .impianto-portal-actions{ flex-direction:column-reverse; }
    .impianto-portal-primary,
    .impianto-portal-secondary{ width:100%; }

    body.impianto-log-active{ padding:10px; }
    .impianto-log-panel{ padding:12px; }
    .impianto-log-toolbar-right{ width:100%; }
    .impianto-log-toolbar input{ width:100%; min-width:0; }
    .impianto-log-accountbar{ align-items:flex-start; }
    .impianto-log-accountactions{ width:100%; }
    .impianto-log-accountactions button{ flex:1; }
}
